Monday, June 3, 2013

Are we developers the romance writers of the science world?

As developers we tend to do repetitive, sometimes tedious labour every day. We stand at a scrum/kanban board every morning pretending the problems we are facing are interesting, hard and we are the only solution to them. Maybe we think we are the smartest in our team. Maybe everyone in that team thinks he is the smartest.

Anyhow, the job we have to deliver as an everyday developer relies roughly on the same technologies. We like it or not, but most of our work is based on someone else's work, someone else's idea, methodology. It's so rare that we, as everyday developers can add something brand new that wasn't there before.

And no, a HTML5 progress bar is not all that new. And no, creating a iPhone app that uses Facebook login is not new either. But if we are not really in the invention part of the game, surely the people at the big fancy IT companies are, right?
What developers at Google/Amazon/eBay/Microsoft/Adobe/Facebook do?

Without a doubt these companies invent the most interesting technologies and the most reliable platforms. Does it mean that if you worked for them you would actually create something new? Something that is not based on someone else's idea decades ago?

Well, Google invented BigTable, Facebook invented Cassandra. These two technologies were new, interesting and not a copy-paste of the first result from StackOverflow. So, if you joined them you would finally create something new, right?

Probably wrong. Google employs tens of thousands of engineers and their job is to churn out code. Code that relies on inventions of other people like BigTable. Code that will be just another app on Android or iPhone. The fact is most of those engineers are not working on the groundbreaking new stuff like the self driving cars or the Glass project. Most of them are churning out code 8-10 hours a day, just like you do.
Romance writing

There is an interesting trend in writing - just like in software 'engineering'. The more you churn out the more profitable you are. There is no time to research, write, rewrite a book for years. No one will pay for it. You are willing to fork out let's say $5 for a digital book on Amazon. Most probably you wouldn't even read it, so that's not a big loss.

But paying $50 for a book? Doesn't happen anymore. With software, it's very similar. Even if you are a startup, your goal is to churn out a lot of code, create a somewhat working prototype and get a lot of money for it. Didn't work out? Try another one.

And if you are a bank? Churn out some code, bear the politics, support the 40 year old systems. There is no time or money for innovation and research in an everyday developer's life. Wake up, commute 1-2 hours, spend 8-10 at work, another 1-2 hours on the way home, pay the bills and restart. Another day, another dozen lines of Javascript - or another romance book.
Famous developers and famous writers - marketing
The other day I was watching a video on Channel 9. The guy (who is an MVP) was trying to demo how to write testable code using dependency injection. His Visual Studio had so many "productivity enhancer plugins" installed that every file looked like a Christmas tree. But he could not write code. He was actually struggling to create the demo code - not more than 15 lines.

I'm sure you had those moments when you were watching someone doing something and you already knew why it would not work - this video was like that. For all the 50 minutes. But hey, the guy is on Channel 9, he is an MVP, he is the CTO at a somewhat good sounding company. He is famous, right?

It's somewhat similar to the Fifty Shades of Grey effect. Take an average romance book, make an insanely good marketing for it and everyone will think this is actually a good book. Even though there was nothing new about the topic, style, or content. It was one in a dozen. Marketing made it famous.

Daniel Kahneman in his "Thinking Fast and Slow" book got it perfectly right: "People tend to assess the relative importance of issues by the ease with which they are retrieved from memory—and this is largely determined by the extent of coverage in the media". The guy is famous because once he managed to get into Channel 9 and that's it. Nothing to do with skills or innovation. He is just around all the time. Similarly, this very average fifty book is just all around so we think it's important.
Are you a rockstar? We don't need you     

The other day I was having a chat with a friend and he told me that the -really cool- company he is working for no longer looking for top-end developers. And it suddenly all made sense. The tools and environments are getting so much easier every day and the problems and the size of the problems are somewhat staying the same. You need people who won't get bored writing the millionth jQuery popup, or won't give you that strange look when you ask them to fix the spelling mistakes on the site. Because the business problem you are having does not need software engineer superheros to solve. You don't need Average Joe yet, but no need for prima donnas either.
What's next - research
I've been watching university lectures recently and seen two exceptional - one from Stanford and the other one from MIT. And after years of "new jQuery xx version is out" type of "news" I was finally learning something again. I almost never envy anyone but interestingly the lecturers got under my skin.

They seemed to be passionate about what they were doing. They enjoyed the research their university was doing around that topic. They couldn't care less about the newest GCC or Java 1.8 because for them inventing something new was way above fancy tools or frameworks. So, do you want to do something that's not the everyday developer's job? Don't ignore research or even university research next time. Maybe I won't...
Agree / Disagree? Leave a comment!


  1. This comment has been removed by the author.

  2. Agree with most of the post. However regarding "we don't need rockstar programmers", I think sometimes a business does need a "rockstar". Sometimes a problem comes along in business that your average framework simply does not cover.