一、統(tǒng)一的方法
統(tǒng)一軟件開(kāi)發(fā)過(guò)程是通過(guò)在項(xiàng)目的前期盡可能準(zhǔn)確,全面地捕獲需求,然后對(duì)需求的變化加以控制和管理,來(lái)避免范圍的蔓延,并通過(guò)迭代和遞增的開(kāi)發(fā)方式,來(lái)應(yīng)對(duì)變化。
從軟件工程發(fā)展的歷史,我們說(shuō)在項(xiàng)目前期全面地捕獲需求一直是一個(gè)做好軟件的不二法則。
對(duì)業(yè)務(wù)邏輯相對(duì)穩(wěn)定的項(xiàng)目,在項(xiàng)目實(shí)施之前做好需求的捕獲絕對(duì)是受益匪淺的,因?yàn)檐浖膯?wèn)題在生命周期的后期發(fā)現(xiàn)需要的成本要比在初期發(fā)現(xiàn)高得多。
迭代和遞增式開(kāi)發(fā)也降低了項(xiàng)目的風(fēng)險(xiǎn),他允許在項(xiàng)目進(jìn)行過(guò)程中對(duì)需求進(jìn)行校正,它通過(guò)遞增的版本發(fā)布使得客戶(hù)能在軟件開(kāi)發(fā)生命周期過(guò)程中就對(duì)軟件有了更全面的認(rèn)識(shí),因此也能及時(shí)的提出改進(jìn)意見(jiàn)。
從團(tuán)隊(duì)的角度看,迭代的開(kāi)發(fā)更符合人類(lèi)學(xué)習(xí)的曲線(xiàn)-一個(gè)漸進(jìn)的過(guò)程。在項(xiàng)目開(kāi)發(fā)的初期,開(kāi)發(fā)人員對(duì)業(yè)務(wù)邏輯和技術(shù)的掌握可能并不全面,隨著項(xiàng)目的進(jìn)展,認(rèn)識(shí)會(huì)不斷加深,這對(duì)于后期的迭代周期的成功是很好的保障。
然而,某些項(xiàng)目確實(shí)存在很多不確定因素,還有某些大型項(xiàng)目,歷時(shí)時(shí)間很長(zhǎng),在那么長(zhǎng)的時(shí)間里需求會(huì)變化是很自然得事情。
對(duì)這些項(xiàng)目迭代和遞增的開(kāi)發(fā)方法會(huì)比在項(xiàng)目早期就盡可能地捕獲需求更有意義。
一、敏捷方法(XP)
以XP為例,他提出以擁抱變化來(lái)應(yīng)對(duì)需求的變化,他并沒(méi)有強(qiáng)調(diào)在項(xiàng)目的初期確定能確定的需求的重要意義。這與傳統(tǒng)的軟件工程觀(guān)點(diǎn)和統(tǒng)一軟件開(kāi)發(fā)過(guò)程有差異,他不主張預(yù)防需求變化,因此也就沒(méi)有強(qiáng)調(diào)盡可能在早期確定需求。
擁抱變化與其說(shuō)是一種方法,不如說(shuō)是一種心態(tài)的調(diào)整,XP方法希望開(kāi)發(fā)人員能有良好的面對(duì)變化的心態(tài),不討厭變化,積極面對(duì)變化。
心理因素對(duì)于軟件行業(yè)是非常重要的,軟件的本質(zhì)決定了軟件的成敗更多的依靠人的因素。軟件的可見(jiàn)性差,生產(chǎn)率的衡量也是需要考慮相當(dāng)多的因素,需要相當(dāng)高的學(xué)問(wèn)的,一般的管理人員懂管理未必懂軟件,懂軟件呢又未必精通管理,因此XP的發(fā)明者覺(jué)得與其費(fèi)力去度量和評(píng)估,不如發(fā)揮人的積極主動(dòng)精神。如果一個(gè)軟件開(kāi)發(fā)組織的人員能擁有積極向上的心態(tài),那會(huì)比實(shí)施任何一種軟件開(kāi)發(fā)過(guò)程,采用任何業(yè)績(jī)?cè)u(píng)估方法都更有效。
擁抱變化的確是一種非常優(yōu)良的品質(zhì),這不僅僅對(duì)于軟件需求如此,對(duì)于日新月異的軟件行業(yè)不也如此嗎,不跟上技術(shù)潮流就會(huì)被淘汰,作技術(shù)的人員都是深有體會(huì)的。同樣,面對(duì)飛速發(fā)展的社會(huì),如果沒(méi)有積極的心態(tài)來(lái)應(yīng)對(duì)各種變化,改變固有的觀(guān)念,也一樣會(huì)被時(shí)代所拋棄。
但是,我們?nèi)绻饶軗肀ё兓帜芪从昃I繆,不是對(duì)事情的進(jìn)展有更好的把握嗎?這不等于又多了一層保障嗎?就像很多人說(shuō)瘋狂英語(yǔ)是失敗的,因?yàn)楹苌儆腥四芤恢北3种偪竦膶W(xué)習(xí)態(tài)度,的確是這樣,即便我們有擁抱變化的準(zhǔn)備,和積極的心態(tài),如果連續(xù)為變化而加班數(shù)月的話(huà),相信一樣會(huì)有挫敗感,如果那時(shí)你還能以積極的心態(tài)來(lái)應(yīng)對(duì)變化的話(huà),我相信你將來(lái)一定能成就一番大事業(yè)。
當(dāng)然XP的擁護(hù)者會(huì)說(shuō),XP不提倡加班,我們每周只工作40小時(shí),這當(dāng)然是一個(gè)好的主意,如果能夠?qū)嵤,又能滿(mǎn)足交付期限的話(huà),那我們應(yīng)該為你祝賀。
XP同樣采用迭代的開(kāi)發(fā)方法,小版本交付,來(lái)使得客戶(hù)對(duì)軟件盡早有更多的認(rèn)識(shí)和了解,這和統(tǒng)一軟件過(guò)程是相同的。
二、結(jié)論
縱觀(guān)統(tǒng)一軟件開(kāi)發(fā)過(guò)程和敏捷方法對(duì)于需求變化的解決方法,我們可以得出結(jié)論:
預(yù)防變化,做到在軟件開(kāi)發(fā)的初期就盡可能確定可以確定的需求;
控制需求變更,避免范圍蔓延;
以積極的心態(tài)來(lái)?yè)肀ё兓?
采用迭代和遞增的開(kāi)發(fā)方法,
是解決需求變化的最佳方法。