我想說的是,這裡是三權分立,不是指政治體制裡面的立法、行政、司法,而是指程式開發中的系統設計、系統開發、系統測試。在這裡,系統設計有點類似於立法,系統開發有點類似於行政,而系統測試有點類似於司法。
系統設計包括需求文件、設計文件的撰寫,也包括系統架構、程式設計規範、介面風格等。這一切都是為進行系統開發所做的一些準備,使得進行開發有一定的依據,不同的人在這些文件指引下,能夠開發出比較統一的系統(這裡的統一包括介面風格的統一和程式設計風格的統一)。
系統開發是指開發人員在需求文件、設計文件等各種文件的支援下,開始按照規範進行開發,開發出來的結果能夠跟文件的要求一致。系統開發是三權中最重要的一權,離開的這個,其它的東西顯得都沒有意義了。
系統測試是對開發的一種檢驗,它能保證系統的不斷完善、健壯。離開了測試,就好像三權中沒有了司法,那麼乙個政治體制就會開始出現問題,**就會開始腐敗,而行政人員就會顯得肆無忌憚,體制中就會出現乙個乙個的漏洞,這些東西不斷的積累的,等到有一天,它開始爆發了,那麼,這個體制也就會癱瘓、崩潰,而這一切,也許就在一霎那間發作,等到你開始省悟,準備去挽救的時候,發覺已經太遲了。
在現實的開發過程中,我們經常發現,在很多公司裡面,系統的設計者也就是系統的開發者。這樣會出現的問題包括下面幾個方面,一是設計者缺少開發者的監管,系統設計者在設計出文件出來後,往往自以為他們的想法思路沒有一點缺陷,當他們沿著他們設計的文件進行開發的時候,他們逐漸的發現了他們設計的文件存在的問題,當他們開始對文件的設計進行修改的時候,他們會發現,這時候修改設計的話,那麼原來開發的東西又有很多需要修改,因為他們既是設計者,又是開發者,這個時候他們就會陷入乙個兩難的境地,是要修改原先的設計,還是原來的設計繼續開發下來?現在很多公司都有乙個開review(評審)會議的做法。系統設計文件出來都,往往要開個review會議,討論裡面的設計是否合理,是否存在缺陷等。事實上,假如設計者又是開發者,找那些對系統無關的人士來開個review作用有多大?即使找來的人在技術、設計上都是前輩,在乙個短短的review會議中,他(她)能看出設計中的缺陷的機率有多少?能總共看出幾個問題?況且,因為跟他們關係不大,很多人可能根本不想認真的來開這個會議,有些人可能根本就不想提出什麼問題來。二是開發者缺少設計者的監管。在開發的過程中,開發者可能會發現某些功能如果按照文件的設計進行開發的話,會變得很難實現,或者說開發起來更加麻煩。因為開發者又是設計者,在這個時候,他們可能就會很輕易的修改原先的設計文件,而不理會原先的設計是否更加合理。
在有些公司裡面,可能就沒有測試這個概念,或者說開發者本身就是測試者。這樣就造成了很多開發者根本不仔細的對自己開發的系統進行測試,或者理所當然的認為自己的系統沒有問題。即使開發人員進行了仔細的測試,因為系統本身是他們開發的,他們可能沒有意識到一些在其他人看來是比較容易發生的問題。從另外乙個方面來看,因為開發者本身也是測試者,那麼他們就缺少了測試對他們的監管,有些人可能就缺乏一種動力對系統問題進行認真的處理,比如說,開發人員在開發過程中發現了乙個問題,但是排查了三天都搞不出個所以然來,這個時候他們可能就會放棄繼續對這個問題進行跟蹤排查,而如果開發人員跟測試人員不是同一組人的話,在測試中發現了這個問題,那麼開發人員就不得不對這個問題進行跟蹤排查,給出乙個最終的解決方案。在另外一種情況,假如現在開發人員的開發任務非常繁重,安裝目前開發情況來看可能無法如期完成任務的話,因為沒有測試人員進行監管,這時開發人員可能就會採用弄虛作假的行為,在系統裡面或者是在資料上做一些手腳,使得介面看上去的結果跟預期的結果一致(我想這可能是中國程式設計師的乙個特色之一吧)。
讓程式開發也來個三權分立,這樣能使得設計、開發、測試相互監督,共同促進。當然,軟體公司的老總可能出於錢的考慮,而拒絕採用這種方法。那麼作為軟體(系統)的使用者來說,你們在付錢給開發商的時候,也應該把這些因素考慮進行,畢竟,這些方法的直接收益者可能就是軟體的使用者了。
讓程式開發也來個三權分立
我想說的是,這裡是三權分立,不是指政治體制裡面的立法 行政 司法,而是指程式開發中的系統設計 系統開發 系統測試。在這裡,系統設計有點類似於立法,系統開發有點類似於行政,而系統測試有點類似於司法。系統設計包括需求文件 設計文件的撰寫,也包括系統架構 程式設計規範 介面風格等。這一切都是為進行系統開發...
模組分解原理與三權分立
模組分解原理與三權分立 模組分解原理探索 前一篇模組分解原理探索的文章中談到了模組需要按專業領域分解,怎麼這篇文章的標題上突然冒出了三權分立,軟體怎麼和政治制度扯到一起去了?表面看這兩個東西好像是風牛馬不及,但如果把軟體系統和整個社會系統做乙個模擬的話,也許能看出一些端倪來。在軟體中,有需求,設計,...
模組分解原理與三權分立
模組分解原理與三權分立 模組分解原理探索 前一篇模組分解原理探索的文章中談到了模組需要按專業領域分解,怎麼這篇文章的標題上突然冒出了三權分立,軟體怎麼和政治制度扯到一起去了?表面看這兩個東西好像是風牛馬不及,但如果把軟體系統和整個社會系統做乙個模擬的話,也許能看出一些端倪來。在軟體中,有需求,設計,...