A completely hypothetical conversation between an IT Manager and a lead programmer. I hope you'll add to it.
-- KenMcKelvey
ItManager
- [he says]
- "We've got to do something. We have a pattern of releasing software months behind schedule. We are frequently over budget, and our software has far too many defects."
- [he thinks]
- "I've been pouring money into these programmers and all I get is bad estimates and poor software. The CIO is on my ass and its making me look bad."
LeadProgrammer?:
- [he hears]
- "The CIO is on my ass and its making me look bad. You've got to fix it."
- [he says]
- "I agree, we have a problem, but its an organizational problem, not specifically a programming problem. I've been reading up on a software development discipline that I believe could fix these problems."
- [he thinks]
- "Oh gawd, I'm going to have to tell him its called 'Extreme Programming'. Why couldn't this be called the 'Beck Model for Accurate Development Estimation and Increased Quality'?".
ItManager:
- [he hears]
- "Hey, its not my fault, you're going to have to change some stuff around here."
- [he says]
- "I'd love to hear your ideas."
- [he thinks]
- "If these programmers would just buckle-down and code instead of worrying about new techniques and tools, they would meet their deadlines. That's what I used to do."
LeadProgrammer?:
- [he hears]
- "Go ahead and tell me about it, I'm desperate enough to give you a listen."
- [he says]
- "Well, I think our problems can be broken down into three general areas: one, inadequate communication among programmers and between the programmers and customers; two, overly complex and detailed specifications and programs; and three, untimely/incomplete detection of application defects. The core principles of the model I've been reading about are communication, simplicity, feedback, and courage. If we follow this model, I believe we could really improve our estimation process while at the same time providing higher quality software."
- [he thinks]
- "Please don't ask me what this discipline is called."
ItManager:
- [he hears]
- "We need more meetings, less documentation, and more people assigned to testing."
- [he says]
- "What is this discipline called?"
- [he thinks]
- "This 'courage' thing has me worried..."
LeadProgrammer?:
- [he hears]
- "What is this discipline called?"
- [he says]
- "XP"
- [he thinks]
- "Oh shit..."
ItManager:
- [he hears]
- "Microsoft XP"
- [he says]
- "Oh yea, I've heard of that, its part of Microsoft's new operating system. I didn't realize Microsoft incorporated a new programming discipline into that release."
- [he thinks]
- "This isn't so bad, anything Microsoft came up with must be pretty good."
LeadProgrammer?:
- [he hears]
- "Excuse me, but I'm not so smart. You're going to have to skip the acronym and spell it out for me."
- [he says]
- "No, its not a Microsoft product. It stands for 'Extreme Programming'."
- [he thinks]
- "Courage..Courage..Courage..."
ItManager:
- [he hears]
- "bla bla ....EXTREME.... bla bla"
- [he says]
- "Hmm. That sounds very... umm... interesting..."
- [he thinks]
- "Shit, that name scares me! It must be CowboyCoding again. We have to get our CMM level"
I think it's interesting that your conversation is documented in a similar form to the "two-column" method described by PeterSenge in his book TheFifthDiscipline : The art and science of the learning organization. Was this somehow in your mind when you wrote this?
Nope, never heard of it. This was strictly StreamOfConsciousness.
Excellent! A very good example of DontCallItExtreme. I wonder if it would be worthwhile to write up some AcceptanceTestsForMethodologies.