3.4 企業軟件交付的軟件工廠方法
正如我們前面討論的,今天的機構面對的商業環境正以前所未有的速度發生變化。與此同時,這些機構還要管理和降低整個機構的運營成本。這就直接意味著,他們不僅要最大限度地減少浪費和低效率,還要提高生產力。軟件和系統行業正在從基于手工作業、側重個人的流程,演變為成熟且可重復的流程,既能穩定獲得高品質的輸出,又具有靈活性,能夠根據客戶的個別需求差異進行調整。
為了定義企業軟件的設計、開發和交付中的軟件工廠方法,我們可以把工業行業的關鍵特點應用到這里,以便減少產品的上市時間、提高靈活性和敏捷性、降低成本,同時提高質量和最終用戶的滿意度。集成方法可以幫助軟件交付機構實現業務敏捷性,更有效地進行協作,并交付更高質量的產品和服務。
3.4.1 協調業務與工程
企業軟件交付的軟件工廠方法不僅需要一個完善的多平臺的流程,而且要有能夠讓工程和系統部署與業務戰略相協調的工具。事實已經證明,這種多平臺流程對于構建滿足客戶需求的應用軟件至關重要。它們可以幫助確定業務需求和利益相關方的要求,然后推動這些業務目標轉化成企業軟件交付項目和解決方案,確保最終產品符合業務目標,并具有最低的成本和最高的質量。
高層和管理團隊需要集中精力做出恰當的戰略決策,執行“正確”的產品,并保留“正確”的資產在他們的基礎設施中。要讓企業變得更精簡、更敏捷、利潤更高,關鍵因素包括識別和優先考慮可能整合的領域、減少冗余和經常性費用、提高運營效率等。
要對機構進行微調,需要進行更好的企業決策并了解業務和技術的依賴關系。管理團隊必須有一個容易搜索、覆蓋整個企業的存儲庫,用于保存可以支持企業的分析、規劃和執行的業務和技術資料。
3.4.2 流程和任務的自動化
企業軟件交付生命周期的自動化,可以幫助減少錯誤、提高生產效率、改善產品質量。一套集成的工具組合可以幫助團隊把具體的勞動密集型任務自動化,這與制造流程中執行重復性手工任務的自動化十分類似。自動化可以讓從業者把重點放在創造更多的創新解決方案上,用業界領先的設計和開發環境來支持高品質、安全和可擴展產品的交付。那些投資于自動化和更高效的生產和交付的公司會在生產力、質量、上市時間和可擴展性等方面體會到一個相當大的飛躍。
3.4.3 在整個企業中利用資產
現代的架構設計和產品開發框架可能會帶來復雜性,因為它們常常會在整體企業軟件解決方案中引入第三方、自定義、現成或外包的組件。有幾種方法可以應對這個問題:
面向服務的架構(SOA)框架可以促進整個企業中的重用。為了從SOA方法中獲得重大的價值,應用程序均圍繞共享的接口描述進行開發,并由標準化的軟件組件組合而成[42]。
產品線工程(PLE)是一個通過開發同類產品組合來獲得戰略重用的方法,這些產品組合擁有共同的思路,但特性和功能會根據產品族中的每個解決方案的需求而有所變化[36]。
這些方法的基礎都是一個覆蓋所有可用共享資產的可搜索的索引。要真正從重用中獲益,企業必須能夠了解他們已經擁有哪些資產,然后利用這些資產來創建可重用的靈活組件,以有意義、可預測的方式來拓展結構框架。
3.4.4 支持精益流程和集成基礎設施
如今的企業軟件交付團隊可以在地理上高度分散。因此,為了獲得企業軟件交付框架的好處,他們需要靈活敏捷的流程,能夠跨越不同的平臺、角色和地域進行實時協作和集成。可以利用定義好而又可以定制的流程以及最佳做法,幫助分布在全球各地的開發改善靈活性,通過全面質量管理來降低風險,并通過任務和過程自動化來提高開發人員的生產力。
3.4.5 運營測量和控制的自動化
為了幫助確保提供可預測的結果,必須對企業軟件交付過程進行治理,以便實現持續測量和改進。這種治理的一個基本要素是產品開發過程的定義和規章化。這些流程和最佳做法是企業的資產,它們必須體現為一種可執行的形式,以便引導團隊在整個自動化工作流程中遵守恰當的最佳做法。
在每一步中都應自動收集相關指標,包括企業系統交付并投入生產后。通過不斷自動測量流程中的特定關鍵值,這些指標可以揭示現有流程的有效性,并找出需要改進的地方。在嚴格監管的行業,如軍事、航空航天、醫療行業以及許多金融部門,自動測量和控制就顯得尤為關鍵。
歸根結底,投資回報率會證明在企業軟件交付中引入這些動態工廠方法概念的意義。通過更高效的方法來獲得的生產力,以及最終得到的軟件和系統的質量改進都有可以量化的貨幣價值。