Skip to page content or skip to Accesskey List.
Search evolt.org
evolt.org login: or register

Work

Main Page Content

Introducing Project Requirements

Rated 4.07 (Ratings: 17) (Add your rating)

Log in to add a comment
(21 comments so far)

Want more?

 
Picture of MartinB

Martin Burns

Member info | Full bio

User since: April 26, 1999

Last login: March 30, 2010

Articles written: 128

Introduction

"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:

  1. They're caused by failures in managing project requirements
  2. They're 100% avoidable.

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.

Web Development is a Project Management Discipline.

What is a project?

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.

What is a Project Manager?

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.

Goals, Objectives and Requirements (oh my)

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.

Gathering Requirements

When to Gather Requirements

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.

Gathering Requirements

Step 1: Context Is Everything

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:

  • Why are we doing this?
  • If we're successful, what would be the outcome for you?
  • What would happen if we didn't do this project?

Note that these are all Open questions designed to get the other person talking...

Step 2: What do you Need?

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:

  • Why do you think we're doing this project?
  • What's your role in the project and in the business?
  • How will what we're doing affect your role?
  • What functionality do you need?
  • What would success look like for you?
  • How do you define project completion?

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:

  • Which staff should have access to it?
  • What hours must it be operational?
  • How is an employee's vacation allowance calculated?
  • How will we know if an employee leaves?
  • What happens if an employee doesn't use all their allowance?

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.

Step 3: Do We Really Need the Moon on a Stick?

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:

  1. Is the Need part of the original intent of the project? An example of an Exclusion on this basis might be reporting sick days using the vacation tool.
  2. Was the cost of delivering the need included in the original estimate? Assuming that this has already been produced of course.

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.

Documenting Requirements

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.

Validating Requirements

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.

Requirements Baseline

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.

Wrap-up

The result of all this is that you'll have Requirements that:

  1. Are understood by everyone
  2. Are agreed to by everyone
  3. Are documented such that there is no room for arguments
  4. Are the basis for accurate planning of work and budget
  5. Are capable of being strongly defended against the "This week's wizard wheeze" type of request

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.

Martin Burns has been doing this stuff since Netscape 1.0 days. Starting with the communication ends that online media support, he moved back through design, HTML and server-side code. Then he got into running the whole show. These days he's working for these people as a Project Manager, and still thinks (nearly 6 years on) it's a hell of a lot better than working for a dot-com. In his Copious Free Time™, he helps out running a Cloth Nappies online store.

Amongst his favourite things is ZopeDrupal, which he uses to run his personal site. He's starting to (re)gain a sneaking regard for ECMAscript since the arrival of unobtrusive scripting.

He's been a member of evolt.org since the very early days, a board member, a president, a writer and even contributed a modest amount of template code for the current site. Above all, he likes evolt.org to do things because it knowingly chooses to do so, rather than randomly stumbling into them. He's also one of the boys and girls who beervolts in the UK, although the arrival of small children in his life have knocked the frequency for 6.

Most likely to ask: Why would a client pay you to do that?

Least likely to ask: Why isn't that navigation frame in Flash?

Grand!

Submitted by notabene on October 28, 2004 - 02:06.

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.

login or register to post comments

Thanks!

Submitted by MartinB on October 28, 2004 - 02:50.

Thanks for your kind words, Stef. I've been meaning to put together something on a generic design methodology for ooh, about 3 years now, that could be summarised as 'iterative prototyping with increasing levels of detail'. Something to do in my Copious Free Time™!

login or register to post comments

Examples

Submitted by mharring on October 28, 2004 - 10:41.

Martin, Do you have any examples of final requirements that you are willing to share? I would like to have an example to show my colleagues. Many times there is a rush to deadline and the requirements are not detailed enought. Needless to say, we have some difficulties at the testing phase.

login or register to post comments

re: examples

Submitted by MartinB on October 28, 2004 - 13:33.

Sorry, my employers would probably be less than pleased if I shared client confidential info :-)

However, always ask yourself:

  1. Could a developer accurately implement it without asking further questions?
  2. Could you run all your testing against it?

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.

login or register to post comments

Nice article, and talking about current issues

Submitted by codepo8 on October 30, 2004 - 15:26.

however, there seems to be a better way. At my workplace, we are currently trying to introduce a user centric approach to web development. This should be one of the first requirements - creating something the user wants and something that helps her, rather than developing a web site with x amount of features and y technologies involved. A very nice book on the subject is Ani Phyos Return on Design.

login or register to post comments

User Requirements always essential...

Submitted by MartinB on October 30, 2004 - 15:42.

...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.

login or register to post comments

poison chalice?

Submitted by r937 on October 30, 2004 - 15:48.

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

login or register to post comments

Useful

Submitted by pixeline on November 2, 2004 - 12:55.

