最適合敏捷方法的項目是那些有著激進(jìn)的時間期限限制,那些有著高度的復(fù)雜程度,以及那些有著高度新穎性(獨特性)的項目。當(dāng)我們在做一些新的事情,到少是對于開發(fā)團(tuán)隊是新的事情,我們會比較愿意使用敏捷方法。
如果這是一件團(tuán)隊以前曾經(jīng)重復(fù)做過很多次的事情,他們很可能就不需要用敏捷的方法來做了。對我來來說,這種時候就應(yīng)該考慮引入類比制造的方法了。如果我們每天建造同一種車,我們很快就會了解到造車中的每一個細(xì)微差別。我們不需要一個敏捷的方法因為在這種情況下新穎性非常低。
但是單獨的新穎性本身并不一定就意味著必須使用敏捷流程。我今天去了我最喜歡的一家中國餐廳吃午餐。我點了一道“三倍辣外加墨西哥胡椒”的主菜。這也許是他們第一次這樣做這道菜,而且這是一個少見的或者獨一無二的點餐。但是廚師做得非常好。而且我確定(因為我能看到廚房里面)他們不需要站會或者測試驅(qū)動的方法來做這個午餐(然而,我好像看到他們背后有一個看板,所以說除了新穎性,使用敏捷的項目也需要有一定程度的復(fù)雜性。
一個我認(rèn)為在決定一個項目是否適合于使用敏捷方法的最終因素是緊急性。敏捷方法中的時間箱和迭代就是為了保持項目中的緊張度和專注度。如果項目沒有緊急性,這些就是不需要的。讓我們一起看一下這三個因素-緊急性,復(fù)雜性和新穎性-在不同的項目中是如何組合的。當(dāng)然,從軟件項目開始來看。沒有比軟件項目更適合的了。軟件項目是出了名的復(fù)雜。每一個新的軟件項目中的大部分內(nèi)容都是新的嘗試。而且在當(dāng)今社會,軟件項目總是很急的。
但是讓我們再看看另一個我們大家都聽過的適用于Scrum的情形:婚禮籌備。我每年至少有好幾次聽說人們用Scrum方法來籌備婚禮。人們會準(zhǔn)備一份婚禮的backlog–買蛋糕, 找攝影師, 發(fā)邀請, 準(zhǔn)備服裝等等. 那么籌備婚禮與我所說的三個因素什么關(guān)系呢?緊急性?看一看??偸怯幸粋€限期在那里而且通常是不能改的。
敏捷特別適合于那些很緊急并且非常復(fù)雜及比較新穎的項目,可以是軟件項目,也可以是婚禮。夫婦倆是否要在慶典的結(jié)尾有第一個吻,這是否應(yīng)該屬于backlog的一部分,還是應(yīng)該算產(chǎn)品完成標(biāo)準(zhǔn)的一部分,這樣的問題是必須要搞清楚的。
它與軟件項目不太一樣但是有它自的復(fù)雜度,通常由非功能性的需求帶來,比如固定的預(yù)算,誰應(yīng)該坐誰的旁邊,提供什么類型的食物,是否要讓艾拉表妹樂隊做迎賓演出等等。新穎性,是的。大部分人都不會有太多次舉辦這種大型慶典活動,所以籌備活動對他們都是有很強的新穎性的。