项目规划技巧对于现今的软件开发人员来说是必需的。这里有一些帮助您有效地进行下一个项目规划的建议。
认识到信心来自规划的过程,而不是规划本身。
创建项目规划会迫使您早在编写代码之前就考虑如何构建您的系统——减少项目的风险,因为您已经考虑了各种策略和方法并且已经选择了最有意义的一项。您的目的不应该只是不花气力产生一个规划;它应该是一个实际可行的规划,您可以根据它来成功管理您的项目。
软件过程推动规划的开发。
每个软件过程都有一个不同的集合,它包括组织团队的活动方法以及规划项目常用的技术。由于这个原因,基于RationalUnifiedProcess(RUP)的项目规划不同于OOSP项目的规划,而OOSP项目的规划也不同于eXtremeProgramming(XP)项目的规划。不同的过程有不同的规划。
从粗粒度的规划开始。
在项目将要开始时,应该制定一个粗粒度的、确定项目高级活动和预期里程碑的规划。粗粒度的规划将组织成迭代——根据项目的大小和性质,每次迭代通常在三周到八周之间发生(四周到六周为更佳)。其中一些迭代将集中在项目初期,而很多迭代将集中在整个应用的功能部分开发,还有一些迭代集中在将您的系统转变成产品。
实施者应该是规划人员。
创建项目规划的最佳人员是负责实施该规划的人员。当规划由一个人创建而由另一个人实施时,如果项目不能按时完成或超出预算,他们不太会相信规划,而很有可能会责备它。也就是说,参与项目规划的每个人都应该投入到开发和进展中。
不要忘记“不该忘记的事。”
项目规划不仅要反映需求设计、建模、编程和测试的“真实”工作,而且还应该反映辅助活动(然而仍是重要的),它包括:休假和法定假日、培训和教育、项目管理活动(如规划和人员管理)、开销(如系统当机时间、会议和回复电子邮件)、体系结构定义、测试之后的系统返工、系统交付、与重用相关的活动(如普遍化)。
将任何设想和约束编入文档。
规划时您总要作一些假设,如能够及时获得应用程序服务器的新发行版,或可以得到熟悉您正在应用的技术和技巧的开发人员。同时,您将在一些约束下工作,如影响规划的强制截止期限或资源限制。将这些假设和约束编入文档,这样,当您实施任何时候更新项目规划时,都可以记起您先前做出的一些“不寻常”决定。
认识到不同的资源意味着不同的规划。
十名有经验的开发人员组成的团队创造出的成效要远远多于十名初学者组成的团队所创造的成效。要想更加实际的话,您的项目规划必须反映可使用的资源的真实情况。
创建现实的规划。
项目规划组必须相信其项目的目的、估价和时间表。要做到这点,您必须真实地规划,避免规划超出您能理解的范围。仅当您打算研究未知事项时,才能容忍无知。
只规划有价值的事。
IBMDeveloperWorks网站提供了许多可应用于您项目的最佳实践。然而,根据项目的性质,不是所有这些技术都将适合于您的独特情况。要将这些最佳实践简单地看作是您放置在“项目管理工具箱”中的工具,您可以根据需要适当使用这些工具。
适当使用项目管理工具。
一些项目管理工具,如MicrosoftProject,提供了重要功能,如Gantt图表(活动时间表)的开发、规划与实际结果的比较、PERT图表(网络图表)的开发、任务的定义、任务之间相关性的定义、对任务的资源分配和资源平衡。所有这些事情似乎象是一个好主意,并且它们通常是好主意——但它们还需要许多精力来创建和维护,而且很少为项目组提供实际价值。的确,它让一些项目管理人员感到富有成效。的确,高级管理喜欢看见您有一个规划。但是,没有一行代码是由所有这个活动产生的。规划是有价值的活动;但投入大量的时间来创建规划图表通常不是有价值的活动。