我在工作中,接觸到印度軟件公司開發出來的軟件:
整個體系架構非常清晰,按照我們的要求實現了全部功能,而且相當穩定。但是打開具體的代碼一看,拖沓冗長,水平不咋樣。我們自己的一些程序員就有怪話了,說他們水平真低。但是!印度人能夠把軟件整體把握得很好,能夠完成軟件,并得到相當好的設計文檔。而中國人在那里琢磨數據結構、算法,界面人員就還沒編碼就想著是Outlook式的還是VisualStudio式的界面。到最后就成為Code高手,對某些特定的開發工具精通,但是就是不能保證能夠把一個軟件穩當、完整的開發出來。
舉個簡單的例子:
軟件中需要一個列表,用來表示我們處理的事務。該類表在業務繁忙的時候將變得很大。中國人就用雙向鏈表,抱著《數據結構》書在那里寫鏈表的類。印度人開了一個大數組,然后就開始干。為什么印度人不用鏈表,他們說:
1、你們給出的設備(小型機),最少具備512M內存,浪費一些沒有什么。
2、數組方式訪問方便、效率高。
看出了一拿到東西就吭哧吭哧作Code,和好好進行軟件分析的不同了嗎?
正好前幾天我有幾個同事從印度回來和我們交流,那家公司是CMM4級公司.我感受的幾點:
1,流程重于項目。
2,QC(就是QA)獨立于研發部門,專門檢查研發部門的開發流程是不是按照既定流程走.如果QC覺得 流程不對,他會直接上報高層,項目肯定就此停止。
3,所謂的項目經理(PC)一般也是從編碼人員升上來的,并不是所謂的不懂技術,一般都至少有四年以上的經驗。
4,PC主要就是制定開發計劃,負責協調,填寫各種表格。
5,所有的東西(包括草稿)都有文檔。
6,詳細文檔要求達到只有這個文檔就可以編碼的程度,一般寫文檔時間占60%,編碼時間極少。
7,有各種詳細的review(同行評審),項目組內的,項目組之間的,客戶的...
8,計劃很詳細,的確能達到小時級,但是實際情況還是誤差比較大,所以他們也有加班。
先學習UML和Rose以及RUP,不要總是要找著證據。在中國的軟件開發水平下,很難給你一個好的例子,OK?中國人總是要看到一個東西有了試驗田,而且稻子長得好,才換稻種。要知道在國外上述的軟件開發模式的應用,大可以看看Rational網頁上的story。Just do it! 一句話,中國的軟件開發水平低得很。趕不上印度人,印度的軟件公司可以讓高中生編代碼,它的軟件工程水平可想而知。當然,你如果是個很牛的程序員。估計夠嗆,因為中國的氣氛中,很牛的程序員都很難接受軟件工程的。
你可以測試一下自己,看看自己適不適合現在學習軟件工程:
1、你是不是不能忍受一個編程序不如你的人做你的項目經理?
2、你是不是覺得你的老板對客戶吹牛皮、夸大自己而感到不舒服?
3、你是不是一個拿到一個需求腦袋里第一念頭就是如何實現的人?
4、你是不是很崇拜Stallman,Linus,很討厭Microsoft?
5、你是不是曾經在深夜編碼的時候,突然感覺到一種乏味,對Code的生涯感到一種無趣?
文章來源于領測軟件測試網 http://www.kjueaiud.com/