What is the architectural 'runway'?
Imagine that each project is a train starting at Palmerston North. We need to know roughly where we're headed – Auckland or Invercargill? We don't know all the stops that are going to be needed on the way, but we have the driver, conductor, buffet car attendant and engineer on board and we know we have to get to Foxton so we can get started.
We're not going anywhere very fast if we don't have any tracks!
In an Agile organisation, we're aiming to have enough of the planned architecture to be able to see ahead for the next few sprints. NOT the fully fledged, this-is-the-architecture-and-so-it-shall-be picture, because we all know that needs change and we need to be flexible enough to change with them, but a solid enough track to be able to see where the current story fits.
This makes many people nervous. They are used to having the big picture upfront and not knowing is hard. We'd rather have the seeming-security of the plan all the way to Invercargill, even if we secretly know that this is an earthquake-prone country so the terrain may change ahead of us. But we do need to know how we plan to cross the BIG difficult risks – Cook Strait! Changes in priority by the Government, board or internally within the organisation may mean that we have to go back and change some of the route we've already built so that other trains can get to Wanganui. Or that actually Greymouth may be a better end destination because everybody wants to visit the glaciers before they melt!
So our questions should be:
- Do we have a person(s) who are responsible for looking ahead?
- Is the big, end destination understood?
- Have we mitigated the BIG risks?
- How far do the tracks extend, can we progress the next couple of sprints or are we going to crash?
If not, then we – the team – need to work with the architects and the business, perhaps as part of the sprint (architectural spike stories) to get enough of the picture to do the next few stories and mitigate the BIG risks. This will reduce the risk of going in the wrong direction entirely, missing opportunities to use tracks already built or take advantage of slopes and straights (environmental factors ahead) which may help us in the long term.
This great article talks more about following lean principles to get emergent architecture working for you.
P.S. What is a spike and how should it work? I can't put it any better than this.