本文为软件工程经验总结系列文章的第三篇,按照总论文章所设立的范围划分,本阶段重点讲述计划阶段的控制过程以及控制思路,笔者所站在的角度是乙方角度来进行表述整个阶段的推动过程,但对于甲方公司其基本思路是类似的,只是控制方向与目标略有不同,本文对甲方同行同样具备借鉴意义。
在这个阶段,简单地来讲就是分析项目所面临的任务,进行对应的工作量拆解与评估工作,明晰自己的项目目标与任务,并且对自己所拥有的资源进行归类分析,近最大努力来最大化各个资源的产出效率来达到整个软件工程的最优化资源的配置与产出,并且依照此规划来排定自己的作业计划:
1.工作量分析与评估;
2.可用资源列表;
3.主计划制定与里程碑约定;
在计划阶段,作为项目经理必须在BA(Business Analyser)的辅助下,对项目的目标与任务、工作内容以及边界了解清楚,并且针对技术的难点、工作量等需要做比较细化深入的研究分析,更快速地针对项目中可能会碰到的重大技术问题等进行对应的定位,同时安排技术预研小组开始着手技术的研究工作,本阶段要解决的问题就是三个:工作量、资源列表、计划安排。
对于工作量这个问题,需要依照合同里面的SOW来约定项目的整个工作范围以及边界问题,这里有个特别重要的问题这个范围定义的第一个基准就是SOW,但大多数时候问题是SOW里面的需求其实并不太清楚,因此在项目开始的阶段就需要跟商务控制人员就项目的范围进行沟通、跟客户的项目经理以及Stakeholder这3个关键角色需要进行沟通,了解客户的基本需求,同时一个重要点是项目经理对于客户的需求以及可能包含的细节以及可能的变化等必须有一定的预见性,并且在工作量的预估里面做适当的预估来确保后续整个项目的进展顺利。
资源列表对于项目经理在这个阶段是需要仔细衡量的,很多的时候参与项目的人员是没有办法来完全实现项目经理之数量与质量要求,可以这么说,大多数项目的研发资源的配置并不能完全达到项目经理的心中期望,因此对于项目经理而言如何发挥有限资源集合的最大化生产输出,显得至关重要。除了人力资源,项目里面还有的资源包括设备、设施、外包资源、顾问团队等,项目经理对资源的罗列以及资源所能够解决的问题要有极强的预判,这样在后续的计划与执行环节能够更好地落实宏观的项目规划,确保任务按时完成。
主计划制定细节里面需要同时兼顾考虑如下的问题:
a.项目的Schema信息,这里主要是项目的核心信息,讲述了项目的目标以及项目立项的主旨,项目研发的商业意图以及整个项目关联的社会与环境因素等,很多项目经理认为这些信息对自己已经太明显了,因此不愿意写,其实这个时候往往就是犯直观主义错误,导致项目的信息对于团队的传播存在很大的问题,重视对Schema信息的提供是非常关键的。
b.团队成员信息,包括自己方与客户方的核心项目组的信息,其中双方的组织架构以及对接关系一定要定义清楚,特别是核心的项目经理、业务负责人、成员列表等,并且将邮件、电话等信息都列出来,确保任何时候都非常方面能够找到人,对于Interface级别的人(譬如双方的项目经理)最好有2种以上联系方式,这点也非常关键,关系到关键时候的项目执行效率以及关键节点的状态与结果。
c.项目的研发流程信息,主要说明项目的研发所采用的流程裁剪信息,基本是以Waterfall或者Agile模式来执行,个人更加倾向于阶段内瀑布,阶段间Agile模式来执行具体的项目研发。
d.项目沟通方式以及频率,主要是双方特别是Offshore研发模式下的沟通方式以及沟通的频率问题,这点对于整个项目的沟通形态以及沟通的效率定义是非常关键的,需要根据项目的形态、规模、分布等情况进行不同的定义符合项目的实际情况。
e.项目风险控制,对于项目的风险需要进行筛选,特别是项目的前十大风险,需要进行对应的分析与防范,同时指定对应的责任人来负责对应的跟踪与防范措施的实施。
f.培训与支持计划,项目的培训计划主要是项目本身的参与人员所进行的各类技能、规范、流程等的培训,这个培训主要是帮助大家解决效率问题,提升整个团队的开发质量与速度,从而提升整个项目的研发效率,很多的初级项目经理对于培训非常不关心,甚至等待项目成员提要求时被动地做培训,这是非常有害的,对于整个项目的研发进度会有非常大的阻碍作用。
g.项目研发计划,这里主要是需要对项目任务进行完整的WBS分解,基于KLOC分析方式或者FP的分析方式来分解得到对应的工作量,同时依照任务的依赖关系以及成员的技能关系进行对应的匹配,从而进行大体评估后进行对应的工作总量核定。同时考虑到客户以及内部管理规程的需要,针对性设定里程碑来做对应的项目进展检查,这样能够确保整个研发计划的推进与成功。
总结计划阶段的几个核心要点,分别列表如下;
1.明确项目的工作内容与边界,清晰地获知自己的目标;
2.工作量评估是整个项目计划阶段的基础工作,采用不同的制造模式与测试、沟通、交互方式对于项目的交付完成影响巨大;
3.研发计划的排定,其中的关键是资源的最大化合理利用,同时如何在团队级别设定统一制造标准以及检测标准是关键;