This might sound really controversial, but I think developers should have some free time to experiment.
To make it even more controversial, I believe that providing opportunities for paid experimentation is more beneficial than leaving developers to investigate tools and techniques exclusively during their leisure.
Why should I pay my developers to do whatever they want?
- Some Boss somewhere
Developers
It is generally acknowledged that developers need to stay up-to-date to be successful. For their career growth, they need to regularly sharpen their saw.
Developers need to learn new things here and there, otherwise they could be in a bad position when looking for a new job down the road.
It could also be bad for your business: Every business owner wants to have developers that are able to pick up new technologies and deliver future required solutions.
This chase for new technology might not be aligned with the business needs:
My developers should work on their current projects and create value/billable hours!
- A Boss the CEO loves
A lot of times, you want to use battle proven technologies for solving tasks that are crucial for your business. There are lots of examples of this all across the industry: Facebook started with plain PHP and MySQL, Airbnb is powered by a Rails monolith that talks to multiple Java Applications, Dropbox uses Python and MySQL, Youtube is mainly powered by Python, Apache, and MySQL (references: Stackshare.io / Youtube Techstack 2012).
So, where exactly is the problem?
As you have seen, there is an apparent tension between what your developers want and what your business needs. It might be in the best interest of a business to run with more mature technologies. As in many industries, many developers are driven to build an impressive CV, and that usually means mastering new tools and technologies. Considerations like these could even make them switch their jobs.
The problem
Hopefully, you aren’t micromanaging your developers, are you?
When developers have a lot of freedom in their daily routine (which is a good thing, because it allows them to choose the right tool for the job), they might tend to choose the shiny new technology just because they want to try it out.
A few weeks later, you have that bleeding-edge technology in production. It could work out really well, or you could run into problems down the road; who knows?
My thesis is that not giving developers room to try these things out in a non-production environment will drive them towards doing it on production. This might not be true for all developers - Some just go job hunting.
Wouldn’t it be better if developers could have that experience with a non-productive system?
A few possible solutions
Why don’t you give your developers (or employees in general) one day every week or two to work on their own ideas?
Employees would be free to either brush up on their skills by working on tutorials or even building tools that accelerate their daily work.
Another option is to instruct some of your developers to organize a regular hackathon (monthly/bi-monthly/whatever) during office hours.
The benefits
Maybe you are not yet convinced but there are a lot of benefits with this approach, let’s name a few:
- A wider view of technology allows your Developers to make better decisions.
- Your Developers might create tools that you never thought about.
- An employee even might come up with a new product idea that creates additional revenue.
- This approach will lead to higher employee satisfaction. Satisfied employees will stay with your company.
- Working together on their own topics creates opportunities for socializing between employees. This might be the best team-building activity you have ever planned.
The cons
Let’s consider the drawbacks:
- Of course, it will cost money, developers will work less on projects that create direct business benefit. Still, you could argue that a motivated developer probably produces more output in 72 hours than an unmotivated in 80. *
But this is actually the only downside I see. If you see any other negative aspect, I would love to hear about it. Please leave a comment at the bottom of the page or reach out via Twitter/@eiselems.
Recap
We have seen why not giving developers room for experimentation and professional development is potentially dangerous, long-term they could either quit, or become detached from their daily work; both things you want to avoid.
Most developers will always chase new shiny things; why don’t leverage that behavior to let them create new useful tools or ideas that could really change your business for the better?
Why not create an environment where your developers can learn new things on the job?
In my opinion it is a pretty low-risk but high-reward investment which you could stop after a year if you don’t like it.
Why don’t you give it a try?
The bottom line is; Your developers and your employee retention will thank you.