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