XP 實戰
ThoughtWorks
敏捷的核心:是一種理念、方法論、技巧
項目:確定目標
迭代:核實目標
日常:走向目標
?
團隊內一定要有一致的認識,做法(打通關節、人員調整、進行培訓),開發環境(房間、硬件、人員布置)
不斷觀察,定期總結流程的缺點,不斷改進完善,使之適合團隊
?
關于環境(無擋板、光線明亮、帶輪子的椅子、無線鼠或者鍵盤、大桌子、圈坐)
?
迭代:一個 story 平均 2 天,追蹤、總結、分析、對事不對人
項目大的時候需要專門的迭代經理,對內負責 checking (迭代報告),對外交流匯報(功能演示)
?
持續集成: 1 )從項目的第一天就開始做起 2 )發散性廣播(聲音:哦。。。。。。,哦你媽個頭),熔巖燈 3 )如果集成失敗就必須立即解決 4 )頻繁發布,自動測試
?
測試驅動開發: 1 )增加測試范圍 2 )永遠都要先寫測試(先定義接口,然后再寫單元測試) 3 )提高測試效率 4 )避免缺陷重現 5 )監督開發 6 )不僅僅是單元測試
?
考慮用
wiki
管理文檔,方便迭代
?
實施 XP 的項目團隊不要超過 10 人, 8 - 10 人最合適
?
web
測試的工具:
salenium jwebunit junit (Fit jwebfit watir)
?
阿里巴巴:
web
性能測試
陳日俊(落葉夏日)
包括:阿里巴巴、淘寶、支付寶、雅虎
LoadRunner 是開發人員玩的
?
使用
JProfile
測試性能
優先級考慮的是數據庫調優(
index
),最后考慮算法調優
Resin
研究使用,性能更好
?
1 )用戶行為分析 2 )應用網絡分析 3 )數據量分析
?
1、? 場景設計源自需求
2、? 并發用戶數
3、? 峰值、平均并發、時間分布
4、? 用戶空間分布(系統不同模塊的用戶空間分布)
5、? 穩定性要求
6、? 數據庫數量的大小、增長方式、訪問方式
7、? 用戶行為分析
?
紅工廠 JDO 專家組成員 黃海波 一個 Xper 的心路歷程
?
上班玩游戲,爽!――培養 TeamWork 的能力
40 歲的程序員,活到老,編到老,知道的多,平等,平和,可以良好的溝通
?
真正的 XP 可以達到:工作節奏平穩、有效率、有節奏
?
只有溝通不夠的項目,沒有溝通過度的項目
?
主動匯報 上司
?
以人為本:每個開發人員都能充分參與到軟件開發中,都以每一行代碼為己任,做到我為人人,人人為我。
?
最高境界:以人為本,而不是以流程為本
XP :改變人的思維品質
1 )敢于面對批評 2 )不怕暴露自己的不足 3 )主動承認不足 4 )主動溝通 5 )杜絕懶惰 6 )反省自己的開發流程
在 XP 中,碰到問題應該是先問誰會,如果沒有會的再 google
?
1 )結隊一定更加高效、高質 2 )從別人身上學習,看別人的優點,尊重伙伴 3 )一個人的價值不在于知道多少,在于能知道多少 4 )永遠測試先行 5 )不要吝嗇問題 6 )盡可能得讓別人知道自己在做什么 7 )不要重復代碼
?
XP 挑戰人性的陰暗面(惰性-永遠都不要、自尊-知道什么時候應該放下)
?
Xper =合格的程序員
對于 XP 團隊,招聘的時候對性格也是有一些要求
說白了: XP 是一種更加剝削的方式
?
但是對個人成長和對公司發展都是有利的,只能說可能對公司的益處更加明顯。
如果我是老板我一定會選擇 XP ,
如果碰到實施 XP 的老板,那么就努力跟老板學習,盡快讓自己也成為老板。順便推薦兩篇文章:
極限編程(XP)發布工具
Step by Step CruiseControl入門