14 回答
作为项目经理一个人,企图管控所有的项目实现细节,事无巨细事必躬亲,眉毛胡子一把抓,这在实践中往往既做不到,也是错误的。因为并非所有的项目细节都重要,值得一个团队领导亲自抓,而决定项目成败的往往只是少数关键细节。 要管控项目开发的所有细节,不是依靠 PM 一个人之力,而是应该依靠团队的整体力量,尤其应该为项目团队建立起一套完整的质量管控体系与成熟的软件开发流程。二十年来国际上可参考的标准模型和最佳实践已经很多,如 ISO 9001、CMMI、UP、Agile、PMBOK 等等。团队有了成熟的管理流程和方法论,把项目风险、责权利等等分解到每个人而不是 PM 和少数个人英雄身上,才能实现有效率、高品质的项目管理、服务管理,做到万无一失。 题主未提及团队规模,以上分析主要针对大中型团队。对于小微团队(如 <10 人)PM 掌控所有细节是有可能的,因为这些项目本身细节不多,也不是很复杂。这在 2000 年以前国内软件工程的蛮荒时代比较流行,当时的 PM 与架构师常常是一个人,既抓管理也抓技术,还要搞好客户关系,而很多需求文档、架构文档也是 PM 写的。不像现在角色分得细,除了 PM,还有产品经理、业务分析师、需求分析师、系统架构师、软件架构师等等。1. 管控所有的细节。 因为项目的特殊性,客户这一环节无比重要。因此能及时的解决问题和反馈客户的问题显得很重要。因此如果管控所有的项目实现细节,就能很好的沟通交流。由于团队成员技术、业务已经责任心等参差不齐,如果不加以管控,很可能做出来的功能就不符合要求。管控起来,能及时回复成员的疑问就能更好的指导大家做功能实现;但现实是精力和能力有限,并不能每一方面都能很好的了解以至于掌控;
这句话只说对了一半。 PM 的正确做法是抓大放小,风险驱动,客户价值优先,利用有效的时间和精力只抓住关键细节,而不是所有细节。抓这个关键细节的管理不是粗放的,而是精细、精准的。 例如,你们有 100 个需求,PM 要抓住所有这 100 个需求的细节?不可能吧。通常的做法是,PM 只抓住这其中 10-20 个对客户最重要、最有价值或者实现起来难度最大、风险最大的需求,重点了解它们的需求定义是否符合客户需要,实现难点和技术障碍,如何克服困难、消除瓶颈等等细节。 其他的 80 个需求怎么办?细节 PM 只能大致了解,它们的实现和进度管控应交给你的助手,团队里的其他管理与技术骨干(如 TL、架构师),以及项目的整个质保体系、开发流程管理来负责或保障。2. 不掌控所有细节,粗放的只盯大的功能实现和进度等;
做到以上这些并不难,现代软件工程方法里有许多成熟的需求管理、需求分析实践,关键在于你们团队里是否有足够成熟、掌握这些技能的需求分析师、需求工程师、产品经理等。如果没有,每个需求都要 PM 自己来盯,那会把 PM 累成狗。粗放的盯进度实现,这就对团队成员提出了更高的要求。团队成员需要不断站在用户的角度思考问题,例如用户体验等,需要站在项目的角度思考功能,比如这个功能是否是客户真实想要的,是否可以有更简单的实现来代替,从而节省人月等;
软件开发中的决策多种多样,有大有小,有主有次。如果所有决策都让 PM 来做,PM 也要累成狗。PM 一般只负责管理决策,让架构师负责主要的技术决策。每个工程师如何实现自己负责的需求,他有这个决策权。涉及到架构的技术决策,通常需要集体讨论,架构师有最终决策权。 如何保证工程师做出东西的质量?主要靠成熟的质量保证流程,在需求、设计、测试等等许多环节都可以设置评审、抽查、运行、演示等等检验和反馈步骤,而不能单纯靠工程师的责任心。但是让成员做决策又基本不可能,毕竟不在其位不谋其政,工程师的思维也不是那么好拗过来的;责任心不强的工程师,做出来的东西简直是要骂街的。
平衡的思路很对!二十年来世界上主流的的项目管理、软件工程管理方法论都是讲究平衡的,在中国管理 IT 项目尤其应该如此。 PM 不应该抓所有的细节,而应该只抓关键的细节。这 20%(或更高的比例)关键的细节随着项目的进展,是动态变化的。 你们目前的一个主要问题就是还没有找到一套适合自己的管理方法论和体系,所以思路有点乱。事实上世界领先的软件工程与项目管理已经很成熟了,成熟的方法论与知识体系就摆在那里,只是需要大家去学习。建议赶紧找点资料、参考书研究下。 除了确立团队开发的管理方法、流程之外,还需要把管理的人才梯队建起来,让管理和技术骨干们掌握必要的技能,而不是把所有细节、压力都压到 PM 一个人身上。只有这三个方面结合起来,才能实现高效、成熟的项目管理。背景类似于给电信运营商做外包的项目,管理经验太浅,这个问题尝试了很多办法,一直得不到很好的解决,希望大家能不灵赐教。 ... 以上两点算我目前的背景详情。另外我知道可能中庸的做法是取平衡,但平衡之术难比移山。