Thursday, September 13, 2007

If only I had a billion dollars...

... I would... no, it's easier to talk about you :-)

Assuming You want to start your own company, you will want to hire some programmers. You will absolutely have to, and the problem you will face is a problem of avoiding hiring dumb engineers because dumb engineers will ruin your business.

And oh my... Businesses in US are plagued by dumb engineers. There are many different factors that allow these unqualified individuals to get engineering jobs, lack of decent interviewers is certainly a big one. Few years back I got into a habit of going to interviews just for kicks, probably because I have worked for the same company for nearly five years and forgot how it was like. What I discovered was shocking: literally everyone can get a programming job if he or she simply goes to enough interviews and tells the same made up story in response to "so... what exactly did you do at company X? Your resume said you wrote reporting system using Java and DB2..."

I am talking 2002-2003 and since then job market has only gotten hotter.

Do Good Programmers Cost More?

What was even more shocking, however, that many of those jobs paid a lot more than my previous employer did. And that company was ridiculously over-equipped with brilliant engineers. Heck, even now, after 4 years, I keep thinking that an average programmer at "Company N" was magnitudes smarter than most "enterprise level senior software architects" with fat salaries I've met. I also hear that Google does not pay as much as most competitors but they somehow managed to hunt down and hire nearly every well known open source developer all around the globe.

You know what it means? As shocking as it may appear, money is not everything. Smart people like to hang out with other smart people. Similarly, mediocrity comes in volumes too.

The Church Method

Building a great R&D is almost like starting a church: the trick is to keep your "business types" in the basement and, most importantly, - pick the right God. Lisp or Haskell will probably work. Put it up on a banner real high! And here they come: your high quality parishioners... They will build you a highest quality Java-powered unbreakable billing system (or any stupidest data pumping software you may want) in no time. As long as you let them show up to work at 11am and worship their God as much and as often as they wish. And no meetings, of course. Just don't put "Java" in the job description and you'll be fine.

Those who are terrified by total absence of meetings are worried for a very good reason. If you do not have much to do in such meetingless environment, maybe your position should... (it is always hard to call someone else's baby ugly) ... not exist to begin with?

The Internet Approach

In fact I can propose even more radical way of building something great. Suppose you have money and you are looking for something "hi-tech" to invest in. You know what you can do? (Listen to this nearly anonymous advice from Internet, right?)

You can, using the church strategy described above, attract as many smart hackers as you can possibly find, put them all in one comfortable place and leave alone. No projects, no business people, certainly no marketing and "team building" bullshit. Just give them an opportunity to meet, co-exist and collaborate together. Give them computers and free beer. Give them Barnes&Nobles for life memberships. Give them cigarettes if you have to.

And I guarantee that a number of fascinating events will occur. First, this ecosystem of smart hackers will reject "false positives". Naturally, without any HR department or "project managers". They will be expelled by their superior peers and chased away. Then you will start seeing signs of self-organization and, finally - some bright sparks. Those will be semi-interesting projects here and there, probably one per engineer or two. Eventually the most interesting ones will gather followers and evolve further. Not-so-good ones will die off. And I bet, that given sufficient time, you may create something truly spectacular. Something that will revolutionize some markets or possibly create new ones.

Laugh all you want, but look at what Internet did. Well... it surely is responsible for many things, but think for a second about Linux phenomena. An operating system, especially as well featured and modern as Linux, is probably the most complex piece of software a mankind has ever attempted to create. The scary monster of corporate world, Microsoft, has miserably failed at it - they built just Vista and it took them 6 years! Yet an army of smart souls managed to self-organize and pull it off so seamlessly. The Internet only served as one "big comfortable room" that allowed all those processes I describe to take place.

On Commercial Innovation

But what if true innovation in a commercial software space is dead? That may very well be the truth. You know why? Because the coolest software projects, most of their code base, were written between 10pm and 4am. And those, folks, are not your normal business hours. Surely some code gets written and checked in before lunch. Remember the last time your browser crashed? That was probably it.

No comments:

Post a Comment