项目管理的窍门

《技术为径:带领公司走向卓越的工程师》–项目管理进阶

作为一个研发经理,你需要承担起为团队制订工作计划的责任。在你的上级管理层尝试制订整个季度,甚至整年的工作计划过程中,经常需要你来评估自己的团队是否能够承担某些项目,包括评估这些项目所需要的工作量,以及这些项目是否与你组员的技能相匹配。

虽然作为一个团队经理,你可以将一些项目管理工作下放给你的技术小组长来进行,但是肯定还需要自己承担一部分相关工作。

你所面临的主要任务是,决定哪些项目可以承担,而哪些项目需要推掉。同时,你可能还需要适应敏捷状态下需求的不断迭代,为每个项目预估一个大概的完成日期。

若要做好对团队工作的管理工作,你需要对团队的工作节奏十分熟悉。万幸的是,有一些窍门可以帮助你做到这一点。

敏捷与项目管理

项目管理并不意味着进入瀑布式管理模式,从一开始就将项目中的每一个细节都计划清楚。

然而,对于大部分团队来说,长期的、抽象的目标,以及短期的、具体的、面向长期抽象目标的工作计划是并存的。

当需要实际规划小的项目目标时,团队应该采用敏捷过程来快速评估项目并且分解项目目标,这样效率最高。

作为团队管理者,你不应该过多干预,甚至应该推动团队自主进行。你需要对更大范围的项目目标–那些需要数月,而不是数个星期才能完成的事情负起责任来。

预留20%的工程时间

预留20%的工程时间来处理研发可持续性工作。“研发可持续性工作”指的是添加测试用例、调试问题、重构老旧代码、更换编程语言和升级语言版本,以及其他类似的工程杂事等。

如果能够坚持这样做,你就能将一些中等大小的陈旧代码逐渐消化、转换掉。每个季度做一点就够。随时清理陈旧系统,可以降低其维护难度,从而给团队留出更多时间来进行新功能的开发。

就算不这样做,你也可以用这个时间来补偿项目过程中的意外情况。如果真的把项目研发计划填满100%,你很快会发现由于各种情况导致计划流产。监近交付时间时,管理有说“不”的义务。

设定截止日期在项目管理中是很常见的,有时这个截止日期是团队自我设定的,也有的时候是来自更高管理层的要求。

按照截止日期按时交付项目的唯一方法,就是在项目末期不停地裁剪末完成的项目需求。

这就意味着,作为研发经理,你必须和自己麾下的技术小组长与产品负责人/业务代表一起开会商讨到底哪些需求是必须交付的,而哪些需求是可以删减的。这意味着,作为研发经理,你经常需要对两边都说“不”。

说到底,你需要向技术团队交付一系列定义清晰、实现成本合理的产品需求,同时需要向产品团队解释清楚完成所有需求所需的额外时间。

更多的计划时间

软件开发时间预估中有一个“翻倍定律”:当需要测算软件开发时间时,永远将你预期的时间翻一倍。

不要每个需求都需要让技术团队预估实现时间

研发经理的时间预估与项目计划职责的的原因之一,是因为工程师针对每个需求都交付一个预估时间,不仅浪费其时间,而且徒增其压力。

管理层承担不确定性是责无旁贷的,管理都不应该将不确定性统统甩给团队成员来承担。

管理者不仅仅是技术团队和公司其他部门的传声筒。这样不仅不解决问题,反倒干扰正在实际做事的人。但是,你也不能只是团队的“挡箭牌”,而不管公司其他部门的实际需求。

你需要帮助公司建立一个针对新需求和用户反馈的持续沟通流程,减少意外情况和紧急需求的发生。

公众号:码农戏码
欢迎关注微信公众号『码农戏码』