项目计划技巧
对规划下一个项目的建议
Scott W. Ambler
总裁,Ronin International 2000 年 12 月 14 日
项目计划技巧对于现今的软件开发人员来说是必需的。这里有一些帮助您有效地计划下一个项目的建议。
认识到信心来自规划过程,而不是计划本身。
创建项目计划会迫使您早在编写一行代码之前就考虑如何构建您的系统——减少项目的风险,因为您已经考虑了各种策略和方法并且已经选择了最有意义的一项。您的目的不应该只是不花气力产生一个计划;它应该一个实际可行的计划,您可以根据它来成功管理您的项目。
软件过程推动计划的开发。
每个软件过程都有一个不同的集合,它包括组织团队的活动方法以及规划项目常用的技术。由于这个原因,基于 Rational Unified Process (RUP) 的项目规划不同于 OOSP 项目的规划,而 OOSP 项目的规划也不同于 eXtreme Programming (XP) 项目的规划。不同的过程有不同的计划。
从粗粒度的计划开始。
在项目将要开始时,应该制定一个粗粒度的、确定项目高级活动和预期里程碑的计划。粗粒度的计划将组织成迭代——根据项目的大小和性质,每次迭代通常在三周到八周之间发生(四周到六周为更佳)。其中一些迭代将集中在项目初期,而很多迭代将集中在整个应用的功能部分开发,还有一些迭代集中在将您的系统转变成产品。
实施者应该是计划人员。
创建项目计划的最佳人员是负责实施该计划的人员。当规划由一个人创建而由另一个人实施时,如果项目不能按时完成或超出预算,他们不太会相信计划,而很有可能会责备它。也就是说,参与项目的每个人都应该投入到项目计划的开发和进展中。
不要忘记“不该忘记的事。”
计划不仅要反映需求设计、建模、编程和测试的“真实”工作,而且还应该反映辅助活动(然而仍是重要的),它包括:
休假和法定假日
培训和教育
项目管理活动,如规划和人员管理
开销,如系统当机时间、会议和回复电子邮件
体系结构定义
测试之后的系统返工
系统交付
与重用相关的活动,如普遍化
将任何设想和约束编入文档。
规划时您总要作一些假设,如能够及时获得应用程序服务器的新发行版,或可以得到熟悉您正在应用的技术和技巧的开发人员。同时,您将在一些约束下工作,如影响计划的强制截止期限或资源限制。将这些假设和约束编入文档,这样,当您实施项目的任何时候更新计划时,都可以记起您先前做出的一些“不寻常”决定。
认识到不同的资源意味着不同的计划。
十名有经验的开发人员组成的团队创造出的成效要远远多于十名初学者组成的团队所创造的成效。要想更加实际的话,您的计划必须反映项目可使用的资源的真实情况。
创建现实的计划。
项目组必须相信其项目的目的、估价和时间表。要做到这点,您必须真实地规划,避免规划超出您能理解的范围。仅当您打算研究未知事项时,才能容忍无知。
只规划有价值的事。
IBM DeveloperWorks 网站提供了许多可应用于您项目的最佳实践。然而,根据项目的性质,不是所有这些技术都将适合于您的独特情况。要将这些最佳实践简单地看作是您放置在“项目管理工具箱”中的工具,您可以根据需要适当使用这些工具。
适当使用项目管理工具。
一些项目管理工具,如 Microsoft Project,提供了重要功能,如 Gantt 图表(活动时间表)的开发、规划与实际结果的比较、PERT 图表(网络图表)的开发、任务的定义、任务之间相关性的定义、对任务的资源分配和资源平衡。所有这些事情似乎象是一个好主意,并且它们通常是好主意——但它们还需要许多精力来创建和维护,而且很少为项目组提供实际价值。的确,它让一些项目管理人员感到富有成效。的确,高级管理喜欢看见您有一个计划。但是,没有一行代码是由所有这个活动产生的。规划是有价值的活动;但投入大量的时间来创建规划图表通常不是有价值的活动。
参考资料有关项目规划的详细信息,请参阅: Process Patterns -- Building Large-Scale Systems Using Object Technology ,Scott Ambler 著。New York:Cambridge University Press,1998。
"Enhancing the Unified Process",Ronin-International 白皮书,Scott Ambler 著,2000。
The Object Primer 2nd Edition Scott W. Ambler 著。New York:Cambridge University Press,2000。
The Unified Process Inception Phase,Scott W. Ambler 和 Larry L. Constantine 合著。Gilroy, CA: R&D Books, 2000。
Planning Extreme Programming,Kent Beck 和 Martin Fowler 合著。Reading, MA: Addison-Wesley Longman, Inc., 2000。
The Rational Unified Process: An Introduction, Second Edition,Philippe Kruchten 著。Reading, MA: Addison-Wesley Longman, Inc., 2000。
Software Project Management: A Unified Framework,Walker Royce 著。Reading, MA: Addison-Wesley Longman, Inc., 1998。 关于作者
Scott W. Ambler 是 Ronin International 的总裁,该公司是一家专门提供面向对象过程指导、体系结构建模和 Enterprise JavaBean (EJB) 开发的咨询企业。他自己著作了或者与其他人合著了几本有关面向对象开发的书籍,包括最近出版的 The Object Primer 2nd Edition,该书详细介绍了本文所概述的主题。可以通过 scott.ambler@ronin-intl.com 和他的网站 www.ambysoft.com 与他联系。