Posted on 2008-09-13 18:20
非魚 閱讀(1862)
評論(2) 編輯 收藏 所屬分類:
面向對象設計
Before your software dies, it's valuable. Remember this.
凡人造物(Artifact),皆有價值。有些也有壞處,但這并不掩蓋其價值。軟件亦如此。所謂價值,通俗來說就是對人有益。很多軟件不入人法眼,并非沒有價值,而是因為還有些軟件更有價值。
現在忘記怎么做的問題,我們來看看做什么:軟件開發,就是使“軟件”更有價值的活動。一個軟件企業,不是要做軟件,而是要做好軟件,做更有價值的軟件。
這和架構有什么關系?
軟件有其形式,軟件通過形式讓人得益;軟件有其靈魂,軟件的靈魂就是架構。架構定義多個人群可以從軟件中得益的最大與最小值,并貫穿軟件生產和改進的過程,控制和保證不同人群利益的實現。
簡單的說就是:架構規定并保證了軟件的價值。
為什么要“以架構為中心的開發”?
因為要保證并提升軟件的價值,就是要比其他同類更有價值。可惜的是并不是所有人都知道這個道理。老總說:“架構很重要。”銷售也這樣說。但是為什么?他們不知道,所以也并不會和架構師就此問題產生共鳴。于是“架構”和質量一樣,成了企業的一個口號。
其實相當多的架構師也不知道,就像QA/QC其實并不一定真正理解什么是質量一樣。所以最初的架構師關注組件和連接器,進而關注原則和約束,關注風格和過程,直到最后,才想到要關注軟件的價值。
從知到用
這是一個理念,這是一個原則,這是架構設計的出發點。它并不能直接應用在架構設計、維護和改進的過程。但它可以做為一把尺子,用來度量一個架構的好壞。在任何一個架構決策確定之前,也要考慮它。
這可不是一件簡單的事。通常我們需要從受益者(stockholder)出發,來定義一個列表,記錄受益人對價值的看法,包括期望的效果、付出的代價、忍耐的程度等底線、閥值,這是超出用戶需求的東西。這些也并非一成不變的東西,然而每次細微的調整,都極可能帶來架構的巨大變化。慎之!
最容易想到的受益人是用戶、客戶,以及第三方合作伙伴、潛在的客戶等。最容易忽略、最容易被損害的是開發組織自身的利益。知易行難。
最大的挑戰,是時間。人很容易動搖,遺忘了價值。而對于一個組織來說,對付時間最有效的武器,是管理。
希望這個小文,對大家有所幫助。謝謝!
Technorati 標簽:
軟件架構,
軟件價值,
架構設計