需求的實踐(2)http://www-900.ibm.com/developerWorks/i/c.gif能力和過程
林星 ([email protected])
2001 年 11 月本文作為這個關於需求的軟件工程專欄的第二篇,作者將繼續花了一些篇幅來討論軟件工程中的一些基本概念,以求大家能夠從整體的角度來理解需求過程。
1、煮雞蛋的啟示
有個英國人學煮雞蛋,開始,他把雞蛋放到開水裡煮時總會炸裂。他為此想了各種方法,並找到了一個解決方案:在雞蛋上打個孔。但在雞蛋上打孔帶來了另一個問題:孔打小了,雞蛋還會裂;孔打大了,蛋清會在它凝固以前流出來。於是,這個英國人給一批雞蛋分別打了各種不同孔徑的洞,並記錄下每個雞蛋孔徑的大小。通過這一方法,他找到了一個最合適的大小──既避免了炸裂,又保證蛋清不會流出來。這時,雖然煮雞蛋炸裂的問題解決了,但這個英國人仍然不知道煮多長時間才能把雞蛋煮熟。為了解決這個問題,他又開始嘗試煮不同時間的結果,並從中找出最佳的時間長度。最後,他終於找到了一個放之四海而皆准的煮雞蛋的方法。這個案例對很多中國人來說是個可笑的例子。因為聰明的中國人早就知道把雞蛋放在水中與之一起加熱至雞蛋浮起來就可以了。
從煮雞蛋這樣一個小小的事件上,中國人和英國人體現了兩種完全不同的思維習慣──中國人憑借他的聰明直奔結果,而英國人卻仔細地把每一個過程細化到最簡單,然後按部就班地執行。(管理軟件的發展之路 洪奇)
聰明的中國人雖然擁有四大發明,但是對於現代的管理思想,中國人一直沒有領會到真谛所在。無論是哪一種的管理方法,過程能力都是特別重要的,雖然生產一件產品的相關人員有千千萬萬,但是生產出來的產品卻只有一種。這種能力並不是從天上掉下來的,是通過制定極為詳盡的生產過程規定得到的。在中國接受了ISO的思想之後,這種能力也在國內的制造業中逐漸體現出來。但是在軟件行業中,擁有這種過程能力的軟件組織仍然是少的可憐,大多數的軟件組織奉行的還是一種在八九十年代的個人英雄主義,開發軟件單靠個人的力量,能力強的程序員能夠成功的完成軟件,能力差的則失敗。大多數的軟件組織中,少數人掌握著代碼,他們就是一切,如果他們因為私人原因離開所在的組織,手上的代碼則是他們的資本,原有的組織將受到沉重的打擊。
中國人熱衷於結果,2001年的熱點在CMM上,現在還很難說CMM中是不是有一定的泡沫存在,但是可以肯定的一點是,CMM之進入中國軟件組織為中國軟件工業的發展開創了一個新的時代。中國的軟件工業將逐漸擺脫原來的作坊式開發,進入軟件工業時代。之所以用軟件工業而不用軟件產業的原因是希望軟件產品能夠像工業革命那樣進入大規模生產,降低價格的時代。