您的位置:首页 > 其它

<<软件研发之道>>经验法则5---搜集情报

2012-10-27 19:54 465 查看
转载自: http://book.51cto.com/art/201107/277213.htm



参考书籍<<软件研发之道>>





经验法则5 搜集情报

在开始下一个项目之前,你需要搜集相关的情报。

侦察员负责大部队的侦察和警戒任务。他们查看地形和资源,寻找安全的宿营地,确定最佳行军路线,并负责警戒,随时关注敌人的动态。从远古时代起,每次在大批军队踏上危险的征途之前,他们都会派出探子搜集相关情报。对于软件开发团队而言,软件项目无异于一次危险的征途,因此,派一两个精明的团队成员提前刺探下一个项目的情报也显得非常重要。

侦察员能够提前探查出相关的情报(即将发布的操作系统版本,或团队将要用到的其他技术,或影响到下一个项目的技术),以及同时由其他团队开发的技术。侦察员还可以创建或更新多版本软件的开发计划(请参阅经验法则3)。他们会拜访客户,接受关于竞争性技术的培训,进行必要的采购,并为下一个项目提供方法和流程。

侦察员应就最低硬件配置提出建议,分析各种开发工作的资源需求,准备原型,并针对下一个版本提出动议,或确认其必要性。他们应根据团队在当前项目中遇到的困难,推断出下一个版本中重要问题的解决方法。

侦察员的作用无穷无尽。如果没有侦察员为团队"探明前进方向",在多版本的项目开发过程中,你注定会茫然不知所措,陷入混乱和举步维艰的境地。虽然通过侦察员,你不一定能搜集到全面的情报,但如果没有侦察员,你的开发工作肯定会一团糟。

展望未来

最近我接触到一家大型公司的MIS团队,在大约3年的时间里,这个团队成功地将公司内部的数千名用户由使用大型主机的终端转变为用局域网的运行Windows系统的电脑上。可以想象,这是一项非常复杂的任务,需要长期投入大量的人力和财力。同时,在经历变革的过程中,组织也会承受相当的痛楚。

成功部署运行Windows的电脑后,目前该MIS团队正在努力开发一项新技术,以充分利用公司内部现代化的高效硬件。他们正在开发的新型分布式应用是他们以往投入的所有努力和资金第一次要获得的巨大回报。他们希望这款应用能够实现每年数百万美元的成本节省和利润增长。

负责开发这项新技术的团队成员有近100名,他们分别来自不同的领域,但主要是开发人员和质保人员。其中大多数开发人员和质保人员或者是新加入公司,或者是新接触这项技术,或者对公司和这项技术都不太了解。以前,该

公司从未开发过"任务关键型"应用。可以想见,他们在完成这个项目的过程中遇到了大量问题。我认识他们时,他们的进度已经延后几个月了,预算也严重超支,而且这项技术的交付时间(无法更改)也即将到来。

从他们开始部署电脑硬件到现在,已经过去3年了。因此,他们开发的新型应用所针对的硬件已经至少落后了一代,运行这些硬件的网络使用的是过时的协议,其操作系统现在更是已经发布了两次新版本。而且,他们使用的开发工具也比当前版本低两个版本,操作系统新版本又迫在眉睫。在这3年中,硬件价格大幅降低,处理能力则大幅提升。今天的电脑商店甚至已经不再出售他们使用的电脑。结果可想而知,如今他们似乎不大可能交付他们的"首款"应用程序。

我禁不住想,如果他们提前就派出侦察员搜集情报,现在也不至于陷入如此窘境。他们已经做出了许多决策,特别是为他们的工具和操作系统做出了软件决策,这些决策全都基于一种固有而又看似谨慎的保守主义:"我们不需要做出任何改变,它现在差不多能够运行就好。"如果他们深入调查过将要面临的兼容性问题,保持采用最新的软硬件版本(他们现在使用的全部是较低的版本),他们就会明白,本可以使用最新版本的工具进行开发,并且选择性能大幅提升的操作系统,为此多投入些资金也是值得的,因为他们期待从新型应用中获得巨大的利益。他们本可以确定需要采用何种方法来保持或巩固他们的技术优势,而不是因为使用过时的工具而眼看着这种优势丧失殆尽。他们本可以有更多选择,虽然他们自己并没有意识到。

