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 draw high-level conceptual and UML diagrams: Know the various architectural styles, JEE layered multi tier architecture, and various integration styles. You must be confident to draw these diagrams on a white board with regards to the actual application you had worked on or how you would go about designing a new application in question.
- 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.
|
- 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: Architecture, Java career
12 Comments:
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!
Email- parag@webuserfirst.com
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?
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.
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?
The link should be http://java-success.blogspot.com.au/2012/04/non-technical-questions-with-hints.html
Nice Post
very helpful post!
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
Very Useful
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.
Many good architects are not certified. They have solid hands-on experience acquired on the job and pro-active learning. Good luck.
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
Post a Comment
Subscribe to Post Comments [Atom]
<< Home