怎樣在敏捷開發(fā)中做到“事半功倍”?

Isaac Sacolick
敏捷領(lǐng)導(dǎo)和敏捷團(tuán)隊(duì)在敏捷開發(fā)中面臨的挑戰(zhàn)是怎樣定義并遵循數(shù)據(jù)、體系結(jié)構(gòu)模式和標(biāo)準(zhǔn)。有一種觀點(diǎn)認(rèn)為,由于敏捷團(tuán)隊(duì)敏捷迭代(sprints)的工作通常會(huì)長(zhǎng)達(dá)2~4周的時(shí)間,而產(chǎn)品所有者一般會(huì)提出太多的按優(yōu)先順序排列的產(chǎn)品需求項(xiàng),因此,很難推動(dòng)數(shù)據(jù)和技術(shù)標(biāo)準(zhǔn)。

敏捷領(lǐng)導(dǎo)和敏捷團(tuán)隊(duì)在敏捷開發(fā)中面臨的挑戰(zhàn)是怎樣定義并遵循數(shù)據(jù)、體系結(jié)構(gòu)模式和標(biāo)準(zhǔn)。有一種觀點(diǎn)認(rèn)為,由于敏捷團(tuán)隊(duì)敏捷迭代(sprints)的工作通常會(huì)長(zhǎng)達(dá)2~4周的時(shí)間,而產(chǎn)品所有者一般會(huì)提出太多的按優(yōu)先順序排列的產(chǎn)品需求項(xiàng),因此,很難推動(dòng)數(shù)據(jù)和技術(shù)標(biāo)準(zhǔn)。標(biāo)準(zhǔn)的制定需要時(shí)間;遵循標(biāo)準(zhǔn)要求敏捷團(tuán)隊(duì)有足夠的時(shí)間來(lái)計(jì)劃技術(shù)的實(shí)施。

在一個(gè)敏捷迭代中執(zhí)行,并且只計(jì)劃下一次敏捷迭代的敏捷團(tuán)隊(duì)將很難使用標(biāo)準(zhǔn)來(lái)制訂他們的開發(fā)計(jì)劃。如果不容易遵循或者引用文檔化的標(biāo)準(zhǔn),那么團(tuán)隊(duì)的效率就會(huì)降低,并且很難針對(duì)最佳體系結(jié)構(gòu)和數(shù)據(jù)實(shí)踐對(duì)新開發(fā)人員進(jìn)行培訓(xùn)。這好比一支沒(méi)有地圖或者GPS的隊(duì)伍在森林里走散了;他們也許能到達(dá)下一個(gè)路口,但他們不知道自己是否正沿著一條最佳路徑返回鎮(zhèn)上。

需要注意哪些數(shù)據(jù)和體系結(jié)構(gòu)問(wèn)題

把數(shù)據(jù)和體系結(jié)構(gòu)標(biāo)準(zhǔn)分為兩類是比較合適的:

· 標(biāo)準(zhǔn)體系結(jié)構(gòu),例如,數(shù)據(jù)模型、數(shù)據(jù)管道、實(shí)現(xiàn)微服務(wù)體系結(jié)構(gòu)的技術(shù)、標(biāo)準(zhǔn)化的CI/CD(持續(xù)集成和持續(xù)交付)管道,以及圍繞新技術(shù)的概念驗(yàn)證等。這些都需要前期的工程工作。

· 標(biāo)準(zhǔn)實(shí)踐,包括命名約定、測(cè)試需求、微服務(wù)接口標(biāo)準(zhǔn)和可用性模式。以上這些指導(dǎo)敏捷團(tuán)隊(duì)怎樣實(shí)現(xiàn)功能并解決技術(shù)難題。還可能包括定義怎樣擴(kuò)展數(shù)據(jù)模型、驗(yàn)證CI/CD管道改進(jìn)效果,以及記錄新微服務(wù)端點(diǎn)的流程標(biāo)準(zhǔn)。

當(dāng)標(biāo)準(zhǔn)需要工程工作時(shí),最好將此工作定義為敏捷產(chǎn)品需求項(xiàng)中的用戶長(zhǎng)故事(epics)、特征和故事(stories),并將它們分配給適當(dāng)?shù)膱F(tuán)隊(duì)。這些團(tuán)隊(duì)?wèi)?yīng)將其他應(yīng)用程序開發(fā)團(tuán)隊(duì)視為其客戶,并應(yīng)圍繞他們的工作定義驗(yàn)收標(biāo)準(zhǔn)。這類開發(fā)的產(chǎn)品所有者可以是數(shù)據(jù)、應(yīng)用程序或者解決方案架構(gòu)師,他們的工作就是交付易于敏捷團(tuán)隊(duì)使用并能實(shí)現(xiàn)業(yè)務(wù)價(jià)值的組件。

