軟件開(kāi)發(fā)是一種對人類(lèi)智慧的管理,對人大腦思維的“工廠(chǎng)化”管理。人是有感情的、有情緒的、變化的、相對獨立的工作單元,這與冰冷的機器是不可比的,所以在中國的歷史上,管理人是最難的工作;“學(xué)而優(yōu)則仕”的觀(guān)點(diǎn)就是讓最聰明的人應該選出來(lái)做官,做官就是管理人的。軟件開(kāi)發(fā)不僅是代碼編程,而是人員的有效組織,如何既發(fā)揮人的主觀(guān)能動(dòng)性,避免情緒變化對工作的影響,又可以讓大家有效的交流,讓多個(gè)大腦的思路統一,快速完成目標呢?多年來(lái)軟件企業(yè)的管理者一直在不斷地探索。
另外,有一個(gè)問(wèn)題一直是軟件開(kāi)發(fā)管理人員的心?。很浖枪ぞ?,開(kāi)發(fā)的是客戶(hù)業(yè)務(wù)的應用,但客戶(hù)不了解軟件,開(kāi)發(fā)者不了解業(yè)務(wù),如何有效溝通是軟件質(zhì)量的重大障礙。把開(kāi)發(fā)者變成客戶(hù)業(yè)務(wù)的專(zhuān)家是個(gè)沒(méi)有辦法的辦法,讓軟件企業(yè)付出的代價(jià)也是昂貴的。
瀑布模型、敏捷開(kāi)發(fā)是有代表性的開(kāi)發(fā)模式,在對開(kāi)發(fā)者、客戶(hù)、最終的產(chǎn)品的關(guān)注上的變化,體現了軟件開(kāi)發(fā)管理者在管理模式上的變化。
瀑布模型(Waterfall Model)是Royce在1970年提出的,他把大型軟件開(kāi)發(fā)分為:分析與編程,象工廠(chǎng)流水線(xiàn)一樣把軟件開(kāi)發(fā)過(guò)程分成各種工序,并且每個(gè)工序可以根據軟件產(chǎn)品的規模、參與人員的多少進(jìn)一步細分成更細的工序。該模型非常符合軟件工程學(xué)的分層設計思路,所以成為軟件開(kāi)發(fā)企業(yè)使用最多的開(kāi)發(fā)模型。
瀑布模型的特點(diǎn):
1、強調文檔,前一個(gè)階段的輸出就是下一個(gè)階段的輸入,文檔是個(gè)階段銜接的唯一信息。所以很多開(kāi)發(fā)人員好 象是在開(kāi)發(fā)文檔,而不是開(kāi)發(fā)軟件,因為要到開(kāi)發(fā)的后期,才可以看到軟件的“模樣”。
2、沒(méi)有迭代與反饋。瀑布模型對反饋沒(méi)有涉及,所以對變化的客戶(hù)需求非常不容易適應,瀑布就意味著(zhù)沒(méi)有回頭路。
3、管理人員喜歡瀑布模型的原因是把文檔理解為開(kāi)發(fā)的速度,可以方便地界定不同階段的里程碑。
瀑布模型的用戶(hù)很多,也有一些反對的意見(jiàn):
第一 瀑布模型不適合客戶(hù)需求不斷變化的軟件開(kāi)發(fā),尤其是客戶(hù)的業(yè)務(wù)管理的軟件,業(yè)務(wù)隨著(zhù)市場(chǎng)變化,而軟件初期的設計可能已經(jīng)大大變化,而后期的需求更改成本是開(kāi)始的10倍基數。在ERP盛行的軟件市場(chǎng)里,一方面市場(chǎng)帶動(dòng)需求變化,另一方面初期客戶(hù)對需求描述不清楚,都為瀑布模型的使用團隊帶來(lái)困難。
第二 瀑布模型是一種軟件文檔的開(kāi)發(fā),把開(kāi)發(fā)者變成流水線(xiàn)上的機器,大量重復性的工作讓編程人員提不起興趣,工作很枯燥,沒(méi)有激情,編程成了一種沒(méi)有創(chuàng )意的機械勞動(dòng),這讓一向以高科技為標志的高級程序人員大為惱火。
在這種背景下,敏捷開(kāi)發(fā)帶來(lái)了新鮮的空氣!
那什么叫敏捷開(kāi)發(fā)呢?簡(jiǎn)單的說(shuō),敏捷開(kāi)發(fā)是一種以人為核心、迭代、循序漸進(jìn)的開(kāi)發(fā)方法。在敏捷開(kāi)發(fā)中,軟件項目的構建被切分成多個(gè)子項目,各個(gè)子項目的成果都經(jīng)過(guò)測試,具備集成和可運行的特征。
敏捷開(kāi)發(fā)宣言:
1. 個(gè)體和交互勝過(guò)過(guò)程和工具
2. 可工作的軟件勝過(guò)面面俱到的文檔
3. 客戶(hù)協(xié)作勝過(guò)合同談判
4. 響應變化勝過(guò)遵循計劃
從上面的宣言可以看出,敏捷開(kāi)發(fā)的核心是人 、協(xié)作、時(shí)刻可運行的軟件、變化。
聯(lián)系客服