Twitter: @chesterbr 2012.05.23. 17:24 Choosing a language because it has cheaper developers is like building your house with Lego so you can hire anyone as a construction worker.

This is an old tweet that recently came into my eyes via a repost. I read it and I was nodding: very true. But on the second thought I just started to think about the practice that I see when large companies choose technology.

Recently I was part of a decision to go for JavaScript and some native JS framework on the client instead of GWT. I was busy warning the management that the huge load of JS developers available on moderate price is guarantee for failure. You can buy just as much JS developer as you want for low price, but they are the low quality producing guys. Low price, low quality. You have to hire the JavaScript developers who have higher price tags. (Not for the price tag alone of course.)

If you want acceptable quality you have to pay for it. In case of JS, because the language gives you more freedom the price may even be higher. Partially on price per hour of experts who are really good, and the total number of hours may be more as well. If you do not take that serious you will face the sad truth: the more freedom you have the more trouble you can get into, unless you have self discipline. And self discipline comes at a price tag. Pay nuts and get only the monkeys working for you.

And then I was going on thinking. What technologies did the construction workers use when my house was renovated ten years ago? Was it state of the art? No it was not. Why? Because these people were just not able to handle modern technology. The electrician (one of the cleverer guys, still illiterate, and I mean literally: he could not write or read) fixed tubes on the wall for the wires to run in and boxes for the outlets. Then the bricklayers came and put a cover of mortar. The electrician had to find and dig out the outlets. Bricklayers just did not care the work of the other person. But the technology was prepared for that. This is lego. When you can not adjust the quality of people, you adjust the technology. We do the building of your house from lego. Not the toy type, but the same principles. The toy lego is adjusted to the brain capabilities of a child, the house construction lego is adjusted to the construction workers. Not a big difference.

The same is true for software. Many years ago a German bank IT person was eMailing me questions and explained they considered to replace a few hundred of Perl scripts to their ScriptBasic equivalent. After that the maintenance could be just cheaper. Perl programmers were scarce that time and pricey. ScriptBasic is on the other hand is just BASIC. Everybody knows BASIC just as well as the little girl from Jurassic park knows unix. (This is an extreme example though.)

JavaScript is the dominant language on the client side and bites into the server side as well. PHP is wide spread in the web arena. Why? Because they are the lego types compared to languages like Java, Python, Ruby, Scala, Haskel.

Looking again at the quote we started the article with. Choosing a language because it has cheaper developers is like building your house with Lego so you can hire anyone as a construction worker. Looking at a different angle, and without exaggeration: yes it is exactly. We choose a cheaper language so we can hire cheaper (still just not anyone) as a construction worker. Very true. And that is really, what IT managers really do. Even though they know they will have something built of lego.

Just with a special spice added to it: quality control.

Comments imported from Wordpress

Mike S. 2014-03-26 14:27:38

You’re making a case for using building bricks better than legos, but you’re almost making the case that it rarely makes sense to hire poorly skilled developers no matter what tool you use. A small team of highly skilled developers using language X will make something better than any size team of developers with mediocre skill using language Y for most values of X and Y.

I understand that, and I agree with it. I’m fortunate right now to work with a bunch of brilliant developers and I am pleased to be struggling to keep up because I know it will make me better in the long run.

On the other hand, it leads to another question - if a company chooses to invest wisely and consistently hires a handful of highly skilled developers instead of two or three times as many moderately skilled ones, then how does the industry newbie get a chance to go from newbie to highly skilled? Do you have to work at a gas station during the day and post code to github at night for ten years before some employer taps you for a top tier developer team?

Code Of Code | Programing languages poll 2013-11-28 21:47:23

[…] Cheap programing language (javax0.wordpress.com) […]

Peter Verhas 2014-03-26 18:31:09

There is a certain level you have to reach on your own. But this is usually school time. After that juniors should find their position. It is a very complex issue to create a good team. Teams need different type of people, different seniority and different …​ anything. You can not have a team where everybody is a genius. They will not perform. Summary: there is more chance for junior programmers than change for actors in Hollywood. You need not be a waiter or waitress until you get the position.

The Little Architect | Java Deep 2016-02-10 16:00:47

[…] to be used. This may also be a smell that you wanted to use some niche technology that may require expensive developers in the coming years to maintain the product. You better […]


Comments

Please leave your comments using Disqus, or just press one of the happy faces. If for any reason you do not want to leave a comment here, you can still create a Github ticket.