The role of technology architect is amid a revolution (or some people might say evolution), partially due to the impact of the Agile Manifesto. The typical architect defines the entire system up-front using stage-gated methods that are waterfall based. They also recommend products that very often have never been used or configured.
So, what can go wrong? Usually everything.
In the beginning, architects don’t know what they don’t know. Most solution blueprints are based on major assumptions that are not validated (often invalidated) until the system is deployed. Basically, release 2.0 is a redesign to correct all the design errors due to incomplete knowledge and dynamic requirements.
The way to address this challenge is to change how architecture is done. IT teams must admit that the architecture evolves over the project instead of trying to design it all up-front. They start with the minimum viable architecture and let it evolve as needed. They also do not rely on market ware. Theory is great but a prototype is essential to validate.
The next step is to define the solution blueprint by providing subject matter expertise (including coding of prototypes) during the build and test phases. Lastly, IT teams accept that architecture is a collaboration process and each member of the project team contributes to help define the architecture. Architects need to move away from the role as elitist to facilitators and validators.
Of course, not all architectures can evolve over time, or what’s known as “emergent designs.” Some architecture, especially with complex systems dependent on other complex systems, requires an upfront “intentional architecture” that is purposeful and planned architecture initiatives with a look-ahead.
What does the new technology architect look like?
For starters, the role needs to balance emergent designs with intentional architectures. The new technology architects understand enterprise systems in a holistic manner. They create cloud-based working solutions that fit the client culture. In the beginning, they provide the vision, models, high-level architecture, standards and recommended tools. Then as the product gets developed, they provide subject matter expertise to the various teams.
To be a technology architect, the required professional skills are:
Proven ability to build, manage and foster a team-oriented environment
Can lead through example by supporting the developers and enabling them to realize the architecture
Proven ability to work creatively and analytically in a problem-solving environment
Excellent communication (written and oral) and interpersonal skills
Excellent leadership and management skills
Required technical skills include:
Architecture creation and delivery
Expertise in shaping solutions
Expertise in one of the following areas
Front-end architecture, which includes mobile and design thinking
Liquid delivery (includes custom development, DevOps)
Expertise in Agile development
Experience with DevOps/infrastructure as code /continuous improvement
Experience with virtualization (VMWare, Docker) and other cloud platforms (AWS, Microsoft Azure, Google Compute, etc.)
What are your thoughts about the new role of the technology architect?