应用程序开发:如何应付不合理的项目估算
日期:2006-11-18 荐:
当你面临一个不合理的项目要求的时候该怎么办呢?你可以只是集中于项目技术方面的挑战而后不管那不合理的时间估算,但是那对你的职业生涯不会有任何好处。
幸运的是,有这种方法的替代品。下面是几个建议,给那些希望不论遇到了什么样不可能完成的要求也希望达到他(或者她)的企业的目标的开发者--这些开发者还会希望避免由于这种不现实的时间表而造成的大量延时。
功能选择
非常有可能的是,你要在很短的时间内开发一个或者多个功能。市场部会告诉你所有这些功能对于产品的成功都是关键性的。在市场部严密的分析下,它认为每一个功能都是“不可或缺。”(如果这总是对的话,那么为什么在临近时间期限的时候,有那么多的功能因为赶工期而被删除了呢?)不是所有的功能都一样重要。从技术的角度讲,精密的评估哪些功能是容易实现的,哪些是比较难以开发或者哪些功能在稍微修改一下需求以后会变得更容易开发的这个过程是非常重要的。
与那些项目的使用者以及那些对商业问题有一定见解的人一起工作,你就会明白哪些功能具有更高的优先级。在你的技术评估和他们的商业需要之间,你应该要能够分辩出哪些功能是最划算的。
在项目中早早的将那些垃圾功能转包给别人是不可能的,但是一旦你预先知道了什么是关键的什么又不是关键的,你就能以更聪明的方式完成这个项目。只要你作了这种功能选择,你就能够开发一个原形计划。
准备好一个发布版本
在面临一个不合理的项目截止时间的时候,你必须总是为你的应用程序保持一个工作版本。然后快速的工作!你可以开发一个包含了最容易的功能的初始原型。第一个原型的目标是建立快速的成功并获得项目向前发展的正面的推动力。一旦第一个原型以经完成而且工作正常,那么你就可以开始在原型中加入更复杂的功能了。原型下一个循环的目标是更好的理解更复杂的功能。把阻止你开发这些功能的东西列在表上然后在你开发未来的原型的时候尽量为它们找到答案。
使用这种方法,你将总是有一个可以发布的程序。如果在你全部完工以前规定的时间到来了或者有人提前了时间,那么在这个时候你还是有一些可以摆出来的东西。如果你不用这种方法,那么你有可能完成了百分之八十的任务但是没有什么可以实际使用的东西来展示你的成果。另外一方面,如果你的屏幕上只是缺少几个菜单选项,PF键,或者控件,那么也比不得不到处游说来延长工期要强得多。
协商减少功能的发布
一旦你对一些功能有了一点点经验,你就能够更好的确定要完成剩下的功能所需的努力。有了这些经验,你就能够作市场部门和项目经理的工作,建议他们把一些功能推迟到后面将要发布的版本中去。你可能还能够向市场部门提议一个更简单的功能并将一个更复杂的功能推迟到以后的发布版本中去。
寻求帮助
在项目中加入一些人可能会有用--但你要小心使用这些额外的资源。这种帮助是很小的,而且会有一些局限--甚至是帮倒忙。确定你是否能够让某人尽可能多的处理边际的任务。这些开发活动不会直接影响到你的开发工作。文档是重要的,但如果它需要进行研究的话,你是不是唯一能够做这件事的人呢?软件支持人员(不,我指的不是技术支持)能够帮助你进行状态报告的编写或者跟踪用户调查的反馈信息呢?所有这些资源能够帮你提高生产效率。
如果有人建议加入更多的程序员,那么你应该记住 Brook 定律:“向一个已经延期的软件工程添加人手只会让它的进度变得更慢。”记住下面的问题是重要的:
要使这些后来的程序员将他们的开发速度提到正常的水平上来需要一定的时间。
不是你所有的工作都能够被简洁的分割然后让多个程序员每个分一片并独立的完成它们。
参与项目的程序员越多,交流的问题就越大。
总结一点就是:小心的采用在你的开发团队中加入程序员的建议,但是积极的从秘书、助手和用户那里寻求帮助。
Brooks定律
Frederick Brooks, Jr. 是 IBM OS/360 项目的项目经理,而且是 Mythical Man-Month 的作者。这本经典的软件工程书指出,交流的困难,培训,重新分配任务和系统测试方面造成的阻碍比增加程序员带来的好处要大。据 Brooks 称,“更多的软件工程是因为缺乏完工的时间而走上歧途的,而不是因为其它所有的原因。”
软件重用
如果你的公司已经开发了一个供重用的软件组件库,那么在你的程序里集成进一些现存的代码也许能够节省你的时间。当然,评估你所使用的任何组件的质量是重要的。你不会想使用那些满是错误的代码。
还有,你不必在一个面向对象的环境中重用代码。如果你使用的是一种非面向对象的语言比方 COBOL,你也可以找到一些程序来作为你的新程序的模型。但是要记住有时理解另一个人写的代码比自己重新写一个要花更长的时间。
咨询专家
通常,你可以从那些已经走过你这条路的人那里获得一些经验。你应该向你的公司里的专家咨询看看他们是不是能够提供一些建议并和你分享他们的教训。
不要让它把你吓倒
下一次你遇到不可能完成的项目时间表的时候,不要认为你注定会挂。在你怀疑的感觉过去以后,遵循上面的一些技巧吧。很有可能的是你在遵循了上面处理这种情况的方案以后你会活得更轻松。你甚至会成为一个英雄的。
(ZDNET CHINA 2001年10月24日)
标签: