On the job market there are both coders and engineers: both are in demand, just at different companies. But besides developers, there may be another very important person on the team - the project manager.
Is it needed where engineers are already present
With their highly developed problem-solving skills, knowledge, experience, and high level of responsibility... Let's try to answer this question
The foundational philosophy in IT is Agile, flexible project management. Agile itself does not divide people by roles.
The team structure here is flat, and the entire team is responsible for the result. In Agile, there is a product owner (the client who makes business decisions and says how important a feature is when the task is set, and whether it delivered the expected effect after completion) and a team in which all members are equal.
There is no project manager role.
But in real life, things are not that simple
kt.team is a systems integrator, that is, a contractor that develops complex IT solutions for external clients. In an Agile integrator, the Agile principles are combined with the TQM paradigm (total quality management).
TQM rules: I don't make defects; I don't let defects through; I don't accept defects;
TQM rules can be represented as a pyramid, with quality responsibilities at each level.
A software engineer-level developer must think about all exceptions, including those not specified in the technical requirements - that is their quality standard.
That is, there are no developers in an Agile integrator who could be considered coders; in essence, everyone here is an engineer. For example, there is a task to build a simple registration form on a website with a single field - "Year of birth."
The developer must anticipate that a user might mistakenly enter the year 3000 or even letters, and handle all these exceptions.
This is the quality level of how the task is done.
The problem is that a task can be set incorrectly (you have surely run into this too).
A defective task is one that is poorly described and does not provide enough data to complete it. In our example with the registration form: if a person enters an age of five years, should that be treated as an error, or should registration be allowed?
Where is the upper cutoff limit: 65 years or 100 years?
To understand this, common sense alone is not enough - you need to learn the specifics of the client's business.
Another example: the client proposes implementing an excessive solution (for instance, new marketing features). Maybe the idea isn't the best, the implementation would reduce sales, or we'd spend too much time on it at the expense of more important tasks. Imagine if a developer or team lead had to analyze all of that?
They need to understand marketing, think about profitability, and worry not only about the quality of their own code but also about the project's overall business metrics.
How much time does it take to first learn this and then do it day after day?..