It costs time and money to let developers learn. Every hour they spend on training or studying is an hour they’re not writing code for us. Sending them to conferences, professional training, and buying them books can get expensive. Is spending on professional development an investment—or a mistake?
Employers often lament, "What if we spend a lot of money training developers and they end up leaving the company?" In this article, I'll address the reasons why a developer who moves on could still have a positive effect on your organization. But I think the better question is "What if we don't train our developers and they continue to work for us?"
At Kimmel, we want our developers equipped to do their jobs in the most productive and efficient way possible. Failing to prioritize education is shortsighted. This is especially true in software development where new technologies, languages, and libraries emerge frequently and rapidly. While we might get more work done or even save money in the short term, forcing developers to prioritize development work over education is never ideal. In the long run, we’d develop a reputation for being behind the times and our developers would feel we don't care about their personal development and growth. We’d also miss opportunities to make our work more efficient by using new tools. As a result, it’s likely that the better—educated team is also the more efficient team and therefore the more profitable company.
Books, Courses, Certifications
I purchase learning resources for my team members regularly. It’s a high priority in the way I lead my team of developers. There are a couple of reasons why I think it's so important.
First, if a team member is excited about learning something new, then that’s great for morale. We want to encourage curiosity—not stand in the way. Workplaces, where developers feel like they’re supported and have the resources they need, are just better places to work. As a result of encouraging my developers’ intellectual curiosity, my team has cutting-edge skills and is more productive, and has more job satisfaction!
Second, the team that learns together grinds together. Fostering a learning environment extends to our office as well. We have great conversations about what new technologies developers are learning or are interested in researching. These discussions build rapport amongst our team. It also creates an environment where team members aren’t afraid to ask questions or ask for help if they are in over their heads.
Finally, having experts in new platforms/frameworks/etc on my team is great for sales and marketing. If I can say my developers have training in the latest technologies, or better yet, are certified developers for industry standard technologies, that goes a long way towards building trust with senior leadership or potential clients.
Experimentation is Encouraged
Learning for learning’s sake is fine, but it’s even better if you can apply new knowledge in real-world applications. This means you must trust team members to do some experimentation with novel techniques they’ve just learned.
For instance, a developer on my team wanted to learn GraphQL. I gave the developer a small project that allowed him to not only learn GraphQL but to apply that technology in a practical, real-world application. Allowing developers to experiment and learn the advantages and disadvantages of new technologies is critical. At the outset, neither of us knew how it would turn out. We felt confident about the technology and his ability to apply it. However, there was a fair chance that he could make a mistake or that GraphQL might not work as well as we anticipated.
In this case, the experiment was a success. But even if it had gone poorly, the developer and I would have learned from the failure and gained valuable experience and insight. As it stands, we’re now starting to use GraphQL across the whole team instead of traditional restful APIs. Had we not experimented we would have missed an excellent opportunity to write better, cleaner software.
Investing in training and being a great place to work is always worth the effort. When a developer leaves the company after I’ve invested a lot in their training, it’s not a total loss. I want that developer to remember our company was a rewarding place to work. I want them to tell other developers they know that Kimmel is an excellent place to work, thereby helping with our reputation and recruitment. They may work with you at their new company, growing our influence in the industry. Ultimately, they may have loved our curiosity-centric environment enough to return to work with us down the road, this time in a more senior role bringing new experiences to the table.
Investing in education, supporting experimentation, and encouraging curiosity have positive results. I believe proper training is the key to a happy, productive development team. When we spend money on education for our developers, we're investing in the company's future as much as that of our employee.