看到微博上《程序员杂志》在征集"一分钟先生"的话题:如何做好公司/团队的技术选型?其实大公司或者大一点的团队选型几乎不需要太多讨论的 -- 最后会不可避免的绕到技术官僚的话题上去。这里我想简单说说技术型创业团队技术上的选型问题。
拥抱开源技术
如果只能选择微软的技术路线,比如团队几个人只会用微软的技术做开发,甚至也不想学别的,那么似乎没有别的办法,将就一下吧。如果还有的选择,尽量选择使用开源技术。这样的好处是你不但可以有效的降低软硬件成本,还有更多的部署方案供选择,服务器上线甚至还能避免病毒的侵袭。开源技术的好处是出了问题,你总有办法可以找到答案,避免再次犯类似的错误。而用了微软的产品之后,可能平时不出问题,但一旦出了问题,你根本没什么办法,实际上,微软的产品使用门槛倒是低,但是复杂度可是一点都不小,而且随着发展,成本越来越高。国内有几个大中型网站,比如天涯、5173、大众点评、京东等,怕是深有感触吧,有的因为成本太高而继续被捆绑在贼船上,有的则破釜沉舟要摆脱这种束缚,但不管怎么说,总要付出一定的开销才可以掉头了。
好了,恭喜你选择了红色药丸,现在选择开源技术路线了,离开了微软的专卖店,进入到一个超级庞大的百货商店,这里还有数种分支供你选择呢,然后怎么办?选择大路货,选择可以掌控的技术产品,开源语言、开源程序、开源框架,乃至开源的解决方案。比如 PHP,比不上 Ruby 阳春白雪,但是用户基数大,你总能找到不错的工程师。PHP 虽然粗糙,但是管用。以PHP 作为开发语言的成功产品不计其数,甚至很多东西根本不需要你再开发了,稍加定制即可使用。技术本身没有高下之分,差别在于使用技术的人。
Note:Paypal 和 X.com 合并之后,果断的将整个架构从微软的平台迁移到 Unix 平台;用微软技术体系构建的 MySpace 至今还在用微软的平台,被全面使用开源技术的 Facebook 短时间内全面超越。技术体系的选择是成功与否的唯一因素么?肯定不是。但至少是因素之一吧。
避免过度炫技
技术人员创业最容易犯的一个错误就是"炫技"。什么新用什么,使用最时髦的开发语言、部署的软件产品、调试最新版本的开发工具... 没错,用最新的东西容易给技术人员以满足感,但也很快会将你的时间资源消耗进去,除非你准备做的是一款基础产品。否则的话,你要花时间去学新的规范、熟悉新的功能、对付新出现的软件BUG... 可是这时候,最需要你做的是开发你要开发的产品,而不是捣鼓其它东西。一些新的技术或者方案,可以花一些时间分析一下但没必要立刻就用,确保将来有一天能真的使用上的时候,对一些重大的陷阱或是缺陷能够了然即可。
很多人神往 37Signals 的成功,但你一定要知道类似 37Signals 的团队,默默无闻的夭折掉的不知道有多少。每当我看到创业团队的就那么一两个人还整天在捣鼓 Go 、Erlang 这些东西,并想硬生生的用到他们的产品中去,我就知道,这样的团队要悬了。有这些精力,有这样的能力,应该想办法尽快让技术变现,研究一下怎么改进产品,怎么给用户带来更大的价值,这些不一定用最好的技术才能做出来。想办法尽快让产品发布,尽快接受更多人给你第一轮反馈,只凭创业团队几个人闭门冥想是很难出来好产品的,有的时候,产品推出的时机比完备的功能更为重要。要知道 GroupOn 最早也不过是搭建在 WordPress 上的几个页面,而阿里巴巴网站最初也不过是一个论坛,你又何必等到所有细节都打磨好呢?
拥抱开源技术,避免过度炫技,如果技术型团队创业(做互联网),这两条都能坚持的话,我想你已经抓住了问题的 80% 的部分,基本上你不会做太多的无用功。
再说说如何找到合适的技术伙伴,刚刚启动的时候不要直接上来就找什么技术总监、技术经理、架构师这些看起来级别很高的人,因为这样级别的人未必认同你的想法和你的现在的团队,相反,我建议找能实现你产品想法的人。找一个合作者要比找一个管理者更为重要。最后有一点必须要说一下,不要因为一个人的技术喜好而舍弃整个技术团队,在任何时候这都是很愚蠢的事情。
这篇文章是比较有针对性写的,所以不具有普遍性,路过的朋友不要挑刺。
--EOF--