本文是日经BP上的一篇关于项目管理方法的实践的文章。对于短期的Web小型项目,无论是开发周期、成本,还是技术上都有很大的风险。然而许多人对此认识不足,导致项目失败,或是产品发布日期一拖再拖、成本大幅上升,或是匆忙发布后漏洞百出。本文从项目管理的角度说明,即使在小型项目中,项目经理也不能将项目全权委托给技术主管,而应当建立合适的体制,从几个方面对项目进行控制,这样才能保证项目的顺利进行。

原文在这里。

通常的项目体制不适合短期开发

在大型机上花费几年的时间构建大型系统时,项目经理通常仅负责一个项目,手下也聚集着许多软件工程师。在需求定义阶段,项目经理直接与客户进行交涉,在需求定义中发挥着领导的作用。

这种体制本来十分理想,但对于开发期间只有几周到几个月的小型Web系统来说,却不尽人意。团队的实际情况是,项目经理和技术主管通常会兼任数个项目,设计、编码的工作全部交给年轻的工程师或合作方的工程师们。这时,项目经理的一部分职责通常会交给技术主管分担。

职责、分工不明确

开发Web系统时,客户企业经常会要求使用EJB、XML、Web Service等较新的技术。项目经理为了满足客户企业在技术上的要求,不得不依赖于技术主管。另外,项目经理通常要照看多个项目,因此与之相比,技术主管接触客户的机会更多一些。

这样,在Web开发中技术主管的职责范围变得非常广泛。因此,项目经理和技术主管的职责分工很容易变得模糊不清。绝大多数情况下,职责分工问题不仅没能形成书面文档,甚至连简单的协议都做不到。极端的例子就是“除了钱的问题,其他全部委托给技术主管”。

这种现象并不鲜见,但是在大规模项目中,通常会有足够多的时间和人力来规避风险,因此即使发生问题,也总有办法解决掉。但是小规模、短期的Web项目中,由于职责分工不明确而导致项目内部的意见不一、决策效率低下等,是项目失败的直接原因。

项目经理无法掌握项目的状况

让我们具体地看一看,在项目最重要的任务之一——需求定义中,职责分工不明确会造成怎样的问题。

在Web系统开发中,客户企业经常会在开发途中增加、改变需求,因此完整的需求在项目初期很难确定。再加上项目经理要兼任多个项目,无暇顾及每个项目的需求定义,只得将其全权委托给技术主管。

这种条件下,技术主管仅从技术的观点来接受客户的要求,导致项目超过预算、超过预定工期的可能性非常大。另外,项目经理无法详细把握需求定义,因此无法把握项目的状况,导致项目的范围失控。最终结果必然是,当问题的征兆出现时,根本无法采取任何对策,如与客户交涉“先实现优先的功能,其他无关紧要的功能下次再实现”等。

想象一下,技术主管完全根据自己的判断来回答客户企业的重要问题时会出现什么后果。项目经理和技术主管的意见一致时尚可,意见不一致时,必然会招致客户的混乱。此外,项目经理对技术主管过于依赖,会导致不好的结果。例如,带着“他会做好的”、 “这件事儿是他的责任”的想法,通过邮件给技术主管分配任务,其结果通常是该做的事情没人负责。

建立职责分工的规则

为避免这样的问题,项目经理和技术主管必须事先决定职责分工。那么应当如何分工呢?不同的项目千差万别,所以并不存在万能的灵药。应当综合各种方法,并结合项目的实际来决定。以此为前提,首先应当制定职责分工的规则。具体来说,要制定以下的规则。

(1) 在需求定义结束之前,实现哪些功能、采用什么开发工具、安全实现到什么程度、如何应对繁忙时的业务量等,这些关系到系统需求的重要事项必须由项目经理和技术主管协商决定。

(2) 在设计阶段之后,不影响进度、人员计划的功能追加、修改等项目范围内的事项,首先由技术主管做出判断,交由项目经理确认之后再做决定。可能会导致合同变动的项目范围外的事项,技术主管应当将判断权交给项目经理。用这种规则,就能回避职责不明确导致的混乱。

共同制作业务场景