另一方面,當(dāng)標(biāo)準(zhǔn)向開發(fā)團(tuán)隊(duì)提供數(shù)據(jù)和體系結(jié)構(gòu)指導(dǎo)時(shí),這些標(biāo)準(zhǔn)應(yīng)該成為開發(fā)人員怎樣實(shí)現(xiàn)用戶故事的基礎(chǔ)。這就要求團(tuán)隊(duì)深入了解這些標(biāo)準(zhǔn);也許還需要一個(gè)易于使用的知識(shí)庫(kù),供團(tuán)隊(duì)領(lǐng)導(dǎo)和成員審閱。

敏捷開發(fā)需要持續(xù)的計(jì)劃

很多敏捷團(tuán)隊(duì)在敏捷迭代開始時(shí)會(huì)召開計(jì)劃會(huì)議。他們審查按優(yōu)先級(jí)排列的用戶故事,評(píng)估這些故事,并承諾在敏捷迭代期間處理它們。

當(dāng)團(tuán)隊(duì)按照優(yōu)先級(jí)對(duì)現(xiàn)有應(yīng)用程序進(jìn)行小的改進(jìn)時(shí),這種方法很有效。但是,如果他們正在開發(fā)新功能,并且希望與數(shù)據(jù)和體系結(jié)構(gòu)標(biāo)準(zhǔn)保持一致,那么即時(shí)計(jì)劃是不夠的。在敏捷迭代即將開始之前,團(tuán)隊(duì)沒(méi)有足夠的時(shí)間在一次會(huì)議上審查用戶故事,檢查實(shí)施與標(biāo)準(zhǔn)是否保持一致。

按照標(biāo)準(zhǔn)向前推進(jìn)的團(tuán)隊(duì)?wèi)?yīng)提前做好計(jì)劃。我更傾向于在敏捷迭代開始時(shí)召開名為“承諾會(huì)議”的會(huì)議,讓團(tuán)隊(duì)確定他們要處理什么樣的故事。將計(jì)劃實(shí)施這些故事的重要工作安排在一個(gè)或者多個(gè)“計(jì)劃會(huì)議”中。

理想情況下,團(tuán)隊(duì)建立一個(gè)持續(xù)的敏捷計(jì)劃過(guò)程,在這個(gè)過(guò)程中,他們會(huì)不斷地審查長(zhǎng)故事、特征和用戶故事。對(duì)于需要更多計(jì)劃時(shí)間的更復(fù)雜的工作項(xiàng),在計(jì)劃實(shí)施之前安排了不止一次敏捷迭代,這樣團(tuán)隊(duì)就能夠全面完成開發(fā)計(jì)劃;工作項(xiàng)越小,過(guò)程完成的就越快。最重要的是,盡早開會(huì)可以減輕團(tuán)隊(duì)的時(shí)間壓力;這樣,他們有足夠的時(shí)間來(lái)計(jì)劃實(shí)施,因此更有可能去考慮標(biāo)準(zhǔn)。

開發(fā)參考體系結(jié)構(gòu)和數(shù)據(jù)模型

協(xié)調(diào)敏捷團(tuán)隊(duì)的一種方法是開發(fā)描述當(dāng)前狀態(tài)、近期未來(lái)狀態(tài)和長(zhǎng)期目標(biāo)的參考體系結(jié)構(gòu)和數(shù)據(jù)模型。這些圖表可以作為開發(fā)團(tuán)隊(duì)的路線圖,以便他們知道怎樣更好地將其實(shí)施與體系結(jié)構(gòu)和數(shù)據(jù)標(biāo)準(zhǔn)保持一致。

文檔化的參考體系結(jié)構(gòu)是帶有顏色代碼和其他符號(hào)的單頁(yè)圖表,分清楚當(dāng)前狀態(tài)和未來(lái)狀態(tài)。為了把它們放在一個(gè)頁(yè)面上,架構(gòu)師應(yīng)該定義相關(guān)組件的范圍,并描述一個(gè)或者多個(gè)應(yīng)用程序的端到端服務(wù)。

參考數(shù)據(jù)模型可能包括多個(gè)圖表,具體取決于數(shù)據(jù)在組織中的使用方式。它們通常包括以下內(nèi)容:

