Understand your programmer
Working with programmers often goes wrong because we think we’ve agreed the same thing when we’re actually talking about two different things. I’ve learned that what seems obvious to me isn’t necessarily part of the task the programmer heard me describe.
I get lots of emails from entrepreneurs about IT projects that have gone off the rails. Websites, online shops, banner adverts, Google AdWords, databases and CRM systems. Here in 2010, almost every entrepreneur comes into contact with technical people at some point.
That applies to both the roofer in Jutland and the fisherman on Bornholm. You have a website, an email address or something else that makes IT part of the business.
We don’t necessarily think alike
I’ve employed lots of programmers over the years. More than 100 and probably more than 200. One thing I’ve learned is that communication between technical and less technical people can go unbelievably wrong.
In the video, I make a very broad generalisation about autism and claim the vast majority of programmers have it to some degree. That’s my generalisation in 2010, not documented information about programmers or an assessment of any particular person’s diagnosis.
I’m not saying it to put anyone down. On the contrary, I think there are enormously interesting and talented people in programming and engineering. My point is that some people are strong with numbers, structure and technology, while others find the communication I take for granted easier.
But when we talk, we shouldn’t assume the other person automatically understands everything we haven’t said aloud.
The bank was waiting, but Poul hadn’t started
Many years ago, I had a programmer called Poul. We’d made a website for a bank, and the bank called in despair because something wasn’t working as they’d intended.
They were launching very soon. I asked Poul how long fixing the error would take. Three hours, he said.
So I told the bank: Three hours. They weren’t happy but asked us to do what we could.
Poul sat nearby and kept programming. After half an hour, I asked how the problem was going.
He looked at me: What are you talking about?
I referred to the three hours he’d mentioned. But he hadn’t started at all. I hadn’t asked when he had time. I’d asked how long it took to do.
He had other urgent tasks and no time for that one right now.
A duration isn’t the same as a delivery time
That was one of my first lessons in how differently we could think. Poul could hear I had an agitated bank manager on the phone and was tearing my hair out myself.
To me, it was obvious my question meant: When can the bank have the error fixed? But that wasn’t actually what I’d asked.
Poul wasn’t doing it deliberately. He answered the question I asked. And I heard more in the answer than he’d said.
That’s a very typical example of a communication blunder between a programmer and someone who isn’t a programmer.
Working with programmers requires a clear task
I work with several companies around the world that make good things for me. I recommended one to an acquaintance because I know they’re good.
Yet the collaboration ended in almost a lawsuit, gnashing of teeth and all sorts of other trouble. Why does it go wrong when the company can deliver so well for me?
I think part of the explanation is that I’ve worked with so many programmers I’ve learned how to phrase things. I know better what I need to say for the task to be understood and done as I expect.
It isn’t just about finding skilled people. It’s also about being able to describe the task yourself. Also read Min vej som leder about my experiences of leading people and making expectations clear.
Henrik and I multiply by pi
My partner Henrik and I have a standing joke: When a programmer says how long something takes, we multiply by pi. Around 3.14.
That turns a week into almost a month. And I actually use it as a rule of thumb in my own expectations, even though I say it with a twinkle in my eye.
It isn’t because I think people are evil, amateurs or idiots. Often, they solve the task we’ve explained within the agreed time.
The problem is everything left unsaid. The things we forgot to mention. What we assumed the other person could work out. The extra parts we’d already included in the agreement in our heads.
I thought Poul would finish in three hours, but he’d only answered how much work the fix required. Similarly, an agreed week’s work can become much more when all the unspoken expectations are included.
Both parties can feel cheated
Then the customer gets angry: You said it would take a week!
And the programmer gets angry too: What you asked for took about a week. All the other strange things you expected me to work out myself take time too.
I also say in the video that the last five per cent can take three or four times as long as the rest when you’re told a project is 95 per cent finished. That’s my harsh rule from experience, not a calculation applying to every IT project.
My message is to allow room for more work than the first optimistic number might lead you to expect.
A skilled project manager can translate between you
If you don’t understand IT and aren’t used to working with technical people, you can become incredibly disappointed and confused. In the worst case, the project could help bring your business down.
You may not be technically qualified to describe the entire task. And the other party may not be good at exploring your expectations and translating them into an agreement you both understand.
That’s why I think skilled project managers are incredibly important. And why you should team up with someone who can help if you don’t have that experience yourself.
I allow large extra margins for time and cost and expect to need a lot of patience. That’s how I handle these projects myself.
There doesn’t have to be anything wrong with you or the programmer. Communication may be what brings the whole thing down.
At the end, I compare it to men and women talking past each other and becoming furious because they think they’ve already said something ten times. The other person simply hasn’t heard it the same way.
So enjoy the projects. Remember pi as my rather blunt reminder to give both the timeframe and the price more breathing room.
Every entrepreneur needs to get online, so they rarely avoid talking to technicians and programmers, and it usually goes wrong… Best wishes, Martin
Heheheh… "Gange med pi" Ret god regel faktisk 🙂
Godt indlæg, Martin!