同时,也应当建立项目经理和技术主管共享信息的方法。这里,我们以需求定义阶段项目经理和技术主管合作制作“业务场景”的方法为例进行介绍。

新业务的场景,即根据客户询问、头脑风暴、JAD、原型、现有业务资料调查等方式获得的信息,来描述新系统的样子的东西。

业务场景可以用讲故事的方式写成,附以图表就更完美了。也可以开发一套能实际运行的原型系统。制作业务场景的过程中要不断与客户确认,以此为基础来确定详细的系统需求。

场景制作的材料可以完全委托给团队成员,但场景本身必须由项目经理和技术主管协同客户方负责人一起制作。项目经理和技术主管经过不断的交涉,提炼材料,从开发的角度看哪些重要,现行系统的哪一部分在新系统中如何变化等,这些问题项目经理和技术主管都要充分认识。这样,两者才能获得一致的意见。

技术主管通过制作业务场景来获得与项目经理一致的意见,在确定需求时才能更容易地获得客户的信任。另一方面,项目经理也有充分的自信能够“完美地控制项目”。当然,场景的详细程度需按照项目来定。

项目经理也要有技术直觉

即使明确了职责分工,也不能说是十全十美。Web开发项目要想成功,项目经理也要拥有 “技术者的直觉”。认为“最近的技术全然不懂,干脆都交给技术主管吧”的话,就无法进行风险管理了。

Web系统开发经常使用大量的新技术、新产品,技术方面的风险十分大。例如,不经深刻的讨论就采用螺旋形方法进行开发,很容易陷入需求膨胀、不知何时才能最终完工的黑洞。此外,面向最终用户的B2C的电子商务网站,若不在认真计划的基础上进行有效率的测试,就会有测试量剧增的风险。

为防止这些风险,项目经理必须拥有“技术直觉”,努力管理项目,在技术问题上与技术主管充分交流,而不能完全委托给技术主管。

所谓技术直觉,并不是要求精通技术本身。重要的是要了解技术的“意义”,对于技术给项目带来的影响具有敏锐的洞察力。遗憾的是,有些项目经理抱有 “发生问题时,只要增加人手就能解决”这种简单的想法,但它正是没有技术直觉造成的最为悲剧性的看法。

对于影响到项目进程的技术瓶颈,就算是增加人手也只是徒然浪费金钱而已。

项目经理要求有“技术直觉”,同样,技术主管也要有“项目管理直觉”。特别是经常接触客户的技术主管,如果没有项目范围、进度、成本、质量管理这些项目管理的基本知识,就容易仅凭技术来接受客户要求,不知不觉中就会使成本和进度失控。项目经理和技术主管应当了解的知识如下所示。

·  项目管理技能(参考PMBOK)

o    综合管理

o    范围管理

o    时间管理

o    费用管理

o    质量管理

o    人力资源管理

o    沟通管理

o    险管理

o    资源调配管理

o    领导力

o    交涉力

o    问题解决能力

·   软件技术技能

o    需求定义

o    系统设计

o    编码、测试

o    性能计划

o    容量计划

o    配置管理

o    变更管理

o    问题管理

o    过程管理

o    开发手段

o    开发工具

o    质量管理

·   共通技能

o    一般的IT知识、业务知识

