为共同的远景而工作(Work toward a shared vision)
“共同的远景”是指产品的远景。我们做一个产品,不管是应用软件、行业软件,还是通用软件,要明确项目的目标是什么。
- 这个目标必须是明确的,没有二义性;
- 这个目标不是当前就能达到,必须是通过努力才能达到的;
分而治之(Work Breakdown Structure)
一个团队项目要在一段时间内完成诸多任务,满足用户的需求,实现团队的目标,同时还希望项目能维持良好的技术架构,以便持续开发,千头万绪,从哪里入手?WBS就是一个例子
WBS通常从最终的产品开始,一层一层往下,把大型交付件(Deliverable)分割为小型、具体的交付件。这样的分割可以持续下去,直到WBS的使用者(开发团队、接收方)达到共识。
从数据结构方面来看,WBS分割的结果是一棵树。所有子节点都最终有一个根节点。每个节点描述的是要交付的产品或文档,而不是开发团队的努力或花费(各个叶节点的成本可以作
为次节点的属性展现出来)。做好WBS的几个要点:
- 保证所有子节点覆盖了全部父节点包含的内容
- 保证各个子节点不要相互覆盖
叶子节点要保证足够小,能在一个里程碑中完成。在通常的软件项目中,叶节点的成本最好不要超过两周。如果团队成员从常理出发,认为叶节点不宜再分下去,那就可以停止
从结果(Outcome)出发构建WBS,而不是从团队的活动(Action)出发。
这就是面对项目时团队应该如何去推进,而不是去抱怨时间不够,任务太多。