引子
敏捷開(kāi)發(fā)總是一個(gè)充滿話題與爭(zhēng)議的東西娃承,加上日常工作中經(jīng)常會(huì)遇到有各種各樣的場(chǎng)景。要不要TDD? 要不要Pair? 要不要每張卡上線怕篷?要不要團(tuán)隊(duì)每個(gè)開(kāi)發(fā)都是全棧历筝?要不要每個(gè)人都是全功能? 流程是否過(guò)重?會(huì)議是否過(guò)多廊谓?日常溝通是否太費(fèi)時(shí)梳猪?這個(gè)來(lái)源于十幾年前的開(kāi)發(fā)方法論,是否依然適應(yīng)于這個(gè)一日千里的開(kāi)發(fā)領(lǐng)域蒸痹?要不要寫(xiě)文檔春弥?等等呛哟。。匿沛。
關(guān)于這些爭(zhēng)論了無(wú)數(shù)次的東西扫责,嗓子大是沒(méi)有用的。于是基于個(gè)人淺薄的經(jīng)驗(yàn)逃呼,梳理了以下思考的過(guò)程公给,以及歡迎大家拍磚。
思考邏輯
明確首要目標(biāo) --> 確定原則 --> 結(jié)合場(chǎng)景 && 提出實(shí)踐
明確首要目標(biāo)
首先就是要明確我們最重要的目標(biāo):持續(xù)不斷地及早交付有價(jià)值的軟件使客戶滿意蜘渣√暑恚“持續(xù)不斷的及早交付有價(jià)值的軟件”,是為了能夠及早的推出產(chǎn)品蔫缸,從而快速的驗(yàn)證想法腿准、快速的試錯(cuò),進(jìn)而更快的適應(yīng)市場(chǎng)的需求拾碌,降低錯(cuò)誤成本吐葱,快速搶占市場(chǎng);“客戶滿意”校翔,則強(qiáng)調(diào)了軟件作為產(chǎn)品弟跑,用戶體驗(yàn)的重要性。
我們所做的事情防症,應(yīng)該都是為了達(dá)成這個(gè)首要目標(biāo)而努力孟辑。當(dāng)我們有件事情不確定了的時(shí)候,不妨問(wèn)下自己蔫敲,是否有利于自己達(dá)成首要目標(biāo)饲嗽。
確定原則
其次確定原則。原則與實(shí)踐是兩種不同的東西奈嘿,類(lèi)似于數(shù)學(xué)中的公理與定理貌虾。原則是大家公認(rèn)的絕對(duì)不可輕易違背的東西,通常描述的會(huì)比較大一些裙犹,在這里面尽狠,就是為了實(shí)現(xiàn)上述目標(biāo),我們必須得遵守的東西叶圃;而實(shí)踐則是由原則衍生出來(lái)的一些具體的操作袄膏,是可以由原則推導(dǎo)出來(lái)的。
原則比首要目標(biāo)要更具體盗似,有利于我們?cè)谟行┯懻撝锌焖龠_(dá)成一致哩陕,減少溝通成本。當(dāng)多條原則互相沖突時(shí)候赫舒,可以參考我們實(shí)際的首要目標(biāo)悍及;
參考當(dāng)年敏捷宣言的具體內(nèi)容提到的東西:
個(gè)體和互動(dòng) 高于 流程和工具
工作的軟件 高于 詳盡的文檔
客戶合作 高于 合同談判
響應(yīng)變化 高于 遵循計(jì)劃
以及敏捷十二原則, 太長(zhǎng)這里就不列了。個(gè)人總結(jié)接癌,就是強(qiáng)調(diào):
- 及早以及持續(xù)的交付價(jià)值心赶。能快速上線,快速驗(yàn)證缺猛,低成本試錯(cuò)……
- 及時(shí)的響應(yīng)需求變化缨叫。市場(chǎng)&社會(huì)是個(gè)復(fù)雜巨系統(tǒng),變化很快荔燎,及時(shí)響應(yīng)保證產(chǎn)品價(jià)值最大耻姥。并且敏捷這個(gè)詞,在系統(tǒng)學(xué)中有咨,本身就有指代快速響應(yīng)變化的能力琐簇。
- 重視溝通,流程簡(jiǎn)潔座享。團(tuán)隊(duì)內(nèi)外婉商,業(yè)務(wù)、開(kāi)發(fā)渣叛、客戶丈秩、責(zé)任人等。保證大家對(duì)于需求的理解是一致的淳衙,保證大家能及時(shí)獲取用戶真正的需求
- 及時(shí)反思蘑秽。三省吾身
- 追求技術(shù)卓越與良好設(shè)計(jì)。 好的可讀的代碼箫攀,有利于持續(xù)的開(kāi)發(fā)與演進(jìn)
- 激發(fā)個(gè)體斗志筷狼,提供環(huán)境、資源匠童,團(tuán)隊(duì)自組織埂材。 團(tuán)隊(duì)中人的重要性,大家很嗨皮汤求,自主意愿&斗志強(qiáng)的時(shí)候俏险,才能做出最好的產(chǎn)品。
結(jié)合場(chǎng)景 && 提出實(shí)踐
實(shí)踐是我們項(xiàng)目上具體采取的一些操作扬绪,是一些很具體的事務(wù)竖独。這些操作的目的是為了完成上面說(shuō)的首要目標(biāo)。而原則則給我們提供了一些思考方向挤牛,幫助我們快速的從一些維度來(lái)思考并達(dá)成一致莹痢,而在這個(gè)過(guò)程中,項(xiàng)目的實(shí)際背景不可忽視。
因此竞膳,在我看來(lái)航瞭,上面疑問(wèn)里面的很多實(shí)踐,之所以會(huì)有這么大爭(zhēng)議坦辟,也是因?yàn)樗麄兇蠖挤洗蟛糠值脑瓌t刊侯,但是又在一些背景里面多少有些沖突。
比如說(shuō)锉走,要不要TDD? 要不要pair? 這些實(shí)踐固然很好滨彻,它“追求技術(shù)卓越與良好設(shè)計(jì)”,他“促進(jìn)團(tuán)隊(duì)內(nèi)部溝通”挪蹭,能幫助我們少寫(xiě)bug亭饵。但是很多產(chǎn)品,尤其是一些創(chuàng)業(yè)團(tuán)隊(duì)而言梁厉,在早期MVP階段辜羊,幾乎不可能以這種方式去工作,他們需要快速上線快速測(cè)試懂算,更愿意使用最簡(jiǎn)單甚至很潦草的方式去實(shí)現(xiàn)只冻,比如江湖傳言某滴早期的代碼爛,做大以后開(kāi)始各種重構(gòu)计技;團(tuán)購(gòu)鼻祖Groupon早期就是基于開(kāi)源框架Wordexpress搭建了一個(gè)相當(dāng)粗糙的模板喜德;
其他比如要不要團(tuán)隊(duì)每個(gè)開(kāi)發(fā)都是全棧?這在一個(gè)平穩(wěn)的項(xiàng)目中當(dāng)然很好垮媒,有利于大家的溝通舍悯,以及減少對(duì)個(gè)體的依賴;但是在一個(gè)項(xiàng)目初期睡雇,本身有很多坑要趟萌衬,或者有很多領(lǐng)域的技術(shù)難題需要解決,那么過(guò)度追求全棧的結(jié)果就是多而不精它抱,某一塊的技術(shù)卓越與良好設(shè)計(jì)很難實(shí)現(xiàn)秕豫;尤其是如果那個(gè)人對(duì)領(lǐng)域本身的偏好也比較強(qiáng)的時(shí)候,個(gè)體斗志观蓄,團(tuán)隊(duì)自組織性混移,都會(huì)有影響。
一言蔽之侮穿,實(shí)踐是需要跟實(shí)際背景相結(jié)合來(lái)看的歌径。完全脫離背景談必須follow什么實(shí)踐,就跟脫離劑量談毒性一樣亲茅,都是耍流氓回铛。
小結(jié)
簡(jiǎn)單的說(shuō)狗准,敏捷開(kāi)發(fā)發(fā)展這么多年,給出了很多非常好的實(shí)踐茵肃,可以解決開(kāi)發(fā)中很多代碼腔长、流程、管理上的問(wèn)題免姿。但是我們?cè)谕耆玣ollow時(shí)候饼酿,不妨先看下項(xiàng)目的實(shí)際情況榕酒,是否真的可以幫助我們“持續(xù)不斷地及早交付有價(jià)值的軟件使客戶滿意”胚膊。