24 Jun 2020

Training astronauts, not drillers

It can be easier to teach a business domain expert to code than to teach a developer to grasp the business

In the 1998 action movie Armageddon, the world’s best deep-sea oil-driller, Harry Stamper, (Bruce Willis) is taught, along with his team, how to become an astronaut. The plan is for him to drill a big hole in a giant asteroid so that it can be blown up by a nuclear bomb before it destroys the Earth. Makes perfect sense for a sci-fi drama, but - as Ben Affleck ventured to ask the director - Michael Bay - wouldn’t it have been easier to train the astronauts to drill holes?

He told me to shut the f--- up. So that was the end of that talk. He was like, 'You know, Ben. Just shut up, okay? This is the real [NASA] plan, alright?' I was like, 'You mean it's a real plan at NASA to train oil drillers?' He was like, 'Just shut your mouth!'

I feel a bit the same way about developers vs business people. Lots of professionals who work with complex information in businesses don’t know the first thing about writing a line of code. They may have years of experience in their given field – law, finance, whatever – but when it comes to producing reports they are entirely dependent on a piece of software that they have no way of adapting themselves. So why do we assume that the logical solution is for developers to be trained up to understand the business challenge, rather than simply teaching the business people some of the basics of programming?

The reality is that it can be easier to teach a business domain expert to code than to teach a developer to grasp the business. And I’ve found a way to do this in a few weeks.

About two years ago I developed the Skill Sprint, a technique which allows teams of developers to transition to a new language or technology within a week. I’ve found, after years of seeing time wasted on training courses, that there’s no point whatsoever in putting people in a classroom to learn a practical skill. When it comes to this type of tacit knowledge, we forget about 95% of what we learn within a few days if we don’t apply it. People have to learn by completing a task themselves, preferably while exchanging tacit knowledge absorbing the type of tacit knowledge that comes only through practice.

In a Skill Sprint, I as the teacher have to keep my hands off the keyboard. I convey the essential principles, indicate the correct direction when things go wrong and push the team hard to learn quickly. I’ve now done a series of these sprints and have never yet been called back in to fix a piece of work or provide additional training for the team. Recently I’ve found that Skill Sprints also work for people who aren’t developers.

Who it works for

Specifically, I have been teaching people with no coding experience to use the programming language Python. I’m not claiming that this will work for everyone – this is not “development for dummies”. The people that this technique works for will have a strong grasp of logic. To date, all my students have been serious users of Excel who realise that there’s a lot more that they could do if only they knew how. Two of the people I’ve been training recently have been referred by developers. In each case, the developer was asked to offer some basic coding training and immediately passed them on to me.

On the other hand, you don’t need to be a genius. If you can understand the CRUD (Create, Read, Update, Delete) principle, you will be able to pick up the basics of coding. The format I’m using is almost identical to the developer version of the Skill Sprint, but with more homework. It’s not easy and not for the faint-hearted. I tend to drive people quite hard and it’s a significant time investment throughout a week. But the results so far have been outstanding. Something that would have taken hours of error-prone work bringing data together from different sources onto a spreadsheet can be solved with five lines of Python. And the joy of it is that the next alteration will require another five lines and no further training.

You probably don’t consider yourself to be an astronaut, nor an oil-driller, but if you’re a specialist in your field, and the concepts of data and applications don’t scare you, a language like Python doesn’t require a three-year degree course to master. Nor even three months in a classroom. Learn on the job – and you’ll have a new skill by next Tuesday.