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