Reason 4: Complete Inability to Define Requirements
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.]