The Requirements Delusion
If you want respect from your business, stop meeting their requirements
Tags: business , requirements
Is it me or is all corporate IT suffering a debilitating emotional crisis? The response I thought I would get to The Business Alignment Fallacy was one of hostility and general disagreement. Far from it. I was pleasantly surprised to hear that most people are tired of the annual pretence of business alignment only to watch everything get steadily more complex over the following year.
One common criticism I heard was that whilst it’s all very well trying to get ahead of the business and take a proactive stance, that’s very difficult when a credibility gap has arisen. Complex IT leads to higher costs and longer lead times. This creates the impression in the minds of the busines that IT is somehow incompetent or at the very least not committed to the wider business cause. If you’re in IT this is not a good place to begin telling the business that it’s time you started leading them to a promised land of capability and state of the art infrastructure elegance.
Why would any business buy into a technology strategy, beyond basic alignment, when the IT department hasn’t proven itself capable in the past? I have a great deal of sympathy for this view. I’ve managed teams in environments where the first response from IT itself, when presented with a potentially better way of doing something, is “we don’t do that here”. That is to say - we aren’t great, but we know our limitations, and we don’t want to adopt risky strategies. We’re comfortable serving the business and getting chastised because of missed milestones and unreliable systems.
I sat in a meeting some years ago and was told by a business analyst that my approach wouldn’t work because it detracted from “serving the customer”. As if that’s all IT is - a vehicle to submissively serve the business, rather than a domain of expertise that should know something about applying technolgy in an efficient manner. Similar to other domains of expertise like doctors and car mechanics. Of course listening and empathy are important but the main objective is the application of that expertise to the subject under discussion, including an acknowledgement from both sides that the expertise has to guide the discussion to some extent.
So today’s article sees your unexpected agreement to not aligning with business strategy and raises the polemical stakes with this statement:
Never serve your customer or try to meet their requirements.
Not only is the accepted view wrong, it’s dangerous, disingenuous, and ultimately counter-productive.
Let’s say your company is a restaurant, and you compete with a whole bunch of similar restaurants in the same town. The epitome of “serving your customer” is to be a waiter, actually serving actual customers. Your customers are your business and the success of your establishment is based on how much they are prepared to pay, how often they return and what nice things they say about you to other potential customers. The more they do these things the better your restaurant will do, and the worse off the competition will be.
So let’s first adopt conventional wisdom and assume meeting requirements as they are stated is the order of the day:
A customer walks in. You are warm and hospitable and you show them to a lovely seat and ask what they require. They think for a bit and say they want an omelette. This creates a minor problem (this has to be a true analogy so we need to throw in a constraint or two). Unfortunately you don’t have enough eggs for an omelette and your omelette chef is on holiday. You are open about this with the customer and explain that you can still try and meet the requirement, only the omelette will be a little on the small side and not up to the standard you would prefer to meet. They think for a second and say this will be fine.
They leave having had their requirement met. They came in hungry and they are now satisfied. You were as open and honest as could be expected. And yet the restaurant at the end of the street (the “restaurant of business non-alignment”) does much better. You may survive as a business, but the other restaurant has the fullest tables and the best reputation in town.
Why? Well let’s run our scenario again.
A customer walks in. You are warm and hospitable and you show them to a lovely seat and ask what they require. They think for a bit and say they want an omelette. This creates a minor problem. Unfortunately you don’t have enough eggs for an omelette and your omelette chef is on holiday. You are open about this with the customer. You think for a bit and suggest that if it were a light egg-based dish they wanted, you could do them a soufflé. Your sous chef happens to be a master of the soufflé and he can create mushroom soufflés, onion soufflés, double-baked soufflés. In fact there’s barely a soufflé in the world he doesn’t know how to make. You explore the likes and dislikes of the customer for a while and they settle on a mushroom soufflé and because you could not meet the original requirement you add a complimentary glass of wine.
They leave having not had their requirement met. They came in hungry but they are now more than satisfied. They will hardly remember the lack of omelette. You didn’t ‘serve’ them; you crossed the divide, adopted an empathetic stance and mapped this back to your capabilities. You used what you could do well to address their desire, not their requirement.
There are two key points here:
You should do this even if your omelette-preparing facilities are at full-strength, because your customers come to you for your culinary expertise not your subservience. If they really wanted a plain old omelette they could get that anywhere. In a sense, you recognise that, sometimes, your customer is ‘wrong’. Not wrong in a bad sense, just that they don’t see all the options and possibilities that you do. They aren’t food experts; they’re just experts in themselves. They’ll know when they had a great time and they know when they’re happy. The happier they are, the more proud you can be. Your business flourishes because you are confident enough to see the bigger picture.
The second point is that customers can’t always have what they want because this is the real world. Omlette chefs take holidays. Eggs run out. Time and money are limited. In IT your customers are nearly always going to ask for things that aren’t possible in the time, or within the budget, they have. Not because IT is incompetent but because life is just like that
Good developers know that you are rarely trying to solve the specific problem at hand, but trying to build a system that solves a generic set of similar problems, only one of which you have intimate knowledge of at that moment. That’s why domain-specific languages became popular, and why they can lead to reuse, elegance, ease of maintenance, extendibility and so on. It’s also why good analysts don’t write down what’s required by the customer but focus instead on why they want it.
I’ll be leaving this subject alone for a while as it’s time to move on to more technical articles.
My “Why Architects Can’t Cook” thoughts will, for now, remain thus.
- The painting is by William Orpen and titled “Le Chef de l’Hôtel Chatham”