top of page
Screen Shot 2024-11-20 at 1.08.38 PM.png

Architecture Is The New Code

  • Writer: Andrew Patka
    Andrew Patka
  • Feb 24
  • 5 min read

Updated: Feb 27



With all the hand-wringing and doomsday prophesies about how coding is dead in the tech industry, I'm deeply surprised how little attention is being paid to the massively underserved need that is staring us all in the face.


I'm talking about Architecture. 


It's the thing that everyone thinks they know when they see it, but is so widely misunderstood and inconsistently practiced that for years, it's been costing us billions in wasted time, effort and investment. More about that and some hard numbers in an upcoming post.


Nowhere is this more apparent than in Enterprise IT, where there are myriad systems, platforms and solutions - often numbering in the hundreds - interacting with each other and with people who rely on them every day to do their jobs.


How many of us have seen days, weeks and quarters go by, sitting in endless meetings, struggling to get the right sets of people together to understand how things actually work? 


And then getting everyone to agree how the platforms need to be modified - so the backlog of new capabilities and features that the business desperately needs to compete can actually get built?


I've seen this yawning gap for decades - working with clients and companies of all types and sizes - from startups to giants, across just about every vertical - from media and telecom, to fintech, consulting and more.


But the real reason it's critical to think about this now - as layoffs number in the hundreds of thousands, is that people are starting to realize that something is needed to harness AI as a truly effective coding tool - in a way that generates huge opportunities for all stakeholders. 


Not some form of Artificial General Intelligence (AGI), but a real tool that can help create and translate well-defined architecture artifacts into working code - even when there are many systems, data sources and business use cases to deal with.


In contrast to many recent AI prognostications, the software industry is not doomed - far from it. AI has simply illuminated the fact that we're at the next big discontinuity in the ongoing march of systems and software evolution.


The discontinuity that I'm talking about here is the level abstraction at which people and machines operate in their daily work. What is a bit disorienting is that it's happening almost overnight.


Although there are some important qualitative differences, it's really the same underlying phenomenon that we've been part of since last century - as the industry has moved from assemblers to compilers, from centralized mainframes to networked PCs and servers, from monolithic programs to Web apps and distributed microservices - you get the picture.


So how can we ride this discontinuity, harnessing architecture - specifically Enterprise Solution Architecture - to provide the the practices, toolsets, artifacts and skills that can yield the next leap in productivity and benefits for all IT stakeholders?


Before we can begin to answer, we have to understand what architecture really is.


Luckily that knowledge has been around since the dawn of IT. It's just that large swaths of the community have never learned it, forgotten it, or just starting calling themselves architects because that's what their job descriptions said.


Architecture has actually been formalized many times (think UML), but the tools have either been too heavy or too incomplete to actually use in any practical way.


Interestingly, at its essence, the practice of architecture is very similar across most disciplines, not just software. Whether it's buildings, kitchen remodeling, chips, network routers or distributed IT software, a complete architecture consists of three things:


  1. The actors - the things and people that perform defined actions - like opening a dishwasher or computing an optimal workforce-to-job-load allocation.

  2. The things that the actors act upon - like refrigerators, CPU caches, or workforce data.

  3. The interactions between the actors and the things that they act upon - i.e., the dynamics or use cases that the architecture deals with - whether cooking a dinner, hosting a large stadium concert, or dealing with an event across a set of systems, like a network outage.


Although this may sound like Architecture 101, in all my work with companies and teams, it's more than a little surprising how many different answers I get when I ask the simple question - what is architecture?


Although all three things are necessary, and no subset is sufficient, it's the third topic - the end-to-end interactions that's surprisingly most neglected.


This is especially true in Enterprise IT Architecture. It's what I've called in previous posts the Enterprise Knowledge gap, and it's been clearly documented to be the biggest inhibitor to IT productivity - by far.


I'll get into some actual studies and numbers in an upcoming post.


So how can we make the jump - to start creating and applying architecture artifacts to ride the discontinuity to significantly higher IT productivity?


We have to quickly start defining and building the the practices, toolsets, artifacts and skills that work with all 3 elements that I described above.


 We have to start realizing that Architecture is the new code.


On the tools front, we need architecture-driven integrated development environments (IDEs) - tools that enable us to easily capture the actors, actions, data, and interactions (think sequence diagrams) - as artifacts that can then be used to quickly generate and test the underlying code.


Not just for one or two systems - but the code and use case emulations for all the end-to-end systems involved - from UIs and apps to infrastructure platforms, microservices, data pipelines and orchestrators, all of which are needed for IT to deliver the solutions that businesses need. Big opportunity.


As many people have pointed out, AI-driven coding will always need people - highly skilled developers.


But there is a new kind of developer emerging - a person who operates up through a higher level of abstraction. These developers will be creating the end-to-end architectures and multi-level artifacts that unambiguously define how all the pieces fit together and how each system's actions, data and interactions have to fit in.


On the skills front, we desperately need to up-level people's multi-domain problem solving skills, along with their meeting facilitation and other soft skills - especially when working across multiple departments, disciplines and subject matter areas.


We can definitely get there. The hardware industry has been doing it forever - by necessity. Can you imagine what the hardware world would look like if architecture and design were practiced as they are in today's software world?


What's truly ironic is that tremendous leaps in hardware productivity have been in large part enabled by software. Not IT software - but CAD software, specifically targeted and co-evolved with hardware - things like generative design, AI-driven topology optimization, simulation, etc.


In an upcoming post, I'll dive deeply into that topic and uncover how we can realize tremendous IT productivity and business gains, quantitative and qualitative - if we simply start treating Enterprise IT more like hardware.



 
 
 

Comments


bottom of page