Let’s get straight: this is not yet another post about “if you are not moving forward, you are going back”. We all know that by know, right? This is about companies trying new things and why that might be financially beneficial.

Guys, how about we try some new programming language?

Said no manager ever.

Why?

warning: huge stereotype for the sake of discussion

Because managers don’t care about people - their goal is to meet all project requirements and make client happy. Of course usually happy programmers make better projects (is there any proof for that?), so to some extent they also want to make programmers happy. But rather as a mean to an end - not the goal in itself.

That is the basic assumption and I think we can all agree to it to some extent. So what is the incentive for new technologies? Money of course!

Ahead of the curve

Ahead of the curve

One pretty obvious thing is that using new languages and frameworks you might just by accident use “the next big thing”. Having some experience with it, the team would be way ahead of other teams/companies on the market.

Currently we can see similar trend with blockchain. Companies which did blockchain as their R&D (or just for fun) and are proficient in it, now can really offer something extra for their clients. That’s what R&D departments are for.

Cost of hiring programmers

The other, less obvious, argument is cost of hiring programmers. Currently, the market belongs to programmers, there is no doubt about it. High salaries and so many jobs opportunities - it’s so easy to be spoiled.

Typical programmer

With this market, programmers cost A LOT. They are often the biggest cost of the whole project. Which means they are very valuable - having a good programmer means a lot and losing a programmer (even not as good) means a lot.

Outsourcing companies are doing very well. Demand is high even though costs of outsourcing might be over twice as big as hiring similar-level programmer directly. Hiring agencies also can’t complain and usually they charge 3-months earnings of the recruited person.

In short, cost of losing a programmer is very big. And I didn’t even talk about time wasted for introduction to the project, time when there is an empty slot in the project, learning to work with a new person etc.

To simplify let’s assume that cost of losing a programmer is approximately its 3-month salary. Which means that If a programmer is unhappy with its current role, it’s worth dedicating 3-month salary to make him happy and make him stay. (There is also a question who is more likely to be good and long-term employee: someone new or someone unhappy who can be made happy).

Just think - everything worth 3-month salary! This person could go on 3-month paid vacation if that would mean making them very happy. And company would still benefit from that!

Mind blown

So with this perspective, let’s take another look at a bored programmer. All (s)he does is Java, but (s)he is also interested in another languages - Scala and Go. This person once a week goes to sites with job offers and see if maybe there is something that would make them develop in Scala or Go. It’s not that current job is bad - but it would be so great to try these cool languages!

You see where I’m going with this? It’s worth giving them task with this new language if this would cost less than 3-month salary. Let them make some small simple module or microservice with Go.

If it’s really simple it would probably take up to a month implementing it. In best case scenario - it might just work fine. In worst case - it would have to be rewritten from scratch, but with familiar tools it would take half as much time - make it two weeks. One and a half month wasted in total - still cheaper than 3-month salary.

So if morals are low or just could use significant improvement and you are wondering if some risky, but very cool task should be done… the simplified formula is:

(cost of losing an employee) - (cost of the task) > 0 ?

If the result is positive, then the task should be at least considered.

Marketing

Marketing

Last but not least. Again, for someone might be obvious, but still that is so often not taken into account. I see job offers with Java 7 regularly and which respected and ambitious programmer would want to work with it? I’m not sure if life without lambdas is life worth living.

It matters especially in local programming groups, where news about cool and interesting technologies spread very quickly. Everyone wants to work in the company where they can develop fast and try new things on the daily basis. If salary is good as well - dream job!

How much does your company spend for marketing purposes? All job boards, sponsoring conferences, meetups, perks for employees. Maybe the most effective marketing effort is showing that you are using new technologies - even if doesn’t turn out very well?

Surely it’s not about new technologies only - culture matters as well. But if your culture is not as vivid as Basecamp, Google, Facebook or Buffer, then - I believe - technologies would help tremendously.

Summary

These are three major points that should make you think what is the real cost of doing old technologies. Is project more stable this way? Maybe it is. But in the long term, savings from having a stable project might be minimal when comparing to all other hidden costs. Do your own math.