项目经理和技术主管的分工相关推荐

  1. 技术主管和项目经理一定要读的 6本书!

    微信搜索逆锋起笔关注后回复编程pdf 领取编程大佬们所推荐的 23 种编程资料! 程序员书库(ID:CodingBook) 猿妹编译 链接: https://medium.com/javarevisi ...

  2. 艾伟也谈项目管理,如何做一个合格的项目经理

    项目经理这个角色说大不大,说小也不小.在大公司,项目经理这样的角色可能存在不计其数,他们很多都是寄托于项目的存在而生,项目的完成而终:但对于一些小作坊的软件公司,项目经理一职很多时候是一个长期持有的过 ...

  3. 解决方案和项目的关系_项目经理入门知识系列之《项目团队的职责分工》

    项目团队的组织结构 组织结构 项目经理职责 整合制定项目计划所需的活动. 整合执行项目计划所需的活动. 整合进行范围变更所需的活动. 1.目经理负责对横跨多个职能线的活动进行协调和整合. 整合管理 2 ...

  4. 产品经理与项目经理的职责分工

    对产品和项目的理解 产品经理和项目经理 产品经理关注的是做正确的事,关注的是产品生命周期,关注的是产品是否能够赚钱,能否持续的赚钱.因此产品经理必须要能够规划整个产品的架构和发展路线,能够确定产品的定 ...

  5. 项目经理如何开好项目启动会?

    项目启动会是项目的正式开始的标志,俗话说好的开始等于成功的一半,启动会开的好与不好,很大程度影响着一个项目的顺利推进,因此组织一场高质量的启动会至关重要.为保证项目启动会的成功召开,项目经理应该如何做 ...

  6. 项目经理和产品经理的关系是怎样的?

    项目经理和产品经理的关系是怎样的? 以互联网产品经理和项目经理为例来说说 首先,从知识领域来说,项目经理要求技术背景,这是必须的,一般团队的项目经理由非常有项目经验的RD担当,他的职责在于将目标转化为 ...

  7. java项目经理也就那么回事_网易PM | 我们之前在需求评审环节踩过的坑...

    原本觉得需求评审也就那么回事儿,大家应该都差不多这么做的,没啥好说的.不过前不久有一位同学问起来我们是怎么做需求评审的,然后发现有一些团队的做法可能还不大一样,他们也还踩着我们之前踩过的坑,他们还在探 ...

  8. 如何成为一个合格的项目经理?

    1.个人专业性 基本的专业素质是项目经理的准入门槛和条件.此外,由于不同行业不同专业具备不同的属性,还需要在你学习或者实践积累的"方法论"上学会因地制宜.如果对即将涉猎的行业或专业 ...

  9. 项目经理如何理解定位技术

    当上项目经理后,技术人员往往对自己的定位失去了感觉.其中最令人困惑的就是自身原有的技术标签,撕了也不是,因为技术还不能丢,贴着也不是,因为个人的成败往往决定于自己对团队的管理,而不再是自己的技术. 想 ...

  10. 程序员到项目经理:从内而外的提升不看后悔去吧

    从程序员到项目经理(一):为什么要当项目经理 "从程序员到项目经理",这个标题让我想起了很久以前一本书的名字<从Javascript到Java>.然而,从Javascr ...

最新文章

  1. A Learned Representation for Artistic Style论文理解
  2. iptables 配置 使用-3
  3. 图说数据中心新风节能技术
  4. 新一代开源Android渠道包生成工具Walle
  5. [转]详细介绍java中的数据结构
  6. php查询mysql表里的数据_3.php查询mysql数据表所有记录
  7. linux下mysql的数据库简单备份脚本
  8. DevExpress小结(简略)
  9. 批量生产insert 或者update语句
  10. 轮询调度算法 Round Robin
  11. HTML学习之==JS
  12. 使用BabeLua在VS中创建Lua项目。
  13. c语言自学基础知识视频,C语言 基础课堂视频教程
  14. 东北大学《铸造工艺学》结课报告
  15. 数量乘单价秋金额的计算机公式,在电子表格中数量乘以单价等于金额用什么样的公式啊?怎么算呢?...
  16. 【379】pandas 说明
  17. 定位弹窗软件----找到真凶并做后续防御
  18. 闽江师范高等专科学校计算机系成立时间,闽江师范高等专科学校2018届毕业典礼...
  19. 如何从程序员升级到架构师?
  20. speedoffice(word)如何给文字加粗

热门文章

  1. ACM的奇计淫巧系列
  2. 管理理念:导致员工工作效率低下的8大原因
  3. 很多人都对3dB带宽有一定误解
  4. html看图识颜色,canvas 识别图片颜色 解析图片颜色
  5. 递推DP UVA 473 Raucous Rockers
  6. wdr7660虚拟服务器设置,TP-Link TL-WDR7660手机怎么设置?
  7. 微信公众号网页分享设置及问题
  8. 【插值】插值方法原理详解
  9. 新型智能优化算法——海鸥优化算法(基于Matlab代码实现)
  10. 关于cocos2d引擎写的手游加速