Over the years, I've come to the conclusion that one of the most destructive notions circulating inside technical groups involves "gathering requirements". For decades, virtually everyone in the industry has accepted that the first phase of every IT project should be to gather requirements from business users.

At least in theory, it should be the point of departure for all our efforts. (Of course, it's also the phase of the project that's most often skipped.) So now that our success rate for IT projects has risen to the still dismal level of about 25 per cent, perhaps we should question some of this time-honoured wisdom.

As I travel the country for consulting and speaking engagements, I often ask, "What are the main causes of project failure?" And invariably one of the first answers is something like, "There's a failure to gather good requirements".

And when I ask why projects get bad requirements, the answers are, "Users won't tell us what they want", or "We don't ask good questions", or "What they told us they wanted turned out not to be what they really wanted". But I think that the problem is more subtle than any of those answers.

The problem with gathering requirements is right there in the word gathering. What images does it conjure? For me, it's an image of a harvest, of a group of people standing among endless rows of vines picking ripened grapes and carefully placing the bunches in a bin. For others, it might be an image of a child collecting seashells on the beach or of a group of people huddled together at a town meeting. What's common in all these images of gathering is that there's something out there to be collected, like crops, shells, or people, and that those things are already whole and complete.

So if we're gathering requirements, we assume that they must be out there, ready to be assembled like a roll of coins. Our problem is finding and selecting the right ones. So if the users don't tell us what they really want, we should grab them by the ankles, hold them upside down, and shake them until those pesky requirements fall out on the floor. The only logical conclusion is that if we don't get good requirements, we haven't shaken enough.

Of course, this is ridiculous. Requirements don't exist out in the ether just waiting to be discovered. They aren't out there whole and finished. Clients and users aren't playing an expensive game of hide-and-seek with us. Usually, the clients' pockets are empty. Most of the time, they don't exactly know what they require. And even if they do, it's in the form of incomplete and inconsistent ideas that can be only partially articulated. Projects rarely start out with clear objectives or requirements; they begin in confusion and ambiguity.

The other problem with gathering requirements is that it suggests subservience or disinterested passivity on the part of the IT group. It gives the impression that the job of a technical team is to take orders like a waiter who couldn't care less what you eat and then deliver the cooked meal. Technical teams with this attitude rarely deliver high-quality service.

So what's the alternative? Obviously, projects need solid requirements on which to build technology.

We should think of a set of requirements as being like a multilateral treaty among a group of nations. Representatives of nations negotiate treaties by seeking out points of agreement, acknowledging constraints, compromising, and trading off. The forging of a treaty is an active and difficult process of creation. No one would suggest that you "gather paragraphs" to write a treaty.

So we must negotiate requirements among the many stakeholders whose positions and interests need to be acknowledged. There are the business interests of executives who fund projects, of course. There are the utility needs of the users who will work with the systems every day. There are also the technical needs of those who build, deploy, and support those systems. The list can go on and on.

Successful projects begin not with a harvest, but with a difficult set of discussions on what should be done. If you stop trying to gather requirements and start negotiating them, your projects will yield richer crops.

Gameplan This was published in Gameplan, check every Wednesday for more stories

Related links

Leave a comment

You must read and type the 6 chars within 0..9 and A..F

* indicates mandatory fields.

Log in


Sign up | Forgot your password?

  • Staff Opera's new SDK: Better browsing on the Wii?

    Opera has thrown a little more love at device developers by announcing an updated version of its software development kit on Wednesday at CES. Read more »

    -- posted by Staff

  • Staff 2008: Time to call stumps

    It's another year down but some things never change. That was shown this week as Internet Explorer remained under fire from yet another zero-day exploit. In other news, we set a hard drive on fire and Apple cans its involvement with MacWorld. Read more »

    -- posted by Staff

  • Staff Unlocking Android

    In this week's roundup we take a look at Google's new technology -- Native Client, its Android phone, news from the world of web browsers and more. Read more »

    -- posted by Staff

What's on?