It seems like AI has become suddenly important to Software Architects in nearly all industries. It’s the latest and greatest technology in a world of fast moving technologies. Actually, AI is not “suddenly” important. AI has been around for as long as software has been around, dating back as early as the 1950s. In the 1970’s, AI technology in the form of Lisp software systems, were believed to be a very promising but just a bit out of reach “silver bullet” solution to every problem. But the “silver bullet” promise of AI has remained more science fiction than fact. But in recent years, AI has gone from futuristic concept to everyday reality. AI is no longer just a science fiction concept…nor is it a research topic in a university computer science department. Instead, AI is everywhere. It’s on your phone, it’s in your car. It’s in your home. And its making its way into nearly every application you use. As a software architect, knowledge about AI is not only important, it’s essential for your career. You may or may not be heavily involved in AI now. But, increasingly…you will be… Now, most of us won’t be training new AI models or devising new AI systems ourselves. There are experts who do that. And if you are interested in being an expert in AI model development, that’s great! But all of us, whether we are AI experts or not, will be consumers of AI models and all flavors of AI tools:
You’ll be using AI tools to help you write and create plans and documents.
You and your team will be using AI tools to develop your applications…whether it’s AI-assisted design…code development…or testing.
You will use AI to assist you in making design and architecture decisions.
And…increasingly…you will be integrating AI components directly into the applications you are architecting.
AI is everywhere, in nearly every industry:
In healthcare, AI is used to scan medical images. It’s used to examine health surveys and doctors notes in order to assist in diagnosing diseases and complications.
In finance, AI is used extensively for fraud detection. It’s also a major component in automated customer service systems. It’s even used to predict market responses and futures in order to make timely investments.
In retail, AI drives recommendation engines on the front end, and inventory management and supply chain optimization on the back end.
In software itself, AI is changing how we write code, how we test, how we deploy, and even how we design and architect systems.
The application you are architecting may not be specifically labeled “AI-powered”. But, chances are, somewhere in the stack from infrastructure to end customer experience, AI is involved in creating, operating, and supporting your application. As a software architect, you’ll be involved in aspects of AI… other than being a consumer at one end or being an AI model developer at the other end of the spectrum.
You might be involved in understanding the ethical implications of AI usage.
You might be involved in understanding the current limits of AI and how those limits compare to the expectation hype around it.
You might be involved in figuring out creative ways to get around limitations and issues with current generation AI systems.
And you might be involved in following AI trends and advancements, to understand how these enhancements can impact the applications you are building and architecting.
In all these cases, one thing is clear: you need to understand what AI can do, what it can’t, and how it changes the software architecture landscape. So why does all of this matter to you as a software architect? Because AI introduces brand new architectural challenges. And along with those challenges it creates even more opportunities. To properly utilize AI systems, other components of your system become even more important than they were before:
Data pipelines become critical. AI is hungry for data…tons and tons of data. We tend to just throw whatever data we have available to our AI systems, but more and more we need to provide data in a structure and format reasonably optimized for AI consumption. This includes labelling data appropriately, providing tracability of the data, and ethically sourcing the data. That affects how you design systems for data ingestion, storage, and governance.
AI Model lifecycle management is now part of the broader system lifecycle. Which AI models, and what versions of those models you use, can have wide ranging impact on your applications performance. Deploying, monitoring, retraining, and versioning AI models becomes a task as important as data management, application version pipelining, or infrastructure revision management. AI is an integral part of our DevOps toolchains.
System boundaries shift. Traditional software is rule-based and relatively predictable. If you tell an application to do something, it typically will do whatever it was designed to do…over and over again. AI systems introduce probabilistic behavior. Ask an AI system twice to do the same thing and you will likely get two different results. You need to architect for uncertainty, explainability, and human oversight.
Ethics becomes an architectural concern. Bias, misuse, and hallucinations are very real problems in AI systems. They introduce architectural risk into your applications that were not present before.
As an architect, your role is to bring structure to complexity. AI adds a new dimension of complexity. But, AI also brings a powerful new set of tools to your application. As a software architect, you do not have to become an AI expert. But you do need…you MUST…become familiar with AI and understand its value, its potential, its problems, its risks, and its real and virtual costs.
Don't bet against your business. Architecting for Scale is the definitive guide for directors, managers, and architects who want an actionable roadmap for building and operating applications at scale.