In this article, I will dive into the roles of the project manager and the software engineer. I’ll cover each role in a typical software company and look at the related roles around these two. I’ll also look at people who become project managers and software engineers.
What is a project manager?
A project manager is a person who is responsible for building a software product. From the initial period of beginning the project through the successful completion of the project, the project manager oversees the team building the project and also manages the costs and reporting around the project.
What makes a good project manager?
A good project manager must be a good planner. They must be extremely goal-oriented, focused and a good team players. Because the project manager role is so varied, utilising the team well and knowing when to add/remove resources is critical to both the velocity of the project and the cost.
When working on large projects with either large or many teams, any slowdown or barriers for the teams in completing their work can become extremely expensive quite quickly. This is why it is so important that the project manager be aware of the day-to-day goings on in the teams while also keeping an eye on the larger project and its milestones.
The ability of the project manager to condense information into easy-to-understand reports is also critical. The project manager will likely be dealing with many different team members performing quite different roles, and they will need to be able to succinctly report the current status of the project to their superiors.
What is a software engineer?
A software engineer is someone responsible for the designing, planning, coding, testing and building of the code base that will make the product that the project manager is overseeing. The software engineer’s role is to apply a systematic engineering approach to software development.
What makes a good software engineer?
A good software engineer is anyone with good problem-solving abilities and a willingness to dive deep into technical problems to build a good solution. They must also be a team player with good communication skills.
On top of those personal traits, the software engineer’s experience can be a key factor in the quality of the engineer. Often, software engineers who have worked on several different products in different tech stacks have seen multiple ways to build solutions that can help in the planning and development phase of a product. Software engineers who have worked on one project (even for a long period) can often miss the valuable experience gained from seeing other projects through to completion.
This is not to say that the engineer isn’t a quality engineer, but it does mean they might not be able to offer as much advice when putting together the architecture of a new product.
How do you become an accredited project manager?
There are many paths to becoming a project manager. These include formal education at higher-level colleges or universities. The typical path might be to attain a business degree in management or to complete an industry-recognised certificate or diploma. This depends on the industry and country that you live in as to what will be recognised.
How do you become a software engineer?
To become a software engineer, the typical path is to attain a software engineering degree from a college or university. Although this is the typical approach, many software engineers don’t have a degree (although certainly not the majority).
In these cases, the engineer has probably been trained while working in another role, or they have committed to learning outside work hours and building up a portfolio for potential employers. You will often see examples of this from people looking for work on LinkedIn, Twitter, Discord or other places. They will create a project and then open-source the code on GitHub for prospective employers to view.
Do agile teams have project managers?
In agile teams, the role of the project manager is often split between team members. The closest role to a project manager in a scrum team, for example, would be the product owner.
There are a few key differences between what is required from a product owner and a project manager. The product owners typically have two main roles. One is to oversee the development team and ensure everything is on track.
This would include removing barriers and roadblocks that the team is facing so that their velocity isn’t affected by any outside factors. An example of an outside factor might be that the DBA team hasn’t yet commissioned a database server, or another team whose work will be a dependency hasn’t completed their part.
The other main role of the product owner is to be a positive proponent for the team within the business. This means that the product owner will often sit in higher level means and work on behalf of the team, as opposed to working within the team.
There is a clear distinction between the role of a software engineer, someone who plans and builds the products, and the project manager, who oversees the team from the start to the completion of the product, including all reporting and cost management.
It is also important to note that in many modern software companies, the role of the project manager is often split amongst teams and introducing a product owner will take on the remainder of the project manager’s tasks.
In the older style, waterfall model software development, you would be more likely to find a project manager. This is due to the software lifecycle being more akin to the building of a physical product as opposed to a digital one. With the advent of the internet, and the ability to patch and update software more easily, the project management role fits less and less with software development, whilst the product owner role complements this change in software development.