最近讀管理大師彼得.德魯克(Peter.F.Drucker)《卓有成效的管理者》(The Effective Executive)一書,忍不住就想到在軟件系統中的有效性問題了,記得在哪篇翻譯文章中看到過一個國外大牛寫的軟件工程中可用性的論述。這里也借著管理大師的經典語句,來看看這些管理思想對軟件系統工程有哪些可以借鑒的地方。
“在組織的內部,不會有成果出現,一切成果都存在于組織之外”。
這樣的外部視角是我們最缺乏的,無論是管理、需求、設計、開發和實施的過程中,我們都忽視了這個問題,一上來就把自己沉浸在最擅長的領域……比如系統架構之中去了。最終不管項目結果如何,我們都可以肯定地說,我們是缺乏有效性的。因為我們連判斷成功的標準都沒有搞清楚。
花去了無數的人力物力,我們對客戶或公司領導說,“看,我們用最新的J2EE、AJAX....技術實現了一個無與倫比的系統構架....”,客戶和領導聽得是云山霧罩。可半年后,能上線的系統在哪里呢?一分析原因,我們就看到了需求的不停變化對系統構架沖擊,開發人員的變動,公司投入的不持續性,等等。
其實,我們忽略的是,系統的成果應該是帶來價值,而價值是在系統之外的!
因此,有效的軟件設計、開發、實施團隊,必須要學會這條核心思想。系統必須有效,否則毫無價值。
“對管理者的有效性而言,最重要的人物,往往不是管理者直接控制的下屬,而是其他部門的人,即所謂‘旁系人物’,或者是管理者本人的上司?!?br />
這說明了有效性產生于協作,如果不能讓他人利用自己的貢獻,本人也就沒有有效性可言。這條不但是做人做事的規律原則,對我們設計和開發系統,也應該作為設計原則。簡單的說,就是我們開發和設計系統組件的時候,必須以方便被其他組件或系統使用為設計原則。
一個功能強大但是不便于使用的組件或系統不是有效的系統。我們研究了那么多設計模式和組件技術,研究分層和分模塊開發,但是系統劃分的原則其實在于協作,便于系統和開發系統的成員之間協作的就是有效的劃分和設計。
不得窺道門,不得悟佛門,不得入窄門,實乃破門。