“人们认为不需要科学,因为自己已经拥有了一切,但是一切都是以科学为基础的。”——德国物理学家,欧盟科学顾问团队主席 罗尔夫-迪特·豪雅(Rolf-Dieter Heuer)
第一次在软件开发领域接触到“里程碑”这个词,是在大学期间的一次线下活动中来自微软某个产品的负责人,介绍到自己如何管理一个产品的整个上线流程,当时这个听起来蛮有气势的英文单词给自己留下很深的印象,而在随后若干年媒体工作和行业交流中,这个英文单词的发音,像标签一样插在研发管理人员的谈话中,Milestone,里程碑,成为了忽明忽暗,又熠熠闪烁的一小块金子,让人难以忘记。
在职业生涯中,与100名研发总监聊过项目管理后,我对软件开发中的里程碑,有了更深,甚至可以算是全新的理解,和大家分享一些。
什么时候需要里程碑
项目管理中的里程碑可以用于标记:
· 重要工作阶段的开始或结束
· 截止期限
· 当做出重要决定或改变时
· 需要明确指出的其他固定时间点
但是因为和截止期限挂了钩,很多时候研发人员对里程碑就有了误解,比如里程碑就是截止时间,但其实deadline是强制性的约束条件,必须遵守,而里程碑充其量在约束方面算是参照系,而不是强制约束。
里程碑在敏捷开发中的作用
说到里程碑在研发类项目管理中的作用,肯定会提到“敏捷开发”,相对于传统开发模式,敏捷开发更重视里程碑的设置和它的作用。比如:在敏捷开发中,整个项目被分割成多个更可控的阶段,在阶段完成处设定项目里程碑(Milestone),而在里程碑达成时,相关人员可以根据阶段交付物对半成品提出反馈,为下一个阶段的开发提供参考意见。在这样不断的 “规划 -> 开发 -> 反馈 -> 规划 -> ...” 周期性的开发模式中,最终交付的产品会跟客户期待的更加接近,从而提高客户的满意度,也避免了大量的资源浪费。
但是,更要避免里程碑(会议)被滥用,里程碑一个主要的功能就是检查,因此里程碑会议成了很多团队必要的检查工具。实际上,会议作为检查工具的作用极其有限,真正完成检查任务的是管理平台或者专门的检验机制(如工程竣工验收体系)。因此“总结会”、“节点会”更多的是一个足够主要的里程碑事件,它将正式确定、认可、批准检验、测量体系得到的结果(如工程竣工验收合格)。
里程碑在国内研发管理类软件中的实践
通过Jira等软件对于国内研发人员的“启蒙”,国内的研发软件也通过不断优化产品,赢得了不少用户的信任。但不同于Jira,作为国内主流的研发类管理软件,也都将里程碑功能作为自身的产品功能的一部分,PingCode、ONES、UniPro等都陆续上线了里程碑功能,虽然上线时间较晚,但是UniPro本身的里程碑应用场景数量,和任意时间段启用,对接Jira等项目管理软件等,成为了里程碑在国产研发类项目管理类软件中的优秀实践之一。
如今敏捷开发已经成为研发人员的项目首选,而随着敏捷开发的不断应用,里程碑这个古老的词语也焕发着新的生机,就像文章开头德国物流学家豪雅的那句话,对于研发管理而言,“研发人员认为他们不需要里程碑,因为他们掌握了一切,但其实一切都是建立在里程碑之上的。”