幸运的是,这个勇敢的MIS团队最终成功部署了他们的新型应用程序。在取得成功之前,面对关乎自己职业生涯和公司命运的紧要关头,他们设立了两个侦察员职位,派遣这两名最优秀的开发人员去了解即将推出的技术产品。

对于开发人员在项目开发过程中遭受的痛苦和煎熬,我深表同情。技术变革的速度如此之快,组织如果反应不及,就可能遭受灭顶之灾。有些技术我们可以不必采用,但有些技术则应该坚决采用,而且尽快地采用,因为它们能够弥补现有技术的不足。是的,采用某个产品的"0版本"让你觉得很慌恐。但是,你从"版本7"升级到"版本8"也同样如此(甚至有过之而无不及),升级可能带来灾难,也可能是一次巨大的技术成功。但是,如果你的决策基于深入的调查,并制订了合理的技术计划,探明了从属关系,那么,乐于变革将成为你最终致胜的竞争武器。

我在本书的几个地方都提到一个基本的观念,即不要放慢变革的步伐,或者不要满足于稳定的局势,而是要勇于变革,善于管理处在动态发展中的技术。舞动之姿要美于静止之态。相比于死板、一成不变的软件,保持动态变化的软件具有更强的适应性和自我实现能力。只有那些保持活力、处在动态发展并不断进行迁移的组织需要设立侦察员的职位。如果你所在的组织一直停步不前,你就不需要侦察员。

使用侦察员可能会引起问题。如果侦察员没有深入理解多版本的技术计划,那么,他们就搞不清侦察的对象。或者,他们可能会把自己的工作任命看做是一种"沙盒"任命。他们需要敏感地意识到,自己肩负着重大的责任:如果他们选择了错误的操作系统或工具,整个组织可能难逃失败的噩运。

当然,侦察员也可能过于强调自己肩负的责任,因而变得妄自尊大。有时候,侦察员会剥夺非侦察员的权利。如果侦察员认为自己的工作将"决定一切",其他团队成员自然会心情不好,因为他们也认为应该掌握自己的命运。如果被剥夺了地位、权力和展望未来的乐趣,其他非侦察人员还会觉得自己已经不再受重视。他们可能会怀疑,为什么整个团队不将所有精英投入到交付当前项目这个压倒一切的任务上:"我每周工作70个小时,而玛丽(侦察员)却在悠闲地看书!"如果派遣团队中最有才干、可以为当前项目贡献最大力量的成员去完成侦察工作,其他团队成员难免会产生这样的抱怨。但他们其实是应该做侦察员的。

对于侦察员的工作,其他团队成员可能会感到嫉妒。侦察员看似要比开发人员好得多--更酷、更"高级"、具有更强的"研究能力"。做几个月(通常时间已经足够长了)的侦察员是一件很酷的事。你将了解所有最新的软件,会见供应商和合作伙伴,摆弄产品原型,并影响团队的迁移方向。但是,侦察员并不负责设计下一款产品。侦察员负责所有外勤工作,为在团队成员之间建立共识(开发出伟大软件的先决条件)做好准备。如果你的团队成员信任你对于共同前景和"授权式共识"所做的承诺,那么,当你派遣他们中的精干之士去开辟一条通往未来的道路时,他们会更加乐意。

与项目团队遇到的其他问题一样,团队成员对于你采用的"授权式共识"管理风格的认同程度,将决定你成功任命侦察员的难易程度。因此,你是否会被技术变革的洪流淹没,也将取决于你向每一名团队成员所做的"授权"承诺。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: