At my customer’s site, I have the chance to work in a team of architects. This is rare enough to be mentioned, since most of the time, I’m alone. This is an opportunity to exchange thoughts. Earlier this year, we talked between us about similitudes that sometimes exist between searching for an architectural solution and hunting in 3 phases.
At the beginning, it is simple enough: the requirements are clear, and the path to them is straight.
You’re tasked with hunting for just a little rabbit and you’ve munitions enough for a dozen. You begin with following the rabbit’s trail and in fact you find plenty. The forest ia a sight to behold. The sun lightens the trees through their branches. You can even hear the delicate tingling of a river nearby. All is well and you imagine yourself with your trophy in just a few hours.
Then, when you go beyond the surface, things are not what they seem: requirements are not so clear. Some are not so important when others that looked like nice-to-have seem to be fundamental to the core business. Even worse, new requirements appear from nowhere: they were so important that the business didn’t even think to write down about them.
Hours have passed and no sign of rabbits. You felt some rain drops at first, and then it rained like Hell. The rabbit’s trails has disappeared under the pour. Despite these conditions, you seemed to see some animals. In fact, it was the whole damn zoo here and there: hedgehogs, raccons, snakes, deers, you name it… but no rabbits. The easy trophy you imagined earlier is long gone. Things couldn’t go worse.
With some much going on, the cost of the project is going to the roof, with no tangible results so far, since the solution has not been found yet. With red lights flashing everywhere, management is bound to get their hands dirty and they don’t like it. Everyone begins to cover for himself, and searchs for someone to blame.
You’re so soaked you are now searching for anything which could even remotely pass for a rabbit. A light of hope awakens inside you when you see something moving in the distance. Going into this direction, you notice it was not so far away, but it’s much bigger than expected. Oh my god, it’s a bear! With fear, you realize it’s not just a bear, but the biggest, meanest Grizzly bear you ever saw. It doesn’t like rain and it likes even less seeing you. With some deep-rooted survival instinct, you reach for your rifle, you aim and shoot. The 'click' that follows make you realize powder doesn’t go well with rain. It’s your last thought…
Of course, it’s a bit dramatic. Of course, it doesn’t fit the description of all the projects that go well. But I have smelled the foul breath of the Grizzly once or twice and let me tell you it followed this exact scenario.
|You now do understand why I followed the software architectural path and not the literary one|