What jobs are there?
What does the phrase "a manager" really mean anyway? It means different things to different people, and it is often overused for anything that isn't an analyst-level position! So, as common as the term is, it's worthwhile for you to define what the phrase "a manager" really means, especially in the context of software development.
A simple distinction that I have used to illustrate the difference between an analyst and a manager is that while an analyst identifies, collects, and analyzes information, a manager uses this analysis and makes decisions. Or more accurately, a manager is responsible and accountable for the decisions they make.
The structure of software companies is now enormously diverse and varies a lot from one to another, which has an obvious impact on how the manager's role and their responsibilities are defined, which will be unique to each company.
Even within the same company, this is subject to change from time to time, as the company itself changes. Broadly speaking, a manager within software development can be classified into three categories, as we will now discuss.