軟件過程的發展的思考
2019-11-18 13:13:00
供稿:網友
以目標為中心的項目開發可以為達成目標而不擇手段或者說不采用任何手段, 只要最后項目成功,項目人員可以使用任何辦法。而以過程為中心則以過程為主要依據,要求過程步驟完美,最后結果如何都是成功的項目。按儒家的中庸說法, 兩種觀點看起來都是不正確的, 能夠相互補充那時最好了。
首先, 軟件項目剛剛開始出現的時候,人們完全不知道需要如何對付它, 所以那時候是只能以目標為中心, 采取個人主義,僅僅需要一個人或者幾個人就能完成一個偉大的項目, 當時其中的領導者一定是能力超強, 不僅技術令人折服,而且布滿了人格魅力,治理能力也是必不可少的。這樣可以說靠著他一個人的能力和意志帶領著大家完成項目。就像很多傳奇中的研發項目,就是靠著個人能力領導著整個團隊。
中國的很多中小企業就是這一階段的以目標為中心, 雖然使用了一些先進的工具,但是思路還是沒有脫離原始的狀態。在這樣的公司你往往能聽到這樣的話,“我頭頭說這個東西必須在這個星期完成”。 然后項目就在無序中進行,假如項目有一個杰出技術專家,可能會僥幸成功。但更多都是糊里糊涂的失敗了,但是即使失敗了,很多項目也會被公司當作成功項目,因為沒人愿意承認失敗。所以假如去找工作,假如一看要招一個XX高手這樣的人,這個公司一定就是這一類型的公司,經歷過很多次失敗以后,它只能把希望寄托在一兩個高手身上。
慢慢的隨著業界對軟件的需求越來越大,項目也越來越大,開發人員也越來越多,這種模式再也無法承受使用了。仍采用這種模式的項目的失敗率也越來越高。然后一些聰明人發明了瀑布模型,從本身看這并非是一個創舉,它把一個大目標分割成幾個小的目標步驟,一個一個次序完成。他們的一小步是人類的一大步,他們開創了一種可行的文化。這樣隨著目標越來越大,越來越細化,模式也從瀑布變成了增量,模型也從以目標為中心轉變成了以過程為中心。理論上,只要把最簡單的瀑布模型每一個步驟都嚴格完成,那么項目一定會成功。這個時候,軟件業也從混沌轉變到了有序的階段。
國內很多企業做的形似而神不似,項目雖然使用了一些過程,但是這些過程只是用來擺樣子,全無實用價值。在過程中,對各個階段的控制和審核是最主要的,不然就失去了分階段的作用,其實就是退回到混沌的階段。在很多的項目中,這一階段雖然完成的不好,但是還是會往下面走,原因就是根本沒有熟悉到為什么要采用過程方式。
在過程為中心的開發中,一般來說采用一個適合的過程模型,然后適當的裁剪,我認為是成功系數很高的, 當然需要一個合適理解這個過程的項目經理,很多公司的失敗是因為項目成員并不理解這個過程,只是為了擁有過程而過程。業界的過程模型已經經過長時間的檢驗,假如問題出現了,很大愿意是使用的人的對這個過程理解得不夠。
任何過程都會帶來一個副面的影響:太耗費資源。大家應該深有感慨,過程中的那些文檔的確是讓任何人都非常害怕,尤其是對這些文檔的維護,更是恐怖。但是這是減少點對點交流的非常好的解決途徑之一。對于這個問題,只有大量采用裁剪,究竟實用才是大家追求的。人們開始對動不動就是資源消耗極大的過程開始反感,重新開始了對過程的思考。他們希望有非凡針對與中小項目的適合的過程,即使是瀑布也太復雜。他們需要在保持一定過程的前提下,采用最為節省資源的做法。保證項目成功并不一定需要繁瑣的步驟,在每一道關口設卡檢查。完全有可能在主要的關口設卡,在內部如何方便通行就采用哪種路線,這樣就能保證能最快最正確的通過。這就是以目標為中心和以過程為中心的結合體。于是XP等新的想法誕生了。
像任何行業一樣,軟件業也從無序進入有序,有從有序進入了過度繁瑣的有序,然后再從繁瑣進入精簡,進入了實用的有序。在反反復復后,我們會看到一個成熟的工業,像其他所有的行業一樣,實用是最重要的。