Programmer vs. Developer vs. Architect

2008-11-21 04:47:22 GMT

I think it's important to express ourselves clearly when speaking about various IT professions because they represent dramatically different skillsets and mental models. This post have born out of my frustration to hear clueless people misnaming various professionals and it can be an eye opener for some. The descriptions below are not standardized by any means. I personally use these namings in the way I do and don't wanna enforce anyone to use them this way.

Comment written by Arpad at 2008-11-28 15:19:51 GMT:

Be careful when defining Architect !
I have seen a few places where this term meant completely different.
We expect Architect to make technical decisions and design the architecture. But this decisions are made based on the business need, so this person must be somwhere between the business decision makers and developers.

The two common type of Architect:
Technical Architect: Emerges from the technical field, e.g. experienced software developer, who is good in people skills, user facing, and learned somewhat the business domain
This person designes classes, interfaces, writes technical papers, etc.
Tools: UML, Enterprise Architect

Business Architect: A person who thinks in the "big picture" from business point of view. Has technical experience but less then a developer. Good communication and coordination, creative thinking, people skill.
This person designes concepts, flows, processes, etc.
Tools: Visio, Word

I think in the today's world when IT is more about customers then about technology, the 2nd type is the winner.

Comment written by Laci at 2008-11-28 17:47:06 GMT:

Your example of the Business Architect using Word and Visio clearly suggests me that he's not seeing any further than Microsoft and is unable to make informed technical decisions, but you definitely make a point by separating the role of the Technical Architect and the Business Architect.

I clearly have to evolve a lot on the business side, although I'll never be as good as on the technical side because of my strong technical interest and modest business interest.

Comment written by Arpad at 2008-12-01 11:25:35 GMT:

You miss the point.
In my example, Business Architect using Word and Visio clearly suggest that this person is able to make architectural documents, specifications and all sort of documents which are required to technically lead the project.
Also my point was that technical decisions are made on business ground, not on technical ground. (There is no such thing as an IT project. There are only business projects with an IT component - June Drewry, Chubb Corp)

About the second part of your comment:
Yes, the typical career path is: developer -> sr developer -> architect (and later on -> project manager)
The problem is that developer is fully technically orineted, while architect is more or less business oriented.
Developer must have good technical skills. Architect must have good communication and presentation skills in addition.
The pitfall is that you architect the project because you are the best developer in the team, but you haven\'t learned the skills of an architect.

You used the word _evolve_ which is very appropriate. If you want to _level up_ then you have to evolve, shift your focus from pure technology to something else. Well, you don\'t HAVE to do it, you might stay in technical role and do it for a life time.

Comment written by Arpad at 2008-12-01 11:30:51 GMT:

Sorry, my last sentence was not clear.
There are old people near retirement who do and enjoy programming. Nobody has to evolve anywhere unless interested to do so.

Ps. i would like to see definition of _architect_ from somebody else too

Comment written by Laci at 2008-12-02 02:15:32 GMT:

Thank you for your clarifications. I absolutely get your point on the role of the Business Architect, I'm just probably too sensitive when mentioning loads of Microsoft products.