大象vs蚂蚁

来源:互联网 发布:fastjson解析json 编辑:程序博客网 时间:2024/04/19 11:05
大象vs蚂蚁
黄国强 2004-12-22
 

    前两天,去参加了微软的软件开发高级管理培训班。有一点感想,与大家分享。
微软是软件行业的巨无霸、航空母舰。我所在的公司比较起来,可能算是一个蚂蚁。所以,一只蚂蚁要象大象学习,教条的照搬可能会死的会很难看。而且开发一个产品最终是否成功,直接的因素还是依赖于开发人员的软件方面水平。好的开发管理只是提高效率的手段而已,不要过于迷信。
    俄国作家托尔斯泰曾经说过:“幸福的婚姻都是相同的,不幸的婚姻却各有各的不幸。”微软这样一个25年历史,成功的软件公司应该而且肯定有值得借鉴的普遍规律性的东西。
    Joel Spolsky的一篇文章[1]比较详细的阐述了每日构建的必要性和重要性。他在文中提到“REP循环”(Rep loop)这个概念。REP是“读入,求值,打印(Read, Eval, Print)”的缩写。每日构建意味着自动地,每天,完整地构建整个代码树。你的工作过程是循环的。一个循环所花时间越短,你的生产力就越高。你必须想方设法使得报告-修正-再测试循环(Report-Fix-Retest loop)花的时间更少。
所以在这个微软的讲座中,也重点提到了以下三点:

* 源代码管理
* 每日构造
* Bug管理

我的理解,做到这三点所要追求的目的就是效率。这是我们应该抓住的主题。虽然目前我们项目组在开发上按照当前的框架基本上保证了最短的REP循环,但在发布这个环节上有很大问题。
鲁班钢筋的版本发布周期一般在一个月左右,每到发布前的两三天,程序员都忙于整合代码,做了很多与开发没有直接相关的事情,效率显然很低。考虑到又要坚持短周期发布的开发策略,我觉得从微软的那里还是可以学到一些做法。比如微软已经做到每日构建。近期我们可以考虑从每周构建做起,逐步过渡到每日构建。在这里,关键是自动,如果做不到自动,手工构建没有任何意义。