亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 2490 | 回復(fù): 0
打印 上一主題 下一主題

擁抱敏捷 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-02-27 14:13 |只看該作者 |倒序?yàn)g覽
前言
      有關(guān)項(xiàng)目管理和軟件開(kāi)發(fā)方法,我曾經(jīng)面臨了不少的困惑,也在思想和實(shí)踐上做了一些探索。下邊的文字就是近期的一些探索成果,我花了小半個(gè)早上和大半個(gè)下午,將其整理成文字,想跟大家一起交流一下,怎樣才能把軟件開(kāi)發(fā)管理工作做的更好。在此僅僅是拋磚引玉,還請(qǐng)大家多多發(fā)表高見(jiàn)。





與敏捷結(jié)緣的歷史

      Scrum和XP都都屬于敏捷軟件開(kāi)發(fā)方法,但兩者的側(cè)重點(diǎn)不同,一個(gè)強(qiáng)調(diào)項(xiàng)目管理上的敏捷,一個(gè)強(qiáng)調(diào)技術(shù)實(shí)現(xiàn)上的敏捷,F(xiàn)在,已經(jīng)有很多公司結(jié)合使用兩種敏捷軟件開(kāi)發(fā)方法,并取得了顯著的成效。

      我曾經(jīng)在4年前接觸到XP,當(dāng)時(shí)也著實(shí)激動(dòng)了一番,正好那個(gè)時(shí)候我在負(fù)責(zé)一個(gè)項(xiàng)目,所以就運(yùn)用了一些XP中的方法。但是當(dāng)時(shí)并沒(méi)有意識(shí)到TDD(測(cè)試驅(qū)動(dòng)開(kāi)發(fā))的重要性,對(duì)PP(結(jié)隊(duì)編程)也有一些排斥情緒,所以其實(shí)并沒(méi)有真正的實(shí)施XP,但是運(yùn)用到XP中的一些方法還是讓我感覺(jué)到對(duì)項(xiàng)目管理帶來(lái)了不小的好處,比如團(tuán)隊(duì)角色、每日短會(huì)、user story等。

      去年開(kāi)始,Scrum逐漸進(jìn)入了我的視線,一開(kāi)始是在javaeye上看到Scrum這個(gè)名詞的,當(dāng)時(shí)并沒(méi)有引起太大的注意。后來(lái)我在javaeye上發(fā)了一篇有關(guān)項(xiàng)目管理輔助工具和規(guī)范化項(xiàng)目管理的困惑的帖子,也引來(lái)了一些javaeyers的討論,其中就有以前的一個(gè)同事,現(xiàn)在上海某家公司 Scrum團(tuán)隊(duì)成員xxx同學(xué)的回帖,大概說(shuō)了一下他們的Scrum實(shí)踐。這時(shí)候,Scrum才真正走入了我的視線。原來(lái)Scrum已經(jīng)為那么多公司項(xiàng)目團(tuán)隊(duì)所采用,取得了管理和產(chǎn)品質(zhì)量雙重的提升。又前一段時(shí)間,看到InfoQ上的一本迷你書(shū)《硝煙中的Scrum和XP》,作者是Henrik Kniberg,李劍翻譯。通讀了一遍后,一個(gè)感覺(jué),那就是--醍醐灌頂,作者的Scrum和XP實(shí)踐中的一些方法,正是長(zhǎng)期困惑我的一些問(wèn)題的解決方法,書(shū)中描述的一些東西,正是我以前一直想要的。后來(lái)我又讀了一遍該書(shū),心中的想法也逐漸變的明晰起來(lái),我想是該在項(xiàng)目中實(shí)施Scrum和XP的時(shí)候了。





