天天看點

《SAFe 4.0參考指南:精益軟體與系統工程的規模化靈活架構》一2.3 原則#3——接受變異性,保留可選項

本節書摘來自華章出版社《safe 4.0參考指南:精益軟體與系統工程的規模化靈活架構》一書中的第2,第2.3節 作者[美]迪恩·萊芬(deanleffingwell),更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

2.3 原則#3——接受變異性,保留可選項

創造系統級設計和子系統概念的多種可選方案;而不是過早地選擇一個勝出方案,然後消除與之不同的其他可選項。隻有那些存活下來的設計選項,才是最強大的可選方案。

——艾倫 c.沃德,《精益産品和流程開發》

系統建構者們都會傾向于減少變異性。表面上看起來,你認為自己知道的越多并且已經做出相應的決策,你就會走得更遠。但事實往往并非如此。雖然變異性會導緻糟糕的結果,但有些時候也不盡然。變異性的自身無所謂好與壞。相反,是由于時間的經濟效應和變異性的類型決定了最終的結果。如果過早地專注于消除變異性,可能會導緻企業萌生厭惡風險的文化,這樣員工也就不能通過試錯和學習來擷取經驗。

精益系統建構者們認識到,在項目的早期除了一些基本的系統目标之外,對項目的實際情況知之甚少。确實,如果能掌握所有資訊,那麼系統早就建構成功了。然而,傳統的設計方法往往讓開發人員迅速地開始實作一個單一的方案——而這個方案僅僅是衆多潛在解決方案中的一個——然後再通過修改設計,直到最終滿足系統的目标。這也許是一個很有效的方法——當然,前提條件就是最初所選擇的單一方案不能有誤——然後再通過後續的疊代進行細化,但是最終可能需要花費很長時間才能得到一個并不是最佳設計的解決方案(參考資料[1])。

如果最初選擇的單一方案不是最優的,那麼後果就是:系統越大、越需要技術創新,所帶來的損失也會越大。一個更好的方法是,可以參考使用基于集合的設計(多個設計構成一組)或者基于集合的并行工程(多個并行工程構成一組)(參考資料[2]),如下圖所示。

《SAFe 4.0參考指南:精益軟體與系統工程的規模化靈活架構》一2.3 原則#3——接受變異性,保留可選項

在基于集合的設計中,系統建構者們最初會考慮非常廣泛,提出多種設計選項。接下來,他們持續地評估經濟效益和技術難度之間的平衡,在內建的學習點上,可以示範與目标的比對情況。然後,基于示範的結果和所擷取的經驗,去除那些不太好的選項,收斂到一個最終的設計。

采取這種流程,可以讓設計選項的持續時間盡可能延長,在必要的時候進行收斂,并最終産生更優的技術實作和經濟效益。

參考資料

[1] iansiti, marco. “shooting the rapids: managing product development in turbulent

environments.” california

management review 38 (1995): 37–58.

[2] ward, allan c. and durward sobek. lean product

and process development. lean enterprise institute inc., 2014.