服務(wù)近2000家企業(yè),依托一系列實(shí)踐中打磨過(guò)的技術(shù)和產(chǎn)品,根據(jù)企業(yè)的具體業(yè)務(wù)問(wèn)題和需求,針對(duì)性的提供各行業(yè)大數(shù)據(jù)解決方案。
敏捷軟件開(kāi)發(fā)知多少
來(lái)源:未知 時(shí)間:2018-14-8 瀏覽次數(shù):210次
一、對(duì)敏捷軟件開(kāi)發(fā)和傳統(tǒng)瀑布模型開(kāi)發(fā)方法的理解敏捷軟件開(kāi)發(fā)是一種新型的軟件開(kāi)發(fā)方法,強(qiáng)調(diào)開(kāi)發(fā)人員與業(yè)務(wù)專家(客戶)之間的緊密協(xié)作、面對(duì)面的溝通(認(rèn)為比書(shū)面的文檔更有效)、頻繁交付新的軟件版本、緊湊而自我組織型的團(tuán)隊(duì)、能夠很好地適應(yīng)需求變化的代碼編寫(xiě)和團(tuán)隊(duì)組織方法,也更注重軟件開(kāi)發(fā)過(guò)程中人的作用,開(kāi)發(fā)團(tuán)隊(duì)不僅包括開(kāi)發(fā)人員,還包括管理人員和客戶。它鼓勵(lì)團(tuán)隊(duì)成員的相互交流通過(guò)反饋機(jī)制盡早糾正軟件中的錯(cuò)誤,提高開(kāi)發(fā)效率,同時(shí)為需求的調(diào)整提供更多機(jī)會(huì),保證軟件向正確的方向發(fā)展。
傳統(tǒng)軟件開(kāi)發(fā)與 敏捷軟件開(kāi)發(fā)相比而言,傳統(tǒng)軟件開(kāi)發(fā)如瀑布模型強(qiáng)調(diào)預(yù)見(jiàn)性,嚴(yán)格遵循計(jì)劃、分析、設(shè)計(jì)、編碼、測(cè)試和維護(hù)等幾個(gè)階段。瀑布模型開(kāi)發(fā)各階段間具有嚴(yán)格的順序性和依賴性,必須等到前一階段的工作結(jié)束后才能開(kāi)始下一階段的工作,前一階段的輸出文檔是后一階段的輸入文檔,只有前一階段的輸出文檔完全正確,后一階段才能獲得正確的結(jié)果。