困惑的“心里沒(méi)底”

      以前我們一些項(xiàng)目,我覺(jué)得都處于一個(gè)“心里沒(méi)底”的狀態(tài)。

      首先,開(kāi)發(fā)人員心里沒(méi)底。由于傳統(tǒng)的任務(wù)分派方式,使得開(kāi)發(fā)人員只關(guān)注于分給自己開(kāi)發(fā)的一畝三分地,沒(méi)有項(xiàng)目全局觀也不知道自己接下來(lái)做什么,對(duì)于項(xiàng)目沒(méi)有一個(gè)宏觀概念。對(duì)于普通的程序員可能僅僅滿(mǎn)足于自己的任務(wù)完成就ok了,至于什么代碼優(yōu)化,重構(gòu)根本就是浮云,說(shuō)到單元測(cè)試,不是浮云更是神馬。通常,簡(jiǎn)單的覆蓋率很低的功能性測(cè)試或者憑著自信根本沒(méi)有測(cè)試就交差了,更別說(shuō)QA來(lái)負(fù)責(zé)質(zhì)量。對(duì)于有責(zé)任心的程序員,可能會(huì)程序優(yōu)化,也可能會(huì)做少量單元測(cè)試代碼,也可能會(huì)做功能測(cè)試,但為了趕進(jìn)度,這些事情都沒(méi)有做完善,所以程序員處于心里沒(méi)底的狀態(tài)。自己寫(xiě)的程序,是不是跟設(shè)計(jì)符合,程序是否能正確執(zhí)行,程序的健壯性如何,程序代碼結(jié)構(gòu)如何,是否具有可擴(kuò)展性,是否具有可維護(hù)性,都是一個(gè)迷。

      其次,項(xiàng)目管理人員心里沒(méi)底。建立在開(kāi)發(fā)人員責(zé)任心基礎(chǔ)之上的開(kāi)發(fā),首先就面臨著質(zhì)量的良莠不齊,因?yàn)樨?zé)任心強(qiáng)的開(kāi)發(fā)人員提供的代碼質(zhì)量往往會(huì)較高,而責(zé)任心弱的開(kāi)發(fā)人員提供的代碼質(zhì)量往往比較低。沒(méi)有質(zhì)量控制,項(xiàng)目管理人員對(duì)于開(kāi)發(fā)出來(lái)的東西是不是用戶(hù)想要的東西,其正確性、穩(wěn)定性、可能會(huì)存在多少 bug都不清楚,這些數(shù)據(jù)又是一個(gè)迷。

      再次,高層管理人員心里沒(méi)底。因?yàn)轫?xiàng)目進(jìn)展缺乏透明度,高層管理人員對(duì)于項(xiàng)目的整體進(jìn)展情況往往不清楚,從項(xiàng)目管理人員口中得到的信息可能并不是自己想要的,或者有的時(shí)候僅僅是憑想象的一廂情愿。項(xiàng)目團(tuán)隊(duì)人員是否被合理安排工作,項(xiàng)目能否按時(shí)交付,用戶(hù)對(duì)項(xiàng)目會(huì)有怎樣的滿(mǎn)意度等等,這些也都是迷。

      最后,用戶(hù)心里沒(méi)底。因?yàn)槿狈Ω脩?hù)的交流,或者用戶(hù)對(duì)項(xiàng)目的參與程度少。就會(huì)造成用戶(hù)和項(xiàng)目脫節(jié),項(xiàng)目實(shí)現(xiàn)的功能可能跟用戶(hù)所想的相差十萬(wàn)八千里。另外,項(xiàng)目進(jìn)展到什么程度了,項(xiàng)目是不是能按照預(yù)先的進(jìn)度上線,這些也都是迷。

      這些心里沒(méi)底和眾多的謎團(tuán)造成的結(jié)果就是:項(xiàng)目在提交給用戶(hù)后,用戶(hù)發(fā)現(xiàn)所做的東西跟原先所設(shè)想的相差很遠(yuǎn),而且bug奇多,用戶(hù)間接成了QA。那么接下來(lái)就是大量bug修改和需求變動(dòng),而程序代碼由于本身質(zhì)量不高,靈活性較差,需求變動(dòng)帶來(lái)的代碼修改和編程量無(wú)限加大。于是,項(xiàng)目上線日期一再延后,開(kāi)發(fā)人員加班加點(diǎn)怨聲載道,用戶(hù)滿(mǎn)意度直線下降。后期,為了挽回用戶(hù)滿(mǎn)意度,又得額外采用其它手段,這樣開(kāi)發(fā)人員再次加班加點(diǎn)就也再所難免了。

      這樣的一種項(xiàng)目狀況是否能避免,我覺(jué)得可以,至少可以改善。通過(guò)適當(dāng)?shù)墓芾硎侄危\(yùn)用合理的軟件開(kāi)發(fā)方法,應(yīng)該可以使得項(xiàng)目良好運(yùn)行,至少大多數(shù)的項(xiàng)目應(yīng)該良好運(yùn)行。通過(guò)書(shū)籍和網(wǎng)絡(luò)資源,Scrum和XP給了我信心,因?yàn)槲伊私獾胶芏鄨F(tuán)隊(duì)使用這種軟件開(kāi)發(fā)管理方法取得了顯著成效,我覺(jué)得對(duì)于我們的開(kāi)發(fā),Scrum和XP應(yīng)該是會(huì)帶來(lái)好處的。





