建立职责分工的规则
为避免这样的问题,项目经理和技术主管必须事先决定职责分工。那么应当如何分工呢? 不同的项目千差万别,所以并不存在的灵药。应当综合各种方法,并结合项目的实际来决定。 以此为前提,首先应当制定职责分工的规则。具体来说,要制定以下的规则。
(1) 在需求定义结束之前,实现哪些功能、采用什么开发工具、安全实现到什么程度、 如何应对繁忙时的业务量等,这些关系到系统需求的重要事项必须由项目经理和技术主管协商决定。
(2) 在设计阶段之后,不影响进度、人员计划的功能追加、修改等项目范围内的事项, 首先由技术主管做出判断,交由项目经理确认之后再做决定。可能会导致合同变动的项目范围外的事项, 技术主管应当将判断权交给项目经理。用这种规则,能回避职责不明确导致的混乱。
共同制作业务场景
同时,也应当建立项目经理和技术主管共享信息的方法。这里,我们以需求定义阶段 项目经理和技术主管合作制作“业务场景”的方法为例进行介绍。
新业务的场景,即根据客户询问、头脑风暴、JAD、原型、现有业务资料调查等方式获得的信息, 来描述新系统的样子的东西。
业务场景可以用讲故事的方式写成,附以图表更完美了。也可以开发一套能实际运行的原型系统。 制作业务场景的过程中要不断与客户确认,以此为基础来确定详细的系统需求。
场景制作的材料可以完全委托给团队成员,但场景本身必须由项目经理和技术主管协同客户方负责人一起制作。 项目经理和技术主管经过不断的交涉,提炼材料,从开发的角度看哪些重要,现行系统的哪一部分在新系统中如何变化等, 这些问题项目经理和技术主管都要充分认识。这样,两者才能获得一致的意见。
技术主管通过制作业务场景来获得与项目经理一致的意见,在确定需求时才能更容易地获得客户的新人。 另一方面,项目经理也有充分的自信能够“完美地控制项目”。当然,场景的详细程度需按照项目来定。
项目经理也要有技术直觉
即使明确了职责分工,也不能说是十全十美。Web开发项目要想成功,项目经理也要拥有 “技术者的直觉”。认为“近的技术全然不懂,干脆都交给技术主管吧”的话, 无法进行风险管理了。
Web系统开发经常使用大量的新技术、新产品,技术方面的风险十分大。例如,不经深刻的讨论 采用螺旋形方法进行开发,很容易陷入需求膨胀、不知何时才能终完工的黑洞。 此外,面向终用户的B2C的电子商务网站,若不在认真计划的基础上进行有效率的测试, 会有测试量剧增的风险。
为防止这些风险,项目经理必须拥有“技术直觉”,努力管理项目,在技术问题上与技术主管充分交流, 而不能完全委托给技术主管。
所谓技术直觉,并不是要求精通技术本身。重要的是要了解技术的“意义”, 对于技术给项目带来的影响具有敏锐的洞察力。遗憾的是,有些项目经理抱有 “发生问题时,只要增加人手能解决”这种简单的想法,但它正是没有技术直觉 造成的为悲剧性的看法。
对于影响到项目进程的技术瓶颈,算是增加人手也只是徒然浪费金钱而已。
项目经理要求有“技术直觉”,同样,技术主管也要有“项目管理直觉”。 特别是经常接触客户的技术主管,如果没有项目范围、进度、成本、质量管理这些 项目管理的基本知识,容易仅凭技术来接受客户要求,不知不觉中会使 成本和进度失控。项目经理和技术主管应当了解的知识如下所示。
项目管理技能(参考PMBOK)
◎综合管理
◎范围管理
◎时间管理
◎费用管理
◎质量管理
◎人力资源管理
◎沟通管理
◎风险管理
◎资源调配管理
◎领导力
◎交涉力
◎问题解决能力
软件技术技能
◎需求定义
◎系统设计
◎编码、测试
◎性能计划
◎容量计划
◎配置管理
◎变更管理
◎问题管理
◎过程管理
◎开发手段
◎开发工具
◎质量管理
共通技能
◎一般的IT知识、业务知识