微软软件开发三宝

今天,对于从事软件开发的同行来说,无需我来具体解说微软的秘密到底是什么,因为微软在大力兜售《微软的秘密》中的秘密,这就是 MSF(Microsoft Solution Framework)–微软解决方案框架。在此我只想谈谈我个人感觉到的微软软件开发的三大法宝:三权分立式的开发组织结构;程序经理(PM)的“刀”;测试人员的“火眼金晶”

毕业后开始第一份工作时,我和同事们一道推行了IBM的主程序员制的软件开发组织框架。顾名思义, 主程序员制是主程序员为主导的人治,由他了解需求、总体设计、掌握研发计划。

而当我进微软中国研发中心后,有一点突出感受:大家之间非常客气,尤其是各专业分工之间、比如程序经理、开发(Developer)、测试(Tester)相敬如宾。完全不同于主程序员制下,有一技术大拿,而且开发在测试面前多少有些趾高气扬。

看过《微软的秘密》的朋友、或是受过 MSF培训的朋友、我微软的同事们(还在微软或已经出来的),应该能够理解我的这种感受。MSF是一种生根于美国的三权分立的政治文明的开发组织框架,在研发体系中程序经理、开发、测试也是三权分立的(产品经理算市场体系),代表着需求、技术、质量控制三种驱动力量的相互制衡。

微软在桌面软件上后发制人、横扫竞争对手,很大程度上是这种三权分立式的软件开发组织框架的功劳。MSF具有极强的克隆能力,微软只要抽调三个有经验的程序经理、开发、测试,马上能够带出一支新队伍,哪怕新招员工都是大学毕业生(微软还愿意招“未经污染的”新人)。所以那时,大家从来没有看到微有软扩张乏力的时候。而且依照MSF,在有明确竞争对手的市场上,不会犯大错误,这就是民主的好处!

程序经理的“刀”,也是一种个人感受。我做产品规划时(Product Planner, 研发体系中类似产品经理的角色),当看到程序经理制订研发计划、为了按时发布软件版本时,大刀阔斧地砍功能,我真的心如刀割!程序经理为何会挥舞“屠刀”?因为微软极度重视要按时发布软件版本,研发团队要向公司承诺、微软要向业界承诺,承诺发布计划,并要兑现承诺。

进微软之前,我从来没有看到软件公司像微软这样重视测试。首先测试的待遇基本和开发一致,为了保证实现平等,微软在文化上还特意予以强调。在实际工作中,测试拥有“至高无上”的地位。有一种说法“开发前期听PM的,开发后期听测试的”。开发后期,测试检测出来的Bug实际上就是高悬在开发头顶的鞭子。有了待遇、文化、地位上的保证,微软便拥有了测试的“火眼金晶”。

不犯大错,按时发布版本,保证质量,专注和坚持,因此我们看见微软在桌面软件上超越一个个竞争对手。

不过,微软会犯大错、屡见推迟发布:

  • 民主是保守的,群体思维特征往往会错过变革,而不像一个君主制的明君可以及早洞察趋势,发起、引导变革。Microsoft=Windows! Windows! Windows!的群体思维几乎让微软在Internet上犯下致命错误,差点被Netscape打翻。
  • 当微软试图继续在Windows为大家提供一个统一的“世界”时,我们便看到微软一再推迟发布Windows的新版本。因为这个“世界”太庞大了,项目组太大了,协同太复杂了。“安得倚天抽宝剑,把汝裁为三截?”

时至今天,信息技术如此深刻地融入社会的各个层面,引发了极其深刻的变革和创新,甚至开始营造现实社会之外虚拟现实,微软的软件基因–MSF需要进化了。自《微软的秘密》出版后,微软的软件开发再无秘密。

“比竞争对手学的更快是唯一真正可以持续的竞争优势。”

Contributors: FHL