在与敏捷接触的第一年零七个月,回望和敏捷一起的日子。
坚持把标题的“敏捷与我”换成了“敏捷于我”,更想表达出敏捷对于我的意义。
2013年1月19日,第一次因为工作原因踏上北京,第一次和ThoughtWorkers一起工作,第一次认识敏捷。我曾在一篇blog里聊过两个月的BA实习生后,我对敏捷的认识。那时,敏捷于我是一种全新的理念,快速迭代,精准的时间点,和勇于承认“我不知道”。
2013年3月,回到石家庄,在创业公司里继续我的成长。我们一起在这座离北京很近,却离互联网不那么近的城市里继续着我们对敏捷的坚持。到今天,2014年7月26日。或许有一天我可以鼓起勇气写下我离开的原因。好吧,又偏题了。
敏捷于我•团队
2013年的3-4月,我和学院里的Team Partners一起准备微软的应用设计大赛,当时老师想让我来强行推进敏捷的开发流程,也是我第一次管理一个将近10人的团队。团队内的每名成员都有项目开发经验,但是我们的团队中从来没有出现过产品经理这个身份的人,之前也完全没有过对开发的流程控制。最后非常糟糕的,团队内还产生了一些分歧,这也是敏捷所给予我的第一次打击。现在回想,当时自己也处在对敏捷的懵懂态,也无法明确产品经理的职责。不过好消息是,从那天开始,学院内每个项目都会出现一个项目经理身份的同学。
当新人进入公司时,我会向大家介绍公司的工作流程,这时,会有相对固执的新人认为敏捷和传统瀑布式开发终究是流于形式,还会有新人只是单纯认为这是公司的工作流程,自己照做就好。大家会共同的在反讲卡片内容达成共识这一流程上,产生不满情绪,通过表情,或反讲时的态度表现出来,甚至产生越卡开发现象。我一直在不断尝试和摔跟头中寻找方法,希望可以让新人认识到敏捷先进性,并接受敏捷的思想。但后来发现,这件事情真的交给时间就好,通常新人会在第2个月习惯敏捷开发流程,第3-4个月接受敏捷并习惯敏捷。我要做的是在前两个月时间,去Push流程推进,去适当的让新人因为出现“越卡开发”、“需求理解不清就开始开发”“时间点内没有完成任务”等问题时,付出相应的“代价”。
如果出现“越卡开发”现象,会要求新人将超出卡范围的代码全部删除,并且告诉他如果他单方面的需求理解错误可能会造成的时间代价。我在实际项目中,也遇到过非新人程序员跳卡,原因是卡1中有他认为困难的需求,于是想先做卡2,知难而退了。
当新人在反讲卡的时候,有时会在一些需求点开始说话含糊,其实傻子都听的出他这点不理解。想跳需求点怎么可能?这时,需要产品经理猛甩一句“咦,能详细说一下上个需求点吗?”在我遇到的情况里,这时,新人大都会不好意思的一笑,然后说“其实这点我没理解清楚。”这是推进“反讲”的先进性的重要时刻!还有一点要同时渗透的是,勇于承认“我不知道”。但是如果新人多次隐瞒自己不清楚的点,我会放任他去跳一次“坑”。
当新人在规定时间点内没有完成任务时,我认为需要及时去纠正的更重要的是心态。我们的新人大都是各高校的在校生,当任务超出时间点时,会有一种学生心态作祟。最近的一次项目上,团队内有两名新人女程和一名经验相对丰富的男程。项目最初的半个月,我们每天都在加班,甚至有一天开发加班到凌晨2点。有一天,其中的一名新人女程跟我说,她认为这种加班没有意义,因为她坐在那里也不知道该如何去解决问题,并且她完全不认为自己有能力独立解决这个问题。后来由于项目开发进度过慢,客户要求我们拿出设计稿,于是我这个伪设计师在一天时间画了19张图,那天只吃了两颗薄荷糖来维持大脑的清醒。但这件事后,我们再没有加过班,程序员也不再delay时间点了。虽然这两件事可能没有太多的联系,但是PM严格执行时间点身先士卒一下,总会有好效果。
敏捷于我•客户
2013年5月,我开始面对客户,将我们的工作流程讲给客户。客户对我们工作流程的认可度还是很高的,无论是北京的客户,还是石家庄当地客户,还是海外客户,因为这毕竟是一种双方低风险的方式,客户方也可以在相较于传统开发方式更短的时间,看到成果。但是,其中会产生的问题包括:双方对MVP的理解不同,客户方可能会在一轮Iteration之中加需求。
虽然双方对MVP的理解划分可能不同,但是通过向客户演示交互稿,并说明我们对MVP划分的理由后,其实这个问题相对还是好解决。最常遇到的问题就是客户在Iteration中加需求,每一次遇到客户加需求的要求时,我都会反复说:我们这轮Iteration的功能已经确定了,我们等下个Iteration再做这些功能,这期间您可以再想一些其他的需求。或者如果这轮迭代的功能可以提前完成,我们会考虑把这些功能加进去。
在工作流程中,我感受到客户和我们之间并没有一种上下级的关系,双方的关系也变得扁平了,交流沟通更顺畅直接。
敏捷于我•我
一年半以前,我的老板问我“你的理想是什么?你想要的是什么?”我说“做出打动用户的产品,带给这个世界哪怕再细微的改变。我想要被需要” 很惭愧,到现在也没有做出一款能打动用户的产品,因为连我自己都无法打动。不过自从成为了office principal,我就成为了公司里被点击量最高的名字,真的很被需要。于是我开始重新思考自己的人生定位,似乎在不经意间,我的人生和认知也在不断的迭代,从不断的尝试,总结,实践中,去发掘我真正想要的东西。
曾经我非常在意自己在别人心目中的良好形象,在团队合作中不敢频繁的push进度,怕给对方造成我在催他的紧张感。现在看来,Too young, Too Naive. 如果项目负责人的心态不够成熟,首先对项目是不负责任的,其次对团队成员的发展也不利。好吧,或许我在扣大帽子。但是,我们的团队成员通常是没有接触过真实项目的新人,一个严格的开始,总归是必要的。
聊了这么多,有些与敏捷有关,有些是敏捷对我的意外疗效,或许因为我已经习惯了这种迭代的生活,通过划分card来完成我的目标。未来之想继续拥有这种扁平化的生存环境,然后继续坚持我的第一个梦想,不过这次,我想先做能打动自己的产品。