Every software architect has played the role of a software developer, but very few software developers will get the opportunity to play the role of an architect in their future. Evolving into an architect or at least a good one takes years of dedication to technology, its concepts and emerging trends as well as best practices. There are too few decent New York architects out there and at times the scarcity of architects is quite alarming.
Alarming as it may be it is still not too surprising though since we all know the abilities and skills expected of an architect are quite demanding these days and are very rare to possess. It’s quite a stressful, responsible and critical role in an organization that is required to steer projects towards success. Even though there is a huge demand for quality architects in the market they still remain a scarce breed and they come at an ever increasing high cost. This article talks about how an organization can rethink its structure to address the underlying issue for scarcity of top architects and focus on developing home grown architects rather than depending on high cost lateral architects.
The most crucial element in a software organization is the quality of its software developers. The second most crucial element is how these developers are molded into having an architect’s mindset for the future. In most organizations’ structure the developers’ core skills get lost amongst the various duties and responsibilities he must perform as he climbs up the professional ladder. This generic structure that consists of software developers, tech leads, business analysts, project leads etc. leads to the dilution of technical skills and the resource loses focus on areas that he expected to concentrate on.
This leads to the creation of generalized resources rather than resources with specific skillsets. Even in organizations that focus on creating technical streams there is too much overemphasis on specific roles within each stream that actually dilutes the quality required of a good actual architect. Most seasoned enterprise architects will tell you that there are only two kinds of technical resources i.e. 1) Developer 2) Architect, everything else in between is a pure overhead and results in dilution of the qualities required by a good technical resource.
Very few techies these days have the pure raw passion for coding and development. A harsh reality is that most software engineers are keen on working just for a couple of years as a software developer before rushing to a management school. The even harsher reality is that a lot of software development abilities get lost in the unnecessary hierarchies built into the various streams in an organization. The technical skills of a resource loses priority and techies are expected to take on lead roles and management duties as well.
Whilst those streams are absolutely necessary for those individuals who are keen to pursue management streams, a conscious efforts should be made to preserve the core techies from getting swept away by such streams. Core techies are a rare breed and need to be nurtured and preserved if an organization aims to generate their own breed of competent and well versatile architects. Simplifying the organization structure or at least the part that applies to technical streams is the most important step in achieving this goal.
Simplifying the organization structure in no way means scrapping out the existing structure since those too are very crucial for producing the next line of management, solution architects and business analysts hence these streams have evolved. However it is important to modify the streams that are meant to generate core architects for the organization. As mentioned earlier, core technologist considers only two basic hierarchies in the technologies stream i.e. you are either a developer or an architect or both. All other levels in between serve as nothing but hindrances or filters that dilute the qualities required to become a strong architect.