thanks a lot, it is quite useful information to share it over with my colleague. It is a pure marketing approach to web design though. Getting the customer to be happy is a noble and vital goal, but there is more to be achieved in web design: to make its website an outstanding work of art, as in web design, there is the word ... "design". And a customer might choose you instead of others for what makes you stand out of the crowd of those people that get the requirements done. :) Now, what is the methodology for outstanding web design ? To me, that methodology stands above the one you mentions: it includes it, but adds more tasks, such as finding "a good idea", or "requirements for this website to make it into my portfolio" ! thanks a lot for the nice reading , alex

login or register to post comments

Design, art, etc

Submitted by notabene on November 2, 2004 - 13:44.

Pixeline,

Getting the customer to be happy is a noble and vital goal, but there is more to be achieved in web design: to make its website an outstanding work of art, as in web design, there is the word ... "design".

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.)

login or register to post comments

nice reading (again :) )

Submitted by pixeline on November 2, 2004 - 14:39.

hey Notabene, thanks for the links. I come from the field of architecture, and i understand totally the points you are raising. In fact, i couldn't agree more. Talking about "outstanding web design" is more a question about what is functional interactive design than about "who did it. i just wanted to include "my own standards" (in term of look and feel, as well as technical aspects (SEO, usability, download time...)) within project management. For instance, when i design websites, i take SEO, xhtml compliancy, so mostly parameters the "sponsor" is not aware of, also as requirements. not necessary for the customer, but to me, to my standards of production. if i explain to him, he says, yeah, that's great, hope it doesn't cost me too much :)" i just tell him it's going to bring him more ROI, and he goes on smiling. anyway, never read that article before. thanks for the link !

login or register to post comments

great stuff

Submitted by topdog1 on November 3, 2004 - 10:40.

nice to have this article. I am used to bigger projects so rescaling for different budgets has been tricky. You might also want to do something on Change Control forms (like you dont change scope/requirements with out this impact being costed and agreed. I now work in a city that has a glut of media/web developers so it is a buyers market which as the distortion to the cut cost of development to the bone. So all this 'process' has to be leans and mean as well as effective. I have looks at other agencies working process and it seems to have a level of chaos which is delt with but excessive hours (work harder not smarter - maybe due to investment in processes). Areas of organization seem to only occur when one guy has a bright idea (or free time). These agencies are generally 10 people or less in size. It would be useful to many people to find a level of process that is to the right scaqle for such team. Also many of these teams are often a dynamic collection of freelancers brought in in an Ad Hoc basis. This means that the 'agencies' has the skills because of who it knows. Really look forward to your comments. Doug

login or register to post comments

Smaller projects..?

Submitted by MartinB on November 3, 2004 - 12:02.

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:

  1. Assess context
  2. Gather needs
  3. Analyse into Requirements and Exclusions
  4. Validate the analysis
  5. Document the outcome, and get it signed in blood by the sponsor

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.

login or register to post comments

How do Base Requirements work with Proposals?

Submitted by paulpsd7 on November 4, 2004 - 17:02.

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?

login or register to post comments

Requirements/Proposals

Submitted by MartinB on November 5, 2004 - 01:56.

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.

login or register to post comments

Important Contribution

Submitted by IanO on February 2, 2005 - 11:57.

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?

login or register to post comments

Example documents?

Submitted by bell1jl on February 18, 2005 - 08:40.

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.

login or register to post comments

Example Documents

Submitted by MartinB on February 18, 2005 - 09:02.

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.

login or register to post comments

examples temples

Submitted by topdog1 on February 18, 2005 - 09:40.

hi bell1jl check out the book Agile Documentation ISBN 0-470-85617-3 as that has a load of relevant info in it to sort you out. There is a web site http://agilealliance.org/home that is a useful resource on this point. Also have a fab book about requirements drive project management that has loads of templates and guidence in them but dont have the book here so no ISBN. I can only say its hard back and an inch thick. I have some others now which were use for clients so I can dummy out the names etc. since there is little point talking about somethings in the abstract - we developed examples at work for the best guys on the team as otherwise we dont know an example of good if we never seen one. Hope that helps Doug

login or register to post comments

Example documents?

Submitted by bell1jl on February 18, 2005 - 09:57.

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

login or register to post comments

Requirements-led Project Management

Submitted by MartinB on February 18, 2005 - 10:05.

Requirements-Led Project Management - I have it on the shelf behind me :-)

login or register to post comments

Great!

Submitted by bell1jl on February 18, 2005 - 10:16.

OUTSTANDING! This one looks like a GREAT resource. Thank you both again!

login or register to post comments

The access keys for this page are: ALT (Control on a Mac) plus:

evolt.orgEvolt.org is an all-volunteer resource for web developers made up of a discussion list, a browser archive, and member-submitted articles. This article is the property of its author, please do not redistribute or use elsewhere without checking with the author.