昨天晚上和部門的幾個(gè)SC在新加坡項(xiàng)目現(xiàn)場(chǎng)聚餐, 期間有個(gè)資深SC問我: 我們不是已經(jīng)敏捷了嗎? 敏捷到底是什么?
上面說的'我們已經(jīng)敏捷了', 指的是2017年初開始EBS項(xiàng)目作為公司的試點(diǎn)項(xiàng)目, 自上而下開始推行的敏捷轉(zhuǎn)型. 這位資深SC因?yàn)殚L期在項(xiàng)目現(xiàn)場(chǎng), 未參與母公司的敏捷導(dǎo)入培訓(xùn), 也沒有參加后期的敏捷教練訓(xùn)練營, 問的是合情合理. 其實(shí)就算參與了公司的導(dǎo)入培訓(xùn), 我也觀察到很多研發(fā)的同事在這個(gè)問題的理解上還不算清晰. 比如, 敏捷就是Scrum嗎? 有了站例會(huì)和看板是否意味這團(tuán)隊(duì)就開始敏捷了? 作為一個(gè)早期參與到敏捷轉(zhuǎn)型實(shí)踐的員工, 結(jié)合最近看的一些書籍資料, 寫一些我的理解.
首先, 用排除法. 看敏捷不是什么:?
敏捷不是方法論, 不是特別的軟件開發(fā)模式, 也不是一套工作框架和流程.?
也就是說敏捷不是一個(gè)可以生搬硬套的理論和流程. 比如, 它不像一個(gè)編程語言, 有一套固定的語法和語義. 也不像一個(gè)工作流程, 只要按照流程圖走, 就可以到達(dá)終點(diǎn). A公司的敏捷實(shí)踐不一定適用于B公司, 也許實(shí)踐起來有諸多矛盾之處. 假如你在市面上看到有推銷XX公司敏捷方法的書籍或者咨詢公司, 比如IBM敏捷, 微軟Scrum, 等等, 建議你三思而后行.
敏捷是一套價(jià)值觀(values)和原則(principles). 我們談?wù)撁艚輹r(shí), 經(jīng)常會(huì)談到具體的實(shí)踐(如站會(huì), 回顧會(huì)), 甚至具體的工具(如Leangoo). 然而這些實(shí)踐或工具本身并不是敏捷, 而是用來讓團(tuán)隊(duì)去貫徹敏捷的價(jià)值觀和原則. 換句話說, 只有當(dāng)具體的實(shí)踐/工具帶來的效果符合敏捷的價(jià)值觀和原則, 它才是敏捷實(shí)踐的一部分, 理解敏捷價(jià)值觀和原則是用來幫助我們?cè)谘邪l(fā)過程中做決策.?
這么去理解敏捷, 就會(huì)發(fā)現(xiàn)在敏捷實(shí)踐中, 每個(gè)團(tuán)隊(duì)/項(xiàng)目/公司所采用的方式可以是非常靈活的.??
現(xiàn)在來看看這些價(jià)值觀和原則, 也就是所謂的敏捷宣言(agile manifesto), 包含了4個(gè)核心價(jià)值觀和12條原則.(http://agilemanifesto.org/iso/zhchs/manifesto.html)
4個(gè)核心價(jià)值觀:
我們一直在實(shí)踐中探尋更好的軟件開發(fā)方法,
身體力行的同時(shí)也幫助他人。由此我們建立了如下價(jià)值觀:
個(gè)體和互動(dòng)高于 流程和工具
工作的軟件高于 詳盡的文檔
客戶合作高于 合同談判
響應(yīng)變化高于 遵循計(jì)劃
也就是說,盡管右項(xiàng)有其價(jià)值,
我們更重視左項(xiàng)的價(jià)值。
注意人們?cè)陂喿x時(shí), 經(jīng)常喜歡劃重點(diǎn), 而忽略了很多其他關(guān)鍵信息. 如敏捷宣言的前兩句.
我們一直在實(shí)踐中探尋更好的軟件開發(fā)方法,
身體力行的同時(shí)也幫助他人
兩個(gè)關(guān)鍵字: '實(shí)踐中探尋', '同時(shí)也幫助他人'.
強(qiáng)調(diào)了敏捷除了實(shí)踐沒有捷徑可走. 也強(qiáng)調(diào)了敏捷不是一個(gè)人的事, 只有團(tuán)隊(duì)的敏捷才是真正的敏捷.
還有最后兩句(比起前兩句, 這后兩句話現(xiàn)在被強(qiáng)調(diào)的次數(shù)更多):
也就是說,盡管右項(xiàng)有其價(jià)值,
我們更重視左項(xiàng)的價(jià)值。
這里強(qiáng)調(diào)了右項(xiàng)不能被忽略, 但是在決策時(shí), 如果最后決定更符合左項(xiàng)價(jià)值觀, 應(yīng)該如何行動(dòng).
12條原則:
我們遵循以下原則:
我們最重要的目標(biāo),是通過持續(xù)不斷地及早交付有價(jià)值的軟件使客戶滿意。
欣然面對(duì)需求變化,即使在開發(fā)后期也一樣。為了客戶的競(jìng)爭(zhēng)優(yōu)勢(shì),敏捷過程掌控變化。
經(jīng)常地交付可工作的軟件,相隔幾星期或一兩個(gè)月,傾向于采取較短的周期。
業(yè)務(wù)人員和開發(fā)人員必須相互合作,項(xiàng)目中的每一天都不例外。
激發(fā)個(gè)體的斗志,以他們?yōu)楹诵拇罱?xiàng)目。提供所需的環(huán)境和支援,輔以信任,從而達(dá)成目標(biāo)。
不論團(tuán)隊(duì)內(nèi)外,傳遞信息效果最好效率也最高的方式是面對(duì)面的交談。
可工作的軟件是進(jìn)度的首要度量標(biāo)準(zhǔn)。
敏捷過程倡導(dǎo)可持續(xù)開發(fā)。責(zé)任人、開發(fā)人員和用戶要能夠共同維持其步調(diào)穩(wěn)定延續(xù)。
堅(jiān)持不懈地追求技術(shù)卓越和良好設(shè)計(jì),敏捷能力由此增強(qiáng)。
以簡潔為本,它是極力減少不必要工作量的藝術(shù)。
最好的架構(gòu)、需求和設(shè)計(jì)出自自組織團(tuán)隊(duì)。
團(tuán)隊(duì)定期地反思如何能提高成效,并依此調(diào)整自身的舉止表現(xiàn)。
以上每一條都可以通過閱讀專業(yè)書籍來解讀, 這里不累述.
舉例來說如何理解并參考敏捷敏捷價(jià)值觀和原則:?
比如,當(dāng)開發(fā)人員接到一個(gè)任務(wù)時(shí), 他發(fā)現(xiàn)如果設(shè)計(jì)一套規(guī)則表, 不光可以解決現(xiàn)在的問題, 還能更靈活的支持其他復(fù)雜場(chǎng)景. 但是開發(fā)工期可能要延期1周. 當(dāng)他考慮到'及早交付有價(jià)值需求', 以及'以簡潔為本'的原則, 他會(huì)找需求負(fù)責(zé)人談, 是否這個(gè)場(chǎng)景未來會(huì)經(jīng)常變化? 還是特殊業(yè)務(wù)? 客戶對(duì)版本交付的時(shí)間敏感? 而不是自己直接做決策.?
又比如, 測(cè)試人員原則在做UAT, 現(xiàn)場(chǎng)網(wǎng)絡(luò)很差, 準(zhǔn)備數(shù)據(jù)要花半天時(shí)間. 考慮'激發(fā)個(gè)體的斗志,以他們?yōu)楹诵拇罱?xiàng)目。提供所需的環(huán)境和支援,輔以信任,從而達(dá)成目標(biāo)'的原則, 團(tuán)隊(duì)負(fù)責(zé)人應(yīng)該第一時(shí)間解決網(wǎng)絡(luò)問題.
再比如, 需求分析人員經(jīng)常出差, 無法在所內(nèi)辦公, 考慮'業(yè)務(wù)人員和開發(fā)人員必須相互合作,項(xiàng)目中的每一天都不例外'的原則, 團(tuán)隊(duì)負(fù)責(zé)人應(yīng)該考慮如何增加需求分析師, 或者和客戶說明需求調(diào)研必須在某個(gè)時(shí)間段完成(當(dāng)然這個(gè)也不符合'欣然面對(duì)需求變化'的原則, 在公司合同約束的前提下很難改變, 當(dāng)然也應(yīng)該是我們努力改變的方向), 留出與開發(fā)人員溝通的時(shí)間.
當(dāng)所有的團(tuán)隊(duì)成員(需求,設(shè)計(jì),開發(fā),測(cè)試,甚至到交付)每天的工作都以敏捷價(jià)值觀和原則來作為決策基礎(chǔ), 持續(xù)改進(jìn), 假以時(shí)日,這個(gè)團(tuán)隊(duì)可以自豪的說我們已經(jīng)在走向敏捷了.