Different companies use titles different. Big companies are different from small companies. Companies only developing for itself are different from companies developing for other companies. Companies developing custom software are different from companies developing plastic wrapped software products. US companies are different from Europena companies. And so on.
But even though it probably not match your organizaion perefctly then I hope that this little overview should still provide some insigth in the roles within a software development project. And please don't take it too literal or serious.
Titles | Role | Characteristics good | Characteristics bad |
---|---|---|---|
CTO CIO Head of IT SVP IT |
Tasks:
|
Understand how IT can support the business. Willing to take calculated risks. |
Focused on cost reduction. Very risk adverse. |
Head of engineering VP engineering Head of development VP development |
Tasks:
|
Understand when an IT project is starting to go off track and how to get it back on track. | Focused on increasing budget and head count. |
Head of operations VP operations |
Tasks:
|
Get operations involved early in all IT projects. | Tries to block all changes. |
Project manager |
Tasks:
|
Able to manage customer/stakeholder expectations. Able to motivate the team to work hard and efficient. |
Is just a highly paid admin that produce reports to management that does not reflect reality. |
Tech lead Team lead Group lead Technical project manager |
Tasks:
|
Has a solid experience and really understands the technical issues. Knows the team so assignments go the right person. Able to solve minor technical issues. Knows who to involve for major technical issues. |
Attempts to be a project manager instead of focusing on the technical issues. |
Senior software engineer Senior software developer Senior programmer |
Tasks:
|
Knows the system very well. Good at coming up with simple solutions that actually works. Good at mentoring other developers. |
Avoids all work via various BS excuses. |
Software engineer Software developer Programmer |
Tasks:
|
Knows a large number of programming languages. Knows a large number of frameworks and standard patterns. |
Don't know how to translate problem->algorithm->code and therefore end up randomly using copy paste of existing code. |
Business Analyst BA |
Tasks:
|
Has a deep insight in software/domain and are able to clarify unclear areas with customer/stakeholder. | Produces large quantities of text and pictures that noone understands what means. |
Technical writer |
Tasks:
|
Has a deep insight in software/domain and are able to actually explain how the system works. | Produces large quantities of text and pictures that does not reflect reality because the person don't know. |
QA engineer Test engineer |
Tasks:
|
Knows the system and where the tricky area most likely to have bugs are. Good at envisoning all types of scenarios that may happen in production. |
Just go through all the happy scenarios based on requirements. |
Integration Engineer IE |
Tasks:
|
Has a very deep understanding of how the entire system works. | Use try and error method. |
Database Administrator DBA |
Tasks:
|
Understands how the database works internally, which can be important for understanding performance impact. | Just a SQL super-user. |
System Engineer System Administrator sysadm |
Tasks:
|
Understands the operating system. Knows how to keep system uptodate with patches. Good at scripting. |
Just follows written guides and do as they say. |
Network engineer |
Tasks:
|
Really understand how the network protocols work at different levels. | Just plug everything in and see if it works. |
Enterprise architect |
Tasks:
|
Proposed projects actually provide the predicted business benefits. | Just a PowerPoint creator for the CTO/CIO. |
Solution architect |
Tasks:
|
Have a good feeling for what only works on paper and what also works in real world. | Just an overpaid BA. |
Software architect Application architect |
Tasks:
|
Able to find a good solution for any problem within the application. | Maintains a large number of diagrams that does not reflect how the application really works. |
Infrastructure architect |
Tasks:
|
Understands what can provide sufficient capabilities without being prohibitive expensive. | Just run vendors configuration tool. | Database architect |
Tasks:
|
Deep understanding of how the database works internally. | Just generate some ER diagrams from database tables created by developers. | Data architect Information architect |
Tasks:
|
Really understands what the data is (semantics) | Just produces long lists with database tables and columns. | Security architect |
Tasks:
|
Deep understanding of overall solution. Deep understanding of possible security threats. |
Just use OWASP checklist. |
Yes - there are a lot of architect roles listed - you may consider it a bias from my side. :-)
Version | Date | Description |
---|---|---|
1.0 | April 1st 2008 | Initial version (in Danish) published on Eksperten.dk |
1.2 | February 14th 2010 | Minor changes |
2.0 | April 22nd 2018 | Translation to English and complete reformatting and publishing here |
See list of all articles here
Please send comments to Arne Vajhøj