建立軟件開發(fā)團(tuán)隊要避免七個問題

建立和維護(hù)一個高效能的軟件開發(fā)團(tuán)隊是一個需要持續(xù)努力的過程。面臨的挑戰(zhàn)包括:從競爭激烈的市場中吸引優(yōu)秀人才,提供有趣和富有挑戰(zhàn)性的工作,以及組建具有凝聚力的團(tuán)隊結(jié)構(gòu)來讓所有團(tuán)隊成員都能得到成長。
我們很幸運地在一些重視交付質(zhì)量和交付后期的軟件開發(fā)團(tuán)隊里工作,并且發(fā)現(xiàn)了一些容易阻礙團(tuán)隊快速推出優(yōu)質(zhì)軟件的常見結(jié)構(gòu)和做法:
1:“DevOps”孤島
特別是隨著一個團(tuán)隊的成長,或者可能是為了填補當(dāng)前團(tuán)隊技能存在的差距,我們會被誘惑著在團(tuán)隊中或團(tuán)隊周圍建立單獨的功能以執(zhí)行特定的工作崗位。
我們看到的最常見的表現(xiàn)是操作(通常成為DevOps或基礎(chǔ)架構(gòu)),而且在操作中任何基礎(chǔ)架構(gòu)相關(guān)的任務(wù)需要這個單元中的某個人執(zhí)行。我們認(rèn)為這在軟件交付的重要組成部分——部署和運行的周圍劃出了不必要的邊界。
我們寧愿看到真正的DevOps技能植入到軟件開發(fā)團(tuán)隊中,讓這些團(tuán)隊能夠端到端地交付他們的應(yīng)用程序,并負(fù)責(zé)地運行他們的應(yīng)用程序。
2:缺少權(quán)力
我們經(jīng)常能看到權(quán)力缺乏和表現(xiàn)不佳之間呈現(xiàn)了高度的相關(guān)性。一個團(tuán)隊需要能夠管理自己每一天的工作負(fù)荷,能夠做出技術(shù)決定以及,如有必要的話,還能改變他們的工作方式。
一個團(tuán)隊被給予小單位的高規(guī)格的工作的地方,并且自上而下做出決定的地方,很可能就是那里你會覺得冷漠的地方。
我們發(fā)現(xiàn)如果給予團(tuán)隊一個明確的、注重商業(yè)效益的理念,并且授權(quán)去弄清楚交付的最佳方式,那么團(tuán)隊執(zhí)行最佳。
3:隔離利益相關(guān)者
在一些組織中可能存在不鼓勵或不允許開發(fā)團(tuán)隊與利益相關(guān)者接觸的結(jié)構(gòu)或做法。一個高性能的團(tuán)隊需要與那些軟件發(fā)布的利益相關(guān)者進(jìn)行定期和開放的交流溝通。
除了慣常的論壇,例如kick-off會話和案例展示,可用來促進(jìn)對話,我們鼓勵使用通信工具,例如Slack,促使利益相關(guān)者和開發(fā)人員之間能夠進(jìn)行持續(xù)的討論。
4:單槍匹馬和團(tuán)隊人員過多
我們發(fā)現(xiàn)最佳的團(tuán)隊規(guī)模是2至4人。對于大多數(shù)人來說,在只有1個人的團(tuán)隊中工作比起和其他人一起工作更缺乏問責(zé)和社會互動。
當(dāng)團(tuán)隊規(guī)模開始超過大約4人的時候,溝通會變得困難起來,并且會降低團(tuán)隊的責(zé)任感。
5:質(zhì)量是所有人的工作
關(guān)于質(zhì)量挑戰(zhàn)一個太過于常見的回應(yīng)是,試圖通過引入專門的工作崗位,或者甚至更糟的是,引入測試來解決這個問題。在那些團(tuán)隊和生產(chǎn)運行的軟件之間感知到安全網(wǎng)的地方,責(zé)任水平會下降,然后質(zhì)量緊跟其后。
通過鼓勵質(zhì)量成為團(tuán)隊的責(zé)任,接受例如同行審查的做法,以及自動化測試技術(shù)地不斷采用,我們看到了更好的成功。
6:功能優(yōu)先于技術(shù)債務(wù)
在商業(yè)交付截止期限和跟上技術(shù)債務(wù)之間有一個平衡。如果不保持平衡,技術(shù)債務(wù)會迅速阻礙團(tuán)隊的交付能力。
團(tuán)隊樂意累積技術(shù)債務(wù),或領(lǐng)導(dǎo)者樂意對此視而不見,是一些在我們開始和一個軟件開發(fā)團(tuán)隊工作時可以立馬識別和需要改善的行為模式。
一個團(tuán)隊需要被授權(quán)并被鼓勵去向他們的Product Owner推銷償還技術(shù)債務(wù)的好處,這樣技術(shù)債務(wù)就可以隨著功能開發(fā)一起解決掉。
7:在團(tuán)隊建設(shè)上投資不足
在建設(shè)一個有凝聚力的團(tuán)隊時謹(jǐn)記一些基本知識非常重要。促進(jìn)大量的社會活動來為團(tuán)隊提供論壇,讓團(tuán)隊能夠享受彼此工作之外的企業(yè)氛圍,同時為個人提供學(xué)習(xí)和更好地保持自己進(jìn)步的機會。
提高任何團(tuán)隊的幸福感、生產(chǎn)力和凝聚力仍然需要持續(xù)的努力,而并且需要定期修正方向。如果你想要構(gòu)建一個高效能的軟件開發(fā)團(tuán)隊,那么我們會建議你大膽地雇用人才,并投資于可以提供定期反饋循環(huán)的實踐行為,以幫助你植入一種經(jīng)常反省和不斷改進(jìn)的文化。