强人PM与敏捷相遇 -1

大概在2018年的时候,开始认识敏捷。会想要认识敏捷,其实也是服务的公司碰到了一定程度的发展瓶颈。

那时候公司正处在一个快速发展期,有许多的工作排队需要完成,进入了一个专案地狱的状况。一方的论战认为人力不够补人就好,但也有主管认为这样下去也不是办法,因此在寻找如何提高人力效能的方式。其中的一条线就是开始认识敏捷这样的方法论。

後来不少团队纷纷导入敏捷的方法,甚至整个主管高层也邀请了讲师认真了解敏捷的精神。有些团队坚持了两三年,至今仍运作着,但也不少团队也适应不良,纷纷更换了专案进行的方法。当然也有不少团队有了前车之监,采取迂回的方式,逐步进推。

当时,我与几个资深主管讨论起敏捷的话题,讨论出几个非常难以解决的致命问题,导致敏捷的几个关键要素似乎无法满足。像是PO的角色在公司几乎不可能满足、公司内功能部门拆很细等等。而我的後端主管也提出了一个特殊的观点,公司各部门内技术能力良莠不齐,甚至都在靠资深工程师吃下工作,但敏捷的工作方式会非常需要对等的工作能力,因此要推行起来会非常的困难。

左思右想,如果硬套入敏捷的流程在眼前的这些工程师身上,大概也不会有好下场吧。但我自己认为敏捷仍有几个非常重要的精神,那就不如先把这些东西落实一阵子再说吧:

1.透明度。我使用的专案管理工具,其实就只是一个todolist。这个工作清单基本上是开放在google excel上,团队内部只要知道网址的,都可以看的到我所有关注的专案。专案下来时,我会尽可能地说明整个来龙去脉,以及我所看到的战略价值。会议时间一定提早约,请假都让所有人知道。

2.使用者故事。在内部说明功能的过程中,我要求我自己,以及专案的团队都要以「身为<角色>,我想要使用<功能>,达到<目的>」来跟RD团队沟通。我发现这样的陈述句,帮助对於商业角色较为陌生的工程师理解功能如何被使用,用一个使用情境去框出功能使用的方式,反推让工程师知道功能范围,即便不用订出功能细节,工程师也能依照经验开发出适合的功能。

到後来,当我只要说出功能需求是来自於哪个单位时,同仁大概就能快速的抓到需求,甚至可以提案应该怎麽做,达到我所碰到的流程难题。

3.群体Demo验收工作。在团队的作业中常常面对一个很有趣的状况:前端说他做好了,後端也说他做好了,但是合起来的东西却是坏掉的。早期前後端两个团队都还在吵架,但是当直接告诉团队,我就是要在什麽时候看到可以Demo的进度时,慢慢两边团队重新调整节奏,逐渐调整工作周期,慢慢都能够在时间内完成串接,做出整个故事完整的操作流程。

"做好了"的定义,在单兵作战底下视角,大概都是停留在自己的部分完成了,但主管要的"做好了"其实是要看到整体的整合完整的状况。而整合,才是大家会额外花时间与吵架的阶段。就算不管吵架,还要额外花时间才能整合完成,这个状况就是为什麽专案会一直延宕的原因。

4.公开感谢。因为是技术出身的专案管理人,我一直期望工程师多少要补上专案思维。因此只要技术同仁提出了专案上思考不周的地方,我一定会公开感谢同仁主动的思考题问。

团队即便人数多,但是大部分的人还是单兵认领任务後作战,没有进入真正的团队运作的经验。我的想法,就是透过公开的感谢,让当事人知道自己的主动思考提出问题,是可以得到正面回应甚至得到主管的感谢,同时间也让其他人知道,这样才是一个团队互相帮补的互动过程。

上面的这四点,其实在其他团队建立或者专案管理流程中都会被提到,只是这四点刚好在敏捷开发的流程中都被提及。所选择的这四个面向,算是当初整个团队文化中缺很大的部分,不管在心理层面还是在时间管理务实的层面来说,都是相当不足的。运作一年多後,加上前端团队内有些人也努力的落实其他敏捷的实践,後端团队实践"天下武功唯快不破"的概念,两边共同走出自己的路,但却又能合作愉快!

PS. 团队的强壮并不是作对一件事两件事就能达成,因此没有人能单独居功。所有的成功,都是大家做对的多做错的少累积下来的。


<<:  Day 10:144. Binary Tree Preorder Traversal

>>:  [Day-24] R语言 - 分群应用(五) 分群预测 - 取得真实资料集&说明 ( real data from UCI )

30天学会C语言: Day 16-你可能会用到的函式

stdio.h puts(char*) 可以将字串显示到视窗上 和 printf() 不同的是 pu...

[Day11] 设定 DialogFlow 专案

在昨日我们已经完成Actions On Google的专案设定 接下来,我们将接续设定Dialog...

Day 03 环境建立

环境设定 当我们在做开发时,首先要做的,就是准备好开发环境, 不然所有的开发都会无法进行, 所以首先...

Day 20 - Constructor Function & Prototype

Constructor Function 用来制作大量相似的 object,通常用大写字母做开头 搭...

Day 23 Odoo 预设domain怎麽做?

如果是一开始就要跑预设的domain但却要经过一堆判断才能决定的domain 那麽你可以在field...