像这种天才型的特殊程序设计师,为了清静而把自己关在房间里很长的时间,而没有人知道他的工作进展,也 许是有发挥创造力的必要,但这对于如期推出产品而言是 冒着极大的风险,无论他多么优秀,领导者都不该把重要 的工作交托给他,除非让他与其他的开发人员一起接受定 期检查工作进度,而且对时限绝不宽贷。可惜有些天赋才 智恣意奔驰的人无法忍受这样的限制。在软件业中,这种 人确实存在,他可以做一些无法想象的创举(在实验室 里?),掀起一波技术的飞跃,但他绝对不会出现在矢志如 期推出产品的开发团队中。
不论是健康的或病态的闭关修炼者,允许一位开发人 员关在房间里没有人知道他的工作进度,结果通常会是开 发团队的致命伤。所以,一定得竭尽所能地避免这种情况, 绝对不要允许”没有检查点的组员“,否则你难逃失败。
下载法则软件要经常建构,就 能顺利推出软件通常是由许多许多程序组成的;程序写好后,经过编译器产生执行码,这个动作叫 compile, 通常如果是小而独立的程序,可选直接选择编译成可 执行档,但是以软件包或 C++之类的大型软件而言, 程序数目都在数百个以上,通常每个程序都是编译成 对象文件,即object code,然后众多不同的程序依一 定的结构关系组合成一个软件,这个组合的动作叫作 建构,build,产生的结果是真正可执行的完整软件。 每一套软件的建构方式多多少少都有些不同,原则上, 被呼叫的程序或函数库要先build,主程序最后build。
―译者注)将程序建构成软件才能推出,这个自然,总不能卖给 顾客一个不可执行的原始程序代码吧!但我的意思是要能 够经常且定期地建构软件,并不是到了期限前一天才建构 那么一次。你必须随时都让整个软件的现状都能被大家看 见才行。
在很早以前曾经有过一个案例,各个程序都按计划中的时间表进行撰写,个别程序的测试也完全正 确,但是到了最后却怎样也无法组合,各个程序就是 无法搭配。因为各个程序之间都有相互传递资料或先后连结的关系,或是其中有一个程序内有个无伤大雅的小瑕疵未被注意,但却在别的程序上造成大问题。 在写程序的过程中随时要注意我的程序能否跟其他所 有的程序相互配合,最好的办法就是常常 build,这 样才能做完整的测试。完整测试是 build最基本的目 的,所以作者就不刻意强调,但定期建构软件还有更 重要的益处。―译者注)你能想象几百位工匠蒙着眼睛盖一栋大楼吗?不知道 自己在盖大楼的那一部分,不知道这栋大楼现在盖到第几 层,只顾盖自己的部分,这种大楼怎会不垮呢?因此,经 常建构软件是非常必要的,这个法则的重点不仅是要在整 个开发过程中经常地、定期地建构软件,而且要尽可能建 构出现阶段最完整又最正确的软件,更重要的是建构出来 的结果要放在公开的地方,让每个人都能看到。
软件也许不必每天都做建构,但是一定要经常且定期 做,而且不只是程序要做建构,安装程序和线上求助的部 分也要包括在内,然后将建构出来的结果放在公开的地方, 让品保人员可以评估每天的软件状况,也可以观察出它发 展的情形,或是陷于停滞。规律建构软件是一项最可靠的 指标,表示团队的运作是否正常,软件是否能够完成。
丑媳妇也要经常见公婆软件的建构需要时间,程序也很复杂,值得你为它仔 细研拟最适当的策略。在微软内部有很多开发团队采取每 日建构的策略,并有专门的小组(build master)负责这项 工作。建构程序是很重要的,必须确定软件能够建构得起来,没有失败或中断。在每一只程序置入( check-in)开发环境时,会产生这一只程序需要的建构程序(通常是配 合适当选项的 compile),然后整合在整体的建构程序中。 于是其中任何一段建构程序发生问题的话,很容易找到由 谁来负责,所以组员的责任心和荣誉感会促使自己一定要 做出至少能够合格的程序,而每天的软件建构就会非常顺 利。当然你可以做得更严格,以我的经验,一天建构一次 是最有效率的方式(请参考下一个法则)。
有些软件公司每次的建构都是把所有的程序都一遍,然后build起来,有些则是将修改过的 程序compile,再build上已有的软件。由于全部 build 一次所需的时间可能太长,所以大部分的公司都采取 第二种方式。说得更口语一些,就是把其中的一块挖 下来改一改再嵌回去。当这段程序被认为 OK了,就 做置入的动作,check-in;每隔一定的时间,就有专 人把这些被改过的程序compile和build。―译者注)另一方面,项目经理应该是拟定最佳化的建构策略, 而不是绝对性的每隔几天做一次建构。不一定要每天做, 应该是采取对软件最适合又最小的间隔,重点是在能够建 构出软件的前题下,用最短的时间间隔建构出软件。
老实说,我并不知道软件”应该“采取多长的建构周期最好,但我非常相信大部分的软件公司在这方面都做得 不够。对某些开发团队而言,每天建构一次也许稍多,但 我很确定,对任何开发团队而言,每周建构一次绝对是最 起码的。
项目经理一定要时常看见软件的整体状况,才能明 了现在正在做什么。即使你的工作分配和检查点设置得 非常好,各个组员之间的信任与承诺关系也非常理想, 但若是无法建构软件,则你对进度的掌握将仅限于想象 和猜测,而不是根据事实,所以你还是不能掌握软件开发的真正状况。
每一次你建构软件,你就能算出错虫数目有多少,你就能掌握软件开发 的进度,你就能看见功能日益成形。
再者,为了让软件能够建构出来,程序必须维持在 一定的品质水准,太夸张的错误要立刻被发现,而且不 可能将软件倒回去重来。因此,每隔固定时间建构软件,才能够维持软件有一定的秩序和品质,这一点要让大家都知道。 更重要的是,定期建构软件就像是团队的心跳一样,每天五点(比方说),大家都看到今天整个团队的工作成 果,每天都看得到今天的进步,这对团队士气有很大的 鼓舞。如果有一天软件建构失败,或是为了某种原因而 不做建构,马上就会引起大家的注意和紧张,一定要找 出原因来改正。如果建构经常失败,这就是整个项目失 败的前兆。
但请不要搞混了,我所谓的软件建构,不是程序设计 师在自己的 PC上做的小规模的建构,而是指正式的、公 开的建构,将大大小小的程序结合成软件,而且是每个人 都能看见、能执行的软件。品保人员可以对它做初步的测 试(sniff test),看看它的基本功能大致上有没有错误。如 果你每天都做软件建构,你就很有把握它至少不会当得惨 兮兮,而且大家可以看见它朝着目标一天天地迈进,功能 特色一天天地成形;而且每个人都测试着相同的软件,对 于软件的现状也就会有相同的认知。
经常建构软件还有其他的好处:
经常而公开地建构软件可以看出组员彼此之间真正的信赖程度。只要有任何一个环节没有密合,软件就建构不起来,检视建构的过程就像是检视组员之 间或是团队对外的关系,在任何地方发生问题都很 容易找到。
建构出来的软件可以显露出在设计时没有考虑到的 问题,例如执行效能、对象大小等等,这种问题万 一发现得太晚就来不及修改了。
软件的建构会很自然地让组员的脚步一致。一般 而言,建构软件最常见的问题是版本协调,最严重 的是各人有各人的版本,谁都不知道别人在做什么 版本,有了公开建构的软件,大家的版本就可以同 步了。
建构软件可以促使组员面对他想忽略的问题。团队 恒等于软件,所以目前的软件状态就是目前的团队 状态。当我遇到产品有问题时,我追问组员:”我 们软件建构的情况如何?“答案很多种,意思只有 一个:”我们花很多时间才能成功建构一次,有时 候长达两个星期,我们希望时间能够缩短,但是因 为某些某些原因,我们没有办法照计划来建构。“是的,要频繁而规律地建构软件当然会有很多困难,但是解决这些困难却能够带来健康的团队和顺利的开发。
开发人员必须得自律,自己仔细检查所有的功能都完善了 才把程序置入,程序不仅要在逻辑上执行正确,还得注意 体裁(程序段落清楚)和资源运用(内存用完了要释回), 以及执行效能,如果个别的程序组件都很健全,就比较容 易建构软件,并且能够大大减少回溯检查的时间消耗。
在开发过程中,很容易对软件的状况产生错觉,但 是如果你每天都建构一次软件,你看到的将会是具体的 事实。
下载法则掌握实际情况这又是一个很简单又很有用的道理,引伸的意义是”每天都要有可以推出的产品“。 你必须对软件的实际状况知道得非常清楚,特别是要推出的时候,你必须知道它是什么模样,架构、特色、效 能特性等等。
小说推荐
- 我成了一本功法秘籍
- 我成了一本功法秘籍,好多人都想上了我…啊呸,是好多人都想修炼我 按照剧本,无数人打生打死争夺我,但都没抢到我,随后一个清秀的少年出现了 他是一个大家族的少爷,曾经是天才,但现在陨落了 他有一个未婚妻,但未婚妻退婚了 他还有一个青梅竹马,但青梅的家族很惊人,将青梅抓回去了 然后清秀少年无意中得到我,在
- 玄幻小说丹凤眸子完本
- 最新章:新书《最强书友》已发,有兴趣的书友可以来看看!!!
- 成功人士战胜疲劳的秘密
- “精疲力竭症”折磨着那些成功人士,他们发现自己的事业在心理上不再令人满意,或者已经开始威胁到他们的自尊心。我们的文化颂扬物质上的成功。然而,事实上,这种有缺陷的理想使越来越多的成功人士在经过多年努力才获得成功后,失望地想逃离他们的环境。一些企业家在经历过几年成功后请求打破金手铐的束缚,专业人士愿意放
- 名人自传未知连载中
- 最新章:第22章
- 穿成后宫小团宠:公主软又萌
- 穿成公主后,她只想混吃混喝,等皇帝老爹发驸马。谁知刚长到三岁半,便被卷入了宫斗之中,差点一命呜呼 看来做一个皇宫中的小透明不行啊!福枝公主从此开始了发奋图强,誓将争宠之路进行到底的宫斗生涯 想欺她年幼?呵呵“那你们记得为自己多烧几柱高香啊”福枝公主磨了磨牙,露出了一个人畜无害的软萌微笑 作者:临水颜
- 都市言情临水颜连载中
- 最新章:番外2
- 重生98,崛起从敲微软竹杠开始
- 1998年有什么?有刚出现的阿里巴巴和鹅厂。有余波仍在的亚洲金融危机 陆逸明重生而来,追寻逝去的一切 作者:临江仙所写的《重生98,崛起从敲微软竹杠开始》无弹窗免费全文阅读为转载作品,章节由网友发布
- 都市言情临江仙连载中
- 最新章:【评论区答疑以及新书计划】
- 微晶之秘
- 作者:倪匡第一节 茵斯布鲁克是奥地利境内,一个非常美丽的山城,四周高山环抱,形成阿尔卑斯山里的一个小盆地它一年四季,满山都是银白色的积雪,所以被称为“银色之城,冬季世运会已经在此地举办过两届了现在,正值寒风凛冽的深秋距离滑雪旺季已近,届时来自世界各地的滑雪爱好者,都将在此大显身手,观光看热闹的人更多
- 玄幻小说未知连载中
- 最新章:第25章
- 玉房秘诀
- 《玉房秘诀》内容简介:一本自日文翻译过来的性学宝典,是我在一本地下读物中找到的,有点儿残缺,而且好像翻译得也不怎么样。我只能用我有点瞥脚的日文将一些不足之外修订了一下,希望原译者能见谅。贴这篇文章是为了感谢小字辈网友,希望他会喜欢。xyg 警告各位淫民:性交可能会“搞出人命,因此大家可千万不要乱来。
- 现代文学未知连载中
- 精英律师团队
- 想组建一个精英团队并非易事,想融入一个精英团队更是难上加难!而法学学霸加校花的我—冰娜就无意间加入了这样一个精英团队,结果如何,慢慢听我讲吧 作者:淘气萌萌狗所写的《精英律师团队》无弹窗免费全文阅读为转载作品,章节由网友发布
- 都市言情淘气萌萌狗连载中
- 最新章:156篇 过渡
- LOL:我真是团队型选手
- 比赛关键局被教练叫上场的替补打野徐子淮输掉比赛被俱乐部解约成了背锅侠 沦为英雄联盟小主播的徐子淮在整活的道路上一去不返 国服曾经流传这样一句话“排到槐序不秒退,空看兵线两行泪 想要打野来抓人,付上两拨兵线的钱不过分吧 队友“打野别来上,来就15点了 队友“打野别来中,来就挂机 队友“点了点了,玩个勾
- 网游小说写书的槐序连载中
- 最新章:完结感言
- 软萌团宠她又作妖了
- 【全文超甜,甜到齁牙【爽文爽文,爽到刺激 黎锦,一个让人闻风丧胆的反派大佬,某天居然被一个奶娃讹了“粑粑“滚,我连婚都没结哪来的孩子 众人以为这个小奶娃会被暗杀掉,可为什么平常沉默寡言的反派大佬宛若变了一个人,每天追着一个奶娃跑,不仅如此小奶娃居然还当众嗑起了一种奇怪的CP 因一抱产生缘分的青梅竹马
- 都市言情是你的柯柯吖连载中
- 最新章:第二百零四章 两年后