Like Athletes, Developers Need Practice Before Performing
Developers always learn new things. They read books and blogs. They attend conferences and workshops. They are expected to apply this newfound knowledge in their projects to increase software performance, security and quality. But projects are all about delivery. Where and when can a developer practice theory? This is an often overlooked element.
Think of a developer as an athlete. He or she is aiming for a medal in a competition. A figure skater can’t just perform a triple axel in the Olympics after seeing it done on television. This requires a lot of practice, so that when the time comes, the performance is flawless.
Of course, programming doesn’t have to be flawless. One must remain pragmatic, yet it still requires practice before a concept can be safely implemented without breaking the project or missing deadlines. Who will pay for that practice?
Let’s go back to our athletes. In case of a team, it’s the manager’s job to secure funding. So a team is basically an employer, that allocates much time for practice between the matches. There’s no point in sending a team with a play if they only saw it once on paper.
Now let’s translate that into IT. Work is divided into projects and then further into iterations, depending on your methodology. Say you have a two-week iteration at the end of which you must deliver a fixed number of features. How many days can a developer afford to try various solutions before settling on the one? Two or three days don’t sound like much. Let developers poke around, see if the newly acquired concepts are applicable and then focus on delivering the features for the remaining duration. If a concept works, great. If not, better luck next time.
I also recommend to use any idle time between projects to practice some more. Perhaps try out new languages, frameworks or even implement a prototype for something that has nothing to do with any project. This is also known as R&D and many countries have credits for that. The thing about R&D is that failure should always be an option. You can’t afford to fail during a project. Therefore, you must allocate time for it in a way that won’t hurt the project.
Developers need a sandbox. If you don’t give it to them, you can end up with one of the following issues. Your entire project could become a sandbox, making it unstable. Developers will be forced to practice at home, making them unhappy at work and eventually quit. Worse, innovation in your company could stall once developers become tired of fighting the management.
If you want your developers to get better, allow time for practice, not just learning. It’s necessary, easy to do when planned and provides countless benefits to your company. Let me know how that advice worked out for you.