The mighty ‘Why?’ vs the evil ‘Of course’

And, of course, you will…

We were discussing our proposal for a custom software project with the CEO of our (we hoped) future customer. Things went quite smoothly, the proposal included everything he needed, no mind reading necessary. The financial part and the planning were OK. We later found out our proposal was 3-4 times cheaper/faster than our competitor, mainly because on this project we had, for the first time, a real live onsite customer, not a proxy. Everything seemed to be in order. There was just one small remark:

“And, of course, you will provide us with extensive written documentation”, he stated.

I almost replied “Of course!”. At the last moment, I shut my mouth.

Those lullaby words are dangerous! Lullabies put children to sleep. Lullaby words do te same thing to grown ups. “It’s just one small change”, “It’s only 5 minutes work”, “We’ll simply…”,…

Hey! Wake up! This entry isn’t finished yet.

Enter the mighty WHY?

Whenever I don’t know what to say, I just ask Why?*: “Why do you need this documentation?

The CEO answered that they not only wanted to use the software internally, but also wanted to sell this software to other companies in their industry. They were busy hiring some developers who would take over further maintenance and enhancement of the application, based on requests of their future customers.

To confirm I understood him correctly, I asked “So, if I understand you correctly, you want your new developers to be able to maintain and extend the software as soon as we hand it over to you at the end of the project?

He agreed

Well, then I’ve got another proposal for you

We knew from experience that the best way to bring a new developer up to speed on our projects was through a combination of a clear metaphor, simple architecture (documenting the few mechanisms used in the system), coding standards, unit tests and pair programming. We proposed that we would provide high level documentation and his developers would pair program with our developers near the end of the project. That would provide a smooth transition from us to them. That would not make the project longer or more expensive.

He agreed. Everybody was happy with the project proposal

From lullabies to alarm bells

Whenever you are confronted with one of those lullaby words, an alarm should go off in your head to wake you up. Lullaby words become alarm bell phrases. Whenever you hear one of those phrases you will be alert. You will think. You will ask further questions to really understand.

Stay awake!

All’s well that ends well

And, did it work? The project worked out very well. Except for one part: the handover to the customer’s developers.

You see, everyone was happy with the proposal… except those programmers. They hadn’t been consulted. They didn’t like the technology or the programming language we used. They didn’t like to come to our offices to work. They didn’t like to work in an open workspace, they preferred their private offices. They preferred to work individually, each on their own private part of the application.

Our developers didn’t like the situation much either: the customer’s developers always came in late, left early and took long lunches. They made no effort to be part of the team, to learn or to pull their weight.

A few lessons learned: pair programming is an effective learning tool IF people want to learn; make sure you consult with all stakeholders before proposing a solution; make sure that you hire the right people and set their expectations correctly if you want your project to succeed. Pair programming is also a great tool during the recruitment process: you see exactly what the candidate is capable of and the candidate has a good view of the team, technology and code that they will be working with.

Some time later our customer decided that they didn’t want to be in the software development business. The developers were fired. Would more documentation have helped?

(*) Did you ask yourself if “Why?” is the only or best question to ask in this circumstance? If the “just” in the sentence didn’t put you to sleep, you’re well on your way to becoming immune to lullaby words.