Every Java developer's aim (mostly) is to become 'Solution Architect' because of the glamour this word has (another motivating factor is decent pay). I am also a Java developer and sometimes I try to relate my experience and knowledge to assess where I stand. Definitely long way to go to become Solution Architect. I have few thoughts on how to become Solution Architect. I am sharing few of them.
Before that, I want to make it clear what is Solution Architect in my own terms.
Who is Solution Architect:
- A developer who is ready to code.
- A designer who is ready to draw UML diagrams.
- A coordinator who talks to project stakeholders to get requirements (functional & non-functional).
- A translator who translates business needs to technical requirements and vice versa.
- An estimator who can estimate project's cost and man days.
- A troubleshooter who can debug a problem and provides mitigating strategy (or solution).
- A process improver who suggests ways to improve process and productivity.
- A mentor who is ready to share his knowlege with his team and enlightens them.
- A person who have deep knowledge and experience in one technology and comfortable knowledge on other technolgoies.
- A good presenter with good presentational skills.
- Finally someone who takes blame if things go worse.
Ofcourse above criteria is very vague and differs from organization to organization. Well, how one person can develop so many qualities. I read somewhere that to become Solution Architect the best way is to act like one. So one developer thinks he/she is a Solution Architect what will happen?
In positive terms, the thinking process changes, its totally a different perspective. As a saying goes...
"A developer is concerned with what will happen when user clicks a button, an Architect is concerned with what will happen when 10,000 users click a button."
If you assign a task to a developer all his focus is only on coding, he will start coding right infront you and a hurry to deliver the code. However if you think an architect, instead of opening up your IDE you will surely ask questions.
Questions could be related to funtionality, maintenance, design, security and performance etc. Also you try to give best refactored code with patterns used whenever applicable. This is the difference.
The best way to become Solution Architect is to think like one. Give best in what ever you do. Think of all aspects of a system not just code.
Since architecture is the basis for project and business, it should have solid foundation. If architecture is not scalable the risk is severe because rest of the system components are going to rely on the architecture. So the architect should fully undetstand stakeholder needs and try to leverage their needs with cost and timeline.
Becoming architect is not just a week's work and we cannot become architects by sitting in caves or by attending trainings. Its a continuous process. We constantly need to update our knowledge beyond our skill areas. We need to show great enthusiams to solve problems and we must have good patience with positive attitude. I always believe that Solution Architct is a role rather than a designation.
For all of the developers who wants to become architects, Good luck and bon voyage!