- 極限編程(XP):溝通,簡(jiǎn)單,反饋,膽識(shí),為四項(xiàng)基本準(zhǔn)則,快速反饋,假設(shè)簡(jiǎn)單,遞增更改,優(yōu)質(zhì)工作,為5條法則,幾乎無(wú)文檔。在所有的敏捷方法中,XP對(duì)日期產(chǎn)生的興趣最多,并且在對(duì)良好不定的問(wèn)題領(lǐng)域的特殊實(shí)踐方面最為具體。
- SCRUM:特別強(qiáng)調(diào)開(kāi)發(fā)隊(duì)伍和管理層的交流協(xié)作。每天,開(kāi)發(fā)隊(duì)伍都會(huì)向管理層匯報(bào)進(jìn)度,如果有問(wèn)題,也會(huì)向管理層要求幫助解決。
- 動(dòng)態(tài)系統(tǒng)開(kāi)發(fā)方法:堅(jiān)持功能在項(xiàng)目的全過(guò)程中都可以改變,當(dāng)功能被允許改變時(shí),通過(guò)使用時(shí)間框控制的目的就能達(dá)到。重視為項(xiàng)目營(yíng)造一個(gè)正確的文化氛圍,如手冊(cè)中描述了項(xiàng)目有不同的側(cè)重點(diǎn),并指出對(duì)于那些缺陷在傳統(tǒng)方法中轉(zhuǎn)變起來(lái)是多么的困難。也非常重視協(xié)作價(jià)值和原理,以及文檔。
- .功能驅(qū)動(dòng)開(kāi)發(fā)方法,短時(shí)間的迭代階段和可見(jiàn)可用的功能,適合于那些不確定或常變更的需求的系統(tǒng)。它抓住了軟件開(kāi)發(fā)的核心問(wèn)題領(lǐng)域,即正確和及時(shí)地構(gòu)造軟件。
- 水晶系列方法:相對(duì)于其它敏捷方法,水晶系列方法強(qiáng)調(diào)軟件開(kāi)發(fā)流程的紀(jì)律性,所以它比其它敏捷方法易于使用,但它的生產(chǎn)率不如Xp等其它敏捷方法。水晶系列與Xp一樣,都有以人為中心的理念,但在實(shí)踐上有所不同。人們一般很難嚴(yán)格遵循一個(gè)紀(jì)律約束很強(qiáng)的過(guò)程,因此,與Xp的高度紀(jì)律性不同,水晶系列方法試圖用最少紀(jì)律約束而仍能成功的方法,從而在產(chǎn)出效率與易于運(yùn)作上達(dá)到一種平衡。
- 自適應(yīng)軟件開(kāi)發(fā)(ASD):ASD強(qiáng)調(diào)開(kāi)發(fā)方法的適應(yīng)性,這一思想來(lái)源于復(fù)雜系統(tǒng)的混沌理論。ASD不像其他方法那樣有很多具體的實(shí)踐做法,它更側(cè)重為ASD的重要性提供最根本的基礎(chǔ),并從更高的組織和管理層次來(lái)闡述開(kāi)發(fā)方法為什么要具備適應(yīng)性。
- 迭代式開(kāi)發(fā)。整個(gè)開(kāi)發(fā)過(guò)程被分為幾個(gè)迭代周期,每個(gè)迭代期是一個(gè)定長(zhǎng)或不定長(zhǎng)的時(shí)間塊,每個(gè)迭代周期持續(xù)的時(shí)間一般較短,通常為1~6 周。
- 開(kāi)發(fā)團(tuán)隊(duì)和用戶反饋推動(dòng)產(chǎn)品開(kāi)發(fā)。敏捷開(kāi)發(fā)方法主張用戶能夠全程參與整個(gè)開(kāi)發(fā)過(guò)程。這使需求變化和用戶反饋能動(dòng)態(tài)管理并及時(shí)集成到產(chǎn)品中。同時(shí),團(tuán)隊(duì)也能及時(shí)對(duì)用戶的需求提供反饋意見(jiàn)。
- 開(kāi)發(fā)團(tuán)隊(duì)自我管理。擁有一個(gè)積極的、自我管理的、具備自由交流風(fēng)格的開(kāi)發(fā)團(tuán)隊(duì),是每個(gè)敏捷項(xiàng)目的必要條件。敏捷開(kāi)發(fā)總是以人為中心建立開(kāi)發(fā)的過(guò)程和機(jī)制,而非把過(guò)程和機(jī)制強(qiáng)加給人。
- 持續(xù)集成。新的功能或需求變化總是盡可能頻繁地被整合到產(chǎn)品中。一些項(xiàng)目是在每個(gè)迭代周期結(jié)束的時(shí)候集成,有些項(xiàng)目則每天都在集成。
- 增量交付。產(chǎn)品在每個(gè)迭代周期結(jié)束時(shí)被逐步交付使用,而不是在整個(gè)開(kāi)發(fā)過(guò)程結(jié)束時(shí)一次性交付。每次交付的都是可被部署到用戶應(yīng)用環(huán)境中的、能給用戶帶來(lái)即時(shí)效益和價(jià)值的產(chǎn)品
- 團(tuán)隊(duì)建設(shè):以團(tuán)隊(duì)為單位,強(qiáng)調(diào)團(tuán)隊(duì)建設(shè),賦予高度的責(zé)任,支持開(kāi)發(fā)、透明的交流環(huán)境;以項(xiàng)目經(jīng)理為領(lǐng)導(dǎo)核心,團(tuán)隊(duì)成員之間交付很少
- 管理流程:流程可以簡(jiǎn)單,但規(guī)劃與執(zhí)行必須嚴(yán)謹(jǐn);復(fù)雜,繁瑣,靜態(tài),變更成本大
- 用戶參與程度:強(qiáng)調(diào)用戶保持密切的聯(lián)系和交流;很少涉及用戶參與
- 業(yè)務(wù)需求:需求具有優(yōu)先級(jí)次序,開(kāi)發(fā)以增量方式逐步完成功能,有助于量化項(xiàng)目過(guò)程;假設(shè)需求是明確的,一旦需求變更勢(shì)必增加其余環(huán)節(jié)的復(fù)雜度
- 交付頻率:經(jīng)常交付,交付周期短;項(xiàng)目結(jié)束時(shí)交付,交付周期長(zhǎng)
- 文檔量:最必要最實(shí)用,高的應(yīng)用度和閱讀度;產(chǎn)生大量中間文檔,低的應(yīng)用度和閱讀度
敏捷方法明顯地降低了文檔的數(shù)量,甚至聲明代碼本身就是文檔。這就需要開(kāi)發(fā)人員為代碼添加更多的注釋,但是對(duì)于不習(xí)慣敏捷開(kāi)發(fā)或團(tuán)隊(duì)新成員則很難做到,他們必須不斷詢問(wèn)有經(jīng)驗(yàn)的開(kāi)發(fā)人員,這樣會(huì)導(dǎo)致延遲迭代交付時(shí)間,甚至增加開(kāi)發(fā)費(fèi)用。而傳統(tǒng)開(kāi)發(fā)則強(qiáng)調(diào)文檔對(duì)團(tuán)隊(duì)成員的指導(dǎo)作用,開(kāi)發(fā)人員可以在不知道項(xiàng)目細(xì)節(jié)的情況下完成開(kāi)發(fā)。
敏捷開(kāi)發(fā)中強(qiáng)調(diào)交互和客戶的參與。每次迭代前,團(tuán)隊(duì)和客戶都將召開(kāi)一個(gè)會(huì)議,團(tuán)隊(duì)成員將介紹在這次迭代中所作的工作,而客戶則根據(jù)成員的介紹給出新的功能要求。實(shí)際中大部分情況,這種例會(huì)是非常乏味和沉悶的,因?yàn)閳F(tuán)隊(duì)成員必須重復(fù)地向其他
成員和客戶展示自己負(fù)責(zé)的模塊,接受給出各種對(duì)需求的更改,而且每次迭代都是如此,通常為迭代分配的時(shí)間都是以周為單位的,開(kāi)發(fā)人員經(jīng)常感到時(shí)間不夠用,尤其是自己負(fù)責(zé)的模塊中包含一些復(fù)雜的算法時(shí),時(shí)間就變得越緊,經(jīng)常使得迭代延遲。而傳統(tǒng)開(kāi)發(fā)中客戶不會(huì)參與開(kāi)發(fā)過(guò)程,實(shí)現(xiàn)過(guò)程中開(kāi)發(fā)人員只是根據(jù)文檔編寫(xiě)代碼,然后交付最終產(chǎn)品。這樣開(kāi)發(fā)人員不必關(guān)心那些頻繁的迭代會(huì)議,而且時(shí)間上更加寬泛,有利于開(kāi)發(fā)出更好的產(chǎn)品。
敏捷開(kāi)發(fā)對(duì)開(kāi)發(fā)人員的個(gè)人技能要求更高。敏捷開(kāi)發(fā)強(qiáng)調(diào)交互和客戶的參與,這就意味著每個(gè)團(tuán)隊(duì)成員都要具備一定的個(gè)人能力和社交技能。每次迭代都必須給客戶提供完整的功能模塊,并且需要讓客戶明白當(dāng)前的開(kāi)發(fā)進(jìn)程以及開(kāi)發(fā)中遇到的一些問(wèn)題,開(kāi)發(fā)人員不但需要將自己的工作描述清楚,還得正確理解客戶提出的新需求,這需要具備較好的溝通技能。而實(shí)際中,不一定每一個(gè)開(kāi)發(fā)人員都能具備這樣的技能,一旦某一個(gè)人不能正確理解一些重要信息,將可能導(dǎo)致下一次迭代不能準(zhǔn)確交付,更糟糕的是,如果理解有誤,會(huì)使得開(kāi)發(fā)的模塊中包含多余的功能,結(jié)果是對(duì)模塊進(jìn)行修改,從而增加開(kāi)發(fā)費(fèi)用。因此,開(kāi)發(fā)人員社交技能的提升將增加開(kāi)發(fā)過(guò)程的穩(wěn)定性。
敏捷開(kāi)發(fā)允許增加需求也導(dǎo)致兩個(gè)設(shè)計(jì)中的問(wèn)題:系統(tǒng)過(guò)于僵硬和機(jī)動(dòng)性強(qiáng)。僵硬是指系統(tǒng)中一旦有更改的地方容易引起其他模塊的級(jí)聯(lián)改動(dòng)。機(jī)動(dòng)性是指可能由于需求改變而壓縮一些可重復(fù)使用的組件,這意味著大量的工作量和對(duì)系統(tǒng)整體穩(wěn)健性帶來(lái)風(fēng)險(xiǎn)。如果系統(tǒng)中存在這些問(wèn)題,會(huì)違反面向?qū)ο笤O(shè)計(jì)中的接口隔離原則,從而導(dǎo)致部署過(guò)程中的很多問(wèn)題。
結(jié)束語(yǔ):傳統(tǒng)軟件開(kāi)發(fā)方法和 敏捷軟件開(kāi)發(fā)方法各有利弊,任何一種方法都不是完美的,軟件開(kāi)發(fā)項(xiàng)目管理的核心問(wèn)題還是人的問(wèn)題,在一定的管理機(jī)制制約之下,充分發(fā)揮和調(diào)動(dòng)開(kāi)發(fā)工程師個(gè)人工作積極性和主動(dòng)性才能保證開(kāi)發(fā)質(zhì)量,至于管理模式和機(jī)制的選擇因地制宜不拘一格。
結(jié)束語(yǔ):傳統(tǒng)軟件開(kāi)發(fā)方法和 敏捷軟件開(kāi)發(fā)方法各有利弊,任何一種方法都不是完美的,軟件開(kāi)發(fā)項(xiàng)目管理的核心問(wèn)題還是人的問(wèn)題,在一定的管理機(jī)制制約之下,充分發(fā)揮和調(diào)動(dòng)開(kāi)發(fā)工程師個(gè)人工作積極性和主動(dòng)性才能保證開(kāi)發(fā)質(zhì)量,至于管理模式和機(jī)制的選擇因地制宜不拘一格。
- 上一篇: 沒(méi)有了
- 下一篇: 北京軟件開(kāi)發(fā)公司有哪些,軟件技術(shù)水平怎么樣

掃一掃