· 一種概念數(shù)據(jù)模型,用于描述業(yè)務(wù)實(shí)體、關(guān)系和基本會(huì)話。

· 一種分析模型,分析數(shù)據(jù)怎樣集中在數(shù)據(jù)湖或者數(shù)據(jù)倉(cāng)庫(kù)中,用于分析、人工智能實(shí)驗(yàn)和數(shù)據(jù)可視化。

· 一種數(shù)據(jù)集成模型,顯示數(shù)據(jù)源、對(duì)從數(shù)據(jù)源加載的數(shù)據(jù)執(zhí)行的關(guān)鍵轉(zhuǎn)換,以及存儲(chǔ)數(shù)據(jù)的主數(shù)據(jù)庫(kù)。

· 一種服務(wù)模型,顯示微服務(wù)和其他API怎樣連接到數(shù)據(jù)庫(kù)。

這些圖表可以作為敏捷團(tuán)隊(duì)理解標(biāo)準(zhǔn)和未來(lái)方向的起點(diǎn)。架構(gòu)師應(yīng)該為這些模型補(bǔ)充完善更多的細(xì)節(jié),比如API文檔、數(shù)據(jù)字典,以及每個(gè)體系結(jié)構(gòu)和數(shù)據(jù)組件的領(lǐng)域?qū)<伊斜怼?/p>

編寫參考標(biāo)準(zhǔn)的驗(yàn)收標(biāo)準(zhǔn)

用戶故事應(yīng)描述需求的內(nèi)容、原因和對(duì)象。理想情況下,產(chǎn)品所有者不應(yīng)記錄故事是怎樣實(shí)施的,因?yàn)檫@是架構(gòu)師、軟件開發(fā)人員和測(cè)試人員的工作。團(tuán)隊(duì)?wèi)?yīng)該負(fù)責(zé)交付功能,并確保實(shí)施滿足體系結(jié)構(gòu)、數(shù)據(jù)、安全性、Devops和其他標(biāo)準(zhǔn)。

僅僅記錄標(biāo)準(zhǔn)和參考體系結(jié)構(gòu)還不足以讓團(tuán)隊(duì)遵守它們。團(tuán)隊(duì)在開發(fā)代碼和完成發(fā)行版方面承受著太大的壓力,因此審查標(biāo)準(zhǔn)并不總是首要任務(wù)。架構(gòu)師應(yīng)該負(fù)責(zé)審查用戶故事,與團(tuán)隊(duì)開會(huì)共同學(xué)習(xí),并通過(guò)在故事中寫入驗(yàn)收標(biāo)準(zhǔn),使實(shí)施與適當(dāng)?shù)臉?biāo)準(zhǔn)保持一致。

此外,軟件開發(fā)經(jīng)理應(yīng)與其團(tuán)隊(duì)討論驗(yàn)收準(zhǔn)則和標(biāo)準(zhǔn),以確保他們遵循最佳實(shí)踐,保證實(shí)施與未來(lái)的體系結(jié)構(gòu)和數(shù)據(jù)標(biāo)準(zhǔn)相一致。

規(guī)模較大的部門應(yīng)考慮通過(guò)多種方法來(lái)促使敏捷團(tuán)隊(duì)遵循數(shù)據(jù)和體系結(jié)構(gòu)標(biāo)準(zhǔn)。定義標(biāo)準(zhǔn)、在敏捷迭代之前進(jìn)行規(guī)劃、編寫體系結(jié)構(gòu)驅(qū)動(dòng)的驗(yàn)收標(biāo)準(zhǔn),以及定義職責(zé)——只有采用這些實(shí)踐措施,團(tuán)隊(duì)才能夠交付符合體系結(jié)構(gòu)要求的新功能。

作者:Isaac Sacolick是《數(shù)字化驅(qū)動(dòng):通過(guò)技術(shù)進(jìn)行業(yè)務(wù)轉(zhuǎn)型的領(lǐng)導(dǎo)者指南》一書的作者,該書涵蓋了很多實(shí)踐,例如敏捷、開發(fā)運(yùn)維和數(shù)據(jù)科學(xué)等,這些都是成功實(shí)施數(shù)字化轉(zhuǎn)型計(jì)劃的關(guān)鍵。

編譯:Charles

原文網(wǎng)址:https://www.infoworld.com/article/3433923/how-to-address-data-and-architecture-standards-in-agile-development.html

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論