在我們的開發中,有些實踐的價值是容易感受到的,比如重構,比如TDD,比如持續集成。
有些實踐的價值則不容易感受到,比如Retro(回顧會議),比如IPM(迭代計劃會議)。
以IPM為例,在我們的IPM上我們一般會做兩件事Kick off cards和Estimation。也就是選擇下個迭代要做的卡和評估每張卡的點數。這兩件事情似乎第一件事沒必要所有人都參與,第二件事感覺一定程度上是瞎蒙,尤其是一群人來蒙,顯得尤為的不靠鋪。而且似乎我們IPM就是為了選出下個迭代能做完的卡,就是為了知識傳遞,就是為了給客戶可視的數據和計劃,讓他們心理好過。
假設說我們不必所有人都參與就能保證選出適合下個迭代做的卡,我們通過每日Code Review等實踐使得每個人都不會缺少相關卡的知識,而客戶也不特別在意我們的進度(或者說我們的進度他們總是滿意),是不是我們就不需要IPM了?是不是我們就不需要集體Estimation不需要集體Kick off了?
實際上,我們的項目就符合前面的假設,在項目的最后,我們真的取消了IPM。這時,才感覺出來IPM的價值。
整個團隊的效率慢慢開始下降。對于目標的理解開始不一致。雖然團隊整體的表現并不差,雖然沒有出現任何實質的問題,但容忍度低的人開始不舒服。跟團隊自己以前的狀態比,確實有點退化的感覺。怎么會這樣呢?
每當說到這種狀態出現在敏捷團隊中的時候,我最常聽到就是人的問題,態度問題等等說法。其實我一直覺得,如果追究態度,空談人的問題有用的話,我朝應該是世界第一而不是那個人人自我的美帝。人一直是有問題的,不然要管理學干什么?敏捷里提倡自組織團隊,自我管理。但決不是松散組織,不管理。自組織它也需要組織,自我管理它也是管理。像IPM這樣的活動,就是管理的一部分。
IPM上做的兩件事,看起來完全不靠鋪,實際上卻非常有價值。整個IPM活動就是一個承諾的儀式。像古代行軍打仗前的誓師大會一樣,可以調動起團隊在下一個迭代中的士氣。通過集體參與評估和制定計劃,通過各個角色的共同作用,使得每個人都參與到整個計劃制定中來。自然而然的對下一個迭代許下承諾。而承諾一旦許下,就會像一個耳語的惡魔,暗中催促著人們的行為與其保持一致。
生活在我朝的人們,似乎對承諾這個東西的效果是完全不相信的。這也難怪,不過出于眾所周知的原因,咱不談我們為啥不信任承諾。從心理學的角度,承諾是有實際意義的。《影響力》“第三章 承諾和一致”中就講了這個極為簡單卻極為有用的心理學原理:人人都有一種言行一致(同時也顯得言行一致)的愿望。
其中有很多很有趣的實驗,揭示了承諾的力量。 感興趣的人推薦讀一讀。里面有個小例子提到,兩個星期前一個愿意在自家的草地上插一個小牌子為交通安全做點貢獻的小承諾,使得該社區76%的人都在兩個星期后接受了在自家草地上插一個擋風景的大牌子的請求。而對照社區只有17%。巨大的反差可以讓我們看到承諾的力量。
當然我們對承諾的不信任也是有道理的,當承諾真的難以完成的時候,幾乎所有人都會違背承諾。在傳統的瀑布式開發過程中,使得計劃這種承諾難度大大上升,而可信度也就大大下降。這也是為什么我們需要迭代的原因。