A perspective on the application of AI in Solution Architecture¶
A New World¶
Ever feel like your beautiful architectural blueprints end up gathering dust while the actual project veers off in a completely different direction? I have. For years, the gap between architectural vision and engineering execution has been a source of frustration.
A Solution Architect must consider a broad perspective when defining architectural principles, standards, and the overall vision for a solution. This "codification" of their work often takes the form of documented artifacts, architectural models, and diagrams—essentially, the blueprint for the solution.
A key responsibility of the Solution Architect is ensuring the engineering team's development aligns with the documented architecture and adapts as requirements and the architecture itself evolve. They also integrate feedback and learnings from the engineering team to maintain the architecture's relevance.
Therefore, the Solution Architect leads a continuous feedback loop centered on what I call the "4 Cs":
- Clear Communication: Facilitating clear communication between the architecture and engineering teams/squads and with product management.
- Coordination: Ensuring effective coordination of work across teams and departments.
- Cooperation: Fostering a collaborative environment where teams work together seamlessly.
- Credibility: Demonstrating credibility to key stakeholders, typically through the quality of the architecture and the engineering team's execution.
The Reality¶
This all looks good on paper. However, in my many years of experience as a Solution Architect, on both small and large projects, I found it frustrating that there continues to be gap between what was envisioned and what was created.
“We have no time to document”, or “The design is in the code! Just read it,!” These were some of responses I as an architect often got. In the end, the lack of time was a major inhibitor to achieving a desired state of the “4 Cs”.
This also was only magnified by the ever increasing virtual nature of the IT business with people from multiple timezones, cultures, backgrounds, etc… mixing up “the pot”.
A Perspective of the usage of GenAI to change this “Status Quo”¶
My original way to deal with this has been to use the carrot and stick approach. “If you document it will be good for your career”, or “ just do it dammit! I’m not understanding what you are saying!” Needless to say the by-product was the reverse of the 4 C’s. No/poor Communication, No coordination, etc…. Things just took longer than they should have and we had to work harder.
I do see hope in the future though. As I’ve shared on other blog posts, lately I’ve been discovering the true potential of GenAI to potentially help address this Status Quo.
Hypothesis: Leveraging GenAI capabilities can enable the “4 C’s”
Leveraging the power of GenAI can provide, and improve, solution documentation that has a direct impact on improving communication within the team and external stakeholders. Improved documentation can also enable better cooperation and coordination amongst people, which in the end improves the credibility of all involved.
Specifically, GenAI’s were can help in the following areas.
- Code Generation: GenAI can leverage architectural principles and decisions to generate initial code artifacts, ensuring alignment from the start.
- Automated Review: GenAI can assist in code reviews and validation processes, flagging potential deviations from the intended architecture.
- Diagram-Driven Development: Solution architecture diagrams can directly drive the generation of code and deployment artifacts, potentially even from informal sketches.
- Documentation Automation: GenAI can generate human-readable documentation from existing code and architectural diagrams, reducing the documentation burden."
Note: Strangely enough, these hypothesis were also many of the fundamentals behind CASE and 4GL tools in the past. ( see this post https://gzeien.github.io/cloud-notebook/ai/case-ai/ )
The Explorations that follows are my initial takes on testing this hypothesis to see what is possible and how usable it is.
Complications/Issues¶
Of course, there are challenges. Some key areas, as I see it, where the use of AI falls short.
- Humans: It won’t address issues such as hurt feelings, politics, budget constraints, etc..
- Challenges in critical thinking: GenAI technology today is very good performing pattern recognition. However if it is asked to perform calculations based on business rules or deterministic algorithms, tests have shown that there is still work to be done.
- It’s only an assistant that can help give some time back to the teams. It’s not going to replace anyone soon.
- Humans, more than likely, will still need to enhance code that is generated and add custom logic that GenAI can’t handle to the code.
- Per my explorations… a diagram still helps to drive this. As I’ve always said… being able to create a picture is key. HOWEVER… NOW the format and structure of that picture doesn’t have to be so rigid. Remember: PEOPLE still need to understand it.
- Based on my experience, the ability for GenAI to CREATE pictures is still lacking. However, I’m still learning too!
In the End….¶
My explorations into GenAI's capabilities have been eye-opening. While challenges remain, the potential for GenAI to revolutionize solution architecture is undeniable. It can serve as a powerful assistant, freeing up architects and engineers to focus on higher-level tasks and fostering better communication and collaboration.
While GenAI won't replace human architects anytime soon, it can significantly enhance their effectiveness and pave the way for a new era of more efficient and aligned software development. The journey is just beginning, and I'm excited to see how GenAI continues to evolve and shape the future of solution architecture."