什么是原則?
- 做一件事情,通常有多種做法,但必然有一種做法是最合適的。那這“最合適”的做法是怎么篩選出來(lái)的呢?取決于這件事情的核心特性,越貼近核心特性,做法就越合適。另一種理解方式就是主要矛盾,越能解決矛盾,就越合適。而在XP中通常把這些核心特性或主要矛盾,稱之為原則。
那軟件開發(fā)中的原則有哪些?
人性化
- 重點(diǎn)在于,是人在開發(fā)軟件,所以這個(gè)核心特性——人,的狀態(tài)直接影響這軟件開發(fā)。怎么提升?安全感,成就感,歸屬感,成長(zhǎng),親切感。
- 偉大團(tuán)隊(duì)的魔力在于,在團(tuán)隊(duì)成員間建立相互信任之后,他們發(fā)現(xiàn)合作工作的結(jié)果是導(dǎo)致每個(gè)人都可以更加自我。
經(jīng)濟(jì)學(xué)
- 軟件開發(fā)的最根本目的,賺錢?。?!
互惠互利
- 如果你想要人們接受你的意見,那你就應(yīng)該解決更多的問(wèn)題,而不是制造更多的問(wèn)題。
- XP的互惠互利原則尋找這樣的實(shí)踐,它使現(xiàn)在的我、以后的我和我的客戶都能獲益。
自相似性
- 試著將一個(gè)解決方案的結(jié)構(gòu)復(fù)制到一個(gè)新環(huán)境中,即使他們的粒度不同。通常這是一個(gè)不錯(cuò)的起點(diǎn)。
改進(jìn)
- 沒有最好,只有更好,庸才更喜歡等待。
- 改進(jìn)原則表示為實(shí)踐就是:馬上開始行動(dòng),隨著實(shí)踐的推移逐步精化結(jié)果。根據(jù)經(jīng)驗(yàn)改進(jìn)長(zhǎng)期計(jì)劃,這個(gè)可能性通過(guò)季度周期這一實(shí)踐得到表現(xiàn)。增量式設(shè)計(jì)通過(guò)精化系統(tǒng)設(shè)計(jì)來(lái)貫徹改進(jìn)原則。實(shí)際的設(shè)計(jì)永遠(yuǎn)不可能是理想設(shè)計(jì)的完美映像,但你可以通過(guò)每天的努力來(lái)使這二者接近。
多樣性
- 團(tuán)隊(duì)需要將不同的技能、態(tài)度以及看待問(wèn)題和缺陷的視角整合在一起,來(lái)考慮解決問(wèn)題和實(shí)現(xiàn)解決方案的不同方法。就跟現(xiàn)實(shí)世界保持生物多樣性一樣。
- 多樣性不可避免地伴隨著沖突。沖突不是“我們彼此痛恨,我們不能取得進(jìn)展”的意思,而是“解決這樣的事情有兩種方法”。你將如何選擇?
- 程序員應(yīng)該共同致力于問(wèn)題的解決,兩個(gè)觀點(diǎn)都應(yīng)該得到重視。
反省
- 好的團(tuán)隊(duì)會(huì)思考如何工作和為什么工作。
- 分析為什么成功或失敗。
- 不會(huì)試圖掩藏錯(cuò)誤,而是暴露它們并從中學(xué)習(xí)
- 重點(diǎn):反省需緊跟行動(dòng),學(xué)習(xí)是反省的行為
流
- XP的實(shí)踐傾向于活動(dòng)的連續(xù)流。
- 建議通過(guò)頻繁地部署較小的增量來(lái)改善延遲。
- 持續(xù)交付,形成流。
機(jī)遇
- 隨時(shí)隨地都有機(jī)遇。
- 學(xué)會(huì)把問(wèn)題看作改變的機(jī)遇。
- 僥幸的態(tài)度會(huì)導(dǎo)致僅僅解決表面的問(wèn)題而蒙混過(guò)關(guān)。
冗余
- 表示跟質(zhì)量相關(guān)的測(cè)試,不能省去。
失敗
- 不要討論萬(wàn)一失敗了怎么辦。
- 停止無(wú)休止的討論,盡快用實(shí)踐驗(yàn)證問(wèn)題。
- 有時(shí)當(dāng)你不知道要怎么做的時(shí)候,冒一點(diǎn)風(fēng)險(xiǎn)失敗可能是通向成功的最短最穩(wěn)妥的道路。
質(zhì)量
- 磨刀不誤砍柴工
- 通過(guò)犧牲質(zhì)量來(lái)控制的手段是沒有效率的。質(zhì)量不是一個(gè)控制變量。項(xiàng)目不會(huì)因?yàn)榻邮艿唾|(zhì)量而加快進(jìn)度,也不會(huì)因?yàn)橐蟾哔|(zhì)量而使進(jìn)度減慢。要求高質(zhì)量通常導(dǎo)致更快的交付,而降低質(zhì)量標(biāo)準(zhǔn)通常會(huì)導(dǎo)致更晚的不可預(yù)見的交付。
- 問(wèn)題在于我們?nèi)绻玫教岣哔|(zhì)量的能力。
- 人們需要做令他們感到自豪的工作。
嬰兒步
- 人們適應(yīng)變化的速度是有限的。
- 嬰兒步代表持續(xù)快節(jié)奏的小步前進(jìn)。
- 對(duì)于失敗而言,小步前進(jìn)的代價(jià)要小的多。
接受責(zé)任
- 責(zé)任和權(quán)利需要并行,兩者錯(cuò)位會(huì)扭曲團(tuán)隊(duì)的溝通。
- 當(dāng)一個(gè)過(guò)程專家告訴我該怎么樣工作,卻不承擔(dān)這些工作及其后果時(shí),權(quán)利和責(zé)任就錯(cuò)位了。我倆都無(wú)法從一個(gè)理智的角度出發(fā)來(lái)看到或使用哪些幫助我們改進(jìn)的反饋。
- 錯(cuò)位還要付出情緒方面的成本。