说明:本博文最早发布于本人的新浪博客。
最近和@陈加兴以及@孟晓林Ralph交流时,感到比较痛苦,和@拯救与逍遥等朋友的交流则感觉顺畅很多。似乎大家在讨论同一个东西,但又总觉得似乎讨论不到一个点上去,有点各说各话的感觉,非常不给力。也许彼此都觉得对方的逻辑有些许奇怪、不对劲的感觉,却说不出来,也评不下去。
今天因为@孟晓林Ralph的一条微博,大家讨论很给力,偏题也很壮观。内容如下“对于一把菜刀而言,它有其特定的属性,而这些属性决定了它适用于什么,可以干什么和不能干什么等;它只是一个被应用者,它被用去干什么完全是握着它的那个人决定的;它代表的是一种解决问题的思路,只有理解了这个思路,才可能把它用的更好。敏捷这个玩意和菜刀有啥区别么?”。
其实,很多东西都具备着不同的身份,例如Scrum。
- Scrum是一种敏捷软件开发方法,特色在于它是一个框架,具体的骨肉需要额外填充。
- Scrum框架是一个工具,用来指导企业、组织的软件开发工作(或任何工作),它有自己的使用手册(参考其定义),但使用者可以根据需要选择自己的使用方式。
- Scrum还是一系列认证的品牌,还被当做是光鲜的外套,也被当做是发泄愤怒的靶子,等等。
另外,我自己写东西的风格是希望内容是严谨的,有逻辑性,不犯归因错误的毛病。但目前许多总结Scrum或敏捷实施经验的文章,或多或少,或有意或无意的,都有很多不准确的地方。
- 实践出真知。没错,Scrum就是从实践中总结出来的,但是再用回到实际环境中使用时,其效果不见得会等同于其来源的那些实践。
- 找准问题根源。Scrum或敏捷实施失败会有很多原因,将它归咎于任何单一的因素都是不严谨的态度,不管是企业自身环境还是作为工具的Scrum或其他软件开发方式。
- 传达信息最好专业点。我不太喜欢写哗众取宠的文章,也许过分了点,但我认为任何人都不应该写这样的文章。如果我要总结Scrum实施的经验,我就不会简单的说“Scrum是狗屁”或者“Scrum万岁”。私下的情感发泄需要,但是博客或文章或微博的受众太广泛,而平面文字的理解总是存在被误读的可能,所以需要小心。
接下来我们看看讨论中具体的一些细节(申明:我没有任何攻击他人的意向,同样的错误我自己也会犯,只是拿出来当做例子分析而已,请谅解。)以下文字为节选,为避免误解,请阅读完整的讨论记录,点击如下链接:http://weibo.com/1794616154/eACaMoVgZUP。
- 陈加兴:不用敏捷我们也能把项目做好,就跟不用某些价值观洗脑我们依然能够做到相互信任与尊重一样。
【个人意见】其实“相互信任与尊重”不就是价值观吗?敏捷明确地提及并推崇了一些价值观,但并不是说除了敏捷就没有别的方法论或是啥的提倡这些价值观了。敏捷的特点无非是说,看吧,我自己秉持一些价值观,为了秉持这些价值观,在面临某些选择的时候,我需要用一些原则来指导自己做判断,而这些原则会引导我走向那些符合自身价值观的选择。 - 孟晓林Ralph:那么请教一下,敏捷所关注的信任、尊重这类“真正重要的地方”的原因是什么呢?难道其他的项目管理方式就不是以信任和尊重为基础和前提条件的么?难道以为需要信任和尊重就要忽视自身的责任么?
【个人意见】看到孟兄这条评论时我顿时觉得血液沸腾心跳加速,同样是问号,这三个问题让我非常直接地就认定为是“反问句”,而且感受到一种咄咄逼人的气势,非常难受。其中的第2和第3个问题犯了二分法(binary)的错误。第二个问题潜在的意思是(当然也可能是我误会了),孟兄认为有人或者我在指责其他项目管理方式不以信任和尊重为基础和前提条件,首先就得说我压根没有这个意思,也没有任何地方说过这句话,如果我脾气不好,可能就直接翻脸了,毕竟这有点泼脏水的嫌疑;其次孟兄可能觉得我们说敏捷提倡信任和尊重就意味着别的方法不提倡,这绝对是先入为主的二分法作祟。第三个问题,至少我从来没说过需要信任和尊重就要忽视自身的责任,再没有引用我的具体话语的情况下,反问我是否表达了某个意思,这样的形式不礼貌。而且,孟兄的话语中有把信任尊重和自身责任放在对立面的嫌疑。 - 陈加兴: 核心要表达的确实有些不清,主要是两点:1.Scrum所关注的有些偏离技术本身,如任务领用中设计阶段没有清晰划出来;2.它所倡导的“价值观”需要更 高心智水平才能真正实践。
【个人意见】第一点就显示出对Scrum的误解,因为Scrum自身(请参考Scrum Alliance上的定义)就是一个框架,我的总结是它主要关注项目、组织(人)、事务的管理,而不是具体细节的操作。所以指责它偏离技术本身,这就是个伪命题。第二点,价值观是没有前提的,秉持某种价值观就意味着你要克服现实世界中的困难去做到,而不是意味着要让你的价值观去吻合现实世界。 - 孟晓林Ralph:呵呵。信任和尊重同样需要前提。
【个人意见】同上,我并不认为信任和尊重需要前提。我很难理解这样的观点,这并不符合逻辑。如果你认为对方需要满足某个前提你才能信任,那么在对方满足前提的过程中,你究竟是在信任人家呢还是不信任人家呢?我认为它们需要的是后续观察而已,信任就像是授权,对方靠谱,就多信任多放手一些;对方能力有限或不太靠谱,那么降低点期待,自己多留意多照顾。信任有度,无前提。 - 孟晓林Ralph:我自认为我的想法很简单,一个事情不是因为某点好他就好,某点不好他就不好,而具体的环境决定了我们最重要的任务到底是什么。
【个人意见】这有点唯现实论(我自己造的词,不晓得准不准)的感觉。其实“具体”和“最重要”就是一个很大的话题。而Scrum或者说敏捷就是明确指出了“最重要”的目标,例如“通过持续不断地及早交付有价值的软件使客户满意”,而把具体留给了实施者或实施组织自己,根据企业的具体情况,制定出达成目标的操作方案。 - 孟晓林Ralph:我认为从概念的角度去解析概念,如若用事实去证明来的稳妥。
【个人意见】我非常想解释清楚我对这个观点的看法,能力有限,希望能讲清楚。正所谓很多时候眼见都不为实,更不要说看待事实的角度不同,总结也是很不相同。我主张对于概念的解析应引用其原始的定义,而对于实际操作中的问题,则要分割概念本身以及概念的具体实现,从而RCA(Root Cause Analysis)才不会有失偏颇。如若归因错误,便会证明出一个不同的甚至是错误的观点,其危险性在于通常会引导人把有限的注意力放在错误的地方,浪费掉有限的精力、财力、物力去改进。要Correct RIGHT Thing,必须要先Identify RIGHT Root-Cause。
本文并没有讲解一个知识点或知识体系,是为了我自己可以比较集中的、系统些回答讨论中的一些焦点,如有任何异议或不理解,请通过微博或博客评论和我联系。