我來拋塊磚,也許是些謬論,希望看到大家的高見.
首先,本人相信,軟件工程的方法,如果能夠使用得好的話,可以很大地提高軟件開發的效率.
但是,在實際工作中,一個單位的開發人員水平參差不齊,就我本人的經歷,發現很多單位還是習慣于極其落后的手工作坊式開發.別說使用CASE工具,連程序的文檔都懶得寫,即使有文檔,也就停留在一個非常簡單的說明,例如程序某個類完成某項功能,至于該類的結構如何,各成員變量干什么,各函數干什么,你就自己琢磨去吧.
說實話,本人也很希望自己所在的開發組是一個組織有素的團體,一切按照一種有序的狀態進行,然而在現實中卻很難做到.很多人對于軟件工程本身就很懷疑.誠然,軟件工程不是萬能的,但有些人卻走到了另一個極端,而且在他們看來,很多軟件的開發,就是幾個人,按照一種很隨便的簡單的組織開發出來的.應該說,如果項目很小,也許軟件工程的意義并不大.假如我一個人開發一個小項目,我敢打賭說我不需要任何的文檔,充其量在個別復雜的函數中增加簡單的注釋(這是本人從小養成的壞習慣,從中學學習BASIC開始就拒絕寫程序流程圖,被老師說了幾次,然屢教不改).但是,只要設計到兩個以上的人,就需要一定的組織.
然而人們的習慣是難以改變的,本人進入一家單位后,自己是從最底層的程序員做起,糊里糊涂編了一堆代碼,到最后卻由于當初設計人員的失誤,這些代碼后來又做了很多次改動,本人猶如在一個爛泥潭里打滾,實在有些厭倦.和我一同進入單位的一個人,一開始對此極其不滿,和上司說了幾次,但是頭們覺得寫文檔是額外的工作量,只要程序開發出來,能夠用就行了,很少考慮進一步維護的問題.然而我們卻走了幾次彎路,正所謂欲速則不達.
其中一次是頭們草草地決定上一個項目,而且覺得只要兩個月就出來了,但是實際上半年后才開發完畢,但是開發出來的程序,一運行就需要占用大量的系統資源.根本無法推廣到我們的用戶那里(我們開發用的機器配置都很高,但面向的用戶卻還是386或486水平,遺憾的是他們設計時根本沒有考慮到這一點).
另一次是一個比較簡單的數據庫應用,該程序僅僅是把一些收集到的一些信息全部顯示出來,有一個人開發顯示用的界面,另一個人開發錄入信息的界面.然而由于一開始考慮得不夠周到,經常發現庫中缺少一些必要的項,于是又修改數據庫的結構,每次結構的改變,都需要前臺、后臺程序做相應的修改.又是一堆煩瑣的無謂的勞動.直到后來暫停下來,仔細地分析了各種可能變化的因素,才設計了一個比較好的結構,這已經一年時間過去了.
本人在學校時,軟件工程的基本概念是清楚的,但卻沒有什么經驗,而且說實話,學校里很多知識是很教條的,實際中如何運用還是不太清楚,因此剛參加工作時,本人對于單位里如此無組織的開發持觀望態度,然而結果卻很令本人失望.于是我開始了行動,經過一番激烈的爭論,本人列舉了一大堆失敗的事實,終于讓頂頭上司意識到無組織開發的效率低下,本人也終于成了技術部門主管。然而回首這段往事,不禁感慨萬千,我初步估算了一下,從我進入該單位到現在,有四分之三的工作都是重復勞動,或者是無效的勞動.
文章來源于領測軟件測試網 http://www.kjueaiud.com/