浅谈技术难度与公司收益
朋友打算创业,找我聊了几次。他虽然不是技术出身,但也在网游业界混过几年,所以也很相信技术改变世界。今天他找我聊说起“云计算”,瞬间我就震精了。我劝告他说不要去炒这些概念,这些东西不是创业公司炒得起的东西,老老实实用最简单的技术做出东西来。为了让他更好的理解我的技术观,后来我给他画了这样一个图:
在我心目当中,技术难度的重要性,也正是如此:
一、在技术难度到达 1 号点时之前,技术难度对于收益几乎毫无影响。在我心目中,1 号点之前的技术难度的差别大概就是编程语言的选型,比如用C++ 还是用 PHP,用 python 还是用 Go;又比如是平台的选型,用 windows 还是 linux,用 MFC 还是 WinSDK。虽然 C++ 比 PHP 要难掌握得多,Linux 比 windows 也更难上手,但从商业角度看,在这个层面上,怎么选都无所谓,唯一要注意的是选“熟悉的、趁手的”,以保证 idea 能够实现,能够快速实现。这个层面上,商业 idea 要重要得多,如果水平都差不多,你用 C 并不会比用 php 带来更大的成功的可能性;而请一个二万月薪的人也并不会比请一个一万月薪的人更加靠谱。
二、当技术难度在 1、2 号点之间的时候,通常是你的 startup 已经成长起来,有了固定的忠实用户,并且新用户不断增长,而且商业模式开始明确起来,有了明显的技术压力,比如你的服务器开始经常宕机了。这时候通常需要做的是对之前实现的技术根据业务重点进行调优,比如开始把数据库分库分表,开始把一部分功能分到专门的服务器上(比如专门的图片存储服务器)。这个阶段,以“拆”为主,分而治之;在技术选型方面,通常都是仍然使用以前的技术。这时候技术难度与收益基本上是成正比的,你请一个五十万年薪的技术带头人,比请一个十万年薪的要有用的多。
三、所谓合久必分,分久必合,当用户越来越多,“拆”字决的神通就到头了。这时通常就得开始整合。抽取各种业务最基本的需求,然后实现一个极具扩展性的组件来作为平台。比如对于数据存储,这时会开始实现各式的分布式存储系统,提供统一的抽象的接口,只做数据的高效存取,比如手机之家前段时间所说的 DAL 2.0 就是(DAL开发人员自己的说法:http://club.blogbeta.com/25.html)。甚至会开始抽象出一类机制,超越策略的层面,比如 google 的 map-reduce 思想及其实现。这时候技术难度的重要性就表现出来了,在技术人员看来,这些技术难度只是提升了一点点,但在商业角度上来看,却能够给公司带来无穷大的收益。可惜的是这时候要提升一点技术难度也变得相当困难,所以很多公司做不大的原因是当他需要花大钱请大牛的时候,boss 和投资人的眼光仍然觉得技术不重要,白白错失时机。
关于技术难度与公司的收益的关系,我觉得之前豆瓣公司的洪强宁做的演讲极具价值,特意找来放在这里给大家参考参考:http://www.infoq.com/cn/presentations/hongqn-douban ,大家可以听听他的演讲,也欢迎大家留言讨论一下。
最后说一下我的朋友最终接受了我的观点,打算采用 PHP(或python)+ mysql + flex 的方式来制作 webgame,如果有朋友对这些技术熟悉,欢迎跟我联系(联系方式在“关于”页面),到靠谱的团队一起创造未来,小声泄一下秘密,他们给优秀人才提供分红。