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

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

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

    e代劍客——溫柔一刀

    生活就像海洋,只有意志堅強的人,才能到達彼岸

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

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

    評論

    # re: 首次敏捷項目開發實踐 2007-04-06 22:18 ronghao
    相當好!敏捷從開發人員來說個人覺得最大的障礙在于領導的不支持,對敏捷過程的懷疑,沒有勇氣。而客戶,個人覺得,敏捷起來還是比較容易的。
    希望看到更多的總結!!  回復  更多評論
      

    聯系偶 zhupanjava@gmail.com 溫柔一刀
    主站蜘蛛池模板: 免费看美女让人桶尿口| 无码午夜成人1000部免费视频| 成人免费在线看片| 亚洲AV成人无码久久精品老人| 国产日韩AV免费无码一区二区 | 全部免费毛片免费播放| 亚洲国产精品99久久久久久| 最近2019中文字幕免费看最新 | 暖暖免费中文在线日本| vvvv99日韩精品亚洲| 一级A毛片免费观看久久精品| 亚洲乱码国产一区网址| 久久久久免费视频| 亚洲成a人片在线观看无码| 久久ww精品w免费人成| 亚洲videos| 免费一区二区视频| 中文字幕在线免费看| 亚洲综合一区二区精品导航 | 免费乱码中文字幕网站| a级毛片免费高清视频| 亚洲日本中文字幕| 欧美a级成人网站免费| 春暖花开亚洲性无区一区二区| 亚洲精品线路一在线观看| 日本高清不卡aⅴ免费网站| 亚洲高清不卡视频| 日本特黄特色aa大片免费| 搜日本一区二区三区免费高清视频 | 99国产精品视频免费观看| 亚洲色欲色欲www| 亚洲国产日韩成人综合天堂 | 蜜臀91精品国产免费观看| h片在线播放免费高清| 亚洲美女视频一区二区三区| 日韩免费视频在线观看| 国产午夜精品久久久久免费视| 国产精品亚洲专区在线观看 | 亚洲专区先锋影音| 免费一级国产生活片| 日韩精品内射视频免费观看|