敏捷初探

      敏捷方法論中認(rèn)為,用戶(hù)的需求是一直在變化的,我們應(yīng)該去認(rèn)識(shí)變化,接受變化,擁抱變化。那么在敏捷開(kāi)發(fā)中,我們就應(yīng)該通過(guò)溝通、重構(gòu)代碼,來(lái)滿(mǎn)足用戶(hù)需求的不斷變化。通過(guò)溝通,可以把需求變化減少,通過(guò)重構(gòu)代碼,構(gòu)建靈活的程序結(jié)構(gòu),使得需求變化帶來(lái)的程序修改減小到最少。當(dāng)然,這一切的前提是測(cè)試,開(kāi)發(fā)未動(dòng),測(cè)試先行,可以把測(cè)試代碼的編寫(xiě)理解為最初的設(shè)計(jì),那么TDD(測(cè)試驅(qū)動(dòng)開(kāi)發(fā))就很自然了。

      敏捷軟件過(guò)程中,一般采用迭代開(kāi)發(fā)的方式。我們學(xué)校里接受的傳統(tǒng)的軟件工程教育都認(rèn)為,軟件實(shí)現(xiàn)過(guò)程是一個(gè)流水線,先需求設(shè)計(jì),再程序設(shè)計(jì),再測(cè)試,再部署實(shí)施等等。但是,有項(xiàng)目經(jīng)驗(yàn)的人,都會(huì)發(fā)現(xiàn),這其實(shí)是扯淡。一開(kāi)始的長(zhǎng)篇大論的需求設(shè)計(jì),很難跟上項(xiàng)目進(jìn)展過(guò)程中的需求變化,在大多數(shù)的項(xiàng)目中經(jīng)常如此。過(guò)去一些項(xiàng)目中,我經(jīng)常聽(tīng)到開(kāi)發(fā)團(tuán)隊(duì)中一些人向我抱怨:什么沒(méi)準(zhǔn)備好,我不能開(kāi)發(fā);用戶(hù)需求變化太多,我沒(méi)法接受等等諸如此類(lèi),那么我覺(jué)得你肯定是受傳統(tǒng)的軟件工程理論毒害太深。因?yàn)樵诖蠖鄶?shù)情況下,用戶(hù)一開(kāi)始并不知道他想要什么功能,他只是一個(gè)簡(jiǎn)單的描述,隨著項(xiàng)目的進(jìn)展,他看到你做出來(lái)的東西,他才會(huì)對(duì)他想要的東西做更清楚的描述。所以,在敏捷軟件過(guò)程中,它將用戶(hù)的初期需求整理成user story(XP概念)或者backlog(Scrum概念),然后通過(guò)一次次的迭代,和用戶(hù)一起來(lái)開(kāi)發(fā)出想要的軟件。





