一、開發人員問題:
1、你開發中按軟件工程做了嗎?
軟件工程,這對軟件開發員來說是多么熟悉的字眼,但其中的內涵你又知道多少? 再進一步說,在開發中按軟件工程來做的又有多少? 大家常在網上聽到一些程序員在抱怨說:“我加班加點地寫了10萬行的代碼,所以老板把我給開除了!边@話扎聽有點好笑,但細細一想這是他的悲哀。他寫的代碼雖多,可是關鍵的又有多少。如果里面的代碼只要有80%的是關鍵的,我想老板是決對不會開除他的。問題出在10萬行代碼中有多少是關鍵的。先不說寫這10萬行代碼所花的時間了,就說以后的維護問題,要是你到一個公司,老板首先要求你看完這10萬行代碼。我想你第一想到就是走人,第二想到的還是走人。因為對于一個沒有按軟件工程來進行開發的程序,不要說是這么多的代碼;那怕是幾十行、幾百行,讀起來也是很難受的事。記得我剛到深圳找工作,老板讓我接手另一個程序員所開發的一個小系統。這樣理所當然的就是看設計文檔,可是沒有,這樣只有看源程序;當我打開源程序時,我呆了?戳艘惶齑a,我決定走人。當我向BOOS提出時,老板給我做思想工作。當然加薪也是少不了的,這也打破加薪的記錄了。所以我就留下了。之后我開始看代碼。在我看代碼的同時真不知道把寫這程序的程序員罵了不知道多少次。這讓我更加增強了對軟件工程的認識。為了不讓以后繼我的程序員不罵或少罵我。所以得好好按規定《軟件工程》辦事。說這些只是想讓大家靜下來想想,你在開發中按軟件工程做了嗎?
2、你是先寫文檔再寫程序的嗎?
一個好的程序是先寫好設計文檔再進行編程的,在設計文檔的指導下,才能寫出安全的代碼。在文檔的指導下,這樣寫出來的程序至少不會出現寫了10萬的代碼還被老板開除的情況。如果你不寫文檔,一開始就寫程序,這樣你就不會按已設計好的路線走,而是想到哪寫到哪。小功能還好說,要是大功能,你想想等你寫下一個時,回過頭來看原來寫的,你早就不知所云了,那時你就覺得好像在云里霧里亂走,修改的代碼也就更不安全了。我所說寫文檔不是說很正規的,那怕你只用一張搞紙劃上幾畫也要畫點出來(這是對小功能來說的)。對于大的程序來說,你就必須正規的寫了。因為這樣才能詳細的記下你的設計思想,如果開發一段時間后,感覺須要對一些功能進行修改或變態時,記住別刪除原來的,而是在下面進行變更說明。這樣再次看文檔時你就會更清楚為什么要這么做的原因。一看就明白不是多好?偙饶闳ピ傧胍郧暗脑O計花的時間要少,如果刪除原來的設計思想,當你再次看修改或變動的功能時,你可能會對其不理解。這是多么可怕的事呀!我想作為程序員應該知道文檔的重要性?墒窃谝恍┬」,先寫文檔后寫程序的開發員又有多少。要成為一個好的程序員大家想想自己該怎么做的吧!
二、軟件項目管理問題:
1、現代的軟件開發,技術不是關鍵:
隨著日益增長的軟件需求和軟件系統功能的增強,過去一個人開發的歷史已不復存在,F在單槍匹馬寫程序也只是一種娛樂。我們一般開發的系統都是一個小組才能完成的。所以管理才是開發出好的軟件的前提條件,沒有管理一定出不來好的軟件,當然有管理也不一定出軟件的。一個成功的軟件不一定是最好的技術,但在它背后一定有一個好的管理。所以現在的軟件開發已不像從前把技術放在第一,而是該把管理放在第一位。我在網上看到一篇關于中國軟件和印度軟件的比較。我現在記的不是太多,但對我影響最深的是他們會去權衡技術和開發效率問題。如現在開發一個軟件,用戶要求在三個月內完成,你在做系統分析時也認為在三個月能完成。但你沒有考慮到一些細節,你寫完系統的總體設計,在進行詳細設計時碰到要建一張不是太大的路由表。這時大多數國內的設計人員就會想用什么算法,去花很多時間去設計研究新的算法和技術,而人家首先考慮的是系統的運行環境,而這個軟件設計了是在(CPU:1.1G,內存:512M)中運行,用戶也沒特意提出其運行效率要求。所以人家就在內存中開一個大數組來對這個路由表進行操作。從這點看,人家注重的是軟件的整體,而不像國內大多數據設計員那樣,把個體放在首位。其實這方面我覺得我們的開發員應當多向共產黨學習(本人不是共產黨員,團員也因沒交團費被Cancel掉了)。把軟件設計的整體放在首位,而不去花太多的時間在不一定成功的技術上。如果花太多的時間在技術上去,這將對系統的按時完成帶來影響。我也不是說不該研究技術,我只是說開發中應當以全局為重。如果要加入新的技術,必須在分析時就預算其所需要的時間,并設置技術風險管理。如果風險太大就應當取消用這項技術,改用其它的已成功的技術代替。風險管理這是近來才提出的軟件管理方法。它對我們的軟件項目有著很好的控制作用。對于一些中、大型系統,它是一把走進成功之門的鑰匙。這里就不談了,我將在下面進行說明。
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/