6 遇人不淑 (Hiring Bad Programmers)
在早先的清单里我忘了列上这一条了,因为我所碰到的创始人大多是程序员。对于他们来说,这不是什么大问题。就算他们偶尔雇用了一两个差劲的程序员,也不至于天就塌下来了。紧要关头,他们都可以亲自操刀上阵,力挽狂澜。
不过,当我回溯 90 年代那些倒闭的电子商务初创公司时,却发现正是差劲的程序员毁了那些公司。很多公司都是由商业领域的人员创办的。他们以为初创公司就是有个好的点子,然后雇用一批程序员来实现它。这真是想得容易做的难。这些商业领域的人员根本就无法区分程序员的好坏。他们甚至接触不到最好的程序员,因为没有哪个程序高手愿意去实现一个商人的构想。
事实是,这些人招募了一些他们以为是好的程序员(至少这些程序员的简历是这样吹嘘的,什么微软认证的开发人员了,等等),但实际上却难副其实。接下来他们就会很困惑地发现,自己的公司就像老牛拉破车一样吱嘎吱嘎,而竞争对手们却跟坐了火箭一样。这种初创公司具有那些大公司的所有缺点,却没有那些大公司所具备的优势。
如果你本人不是程序员的话,怎样才能挑选好的程序员呢?我不认为有什么好办法。我本来想说,你可以找个程序高手来帮你做这件事儿。但问题是,你怎么找到这个最初的程序高手呢?
7 开发平台选取不当 (Choosing the Wrong Platform)
同上面一条相关的问题是开发平台选取不当(通常差劲儿的程序员都会犯这个错误)。我认为,在经济泡沫时期,很多初创公司都因为在 Windows 的平台上构建基于服务器的应用而身陷泥沼。Hotmail 在被微软收购若干年之后仍然运行在 FreeBSD (译者:一个 Unix 平台)上,估计是因为 Windows 无法胜任其负荷。假如 Hotmail 的创始人选择了 Windows 的话,他们很可能早就失败了。
PayPal 刚刚躲过了一劫。在同某个dotcom合并后(译者:这里应该是指 eBay,不知道作者同 eBay有什么过节?
),新的 CEO 想要转到 Windows 上——尽管 PayPal 的联合创始人马克斯·莱文奇恩(Max Levchin)向他展示过他们的软件系统在 Windows 上的处理能力只有在 Unix 上的百分之一。幸运的是,最终他们换了 CEO,而不是操作系统平台。
平台是一个很模糊的词。它既可以指操作系统,也可以指编程语言,或者是编程语言之上的框架结构。它所隐含的意义,既包含了支持,也包含了限制,就如同房子的地基一样。
你不得不慎而又慎地选择平台。有些平台,对外行来说,似乎是很好的、很负责的选择,就象 90 年代的 Windows 一样;一旦你选了他们,就无异于自掘坟墓。Java applets 大概是最典型的例子了。它曾经被人们认为是发布应用的新途径。结果却是,100个对此深信不疑的初创公司里,就有 100 个被毁掉了。
怎样选取正确的平台呢?通常的办法是招些好的程序员来让他们选择。如果你自己不是程序员的话,也有一个小窍门:到顶尖的计算机系里参观一下,看看他们在科研项目里都使用什么。
8 发布迟缓 (Slowness in Launching)
所有的公司,不论大小,在完成软件之前都会有一段困难时期。从某种意义上说,这是一种固有的特性;软件的完成度永远都是在 85% 左右。你需要有极大的毅力来推动软件的完成并向用户发布。[3]
初创公司总是用各种各样的借口来为推迟发布辩解。这些借口跟人们在日常生活中为自己的迟到所找的理由大同小异:总是有一些事儿要在这之前办好。也许吧。不过假如你的软件已经全部完成,按个按钮就可以发布的话,你还会等吗?
尽快发布的一个目的就是迫使你完成应该完成的工作。一个软件,只要还没有发布,就不算真正完成。不管你认为这个软件已经如何完善了,在临发布之即,总还是有一大堆的事儿要做;这种情形已经司空见惯了。发布的另一个目的就是,只有通过用户反馈,你才能真正明白要做什么。
有一些问题,同发布延迟是有联系的:工作节奏太慢,没有真正搞清楚问题,惧怕同用户打交道,害怕别人的评论,分心过多,过于完美,等等。解决这些问题,只需要推动自己尽快发布一些东西就可以了。