2009年9月16日 星期三

The 18 Mistakes That Kill Startups

6. Hiring Bad Programmers

I forgot to include this in the early versions of the list, because nearly all the founders I know are programmers. This is not a serious problem for them. They might accidentally hire someone bad, but it's not going to kill the company. In a pinch they can do whatever's required themselves.

But when I think about what killed most of the startups in the e-commerce business back in the 90s, it was bad programmers. A lot of those companies were started by business guys who thought the way startups worked was that you had some clever idea and then hired programmers to implement it. That's actually much harder than it sounds—almost impossibly hard in fact—because business guys can't tell which are the good programmers. They don't even get a shot at the best ones, because no one really good wants a job implementing the vision of a business guy.

In practice what happens is that the business guys choose people they think are good programmers (it says here on his resume that he's a Microsoft Certified Developer) but who aren't. Then they're mystified to find that their startup lumbers along like a World War II bomber while their competitors scream past like jet fighters. This kind of startup is in the same position as a big company, but without the advantages.

So how do you pick good programmers if you're not a programmer? I don't think there's an answer. I was about to say you'd have to find a good programmer to help you hire people. But if you can't recognize good programmers, how would you even do that?

[From The 18 Mistakes That Kill Startups]

This somewhat echoes The Problem with Design and Implementation where the author of the other article complained about the separation of the domain expert and the implementor.

Defining a 'good programmer' relies not only on the programmatic skill, but also the intellectual ability to understand and study domain-specific knowledge, you can't really program a bond calculator without knowing the underlying math that defines a bond. It would be naive to vaguely describe a bright idea and expect the programmer to 'just get it' and do it right. It is not that easy.

沒有留言:

張貼留言