One can find many techies with over 5 years in the industry, expressing their interest to be a software architect. As it is rightly said, not all good programmers make good architects.
Architecture is an “artistic” science. The primary aim of architecture is to understand the business problem, identify suitable components, mix-match them in right proportions to design a solution, integrate them to peacefully coexist in harmony and deliver a reliable solution to the customer’s business problem. This is a very generic description, that would definitely apply for software architecture.
With this description, following can be a broad set of characteristics that an architect must possess, at a minimum:
- Excellent Communication skills
- Inquisitive skills to understand the business problem, in its true sense
- Creativity and Innovation – as required in any form of art
- Up to date knowledge on various Application frameworks and Technology tools – to evaluate broad range of solutions that are possible
- Strong Design Pattern Experience – not just knowing them but experience in putting them into use
- Effective Decision Making
- Motivational and Inspirational capabilities
- Keen eye for Perfection and Progress Tracking – to make sure that the solution implementation is synchronous with planning
- Ability to take ownership of the solution
These are the minimum set of characteristics that any architect must possess.
A programmer must evaluate him/herself on his aspirations, skills and future plans – on whether architecture is the right path to choose.