Apr 4, 2012

How to become a software architect?

In industry specific forums, I often see questions like “what certification do I need to do to become an architect?”.  The simple answer is that you don't need a certification to become an architect. It may help, but there is a lot more to it to become an architect.  

"If you need to be successful in anything, you need to emulate those who are already successful"

You can't just only study to become an architect. The best way to become an architect is to start thinking and acting like one. If you start thinking like one, you will start to observe the architects and learn. This is true for the other roles like becoming a manager, lead, etc. These roles require technical skills complemented with good soft skills, attitude, and work ethics.

Any self-help book will tell you -- what you think and do is what you become. This is why many interviewers ask open-ended questions like who are your role models? what books did you read recently? how do you keep your knowledge up to date? tell me about yourself? what are your short term and long term goals?, etc. These questions can reveal a lot about your passion, enthusiasm, attitude, communication skills, and technical strength.

Here is my take on the road map to become a software (e.g. JEE) architect.

  • Learn to ask the right questions -- what if ...? how about ...?, design alternatives, pros vs cons, tactical versus strategical, strategical vs political, weight the risks against the benefits, build vs buy, etc. Ask questions pertaining to the 16 key areas. Think in terms of scalability, transactional boundaries, best practices, exception handling, development process improvement, etc.
  • Get a good handle on the 16 key areas and proactively apply these key areas.

  1. Language Fundamentals (LF)
  2. Specification Fundamentals (SF)
  3. Platform Fundamentals (PF)
  4. Design Considerations  (DC)
  5. Design Patterns (DP)
  6. Concurrency Management (CM)
  7. Performance Considerations  (PC)
  8. Memory/Resource Considerations  (MC)
  9. Transaction Management  (TM)
  10. Security (SE)
  11. Scalability  (SC)
  12. Best Practices (BP)
  13. Coding (CO)
  14. Exception Handling (EH)
  15. Software Development Processes (SDP)
  16. Quality of Service  (QoS)

  • Look at things from both business and technical perspective: architects form a bridge between many cross functional teams like business analysts, stake holders, project managers, developers, testers, infrastructure team, operational and support staff. Know your target audience and learn to convey technology to the business non-technically and the business requirements to the techies technically.
  • Learn to look at the big pictures and also pay attention to details where required.
  • Get a well rounded hands-on experience. For example, client side, server side, application integration, full SDLC, etc. Nothing beats experience, and you can proactively fast-track your career by learning from others' experience via good books, blogs, industry specific web sites, and helping others on the forums.
  • Also, should have a good domain knowledge 
  • You don't have to be the "jack of all trades" but as a technical leader and a bridge between various stake holders and the development teams, you need to have good soft skills to make things happen by engaging the right teams and expertise. The key soft skills to have are communication, interpersonal, leadership, analytical, negotiation, and problem solving. The soft-skills and domain knowledge are the most important in the list.

So, the combination of all the above can transform you into an architect. Stay visible at your current work and behave like an architect to get a foot in the door. Ask the right questions and contribute in team meetings and crisis sessions to prove your capabilities.

You may also like:

The books that I enjoyed reading:

Labels: ,


Anonymous Parag said...

Liked your post, especially the ways you narrated the key areas. I will surely try to get hold of the books you recommended. I am about to start developing my own idea. Having working in ui development and also bit in spring/ struts 2 I think I have idea on how to get started. However, if it's not too much trouble for you, can email me some links which you had liked and relevant? Thanks!

1:51 AM, May 07, 2012  
Blogger Arulkumaran Kumaraswamipillai said...

I have listed some of the sites I frequent at Non-technical questions with hints

Q. How do you keep your knowledge current?
Q. How would you go about learning a new piece of technology, framework, or a tool?

9:56 AM, May 07, 2012  
Blogger Amit Degavekar said...

The link you have specified doesn't valid anymore.I am on the verge of choosing a path whether i should stick to technology or management after 10 years of experience. At this point i manage a team of 20 for single product for which i am working since last 7 years. Now due to overhead of management activities and increased client tel i am not able to focus on technology which i love.Somewhere in the backdrop of my mind i want to become an architect. Kindly give me some references to read.

6:15 PM, September 17, 2012  
Anonymous Anonymous said...

Hi Arul
i am a regular visitor of your blog and i really appreciate your efforts to put down such a wide range of contents. The above mentioned link is no more valid. Can you correct the link?

6:17 PM, September 17, 2012  
Blogger Arulkumaran Kumaraswamipillai said...

The link should be

10:27 AM, September 18, 2012  
Blogger minchitpaingthein said...

Nice Post

4:44 PM, March 15, 2013  
Blogger Pradnya said...

very helpful post!

5:16 PM, March 21, 2013  
Blogger John Michle said...

Its really good to know about that some features and the other informative points given here are quite considerable and to the point as well would be so far better idea to look for more of these kind.

Service Management Software

4:20 PM, August 14, 2013  
Blogger sateesh said...

Very Useful

5:00 PM, September 04, 2013  
Blogger Purnima Das said...

I too want to become Java Architect, and I always thought that Certification is the way out, however, I fully agree with your views and would like to implement them in my projects. Thank you for posting this article.

3:02 AM, November 22, 2013  
Blogger Arulkumaran Kumaraswamipillai said...

Many good architects are not certified. They have solid hands-on experience acquired on the job and pro-active learning. Good luck.

6:17 PM, January 20, 2014  
Blogger SVK said...

Excellent Blog. It will make more architects in the market. Thank you so much for all your knowledge sharing and guidance. Wish you all good luck Arulkumaran

3:15 PM, April 19, 2014  

Post a Comment

Subscribe to Post Comments [Atom]

<< Home