成長伴隨迷茫堵漱,扛起問題一路前行,念念不忘,必有回響
在敏捷開發(fā)方面做了多年的思考,也做了很多的實(shí)踐,依然困惑重重:
多團(tuán)隊(duì)維護(hù)一套代碼如何保持代碼風(fēng)格
自組織的驅(qū)動力究竟來源何方
團(tuán)隊(duì)究竟如何組建
把這幾個問題的思考記下來俱笛,以便后面翻閱。
多團(tuán)隊(duì)代碼維護(hù)
多團(tuán)隊(duì)對一套代碼進(jìn)行維護(hù)時传趾,總會因?yàn)槊總€團(tuán)隊(duì)的要求不一樣迎膜,導(dǎo)致代碼內(nèi)在質(zhì)量的逐漸惡化。而對代碼潔癖的團(tuán)隊(duì)來講如梗在喉浆兰,該如何是好呢磕仅?
該問題無解也有解。
說它無解簸呈,其一宽涌,這跟每個團(tuán)隊(duì)看待代碼的方式有關(guān),敏捷的目標(biāo)是多快好省蝶棋,即使都是敏捷團(tuán)隊(duì)卸亮,整個實(shí)施過程也有很大的差別,何況大家對代碼的理解玩裙!其二兼贸,即使別人寫的很爛段直,那么多任務(wù),其中一個“自以為”代碼寫得好的團(tuán)隊(duì)也忙不過來叭艿鸯檬!從此處來看的確很難化解。
凡事無絕對螺垢,即使沒有化解方法喧务,總有某一些可以曲線救國的方式。
“多快好省”是敏捷的原始驅(qū)動力枉圃,我們先把“好”拿掉功茴,那是專家級的評價(jià),很難去衡量孽亲。所以能做的事情就是先把多坎穿、快、省的東西體現(xiàn)出來返劲,這是所有人都認(rèn)可的事情玲昧。
優(yōu)秀程序員的效率比普通程序員的效率要高很多倍,體現(xiàn)在哪篮绿?就體現(xiàn)在同樣的時間內(nèi)能夠完成更多的feature孵延,更少的故障!
所以強(qiáng)調(diào)優(yōu)秀代碼本身亲配,很難得到一致認(rèn)可尘应,如果沒有優(yōu)秀的外在表現(xiàn),誰會去在意你的代碼是否clean弃榨,架構(gòu)是否優(yōu)秀。
因此優(yōu)秀的代碼要體現(xiàn)出優(yōu)秀的外在表現(xiàn)梨睁,當(dāng)優(yōu)秀成為一種習(xí)慣時鲸睛,會有人注意到的,此時再拿出來優(yōu)秀的代碼坡贺,可能它就是別人必須需要遵循的標(biāo)準(zhǔn)官辈。
此時隨著所做守護(hù)團(tuán)隊(duì)認(rèn)知水平的統(tǒng)一和提高,才能達(dá)到代碼統(tǒng)一的可能遍坟。
TIPS:
代碼質(zhì)量需要較長的時間周期反饋拳亿,使得多團(tuán)隊(duì)都高標(biāo)準(zhǔn)難以實(shí)現(xiàn)。
團(tuán)隊(duì)組建
在團(tuán)隊(duì)自組織內(nèi)驅(qū)力問題解答之前愿伴,先看看團(tuán)隊(duì)的組建肺魁,也許內(nèi)驅(qū)力就迎刃而解了。
談到團(tuán)隊(duì)的組建隔节,不得不從團(tuán)隊(duì)的目標(biāo)和團(tuán)隊(duì)競爭力來講了鹅经。
團(tuán)隊(duì)目標(biāo)
團(tuán)隊(duì)從成立起寂呛,就確定了用最優(yōu)秀的代碼,產(chǎn)出最優(yōu)秀的產(chǎn)品瘾晃。
實(shí)際上優(yōu)秀的產(chǎn)品在實(shí)踐中贷痪,更多的體現(xiàn)出來故障少,然而故障少其實(shí)也可以通過一些流程來做到蹦误,例如產(chǎn)品交付的DoD劫拢。
實(shí)踐發(fā)現(xiàn),DoD可以減少故障强胰,但是做不到交付周期的變短舱沧。
所以團(tuán)隊(duì)目標(biāo)還是得依靠人和技術(shù)來達(dá)到。
團(tuán)隊(duì)競爭力
團(tuán)隊(duì)競爭力就是人才哪廓,而程序員本身也需要有研發(fā)體驗(yàn)狗唉,而研發(fā)體驗(yàn)就是團(tuán)隊(duì)在人才方面的競爭力。
程序員研發(fā)體驗(yàn)不是更快的電腦涡真,更舒服的座位分俯,而是解決問題時被打斷的次數(shù)有多少和有多快的開發(fā)反饋體驗(yàn),前者代表著有多少自主性哆料,后者是體現(xiàn)著當(dāng)程序員的成就感缸剪。
程序員的大部分時間是工作,幸福感與研發(fā)體驗(yàn)強(qiáng)相關(guān)东亦。
所以程序員體驗(yàn)優(yōu)化是一個團(tuán)隊(duì)必須考慮的重要問題杏节。
團(tuán)隊(duì)能力要求
到此時,敏捷團(tuán)隊(duì)的組建就顯得比較簡單了典阵,只要能夠?yàn)閳F(tuán)隊(duì)的目標(biāo)和提高競爭力的做持續(xù)貢獻(xiàn)的人奋渔。
那么問題來了
- 如何減少打斷
- 如何快速反饋
如何減少打斷
項(xiàng)目的管理會議實(shí)際上是有規(guī)劃的,團(tuán)隊(duì)內(nèi)部的打擾實(shí)際上是可控的壮啊,但是我們面臨著外部來的各種需求嫉鲸、各種臨時任務(wù),導(dǎo)致打斷變得頻繁歹啼。
敏捷提倡的是timebox的概念玄渗,不希望我們在這段時間內(nèi)被打擾。迭代的概念就在于這個timebox狸眼,你迭代要足夠快藤树,你受到的打擾就會降到最低。
例如來了一個臨時任務(wù)拓萌,分析岁钓,討論的過程中,如果能把上一個迭代的任務(wù)完成,那么這種打斷造成的影響也會降到最低甜紫。
為了達(dá)到這個目標(biāo)降宅,就需要需求分析,代碼開發(fā)能夠盡快的完成囚霸,測試完成的非逞快,這就要求團(tuán)隊(duì)的業(yè)務(wù)分析能力拓型,技術(shù)能力额嘿,CI能力持續(xù)強(qiáng)大才能辦到。
如何快速反饋
從需求到用戶使用是一個比較長的鏈條劣挫,這里的反饋姑且定義成團(tuán)隊(duì)能給的快速反饋吧册养。
站在開發(fā)團(tuán)隊(duì)的角度,提交的代碼能夠快速部署压固,運(yùn)行球拦,看到需求的交付到測試部,通過測試部的測試帐我,就算是快速反饋了坎炼。
為了能夠提高反饋速度,團(tuán)隊(duì)級CI的持續(xù)運(yùn)行和自動化用例的部署顯得尤其重要拦键。
所以團(tuán)隊(duì)的組建就要求能夠滿足技術(shù)谣光,業(yè)務(wù),測試芬为,持續(xù)集成的人來完成這種事情萄金。
自組織的自驅(qū)力
為了達(dá)到提升開發(fā)人員的研發(fā)體驗(yàn),大家會持續(xù)努力的為之奮斗媚朦,因?yàn)樗娴挠绊懙搅宋覀兩畹男腋8小?/p>
那么努力的方向也就非常明確氧敢,別人以月為單位迭代,我們可不可以以周询张,可不可以以天為單位孙乖。
為了達(dá)到這個目標(biāo),實(shí)際上還是會讓我們在技術(shù)瑞侮,管理等方面都做到極致的圆。
最后
我們明白所有道理鼓拧,依然過不好一生
人才是最重要的半火,我也知道,可我如何找到一個靠譜的人呢季俩?
人才那么貴钮糖,不可能挑最貴的,如何破解項(xiàng)目中的人品驅(qū)動開發(fā),敬請關(guān)注下篇《人才的平臺化培養(yǎng)》店归。