I recently spoke to a co-worker about product selections for a developer productivity platform. Since this is a pretty crowded space, I was curious how the team chose specific products over other available options. My colleague highlighted that he and his team conducted a fair bit of research for each part of the platform, for example by reviewing articles, reviews, industry analyst reports, etc. They had then selected the product that received most favorable reviews and appeared to be in broadest use.
As he explained, being perhaps a tiny bit defensive about having done a thorough job, it dawned on me that picking the products wasn’t their major decision at all. But first, let’s come back to why decisions are such an essential element of architecture.
Is this architecture? Look for decisions!
While every system has an architecture, meaningful architecture, the one which is done by architects as opposed to serendipity, is shaped by non-trivial decisions. Those are decisions that select from several plausible options, each of which has strengths and downsides to be considered. A simple example borrowing from building architecture illustrates this point:
A house without conscious architecture and one with
The left house does have an architecture (all things do), but it doesn’t have any conscious architecture because it’s void of non-trivial decisions. Yes, the door reaches the ground and the windows are firmly placed in the wall. Alas, those are probably not decisions you would want to pay an architect for.
The house on the right, while similar, does have explicit decisions, such as the roof incline which helps avoid excessive snow load on the roof. So, good architecture isn’t anything complex but something that makes critical and meaningful decisions.
The critical decision was already made
Coming back to the discussion about selecting tools for a development platform, it occurred to me that selecting the products wasn’t the team’s biggest decision because they had already made the main decision. They had decided to select the best tool for each component they needed. Alternatively, they could have selected a suite of tools that could be best integrated into the overall platform.
The team had decided to follow the former approach, perhaps without giving it too much consideration - after all, you’d want the best tools, right? The alternative route, while not selecting the strongest tool for each individual function, could make the best overall solution. So it’s a non-trivial decision because both options are reasonable choices.
Both options also have ramifications. For example, choosing the “best of breed” approach likely means that their platform looks more like a fruit basket than fruit salad.
IT’s challenges with decision making is something I commented on before. Making management aware of decision trade-offs is important, so you need to be conscious of the decisions you are making in the first place.
Beware the Assumptions
Unconscious decisions often come in the form of assumptions. Assumptions are risky because they lead to non-requirements, those requirements that exist but weren’t documented anywhere. Tacit assumptions and unconscious decisions both lead to missed expectations or surprises down the road.
The best way to catch yourself when making such assumptions is to take a step back and zoom out to see the bigger picture. Let’s say you’re in a store buying a sweater and are deciding between one for $100 and a nicer one for $150. Taking a step back, you realize that you already decided to buy a sweater, the place where to buy it, and the price range. Perhaps you are also favoring a specific brand. Starting a comparison matrix between these two sweaters is as meaningless as most score cards in IT that represent the end of a long decision tree, with most considerations made along the way lost. If you feel cold outside, perhaps a scarf would also do instead of a warmer sweater.
Conscious Decision Making
While in daily life it’s OK to make some decisions based on gut feel and personal preference, IT has to live a lot longer with decisions and has a lot more at stake than a hundred bucks. So, make sure you’re aware when you’re making one.