敏捷方法的好處是有據(jù)可查的,但是在遵從驅(qū)動的市場中,向敏捷過渡對于嵌入式開發(fā)團隊來說是一個挑戰(zhàn)。需要可追溯性和文檔來證明遵從性,但是這可能與敏捷的精神相矛盾,敏捷的精神仍然受到伴隨著方法論成長起來的不準(zhǔn)確神話的困擾。事實上,只要采用正確的方法和工具策略,敏捷和遵從可以舒適地共存,沒有太多的妥協(xié)。最重要的是可追溯性,在這個上下文中,這意味著將需求與測試運行和解決的問題聯(lián)系起來。有了可靠的可追溯性,您不僅可以提供滿足審計需求所需的證據(jù),還可以支持更好的透明度和跨團隊的跟蹤,這也有助于協(xié)作。
一個好的起點是定義敏捷開發(fā)的含義,因為這個術(shù)語雖然廣為人知,但卻經(jīng)常被誤解。在最簡單的層面上,敏捷是一種松散的方法,基于對客戶需求、跨職能團隊協(xié)作和響應(yīng)變化的關(guān)注(與嚴(yán)格遵循記錄的計劃和時間表相反)。許多嵌入式開發(fā)方法,包括一些最近的混合方法,都在敏捷的保護傘下,包括:Scrum、Kanban、Scrumban、Kanplan和擴展敏捷框架(SAFe)。
敏捷神話
不管哪種風(fēng)格的敏捷,都有一些常見的誤解,例如,敏捷缺乏結(jié)構(gòu)或控制,或者需要在質(zhì)量上有所取舍。這兩個神話都不是真的:結(jié)構(gòu)、控制和質(zhì)量保證都可以構(gòu)建到敏捷過程中。
另一個錯誤的認知是敏捷在受監(jiān)管的行業(yè)不起作用。然而,Perforce自己在2018年對醫(yī)療設(shè)備開發(fā)市場(無疑是所有市場中監(jiān)管最嚴(yán)格的市場之一)的調(diào)查發(fā)現(xiàn),超過三分之一的受訪者當(dāng)時已經(jīng)轉(zhuǎn)向敏捷。有趣的是,我們越來越多地從處于嚴(yán)格監(jiān)管環(huán)境中的公司那里聽到他們已經(jīng)——或者即將——擁抱敏捷。
那么,這些公司是如何運作的呢?這是一個嵌入式開發(fā)團隊如何在敏捷框架上執(zhí)行的問題,不管他們使用哪種敏捷方法,可追溯性都是關(guān)鍵。有了可靠的可追溯性,組織可以使用幾乎任何他們想要的過程來交付。
可追溯性
可追溯性有助于回答這樣一個問題,“如果某件事發(fā)生了變化,還有什么會受到影響?”重要的是,可追溯性可以用向后和向前追溯來定義。向后可追溯性是檢查上游需求是否證明了設(shè)計或構(gòu)建的合理性。向前可追溯性是檢查在生命周期的后期階段所需要的東西是否得到了解決。
這里有一個例子。在敏捷開發(fā)中,尤其是Scrum,工作項目被分解成更小的部分,并在固定的時間框架內(nèi)完成,稱為沖刺或迭代。這意味著管理人員必須確保每個工作項目(及其更小的部分)都有適當(dāng)?shù)臏y試覆蓋。這種可追溯性要求從項目一開始就明確定義“父”和“子”項目之間的結(jié)構(gòu),換句話說,就是不同元素之間的關(guān)系和影響。這種工作的最終結(jié)果——在嵌入式開發(fā)的所有階段勤奮地完成——是一個跟蹤矩陣,它允許組織理解哪些需求、測試和問題是相關(guān)的。這種跟蹤矩陣提供了一種簡單的方法來進行向前和向后的影響分析,并最終提供現(xiàn)成的責(zé)任。有了這種結(jié)構(gòu)和數(shù)據(jù),決策者可以在變化發(fā)生之前了解變化的影響,并管理和減輕風(fēng)險,而不管使用什么交付方法或流程。雖然從前追溯矩陣是手工創(chuàng)建的——例如,在Excel電子表格中——但是這些手工方法并不適合今天復(fù)雜的軟件環(huán)境。結(jié)果,越來越多的組織使用他們的ALM工具來自動化這個過程。
人們需要工具
敏捷從根本上是關(guān)于人的,但是,考慮到工具扮演著重要的支持角色,確保工具的復(fù)雜性不會阻礙可追溯性是至關(guān)重要的。例如,如果需求存儲在Word文檔中,問題在Atlassian的Jira中跟蹤,代碼存儲在Git或其他系統(tǒng)中,如SVN或微軟TFS,跟蹤和追蹤是分散的,因此風(fēng)險增加。類似地,如果這些團隊正在實現(xiàn)不同的項目管理方法,每個都有不同的標(biāo)準(zhǔn)、過程或者控制,那么這樣的可追溯性可能很難實現(xiàn)。
對于希望在不增加風(fēng)險的情況下實現(xiàn)一定程度的敏捷性的嵌入式開發(fā)人員來說,合適的工具可以消除或至少減少進入的障礙。例如,應(yīng)用生命周期管理(ALM)工具可以與Atlassian的JIRA集成,以提供端到端的可追溯性、測試和需求管理,同時還提供合規(guī)報告和審計所需的數(shù)據(jù)。
過渡到敏捷——最佳實踐
首先是需要高管的支持。像任何其他主要的組織計劃一樣,如果沒有高層的全力支持,敏捷將無法通過不可避免的阻礙和障礙。
其次,敏捷最好從團隊層面開始。通過定位錯誤的步驟,組織既可以降低風(fēng)險,又可以更容易獲得成功。在團隊一級吸取的經(jīng)驗教訓(xùn)可以推廣到部門一級,然后在適用的情況下應(yīng)用于整個組織。
第三,作為產(chǎn)品化一部分的團隊必須有一個清晰的過程和共享的術(shù)語。例如,需求是以用戶故事的形式編寫的,還是兩者混合使用?評估是以天、小時還是故事點來衡量的?角色需要重新定義嗎,例如,業(yè)務(wù)分析師需要被訓(xùn)練成Scrum大師嗎?這些問題(以及更多的問題)應(yīng)該在嵌入式開發(fā)早期得到處理和解決,這樣高管、經(jīng)理和團隊才能說同一種語言,從而能夠在迷失方向的時候充分溝通。
當(dāng)然,還有無數(shù)的其他考慮要做,其中許多是無法計劃的,所以只能在出現(xiàn)時解決。雖然這已經(jīng)成為老生常談,但必須認識到唯一不變的是變化。
所有這些都必須在法規(guī)和合規(guī)性的背景下進行,在許多行業(yè)中,法規(guī)和合規(guī)性還在不斷發(fā)展。這些組織的未來很難預(yù)測,但合規(guī)性是日常業(yè)務(wù)生活中越來越重要的一部分,無論是確保道路上汽車的安全、幫助患者護理的設(shè)備,還是使物聯(lián)網(wǎng)成為一個更加可靠和安全的運營環(huán)境。與此同時,敏捷方法的速度和靈活性——不管它是否有正式的標(biāo)簽——正被各種組織積極地用來創(chuàng)造競爭優(yōu)勢。在一個敏捷需要與合規(guī)共存的世界里,知道這是最有可能的是很好的,只要用正確的文化、嵌入式開發(fā)工具和過程來解決,所有這些都由可追溯性來支撐。