« Tell Me What I Say| Main | Is Your Project Off-The-Rails? »
Lessons in Letting Programmers Build Your House
Everybody says that software construction is like building a house, but what if it was really true? What would really happen if you hired programmers to build your house?
- Inception
- You decide to build a house. An Account Manager shows up and you talk for a while. In a hushed voice, he explains that he has a secret weapon. He opens a box, and a dancing chicken comes out, singing a Broadway song. He explains that this chicken can make houses magically appear if it is treated the right way. He shows you a PowerPoint where the chicken dances, some people mumble some words, and a house appears. The people seem very happy living in these houses. This seems like a reasonable plan, so you sign up
- The next week, a project plan and estimate show up. It is 383 pages and written in 4-point type. The Account Manager comes with it, and asks if you are ready to start living in your new house! You smile and sign.
- You meet the programming team. Out of seven, 4 of them have names you cannot pronounce and you cannot understand them. They live in a phone booth in the front yard.One guy is understandable but keeps drinking Jolt and talking about the system and the man, and the other two guys don't say anything to you but seem to laugh a lot at odd times.
- One guy gets there at 7, one guy at 9, two at 11, and the other three after lunch. You have no idea who they are or what they are doing. They seem very happy.
- Every day there seem to be Nerf ball fights. A stack of empty Mountain Dew cans is starting to build in the front yard
- You still haven't seen any magic chicken
- Elaboration
- For the first three months the programmers debate what kinds of tools to use, eventually deciding on a standard toolkit consisting of electric chopsticks from Venezuela and a set of rubber jello. They seem very happy.
- You ask again about the chicken. You are shown a picture of a chicken and told that you don't have the right material to work with. You agree to buy more expensive material to make the chicken happy
- You ask the project manager how things are going and he gives you a 47-page report with GANTT charts and Object Diagrams written in ancient Swahilli and says something like "there are obviously parameters that are currently nominal" You ask again and he gives you what looks like excepts from the encyclopedia translated into pig latin. He seems very happy.
- You finally get ahead of schedule. Then the local CMMI appraisers come by. When you show them how much work you've done they frown. Then they spend the next three months interviewing your team and introducing the proper paperwork you'll need to build houses the right way. You ask them why would you need the paperwork if the house was going okay and they smile at you like you are an idiot and continue printing forms
- You're being billed for 50 hours a week from each programmer, including a llama named Steve which you haven't actually seen around anywhere
- Construction
- The project manager explains that the rule is, whatever the estimate, you have to double the number and move to the next unit. If the guys said it would take 2 weeks, you'd better plan on waiting 4 months. He says that's the way it's supposed to work.
- Half the team is still drawing boxes in the dirt while the other half have built 3 buildings you didn't want in the neighbor's yard. The stack of soda cans has become a local tourist attraction
- In the middle of building your house, the team suddenly gets excited, yells at each other, and tears the entire house down. Then they decide to re-build the house using matchbox covers and old hair ribbons. They seem very happy
- In an effort to get back on track, you hire a process consultant. He spends most of his time talking like Yoda. You ask him what the project managers should be doing and he asks you what you want the project managers to do. People eventually stop asking him questions and he spends the rest of his time wandering around the yard pointing to the various work going on, mumbling to himself, and shaking his head vigorously
- You ask about the chicken again. You are told the chicken and material arrived, but the team had to take it apart to get it to work correctly with your lot. Then they ask you if you want some fried chicken
- Transition
- A software vendor comes by. From the back of his truck, out walks a magic horse. He talks to it, and a huge mansion appears floating in the air without any work being done at all. You have to threaten the team with your shotgun (and the vendor) to get them back to work. The vendor mutters something about "legacy thinking" and drives away
- You ask one programmer what he thinks of your house. He tells you a story of another house with a lot more stuff that was done at half the price and a lot quicker schedule. Then he asks to borrow lunch money
- If you have a problem with the house, there is a nice little drawer in the kitchen that slides out and you write down your problem. When you slide it back in, the letter goes away. Nothing ever happens, except for that one day when you attack the drawer with a 10-pound sledge
- Every item has a special feature you'd never think of with that item. Your sink makes ice cream, your couch is able to talk, and your lights move around on their own. The toliet did things to you that put you into weekly therapy.
- Ownership
- You sue the contractor. He pays for a lawyer to visit you and explain the contract. After you read the fine print, you pay the lawyer, apologize for asking him over, build a small temple to him in the back yard, and offer a human sacrifice. He seems very happy.
- You call another group to fix the problems. You've had enough with this bunch. The next week their Account Manager comes back. He asks you how things are going and you tell him about all of your problems. He smiles and then tells you the story of his magic duck. Hey. You're not falling for that one again. Everybody knows chickens aren't magic, but ducks?
That could work. Ducks just might be magic, right?
If the chicken is responsible for "making houses magically appear", then where do the programmers come in?
The chicken is the magic tool -- CASE, some whiz-bang Java extensions, ASP.NET custom tools, whatever. The customer doesn't know enough about programming for there to be an actual discussion about software development, so instead we sell them on the magic tool or process we have that beats everything else in the world. Most times we buy into this "magic bullet" thinking hook, line, and sinker. As it always turns out, the programmers at the end of the day still have to program to make the system work. But nobody likes to acknolwedge that they're paying a ton of money for people to do something that for all intents and purposes is magic to them. So we focus on the chicken instead.