Lean Architecture Principle #5: Just in time, just enough
This is the fifth post in a series of blog posts discussing Lean Architecture principles. Each post discusses one principle. Applying these principles results in an architecture (process) that is better connected to the business, better able to deal with change and more cohesive. The fifth principle is called "Just in time, just enough". The essence of this principle is that only architectural work is done that is necessary and possible at that very moment.
What are the results of applying this principle ? All architectural work adds value, since only work is done that is needed and possible at that very moment. No daydreaming on architectural masterpieces. But beware: creating a vision does add value, see Think Big, Act Small. These two principles seem to be conflicting, but they are not. A vision needs to be available "Just in time, just enough" to be able to talk with all stakeholders and decide what the next small steps must be.
Another aspect of the "Just in time, just enough" principle is that only decisions are made for which enough knowledge is available at that moment to grasp the essence of an issue. If not enough knowledge is available, then making the decision at another moment is a wiser choice most of the time.
Big Up Front Design (BUFD) is opposite to "Just in time, just enough". Instead of creating a complete and detailed architectural design, only just enough description is made that makes sense at a certain point in time. Comprehensive architectural documents often contain details on issues that can better be discussed and decided at coding time. Describing these issues in architectural documents creates no value, but instead only adds complexity, obscurity, and incomprehensibility.
This principle can only be applied by involving all stakeholders, because only together with the stakeholders an architect can determine exactly what is needed at a specific moment, and how much is needed. This activity creates focus for the architect and for all stakeholders involved.
How does "Just in time, just enough" contribute to the 3 C's of architecture? The system will be better connected to the business since only together with the business, the architect can determine would add value at this point in time and the level of detail required. The business will not be confused by unnecessary details that only make sense only during coding. Doing architectural work "Just in time, just enough" makes it easier to create cohesive solutions that support frequent changes. The "Just in time, just enough" principle forces the architect to think hard on the essence of the architecture, cohesiveness and changeability are a natural result of this exercise.
This was the fifth post in a series of blog posts on Lean Architecture principles, the next one will follow in about a week.