Yesterday was interesting. We had a minor concern at work. I was up at 7am, and spent many hours in a small room with a few people working on solutions. By the time 7pm rolled around I was mentally and emotionally exhausted. The idea that I would be looking forward to my 7pm-10pm class would be a bit.. far fetched.
Something odd happened to me last night in class: I completely spaced out. Totally. I had no idea what I was doing, what I was saying, or why I was saying it. I was running, essentially, on auto-pilot and (apparently) I need to go out and purchase a new auto-pilot.
So, let me self-indulge for a moment and give you some of the wit and wisdom which spilled from me during a discussion-intensive class last night. I will convey these sadly accurate quips in the form of lessons learned from a foggy class.
Lesson 1: Only answer a question you've heard.
Lightly nodding off, I noticed the teacher had asked a question. I did not hear the question. I heard the last word of the question:
"... negotiate?"Scanning the room for people to answer the question, my teacher made eye contact with me, which woke me up. Startled, I then raised my hand and was called on to answer the question. Unfortunately, I had no idea how to answer the question: "... negotiate?" . As recognition of my predicament crept over me, I must have adopted a rather horrified look on my face. As recognition of my predicament crept over my teacher, a rather amused/befuddled look came over his face. After an uncomfortable silence I made a stab at what the question might be:
Ed: When do you know that you need to negotiate?
Teacher: ?? No. Under what conditions could you find yourself unable to negotiate?
Ed: Oh! Um.. when your customer doesn't know what they want.
Brilliant, Ed. Brilliant.
Lesson 2: Just because you have gone vegetative, don't bring vegetables into the discussion.
We began discussing the "requirements" of building a car. What might some requirements be? A minimum top speed? A fuel efficiency? Someone said "4 tires". Someone else noted that 4 tires might be a design not a requirement (You might be able to build a car with 3 tires, or 5, and meet the same requirements). This led to an interesting side-bar: If the customer is pushing design into your requirements when do you push back -- or do you push back.
As a class, struggling against this "problem of the ages", we needed a brilliant observation -- something to really create spark in our eager, open minds. Oh yes... groggy Ed to the rescue...
There are times when a customer may ask for something that goes against the wisdom of relevant domain experts -- unless the customer is a domain expert who is trying something new. Using our car example, if the customer said "I want to use a hollowed-out head of lettuce as a gas tank" that just isn't going to work.Hard to argue with that logic, isn't it... Although, upon relating this nugget of wisdom to my wife she replied: "Maybe if the requirements were to build a more environmentally friendly car the customer would be correct." Thanks, hon!
Lesson 3: Sometimes abstract is enough
You can tell how tired I am at any given point by measuring the abstractness that I inject into any given endeavor. When I am fresh, sharp and energized I quickly hone in on the universiality of a point. This lets me try my best to make my point applicable to more people, in more situations. As I get more and more tired the abstraction is replaced by more and more concrete examples.
A question was posited: When do you stick to a requirements due date and when do you give people more time?
Divide your requirements up by logical segment (interface, algorithms, reports, etc...) and then assign colors to them. The segment is RED if requirements are up in the air, and yellow if things look pretty firm, and green if everything is stabilized. If you hit your due date and are all RED RED RED, you need to extend it. But, if you are mostly GREEN with a few YELLOWS, you can probably start the project. Even if you are all YELLOW that is probably good enough. But you probably want to push the due date back if you have any REDs.
wow. Who knew requirements negotiation could resemble a game of twister?
-Ed