<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    e代劍客——溫柔一刀

    生活就像海洋,只有意志堅(jiān)強(qiáng)的人,才能到達(dá)彼岸

       :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      76 隨筆 :: 7 文章 :: 215 評(píng)論 :: 0 Trackbacks
    ?
    首次采用敏捷方式進(jìn)行開(kāi)發(fā),我想把我們的做法與大家分享下,同時(shí)希望大家指出我們的不足和需要改進(jìn)的地方,讓我們的項(xiàng)目進(jìn)行的更順利,目前項(xiàng)目已過(guò)三分之一,客戶(hù)比較滿意,還算順利。
    ?
    項(xiàng)目簡(jiǎn)介:一個(gè)DMS小項(xiàng)目,預(yù)計(jì)時(shí)間14人月.客戶(hù)需求不是很明確,想一邊做一邊提,適合引入敏捷開(kāi)發(fā)(實(shí)際上用戶(hù)的需求也一直在變,當(dāng)他們看到每次的small release時(shí)都會(huì)有新的想法)。
    ?
    Team主要成員:一個(gè)team leader(兼BA職責(zé)),兩個(gè)工程師,一個(gè)UI設(shè)計(jì)師。
    成員主要職責(zé):team leader主要負(fù)責(zé)召開(kāi)會(huì)議,明確每天的開(kāi)發(fā)任務(wù)以及項(xiàng)目的總體大概進(jìn)程,保持團(tuán)隊(duì)成員清楚的知道項(xiàng)目目前的狀態(tài),保持團(tuán)隊(duì)溝通順暢讓團(tuán)隊(duì)保持高昂的士氣。還有個(gè)作用是敢于對(duì)項(xiàng)目的成敗負(fù)責(zé)(當(dāng)然團(tuán)隊(duì)每個(gè)成員都有責(zé)任)。工程師的主要職責(zé)是開(kāi)發(fā),設(shè)計(jì)師主要職責(zé)是UI設(shè)計(jì)。
    ?
    開(kāi)發(fā)環(huán)境配備:硬件:兩個(gè)PC機(jī)兩個(gè)顯示器兩套鼠標(biāo)鍵盤(pán)(工作的時(shí)候切換到一個(gè)PC機(jī)上pair編程,共享一個(gè)主機(jī),用轉(zhuǎn)換器使一個(gè)主機(jī)上面接兩個(gè)顯示器,兩套鼠標(biāo)鍵盤(pán),這樣就不用擠在一個(gè)顯示器前搶一套鼠標(biāo)鍵盤(pán)pair了),一個(gè)測(cè)試服務(wù)器,上裝svn服務(wù)器和cruisecontrol來(lái)管理代碼和實(shí)現(xiàn)定時(shí)自動(dòng)化測(cè)試(測(cè)試一定要自動(dòng)化,這樣可以讓機(jī)器來(lái)干它喜歡并擅長(zhǎng)干的事情,讓工程師專(zhuān)注自己的業(yè)務(wù);我們使用yahoo的一個(gè)模擬熔巖燈來(lái)監(jiān)視測(cè)試結(jié)果。),一個(gè)發(fā)布服務(wù)器,客戶(hù)可以遠(yuǎn)程及時(shí)適用后給出反饋意見(jiàn)和建議。
    ?
    開(kāi)發(fā)簡(jiǎn)介:
    一、迭代(Iteration)和發(fā)布(release)計(jì)劃
    由于項(xiàng)目開(kāi)發(fā)人員比較少,我們決定采用最短的迭代周期(一周),每個(gè)迭代前由BA評(píng)估story需求風(fēng)險(xiǎn),開(kāi)發(fā)人員評(píng)估story技術(shù)風(fēng)險(xiǎn)和COST,選出能在本輪迭代周期中完成的任務(wù);每個(gè)迭代結(jié)束來(lái)一次small release
    ?
    二、我們對(duì)實(shí)現(xiàn)XP價(jià)值觀所做的努力
    1、? 溝通(communication)
    再怎么強(qiáng)調(diào)溝通的重要性都不為過(guò),尤其是在軟件行業(yè)。所以在XP中communication被放在首位也不為奇。
    我們項(xiàng)目組每天早上開(kāi)一次Standup Meeting,通報(bào)彼此昨天做了哪些工作,以便讓開(kāi)發(fā)小組所有人了解各自的工作情況,然后確定今天要做的task,目前公司地牌兒還不夠遼闊,我們小組還沒(méi)有足夠的地兒掛白板,就把story和task寫(xiě)在Excel表里面;每個(gè)星期一的早上(迭代開(kāi)始前)會(huì)有一個(gè)IPM(迭代計(jì)劃會(huì)議),主要內(nèi)容是大概確定本次迭代周期開(kāi)發(fā)需開(kāi)發(fā)的story,工程師評(píng)估每個(gè)story完成所需的時(shí)間開(kāi);每個(gè)周五下午(迭代結(jié)束前)會(huì)有一個(gè)Retrospective(迭代結(jié)束前會(huì)議),會(huì)議主要內(nèi)容是對(duì)本次迭代做的好的方面以及待改進(jìn)的地方進(jìn)行總結(jié);工程師pari編程。
    2、? 簡(jiǎn)單(simplicity)
    保持代碼和設(shè)計(jì)盡可能簡(jiǎn)單是系統(tǒng)可擴(kuò)展性和可維護(hù)性的重要保障。關(guān)于Simple Design的討論可見(jiàn)徐X的Agile 101: Pair Programming & Simple Design? 。kent beck用四個(gè)條件定義了簡(jiǎn)單的系統(tǒng)代碼:運(yùn)行所有的測(cè)試獲得通過(guò)、意圖明確、沒(méi)有重復(fù)、使用盡可能少的類(lèi)和方法。我和accompanier也一直在向這個(gè)目標(biāo)努力。
    3、? 反饋(feedback)
    沒(méi)有持續(xù)的反饋,敏捷將無(wú)從談起。customer、accompanier、team以及test result的反饋給我們向用戶(hù)交付真正需要的系統(tǒng)提供了保證。我們的BA每天和客戶(hù)溝通,掌握用戶(hù)真正、迫切需要的功能和需求。由于我們的系統(tǒng)是一周發(fā)布一次,所以客戶(hù)也能在很短的時(shí)間內(nèi)知道完成的新功能,并及時(shí)提出改進(jìn)意見(jiàn)和建議(其實(shí)客戶(hù)的需求也是一直不停地在變的)。
    4、? 勇氣(courage)
    為了使代碼更加清晰、質(zhì)量更好,對(duì)工作代碼進(jìn)行大范圍的修改和重構(gòu)需要勇氣,把某些代碼徹底拋棄需要勇氣,告訴客戶(hù)無(wú)法再添加新功能需要勇氣。我和accompanier目前都還有這樣的勇氣,希望系統(tǒng)越來(lái)越大、代碼越來(lái)越多的時(shí)候還有這樣的勇氣。
    ?
    三、測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)
    關(guān)于TDD我們一直在嘗試尋找更爽的方法,目前采用的是webwork、spring、hibernate的組合框架,在大腦里無(wú)意識(shí)的已經(jīng)存在了三層結(jié)構(gòu),我覺(jué)得采用TDD,這三層結(jié)構(gòu)應(yīng)該是最后被驅(qū)動(dòng)出來(lái)產(chǎn)生的,而不是一開(kāi)始就定好三層,然后再TDD編碼。
    我們目前是分別對(duì)每層進(jìn)行TDD,還是覺(jué)得service層驅(qū)動(dòng)最有成就感,看到green bar 就令人興奮,action層老是mock來(lái)mock去的走流程實(shí)在屬?zèng)]啥意思。
    最近又看到了使用Selenium和Castle進(jìn)行測(cè)試驅(qū)動(dòng)開(kāi)發(fā) ,本想采納,但是使用Selenium進(jìn)行至頂向下的驅(qū)動(dòng)的話通過(guò)一個(gè)測(cè)試所需的時(shí)間太長(zhǎng)了,我是對(duì)green bar有點(diǎn)上癮了的人,不能忍受那么長(zhǎng)時(shí)間的red bar,懷疑它會(huì)對(duì)偶的身心健康造成影響,所以就作罷,還是由底至上的方法使測(cè)試通過(guò)的實(shí)踐最短,不知道各位對(duì)這樣的三層結(jié)構(gòu)是怎么TDD的?
    ?
    Robert C. Martin大叔的TDD三條軍規(guī)如下:
    1.除非這能讓失敗的單元測(cè)試通過(guò),否則不允許去編寫(xiě)任何的產(chǎn)品代碼。
    2.只允許編寫(xiě)剛好能夠?qū)е率〉膯卧獪y(cè)試。 (編譯失敗也屬于一種失敗)
    3.只允許編寫(xiě)剛好能夠?qū)е乱粋€(gè)失敗的單元測(cè)試通過(guò)的產(chǎn)品代碼。
    對(duì)于任何功能,一定要從編寫(xiě)它的單元測(cè)試開(kāi)始;但是到了原則2,你就不能再為那個(gè)單元測(cè)試寫(xiě)更多內(nèi)容。只要一出現(xiàn)該單元測(cè)試代碼編譯失敗,或是斷言失敗,你就必須停下來(lái)開(kāi)始編寫(xiě)產(chǎn)品代碼;但是到了原則3,你就只能編寫(xiě)產(chǎn)品代碼,直到讓測(cè)試編譯成功或通過(guò)斷言為準(zhǔn)。
    ?
    這三條軍規(guī)我覺(jué)得太經(jīng)典了,完全做到了才算TDD做到位了。
    ?
    前幾個(gè)迭代周期我們沒(méi)有采用TDD,功能代碼寫(xiě)了然后寫(xiě)測(cè)試,兩個(gè)月后對(duì)系統(tǒng)進(jìn)行了一次比較大的重構(gòu)時(shí),所有的測(cè)試都通過(guò)了,但是發(fā)布上去了還是由bug,所以這種干法是不行的,測(cè)試不能達(dá)到令人滿意的覆蓋度。TDD完全可以使測(cè)試達(dá)到令人滿意的覆蓋度。基本上只要測(cè)試通過(guò)了,就能確定重構(gòu)沒(méi)有對(duì)系統(tǒng)造成影響。
    ?
    四、驗(yàn)收測(cè)試(acceptance test)/客戶(hù)測(cè)試(customer test)
    ??? 驗(yàn)收測(cè)試我們是放在最后做的,由BA代客戶(hù)寫(xiě)驗(yàn)收測(cè)試,工程師使用selenium 進(jìn)行驗(yàn)收測(cè)試的實(shí)現(xiàn),我們發(fā)現(xiàn)selenium對(duì)frame支持的不是很好,有這兒我想到采用至頂向下如:使用Selenium和Castle進(jìn)行測(cè)試驅(qū)動(dòng)開(kāi)發(fā) 進(jìn)行TDD的話是最合理的,不知道大家是不是這么做的?
    ?
    五、pair 編程
    ??? pair的好處我就不說(shuō)了,試過(guò)了就知道了。

    敏捷實(shí)踐交流PPT
    posted on 2007-04-06 21:44 溫柔一刀 閱讀(1572) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): Agile

    評(píng)論

    # re: 首次敏捷項(xiàng)目開(kāi)發(fā)實(shí)踐 2007-04-06 22:18 ronghao
    相當(dāng)好!敏捷從開(kāi)發(fā)人員來(lái)說(shuō)個(gè)人覺(jué)得最大的障礙在于領(lǐng)導(dǎo)的不支持,對(duì)敏捷過(guò)程的懷疑,沒(méi)有勇氣。而客戶(hù),個(gè)人覺(jué)得,敏捷起來(lái)還是比較容易的。
    希望看到更多的總結(jié)!!  回復(fù)  更多評(píng)論
      

    聯(lián)系偶 zhupanjava@gmail.com 溫柔一刀
    主站蜘蛛池模板: 永久免费AV无码网站在线观看| 日韩免费视频观看| 亚洲精品456人成在线| 四虎影视永久免费观看地址 | 亚洲免费闲人蜜桃| 四虎永久成人免费影院域名| 好久久免费视频高清| 亚洲欧洲精品成人久久曰| 亚洲熟妇少妇任你躁在线观看| 亚洲AV成人潮喷综合网| 99亚洲精品卡2卡三卡4卡2卡| 亚洲中文字幕无码中文字在线| 亚洲精品免费在线| 一级一黄在线观看视频免费| 亚洲精品456在线播放| 亚洲精品无码专区2| 一色屋成人免费精品网站| A国产一区二区免费入口| 99热亚洲色精品国产88| 国产成A人亚洲精V品无码| 日韩激情淫片免费看| 最近2018中文字幕免费视频| 精品乱子伦一区二区三区高清免费播放 | 亚洲成a人片在线观看久| 91精品国产免费入口| 一区免费在线观看| 亚洲一卡2卡3卡4卡乱码 在线| 亚洲国产精品一区二区久久hs| 国产成人精品免费视频大全五级| 91香蕉在线观看免费高清| 无码人妻一区二区三区免费视频| 久久精品国产亚洲av麻豆图片 | 99热这里只有精品6免费| 五月天婷婷免费视频| 亚洲kkk4444在线观看| 91亚洲精品视频| 国产亚洲美女精品久久久久狼| 国产免费人成在线视频| 免费无码又黄又爽又刺激 | 国产免费av一区二区三区| 可以免费看黄视频的网站|