Hello everyone! Today, we’re going to discuss an interesting article from Forbes titled “Does Software Architecture Still Matter?”. (https://www.forbes.com/sites/forbestechcouncil/2023/10/10/does-software-architecture-still-matter/?sh=11e164367de4) The article, penned by Bob Quillin, the Chief Ecosystem Officer for vFunction, delves into the evolution of software architecture and the role of software architects in the Agile era.
Architects Need to Adapt
The article describes the shift in software development methodologies from the traditional waterfall model to Agile that has taken place over the last decade plus. It correctly points out that in the waterfall model, software architects played a critical role early on, specifying the architectural blueprint that generally stuck throughout the life of the application.
The article goes on to say that with the advent of Agile methodologies and DevOps-driven culture, the role of the software architect has evolved. Architects are now required to be more involved throughout the development process, adjusting from an authoritarian role to a more consultative and engaged approach.
When the Agile Manifesto came out in 2001, it stated that one of the 12 principles of agile software is that “the best architectures, requirements and designs emerge from self-organizing teams.”
In my own personal experience, there are two key problems with allowing sofware architecture to emerge through the agile iterations a team goes through.
- Business moves fast if it wants to survive and succeed. This means that it’s very hard to go back and alter the foundational architecture of a system. “Good enough” is usually the mantra of the business. Rarely do you get the opportunity to redesign if you hit an architectural wall. You’ll be left to patch things up the best you can.
- Getting the architecture wrong can have disastrous effects on a system in the long term. Establishing some foundational architecture decisions early on helps to ensure that the system you build can meet the business’s requirements. Think of it as putting guardrails in place so you don’t go off the cliff.
Some organizations have questioned whether they need the software architect role at all. High-velocity, self-organizing teams often democratize and share the architect role when they start off, but evidence suggests that eventually, problems emerge as every application faces its share of shortcuts, mistakes and short-sightedness.
Design for Change
As an architect, one of the most important approaches you can take when designing software today is the concept of “Design for Change”. It’s a forward-thinking way of approaching your design. It’s important to consider the key decisions that you need to make early on and look at it through a lens where you ask questions like:
- What happens if the business is successful and grows rapidly? Will my design stand up to 10x, 100x, 1000x more usage?
- What technologies am I using to build this system? Will those technologies allow me to adapt to changing requirements? Will the technology be around in 5 years? Is there a pool of engineers in the market that knows how to use the technology effectively?
- Am I getting locked into a cloud provider if I use “xyz” service? How easy would it be to change providers if business drivers demanded it?
Like rust or rot that accumulates over time, architecture drift deteriorates the original composition and structure of an application and has a direct technical, business and cost impact.
Key Takeaways for Architects
The key takeaway from the article for software architects is the need to adapt to the changing landscape of software development. With the shift towards Agile methodologies and DevOps culture, architects need to be more involved throughout the development process.
They must adjust from an authoritarian role that dictates architecture to a more consultative and engaged approach that focuses more on influence than authority. This shift requires architects to continuously insert themselves in the development process, ensuring that the architecture evolves with the application and remains relevant in the face of rapid development cycles and high-frequency releases.
In conclusion, the Forbes article provides valuable insights into the evolving role of software architects and reaffirms the importance of software architecture, even in the Agile era. As the field continues to evolve, it’s crucial for architects to stay adaptable and engaged throughout the development process.
That’s all for today’s review. Stay tuned for more insights into the world of technology!






Leave a comment