很荣幸地,作为一名产品人,我在人生的第一个项目上就被灌输了“敏捷开发”的概念。那是一个外企客户的App开发项目,我作为BA(虽然化妆品公司常用BA,不过这里是business analyst
)角色,而PM是一名经验丰富且老道的资深顾问。我至今仍很清晰地记得,PM在和客户大吹特吹我们敏捷开发的效益,然后在kick off的ppt上贴了一张很漂亮的甘特图。这直接导致了我在很长一段时间里将敏捷开发的概念等同于迭代开发,而确实“敏捷”一词相当于这个行业的通行证一般,这种感觉就像你在写ppt的时候可以贴上几个特别复杂但没有实际意义的英文单词,就瞬间使得整个文档高大上且国际化起来。
再到后来,公司为推广这种方法组织了几场价格昂贵的敏捷培训,由敏捷教练带着做看板(kanban),且举出若干实例来证明这种理念的行之有效。如果有兴趣的话,还可以额外付费参加考试来获取证书。
所以截至目前,没有人告诉过我,敏捷是否适用于所有项目?漂亮的甘特图是否完全落伍了?敏捷的历史由来与未来启发是什么?带着诸多疑问去读这本Scrum之父杰夫·萨瑟兰所著的<敏捷革命>使我颇受启发,下面我所认为的答案摘自原著不做修饰也不馋个人见解。
-Scrum是不是方法论?
“敏捷方法论”这个词语的运用显示出总检察长对Scrum的了解很少。“敏捷”这个词语可以追溯到2001年的一场秘密会议,在那次会议上,我与另外16位软件开发领域内的领军人物共同拟定了众所周知的<敏捷软件开发宣言>,宣布了以下价值:人胜过流程,可以使用的软件胜过面面俱到的文件,客户合作胜过合同谈判,应对变化胜过遵循计划。Scrum只是我用来实现这些价值的一个架构,算不上“方法论”。
-Scrum与迭代的关系?
Scrum是一种迭代式增量软件开发过程。所谓迭代,是指把一个复杂且开发周期很长的开发任务分解为很多短期可完成的任务,这样的一个周期就是一次迭代的过程;同时,每一次迭代都可以生产或开发出一款可以交付的产品。
-什么是“猪”与“鸡”的职责?
在Scrum领域,有一个老笑话。一天,一头猪和一只鸡在路上散步。猪对鸡说:“嗨,我们合伙开一家餐馆怎么样?”猪回头看了一下鸡说:“好主意,那你准备给餐馆起什么名字呢?”鸡想了想说:“叫‘火腿和鸡蛋’怎么样?”“那可不行,”猪说,“我把自己全搭进去了,而你只是参与而已。”这则故事应用在敏捷开发上,用来说明不同角色的职责。在Scrum过程中,“猪”在Scrum过程中全身投入项目,对结果负责。“鸡”需要了解项目进程,是利益相关方。
究其本质而言,Scrum方法很简单:无论你什么时候启动一个项目,为什么不经常检验一下自己正在做的事情,看看是否朝着正确的方向前进?结果是不是大家真正希望看到的?是否有什么办法能改善目前正在做的事情?如何才能做得更快更好?存在哪些潜在的障碍?