The Christmas Tree Analogy of Software Engineering – Hacker Noon

Why does it so long to build this? Why can’t you predict (accurately) when this feature will be done? What is your team doing all day, anyway?

Explaining the process of software creation is hard. People have pointed out how much art and discovery are part of it. But hear this story about a Christmas Tree…

Christmas Tree, by Michelleration (flickr.com/photos/michellemc/2082631181)

The scene: A family room, a wonderfully decorated Christmas Tree, a string of lights woven into its branches. Important guests are expected to arrive at six for dinner.

The problem: The nearest outlet, which has not been used since last year, does not seem to function anymore. No electricity means no lights. Disappointed guests, grumbling spouses, ruined lives up ahead.

5:00pm, Stakeholder: So, can you fix this within the hour?

Developer: Well, the right way would be to call the electrician, who could diagnose and solve the problem. Given how old the system is, this may well involve ripping open the wall and putting all new cables in.

Stakeholder: But the electrician would not be able to get here within the hour, let alone fix this. So can you fix this, within the next hour?

Developer: I think so, but I can’t really tell. Honestly, I cannot.

If it is fuse, it would be a quick fix, but the other outlets are working so that seems unlikely. I should check for that anyway, takes only five minutes. I could also peer inside the socket, see if there is a loose wire or something. Under these scenarios, we can be ready in 15 minutes.

We could move the tree, but there is hardly room in the other corner and the ornaments may fall off and break during the move. If it goes well, this will be quick; if this doesn’t go well, the tree will look very sad.

I could run an extension cord from the other side of the room. It won’t be pretty on the white rug, but it will work. I can tape down the cord so people won’t trip. This assumes we have a long enough extension cord in the house. Let me check the garage, the attic, and the back of my car. I think we have a long one somewhere. If we have one, we can be done in 30 minutes.

5:15pm Turns out we have one white 8 foot cord, but it is too short. I also found a 40 foot cord, but it is dark green. That is all we have. I can go to the store, but it will take at least half an hour, if there is no traffic. I can also keep looking, but there is no guarantee we have a longer white cord.

5:25pm I kept looking but never found another cord. I did stumble upon some white vinyl tape. It is not too sticky, but matches the color of the rug. I am going to duct tape the cord down, then put white tape over it to hide it.

5:35pm Some of the white tape had gotten discolored and it looks terrible. I can go to the store to buy some new, but it will take at least half an hour. Do you think we have more of this?

5:45pm That was great, we salvaged an old sheet for white fabric to cover up the dark green extension cord. Duct tape is holding everything down, but you can hardly see it. Lights are on!

5:55pm Stakeholder: So why was it so hard to give me an estimate for this? You just ran the extension cord and found a way to cover it up.

6:00pm Important Guests: We are so impressed with your tree, your house, and the hilarious story about the extension cord! But why didn’t you run the cord up the wall and across the ceiling, nobody would have ever seen it there given that it is dark green. Surely, that would have taken only five minutes…

read original article here