Created by: Frances Marie Kagahastian 6min read
Dec 9, 2022
In the world of software development, one might think that the role and specialization of a software engineer is different from a project manager. Strictly speaking, an organization has their own project organizational structure, which defines the authority and role of team members within the organization. As software developers may fall within a functional department or part of a dedicated project staff, wherein the role of a developer may be the same, but the proper coordination within a chosen framework can develop a successful strategy of project delivery.
As organizations have their own project frameworks, a development team also uses software methodologies. These methodologies have its own diverse goals and even strength and weaknesses; which offers approaches and techniques of a software lifecycle. Five of the top mostly used software methodology include Agile, Scrum, Kanban, DevOps, and there are still organizations that use Waterfall.
In most cases the software developers experience gaps in relation to their engagement in projects and with their respective project or product managers. Here are some of the examples:
- Everything is urgent, and all of them is a priority!
- Timelines declared are too tight.
- We don’t have that technical specialization available, do we hire or up-skill?
- The developers are directly contacted by the stakeholders and/or clients.
The skills you obtain through your career experience as a developer are not mutually exclusive with the non-technical aspects, such as project management. Regardless of the software methodology your team uses, there are skills that a software developer needs to be aware, if not well versed; to contribute with the success of the project or product delivery.
Estimation and Scheduling. In the PMBOK Guide[, one of the items a project manager defines is the life cycle and definition of phases that deliverables are produced. A product or project manager creates the overall delivery approach, and schedules or timelines. In the perspective of the development team, your task is to estimate for the work effort, duration, people, and resources needed based on the scope of the requirement. This is where assessments come in, where the team analyzes the requirements and estimates. Here are some tips how you can provide estimations and schedules.
- For initial T-shirt sizing of requirements, where your team needs to assign a t-shirt size for each project task to represent it’s relative effort; the team should be aligned with what the size represents, use previous projects as baseline, and have someone from the team (example your product owner, scrum master, technical lead, etc.) to challenge the estimates.
- During backlog grooming or refinement, breakdown the big requirements into multiple stories and tasks. This enables you as the developer to clearly understand each requirement as well as analyze the tasks needed to be done, resources required, and if there are risks involved.
- Schedule plotting as sprints. Declaring your team’s estimated time of delivery can be a challenge, as most development teams perform in a sprint basis and performs grooming and planning in between those sprints. Using the project stories as Lego blocks, you may work with your team on a high level, which stories may fall into specific sprints. With this information, you can confidently address your project manager of the estimated delivery of certain iterations. Remember that you should also inform the project or product manager that unforeseen circumstances are not included in the provided schedule.
Internal and External Communications. Even if the software development team prefers to be sheltered from unnecessary meetings and direct engagements with clients and/or stakeholders; this is unavoidable most of the time. As the project manager create a communications plan of all its stakeholders, they should also include you and your team, on how communications should be established.
- Conduct frequent Sprint Reviews. The concept of sprint review is not a usual practice in most software methodologies, especially those who practice them strictly. Even with a waterfall approach, it can be beneficial inserting sprint reviews during the development and testing phases. This ensures alignment in terms of the scope and requirements of the project, per milestone or phase with the client and/or stakeholder.
- Learn to say “No”. As a developer, there can be times that your technical lead, your product or project manager can overpower you when it comes to commitments, assessment of estimation, decisions, meeting invites, etc. You may respectfully decline, but be sure to present the risks and challenges, and plan how you and your team can work around it.
- Define communication channels. Establish with your team, and your project manager, where and when they can efficiently reach you for communications about the project. Set a daily focus time wherein your team should not be disturbed, while the remaining time can be used for scheduled meetings, email responses, and other co-curricular work activities.
Risk Management. As project managers, the risk management plan is an iterative document that is maintained to define possible risks a project may possess, its certainty of happening, and activities how this can be mitigated, transferred, or accepted.
- Accountability of your “Ownership”. Whether it’s your function as a developer, quality engineer, or whatever role you have, and even a certain service or platform your team “own”; establish your ground that the expertise and domain you have is your “ownership”. Acknowledge and establish all the risks that could impact the success of the project or product.
- Be a problem solver. As a developer within your team, challenges will always come. Understand the problem, what will be its impact, and list action items that you could use to help mitigate the risks. If it’s out of your scope, call for guidance from your technical lead, project manager, and/or product manager.
Project management is not an exclusive role. There are multiple concepts and skills that a developer can work on when it comes to project management, whether you choose it as an alternate career or use it to upskill on your current role. With the technical expertise and skills you already possess, adopting project management skills can help increase efficiency, better collaboration, and higher chance of project success.
 Eby. K., 2022, “Essential Guide to Project Organizational Structure,” Smartsheet, Last Modified August 30, 2022, Last Accessed November 28, 2022, Project Organizational Structure | Smartsheet
 VironIT, 2022, “5 mostly used software development methodologies in 2022. How to choose?” LinkedIn. Last Modified July 5, 2022, Last Accessed November 28, 2022, 5 mostly used software development methodologies in 2022. How to choose?
 Project Management Institute, 2021, “Project Performance Domains,” The standard for project management and a guide to the project management body of knowledge (PMBOK guide), Pennsylvania: Project Management Institute, Inc.