What is the difference between the different roles of software development
What is the difference between the different roles of software development (e.g. Developer, Engineer, Programmer, Coder, Architect, Consultant, etc.)?
Vaguely speaking, this is what people with following designations do.
- Writes code.
- Builds application.
- Writes code
- Builds application
- Decides which frameworks / libraries to use
- Explains stuff to non-techies.
- Writes code.
- Does not necessarily build an application. For example, a guy writing code to operate a mechanical arm in some factory is still a programmer, but not a developer or an engineer.
- Writes less code than developers, engineers and programmers.
- Works on diagrams.
- Decides which tech stack to use. i.e decisions such as desktop vs web application, NoSQL vs SQL database etc.
- Makes recommendations on whom to hire and how many new people to bring in.
- Makes business stakeholders understand what’s possible and what’s not.
- May be any of the above, but works as a contractor instead of full-time. Contractors are paid more and work fewer hours. But they are paid hourly, have no benefits, contracts last for fixed periods and they may be fired any time. Vacations and sick days mean loss of pay.
- Consultants are brought in to solve specific problems. Usually they are brought in when the project is going behind schedule.
I say vaguely, because people in software don’t hold positions of authority the way they do elsewhere. At least, the authority they hold, doesn’t come from their designations. Instead, they draw authority from the level of understanding of the tech stack. A lot of times, junior developers are smarter than their senior counterparts and end up mentoring them. So, there’s plenty of overlap between these roles.
This is totally not how the categorization been done. May be this is how your organization decide roles but certainly not the always correct representational architecture.
Source of Info:- quora.com