In the great pantheon of problem solvers, programmers rank pretty highly. The history of computer science is one of remarkable innovations and the overcoming of seemingly insurmountable technical barriers. We’ve seen the streamlining of business processes in mailing lists, inventory management, and client outreach, just to name a few, all made easier and cheaper thanks to the clever work of programmers.
Technologies we all take for granted every day were once deemed impossible and remained so — until they weren’t. All of which is to say “impossible” in the world of programming should be viewed as a transitory state, one which can be overcome with proper resources and motivation.
Despite the pervasive imagery of programmers hacking away at their keyboards until a Eureka moment strikes, these solutions are rarely that simple or rapid. It takes a well-centered and -resourced team to make the kind of strides a business can use to set itself apart and either solidify their hold on, or expand from, the niche they exist in. Your coding department can be one of your greatest resources when utilized correctly, but empowerment is the name of the game.
Inevitably, you will run up against a problem with the hopes that your tech team can provide a solution and the response will be, “that’s impossible.” In my experience, this is seldom true. It’s important to recognize the limitations of your resources in relation to your ambitions, but it’s also important to evaluate the strictures you may have in place that are hindering the solution you seek.
Finding the Right Incentive
Your most effective tool for inspiring greatness from your programmers is incentivization. On a superficial level, businesses often seem to think this boils down to well-stocked snack-laden kitchens, lax dress codes, or remote work. But the truth is those Silicon Valley-style archetypes are just a base level and won’t inspire your programmers to innovate, so much as perpetuate and perform. Expecting much more from your programming team is unrealistic without offering more.
There are many ways to incentivize a team of programmers, but the three most effective methods I’ve found are simple: financial bonuses, professional advancement, and often overlooked but perhaps even more powerful, creative freedom.
Financial incentives are generally pretty straightforward, so I won’t spend a lot of time discussing them here other than to say that bonuses, raises, and the like can be remarkably effective. That said, they aren’t always the most effective incentivization method and may not even be feasible depending on your business dynamics. Some companies just aren’t in a position to offer financial incentives directly to their programmers, but that doesn’t mean they can’t still provoke a spark of passionate problem solving from their programmers in other ways.
Professional advancement can be an amazingly compelling tool for incentivizing programmers. Allowing a junior developer to earn their stripes and become a senior developer or allowing a senior developer to become a team lead offers both the benefit of a financial incentive and the intangible benefit of being valued. That sense of being valued creates confidence in your employee, especially one in a field as competitive as programming, that can pay off immensely in productivity and inventiveness.
Let’s remember who programmers are at their core though: they are problem solvers and they are builders. To that end, give them challenging, exciting problems, and allow them the tools they need to overcome them. It sounds simple, but you may be surprised by just how restricted your development team might be feeling.
Fostering Your Team’s Creativity
When your tech team tells you something is impossible, what they almost always mean is that it’s not currently possible. Listen to how they describe the challenge and ask them directly what they need to overcome it.
Sometimes it’s as simple as putting a few other projects on the back burner. Coders are usually juggling too much at any given moment and allowing them to set some of those balls down and devote themselves to just one thing can be a major force-multiplier for any team. This may mean a temporary restructuring of priorities, but it’s important to remember some sacrifices have to be made when you’re asking the impossible of your team.
More often I’ve found the real problem at hand is the tech stack. Are you looking to implement a slick, real-time, high-end tool for your end-user but your site is still running on PHP 5 and MySQL? Now might be the time to finally let your dev team spin up a NodeJS server and show you what’s possible.
Has your dev team been telling you about the benefits of continuous integration or Web Assembly but you’ve kept putting them off? Perhaps the cost of refactoring your codebase into some modern framework has seemed prohibitive, but if doing so allows you to achieve the currently impossible, then it could easily outweigh the cost with its benefit.
Given the time it takes, introducing new elements to your tech stack might feel counterproductive at first, but trust in your programmers and the process. There is no better way to show your development team that you believe in them than when you’re asking for the impossible — and giving them the freedom (and resources) to achieve it. Your trust and empowerment of their expertise are so vital and valuable to finding that solution that could revolutionize your business.
Ultimately, what’s truly important is that you find a way to draw out the best in your team. Listen to what your development team is telling you about the problems you need solutions for, empower them to overcome those problems, and you’ll watch them turn the impossible into the possible before you know it. After all, from punch cards to FaceTime, programmers have been doing the impossible since the first line of code.