Architecture Without an End State
Have you ever thought about it? Deciding upon the software architecture without aiming on its final state.
I was once called a software architect, and I tell you I did not think this way.
But the software development world has changed. A lot!
A decade ago we talked a lot about evolutionary architecture, the one that was evolving until it reached its final state.
But that too was wrong.
This sentence – Architecture Without an End State – is the title of the workshop of the magnificent Michael Nygard, author of the book Release It! Design and Deploy Production-Ready Software, now in its second edition.
“The truth is that there is no end state. We must all learn to build systems that evolve and grow. We need to stop aiming for the end state and understand that change is continuous. We cannot predict the details, but we can learn the general patterns.” — Michael Nygard, author of the book Release It! Design and Deploy Production-Ready Software
Digital transformation has led companies to work with the MVP concept. And, tied to this concept, is the MVA, short for Minimum Viable Architecture.
Digital products do not follow a predefined architectural path, as the business or the market research predicted. The product evolves by pivoting a lot. Therefore the product architecture must deal with it!
Pivot: a direction change given the MVP real usage feedback.
That is why architecture will never have an end state; But rather a constant state of being viable for the current product state, and with sufficient flexibility and robustness for the next step.
Enjoy this (FREE) eBook on MVP and Lean Inception: To the point, a recipe for creating lean products.
Originally posted at Caroli.org
Technology Director | Executive Advisor | Tech Strategy | Business & Technology Leader
7 年The sentence makes perfect sense, however when we talk about evolutionary architecture we are talking the same and that is one difference between evolutionary and emergent. Talking about evolutionary architecture is talking about an architecture that supports an incremental and guided change, where in any state of the evolution the architecture can give you the expected benefits, and where "guided" doesn't mean a final expected state, but a set of principles to make decisions.