"But you were supposed to..." "But I wanted..." "But I thought..." "But that's not what I said..." "Can you just..." How often have you heard these from clients, suppliers or colleagues? They're frighteningly common, but they share 2 common characteristics:
Without a doubt, the most significant thing you can get wrong in running a web development is to mess up the requirements. Get this wrong, and every thing you do after that is doomed. Without the right effort in gathering, documenting, agreeing and keeping to requirements, you won't deliver the thing that the client wants, and in many cases, you either won't get paid this time, or you'll never be hired again by the client.
This article will teach you how to avoid this poison chalice and be on the first step of the road towards consistently delivering effective projects.
To clarify why this matters for our industry, let's think about what a project is and isn't. First off, it's not just a thing done with large clients, budgets and suppliers. It doesn't necessarily have to involve money changing hands, or separate client and supplier bodies: internal work has the same characteristics. That said, I'm going to be concentrating on client/supplier contractual type projects, assuming that you're the supplier, as there are some interestingly specific implications of getting this right in that setting.
The nature of web development is that it's nearly always temporary (not necessarily short!) pieces of work, with a beginning and an end. In that time, you do some things that give an end result that's noticeably different - and ideally better - than where you started.
Well, that's near as makes no difference to the textbook definition of a project.
Do you need to have a job title of Project Manager? Do you need to be doing it full time? Do you need to have staff reporting to you? No, no and no. If you have any responsibility for ensuring that the project happens to time, budget and quality, then you are a PM. And everything that follows is your responsibility too.
Loosely speaking, Requirements are the things that the project must deliver. However, let's take a step back and think about this from the point of view of the project sponsor - the person who wants the project and is prepared to provide money, people, equipment and whatever else is needed to get it.
A project comes into existence to do something: to have the end result - effect the change - that we talked about above. This is nearly always expressed in the language of the sponsor's business, as web development purely for its own sake is a rare thing. So taking the US Moon Landing as an example, the desired result was not a Moon Landing in itself, or even a Space Programme, but to prove the superiority of American Technology to the world. Similarly, the result of a web development project might be to increase sales, or to enable employees to self-book holiday time. We call these Project Goals, and meeting the Goals is the job of the Sponsor.
The project exists to do stuff that achieves these Goals. The stuff in question we call Objectives. These are the things that the project directly produces: A Man on the Moon; an eCommerce site; a web-enabled vacation application. Meeting the Objectives to time, budget and quality is your job as PM. If you do that, and it doesn't achieve the Goals, its Not Your Problem (tm).
So what are Requirements? Requirements are the necessary characteristics of the Objectives that are likely to fulfill the Goals - and that the Project therefore must deliver. So if I'm the Sponsor, and my Goal is to develop online sales, the eCommerce site must be highly usable, support customers browsing products, adding them to a cart and paying for them. These would be (some - but by no means all - of) the Requirements.
To put it another way, Requirements are the detailed view of the Objectives. They are the answer to the question "What exactly do you mean when you say you want an eCommerce site?" Because Requirements are the things that the Project must deliver, they are the absolute definition of whether the project has achieved its Objectives. Meet all the Requirements in full, and you've done the job. Fail to meet any element of any of them, and you haven't.
Naturally, Requirements are contractually binding. And in many jurisdictions - English Law for one - where a contract is vague, the customer can interpret it exactly as she likes. So fail to get your requirements right, and you're setting yourself up for the most mighty of reamings.
As meeting the Requirements is the definition of success, they're the basis for all your plans: task list, estimates of time and cost, test plans, the lot. So you need to have them before you can accurately do any planning. So you need them as early as you possibly can, in as much detail as you can. You most definitely need them before you can submit a quote, as otherwise, how will you know whether you can do the work for the price you've submitted?
So now you've got the work, you need to check them again, in much finer detail than you've been able to do before. You can now revise your plans and estimates accordingly - hopefully with more accuracy! Any change at this stage will likely involve a contractual variation, but hopefully it's just a level of detail thing.
The third essential point to gather requirements is whenever you join the project. With luck, this will just confirm what you've been told before you joined, but I wouldn't bet the farm on it. Failing to do this is a fairly major assumption on your part, which is A Bad Thing to do when you have the opportunity to confirm the actual state of affairs.
Why did I mention Goals above? Because if you don't understand these, you won't get to the Objectives (and therefore Requirements) that the Sponsor actually needs. Take the Moon Landing project. The Goal was "Convince the World of the Superiority of American Technology." Just landing on the Moon wasn't enough - the Project also had to convince the World that it had happened (leaving aside Conspiracy Theorists for now). So a key requirement of the project was to ensure global publicity, including live television broadcast.
So step 1 is really Understand the Goals. How do you
do that? With luck, it'll be documented for you (and if it's not,
the old PM rule of If it's not documented, it's a rumour
holds
true), but unless you enjoy working on assumptions, you talk to the
Sponsor and other key stakeholders (i.e. people who have an interest in
the outcome of the project). Useful questions to ask include:
Note that these are all Open questions designed to get the other person talking...
Now you've got a feeling for the context, you can start asking questions (open ones, ideally) that will drive out what it is that the sponsor needs. You'll also need to talk to anyone who's affected by the project, or at least a representative of each group to produce Needs for every major stakeholder. You'll need some standard information for almost any project, such as:
You'll also need some more specific questions probing the capability and functionality needed. So for a web-enabled vacation tool, you might include questions like:
You should also be reading all project documentation - contracts, proposals, statements of work etc - as these nearly always contain strong hints of what stakeholders are expecting.
In any exercise in gathering Needs, you're going to end up with a mixture of must-haves, some should-haves, and some nice-to-haves. You now need to split those three categories into two: Requirements and Exclusions. Or alternatively, must-haves and everything else. Every Requirement will be delivered in the project; everything else will either be entirely rejected - either because it's not technically feasible or the client won't pay for it - or deferred to a later project or release.
Here's the Acid Test for which box each Need should go into:
The Sponsor should have a lot of input into answering these questions, not least because she will have to agree with your definition, and you'll save a lot of trouble the earlier you do this.
If you remember, the final Requirements will be the basis of every single piece of planning you will do for the project. So getting them definitively agreed and not subject to interpretation by clients is essential. You must produce documentation that is clear and concise, using graphics, models and other visuals if it helps clarify what you mean. Your documentation must also be detailed enough for anyone else to plan or start work on delivering the Requirements.
This should be insultingly obvious, but it's worryingly commonly missed: Document everything in writing.
Once you've gathered and documented the Project Requirements, you need to check that you've truly understood them and that they accurately reflect the understanding of your main stakeholders. You go about this by effectively locking yourself in a room with those people, and staying there until you've got a common understanding of every single one of the Requirements, and an agreement on your Exclusions.
This is a Requirements Document that has been approved by the Sponsor and is supported by stakeholders and main members of the project team. It is the formal, contractual definition of what the Sponsor wants, and that the project team has agreed to deliver (remember Contract Law 101: contract=offer + acceptance). It must not be changed without a formal approval to do so.
What you must do to establish the baseline is take the written output of the Requirements Validation, put it in front of the Sponsor, and get her to sign it. You sign it too. As of that moment, the only place Requirements are documented is in the Requirements Baseline. Every member of the team needs to understand this; that any changes to it will affect the project's cost or schedule, or both and that it is the heart of your contract with the client. Failing to understand this will inevitably lead to scope creep, and that is the death of your project. This means that any proposed changes can only be implemented following the formal approval of the Sponsor, which only you can seek. Therefore, all proposed changes have to come to you, in writing.
The result of all this is that you'll have Requirements that:
Nothing magical, no rocket science required. Just a simple process to follow, and the biggest dragon responsible for project death is slain. And you get to be a hero, which is nice.
Comments
Grand!
Not two days ago someone called me and asked what it took to make a website.
Something along the lines of "How do I begin? Launch Dreamweaver?"
Of course I explained project management, as well as Photoshop mock-ups, telling him that the actual code came very late in the process. I'll forward him this article, bravo Martin, my thoughts exactly.
Thanks!
Examples
re: examples
Sorry, my employers would probably be less than pleased if I shared client confidential info :-)
However, always ask yourself:
If the answer is 'no' to either, then you've not got enough detail. The way to approach it is iteratively, increasing in detail each pass, until you get to the necessary level of detail. So you will need less detail at initial proposal stage than you will at the implementation stage. The design stage in between is where you get to the detail.
Incidentally, there's a parallel process for getting to a work breakdown structure, and then resource estimates (which drive timescales and budgets) - the more detail you have, the better you can do this. Initially, you'll estimate top-down, using the tried and tested wet finger in the air technique. However, when you have detail, you can estimate bottom-up, using the detail to produce accurate estimates. You'll need to have your standard contract allow for this, mind.
Nice article, and talking about current issues
User Requirements always essential...
...but how/when do they feed in? If your client is half-way sensible (or been sensibly guided), then a user's needs should already be reflected in the business requirements. This is particularly important where the objective is a marketing one: the seminal marketing dictum being "Work out what people need/want and give it to them (profitably, of course)." I would always try to work with a client to ensure that their requirements do reflect the needs of the end users in so far as they fulfil the business goals (and therefore fit within the broad scope direction).
You might also have a more direct user requirements input during the design phase, where requirements are often fleshed out in detail. At that point, you may use an iterative user-centric design process, which supplements the business goals with detailed user needs.
poison chalice?
nice article, if somewhat bland
jeff's comment is needlessly harsh, even if true (and i'm not saying it is)
<sigh />
the subject matter does not lend itself to snappy, interesting, lively writing, so all in all, it's a credit to martin that it comes off as well as it does
Useful
Design, art, etc
Pixeline,
We're getting quite out of the boundaries of this article, but can I humbly suggest that you read a powerful article on ALA about design and art: The Bathing Ape Has No Clothes, which explains exactly the contrary. Design has a purpose: that things be used. Not looked at as an outstanding work of art.
A few years ago the clients we had in the company I worked for at the time always chose incredibly nice-looking designs over functional ones (which, admittedly, always looked less fun in the clients's eyes). It looked awfully good. (Believe me, we had very good graphic artists, but few were designers.)
Yet now, they've all redone their sites: they only looked good but were unusable. (not to mention the fact that they were chock-full of tables and javascript hacks, but that's another story entirely).
In short: they were not adapted to the web as a medium. They were adapted to Photoshop and to the clients's tastes. Those who redid their sites lowered their graphical expectations a bit. Yet their sites are still up.
(and no, I can't give examples, I don't have the right.)
nice reading (again :) )
great stuff
Smaller projects..?
Doug, for smaller projects, the process above is still valid, and still essential.
Now, for smaller, less complex projects, with a smaller scope and fewer stakeholders, you'll have less material to produce, fewer sources of needs and fewer people who need to validate them. So while the basic framework of:
remains, you'll take less total time - although it'll probably be a similar percentage of the total effort involved. But you must set aside time for doing it. Like most project management activities, this won't be part of the WBS that directly produces the end deliverable: it's a Level of Effort activity that just goes on - even if you don't have a full-time PM, whoever's doing the project management activities will not and can not be 100% productive. If you try to make it otherwise, you'll either kill your part time PM, or the project will be at risk.
Change control is of course another story - one for another day when I have Copious Free Time™ to write it up.
How do Base Requirements work with Proposals?
The way I've been organizing my projects, I roll all these requirements into my proposal which I send to the client. This has a set of objectives, some assumptions about technology and hosting, and a full site scope which describes content and functionality. The last 2 pages of it include a contract, so that once the client likes the proposal, he can sign it and away we go.
From reading your article, I get the idea I'm not including enough detail in my proposal. For example, it's not too likely that a programmer could work off the thing without asking a lot of questions. On the other hand, I don't want to bury my client in a lot of technical details.
What do you do? Do you have a proposal that's separate from the Base Requirements?
Requirements/Proposals
I think the level of detail you're talking about is OK at a proposal stage. However, the first bit of work you'll need to do once you've won it is to dive down to the level of detail you'll need to build it. And your proposal should address this in the project plan/approach part - the description of how you're going to deliver the functionality.
Important Contribution
which would be even better if there were a shell template and a complete example attached. As the Oak tree grows from a very small acorn, the sample need not be very large.
I am looking for the picture that says 1000 words. There is a texture in language that changes with the type of document.
A script for a sitcom looks different from a contract to buy a house. They may both be written in English but the language is different.
Where does requirements stop and Design begins?
What do you call the document that describes the ongoing effort to keep the site fresh, outlines the responsibilities for content creation and editing vs the actual posting to the site?
Example documents?
Martin's article was a great read from my perspective. I began my career as a developer and have since transitioned to PM. I think I have managed to grasp much the requirements gathering skills but I still wrestle with how to actually document those requirements.
What does the document actually look like? How is the document broken down? Do you use the same document for the sponsor as well as the development team? How detailed must it be? Must it go all the way down to field size requirements?
If anyone has a good example of a requirements document and wouldn't mind sharing, I would love to see how other PMs are doing this.
Example Documents
As mentioned above, my employer would probably take an extremely dim view of me sharing actual or even template requirements documents.
There is one requirements document. You may do summaries for various audiences. You may iteratively develop it so different versions have different levels of detail. But there's only one set of requirements. The final level of detail is enough so the developers can get on and build. This may be at field level in some areas where it's non-obvious. Certainly you'd need to document what you need to store in those fields, which has a knock on effect to field size.
examples temples
Example documents?
Doug and Martin,
Thanks for your comments and suggestions. Doug, I've got your suggested book on order so I appreciate that immensely!
Regards, Jeff
Requirements-led Project Management
Great!