前一篇文章介绍了项目章程的checkLists,有了项目章程,每个团队成员就可以对自己接下来要干什么做些有明确方向的预先规划——或者,也可能提早知道自己还没有明确的方面。有了项目规划,就可以把团队成员的注意力聚集到预期的项目产出上来
一、使项目足以启动的规划
章程有了,规划是什么?管理层希望知道团队什么时候开发哪些特性。如何测量进度?项目何时完成?
1、使用时间盒来限制和启动规划活动
时间盒(timebox)是指特定的时间长度,个人或团队用它来完成某项特定的任务。个人或团队在这段时间内完成的工作量,就是项目接下来的工作的基础。如果有必要,个人或团队可以减少工作范围,以保证在“时间盒”内完成工作
二、开发项目规划模板
项目规划模板:
1、产品意图
简单描述产品,为什么公司要开发这个产品,它能为公司带来哪些效益
2、历史记录
如果是在管理某产品的后续版本,比如4.2版本后的4.3版本,就要复查之前或相关版本的历史记录。这个历史记录可以说明之前任何已知的技术债务
3、发布条件
要详细列举出项目产品的关键可交付物。想识别出它们,不妨问一问:“要是不那么做,我们还能发布产品吗?”
要将功能、性能和质量要求都涵盖在内
4、目标
已知的目标也许隶属于以下几类。
1)产品目标也许包括这样一些需求,它们已经被设定好优先级,但是不承诺在当前发布版本中完成。这个列表也许已存在于产品的待办事项中。
2)项目目标也许是诸如性能标准之类的目标,对它们的要求会高于一般需求,或者是“在产品交付时,要将未解决缺陷的数目从50个减少到40个” 。尤其是在管理一个工程的情形下,每个子项目的目标要特定于该项目所在的领域。项目团队要解决某些特定的技术债务,也许也可以作为项目的目标。
3)团队目标可以是“增加产品的自动化冒烟测试所占的百分比”。团队也许希望改进某个特定功能的性能或可靠性。
4)组织目标可以是“减少项目的耗费时间,以提升组织的敏捷性”。
5、项目组织
1)要明确说明团队在项目中的职责分配,指明项目经理如何使用生命周期组织项目工作,要采纳哪些关键实践,以及是否有决策人可以影响当前项目
2)要说明项目的一般运作方式。比如,在项目启动时加强整个项目团队意识,招聘新人,开发包括代码和文档在内的完整功能,编写所有的代码,同时检查一下(在那个时间)可以记录些什么,诸如此类的事情
6、日程总览
应该创建一个日程总览,其中标有主要的里程碑,还要说明人们从这些里程碑处可以得到什么。如果使用迭代或增量式开发,要解释迭代(或增量)的持续时间,并说明在每个迭代(或增量)结束后可以预期得到哪些产出
例如:
Java代码
- 日期 里程碑
- 2月1日 项目启动。
- 2月15日 向客户展示Web界面的原型。
- 2月30日 进行第一轮迭代开发。
- 3月15日 内部交付Web界面。
- 3月30日 发布beta版本,让客户进行试用
- 4月1日 开始beta测试。
- 4月30日 结束beta测试。
- 5月30日 系统上线。
7、人员配备(人员曲线)
很多项目经理不能控制项目团队的人员配备。如果在项目开始的第一天就把所有的人都召集到位了,那么出现人员变动可别吃惊。如果需要从其他组或是团队中调动人手,要在这里说清楚:要在何时需要多少、何种类型的人员
8、建议日程
项目经理要根据理解程度,列出主要的里程碑
9、风险列表
在项目规划中,至少要将排名前十的风险记录在案。还要经常监控这些风险,并在适当的时机更新这个列表。如果觉得项目目前的风险不到十个,不妨跟项目团队一起坐下来,进行一次头脑风暴