我們?cè)撛趺醋?/strong>

      那么,接下來(lái)我們?cè)趺醋瞿,我覺(jué)得應(yīng)該是這樣。

      首先,在項(xiàng)目代碼中引入單元測(cè)試,通過(guò)一段時(shí)間的測(cè)試代碼的編寫(xiě),讓大家覺(jué)得開(kāi)發(fā)程序的同時(shí),寫(xiě)測(cè)試代碼是常態(tài)。通過(guò)寫(xiě)測(cè)試代碼,對(duì)軟件進(jìn)行重構(gòu),增強(qiáng)其靈活性和可維護(hù)性。當(dāng)大家接受了這一概念以后,接下來(lái)的TDD就水到渠成了。那么,自動(dòng)化的集成測(cè)試,驗(yàn)收測(cè)試也就不再遙遠(yuǎn)了。當(dāng)然,結(jié)隊(duì)編程也是后續(xù)將要采用的實(shí)踐之一。

      其次,項(xiàng)目管理過(guò)程中采用Scrum框架。

      哪怕是進(jìn)展到一定程度的項(xiàng)目,也開(kāi)始用Scrum框架。先對(duì)項(xiàng)目接下來(lái)要做的事情做詳細(xì)分析,通過(guò)團(tuán)隊(duì)的努力形成backlog。然后采用Sprint理論來(lái)進(jìn)行迭代開(kāi)發(fā)。每個(gè)Sprint結(jié)束以后,要發(fā)布可運(yùn)行的的版本,演示給用戶(hù)看,同時(shí)和用戶(hù)進(jìn)行討論,做的東西是不是用戶(hù)想要的,另外還要對(duì)該 Sprint進(jìn)行總結(jié),以便于下一個(gè)Sprint的開(kāi)展。backlog和Sprint在項(xiàng)目管理工具上進(jìn)行公示,加強(qiáng)項(xiàng)目進(jìn)展的透明性。

      當(dāng)然,驗(yàn)收測(cè)試也要加強(qiáng),不能再讓用戶(hù)充當(dāng)我們的QA。除了程序開(kāi)發(fā)人員進(jìn)行單元測(cè)試以外,安排的每個(gè)任務(wù)在提交之前必須由團(tuán)隊(duì)QA進(jìn)行測(cè)試,測(cè)試通過(guò)才可提交關(guān)閉。

      另外就是每日Sprint短會(huì),15鐘左右,總結(jié)昨天工作進(jìn)展,好的方式,不好的方式,阻礙等,同時(shí)安排今日工作。

      還有就是怎么樣刺激團(tuán)隊(duì)成員進(jìn)行代碼重構(gòu),我覺(jué)得一個(gè)可行的方法就是代碼檢查,團(tuán)隊(duì)中的高級(jí)程序員可以擔(dān)當(dāng)這一任務(wù),通過(guò)代碼檢查,要求開(kāi)發(fā)人員對(duì)代碼進(jìn)行重構(gòu)。

      關(guān)于獎(jiǎng)懲。QA會(huì)對(duì)驗(yàn)收測(cè)試和回歸測(cè)試中的bug進(jìn)行統(tǒng)計(jì),代碼檢查人員也會(huì)對(duì)程序中需要重構(gòu)的地方進(jìn)行統(tǒng)計(jì),當(dāng)每個(gè)Sprint結(jié)束的時(shí)候,誰(shuí)的數(shù)據(jù)最難看,嘿嘿,你請(qǐng)大家吃一頓大餐吧。誰(shuí)的數(shù)據(jù)最好看,獎(jiǎng)勵(lì)一朵小紅花,哈哈。這些數(shù)據(jù)都會(huì)在項(xiàng)目管理工具進(jìn)行公示。





說(shuō)在最后

      無(wú)論Scrum也好,XP也好,我和我的團(tuán)隊(duì)也是在理論學(xué)習(xí)過(guò)程中,參考一些別人的實(shí)踐來(lái)準(zhǔn)備將其引入到我們的開(kāi)發(fā)過(guò)程中,有些可能會(huì)不適用,有些可能會(huì)對(duì)我們特別有幫助。以上一些粗淺的認(rèn)識(shí),還請(qǐng)大家斧正。

原文http://www.javaeye.com/topic/875372
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP