Why Software Projects Fail, part 4

Reason 4: Complete Inability to Define Requirements

OUR SCENE:

A conference room; several people seated, a whiteboard on one wall.

[Programmer:] Okay, let’s map out a couple of these workflows.

[Stakeholder 1: a high-level member of one division:] So we’re going with blue as the theme?

[Stakeholder 2: Stakeholder 1’s opposite number from a different division, which is at war with the other division:] No, I thought it was the coyote.

[Administrator of the agency handling a large contract funded by both divisions:] Don’t worry, it can be both ….

[Programmer:] Let’s think about how we register trainers. What information do we want from them when they apply?

[Stakeholder 2:] As long as we can make those menus that jump out have rounded corners, it’s okay.

[Programmer:] And we’re going to have to make them create an account to get to the application form anyway, or the whole internet will be spamming us. So that means a whole authentication and login operation.

[Administrator, recalling bitter experience:] Oh no, we can’t do that again!

[Stakeholder 1:] Do what? Round corners?

[Programmer:] No, he means the security issue.

[Stakeholder 2:] The menus are a security issue? How can that be?

[Programmer:] They’re not, don’t worry. But what fields do we need for the trainer application? First and last name, address, city, state, zip, of course. Phone number? Or two? Email, gotta have that….

[Stakeholder 2, stiffly:] Well, if we can’t have a modern site why bother.

[Administrator:] Why don’t we just work up a draft and you can tell us what to change?

[Programmer, dubious:] I kind of need more to go on, like isn’t there some kind of license number or credentials or something? I mean, I have to build data tables….

[Stakeholder 1:] Well, if you’re going to insist on those jumpy menus I have to insist on the blue theme.

[Stakeholder 2, refusing to look at Stakeholder 1:] I guess that’s all we can do today. [Starts gathering her things.]

[Programmer:] Wait, don’t we want some kind of approval process? I mean, who are we sending these applications to, anyway?

[Administrator, giving Programmer a hard look:] Don’t worry, the contract, I mean the web site is just fine, we’ll give you a call to look at a draft Friday.

[Programmer, in dismay:] Friday? Wait, it’s Wednesday! We don’t even have a site layout yet, I can’t get login accounts implemented and a trainer application working in two days!

[Stakeholder 1, coldly:] I thought you said you guys could build this thing yourselves?

[Administrator:] Oh no! It’s not a problem! We’ll figure it out and work it up.

[Stakeholders 1 and 2 depart.]

[Programmer:] Hoo boy, talk about set up to fail!

[Administrator:] If you don’t like it I have a stack of applications THIS BIG [indicates a height of about two feet with his hands] from people who want your job! [Walks out.]

[Programmer, going to white board:] Holy s***, what do we gotta have here? At least two login groups, trainers and admins…..

[Trails off muttering to himself. Administrator looks back in and nods in satisfaction: the contract is working just fine.]