March 2007 - Posts

Space Cadet
31 March 07 06:29 PM | Earl Beede | with no comments

In the requirements forum at Construx Conversations, I asked a question about how to present the concept of problem space vs. solution space. You see, I think this is a fundamental aspect of good requirements. My very smart and never opinionated Construx Steves (Tockey and McConnell) told me I was spaced out. (You can see the thread here) They suggested that my ideas of problem space and solution space was at best, misguided, and at worst, out to launch.

They believe in what I call the They/We model. A requirement, the Steves tell me, is something "they" tell you to do. If they say, "I need shelter", that then is a requirement. If they say, "I want a 1800 square foot single story home with colonial features, green paint, a double doorway, six car garage, two steps up to the front door, a Home Depot item number 117398 door knob, ..." well then that is all requirements. Now, we prefer it if they left the design of the solution/system to the design experts but hey, if they want it, they get it. They get to decide and that all there is to it.

The They/We model has some appealing aspects. First, it is darn simple. How do I know it is a requirement? They said it. Doesn't do what you want? Too bad! They said it. Impossible to do in the time allotted and the resources allocated? Oh well, they said it. Second, it is darn simple. No real thought has to go into planning a requirements process or what goes where. If they say it, it goes into the requirements document. If we say it, it goes into the design specification. So what if the statements in the requirements document is four levels more detailed that what is in the design document, they said it. Third, it is darn simple. As an instructor, I can just show you how to make what they said a bit clearer. I don't have to push you into challenging your customers. They are the customers after all and the customer is occasionally right.

Now I am sure the Steves would encourage the "they" to stay out of the technical, solution part of the process. Requirements instructors are found of saying that the requirements are about the "what" not the "how". Unfortunately, this is where the simplicity, straight forwardness of the They/We model starts to enter zero gravity. How do I know that are actually telling me the "what"? Do I really care if they tell me "what" or "how"? How do I tell the difference between requirements and design? And for the regulated folks, what do I do validation on and what do I do verification on?

Now I admit that the difference between requirements and design is as clear as the definition of a planet. Both requirements and design are decisions based on available knowledge. There really is a sense of who is making the decision where the They/We model resonates. However, make that distinction we must because if we don't call out a line between requirements and design, we are at best, wasting lots of money doing rocket propelled amount of validation and at worst, solving the wrong problem since we never knew what the problem the solution was ever to solve. If you have heard, "Yes, you built what I wanted, but it doesn't do what I need it to do," you have been there.

This is compounded by the fact that the "they" in the They/We model seldom actually talks about the "what". They float in a world of tangle things: screens, reports, drop down boxes, menu items. If they want something, they will use the language that is available, the language of solutions. And this is where problem space vs. solution space comes in ever so handy. By thinking about the current situation and clarifying the problem space vs. the solution space for the task at hand, I know when I need to confirm the problem so that I have confidence that the solution I am creating actually delivers what the customer needs, not just what they want.

So I am still a space cadet. Perhaps the Steves will win me over. One is my boss after all. But until then, I am in suited up and ready ready for blast off! "Ground control to major Tom..."

I Hate Project Management
24 March 07 09:36 AM | Earl Beede | 2 comment(s)

I really do. I mean, all those details you have to keep track of. Everybody coming up and asking you questions like you have some clue about what is really going on. And of course you pretend like you do. "Why, were are three days away from the googoo gate." What I really want to say is, "I have no idea and stop bothering me with all these questions so I can go find one of those little details that I always seem to be loosing."

And that is why I love Scrum. No more project management. The team has to keep track of all those details. Heck, as a Scrum Master, I don't even have to remember them. Each day I get to ask what they have done and what they are about to do. In fifteen minutes, I can forget it all until the next day. The team will tell me again, no problem. I don't even need to write it down, the team has 3x5 cards that they write on. Scrum is great.

I don't even need to think about schedules or Gantt charts. I just need to repeat a simple phrase each time some executive who needs to appear like they are involved in my project asks me how it is going. "We will be done with this sprint in [<30] days." If executive is needs to report to some even higher boss so that the bonus situation works out in his/her favor and pushes me for what will be delivered, I can say, "The team's burn down chart indicates that you will definitely have this and may have that." Then we both look at the burn down chart and nod our heads approvingly even though we both have no guess at what it is telling us but don't want to admit it to the other.

Working with troublesome personnel? Not a issue. The team basically kicks them out for not performing/being a jerk/not bringing in donuts. Resource allocation? One cube, seven laptops, one whiteboard, ready to go! Negotiation of scope? We baffle the customer by splitting their request for world peace into pieces so small that it is like putting together a jigsaw puzzle from chads. Then we tell them we have the resources to do two this sprint. Delivery commitment? Not even part of the Scrum vocabulary. We deliver value, not commitments.

Scrum has allowed me to eliminate project management from my repository. Now, can somebody invent a methodology to end maintenance?