|
做最簡(jiǎn)單的事去完成項(xiàng)目~~《解析極限編程 擁抱變化》讀后感
http://www. 2007年06月18日 法拉利ENZO
1. 任何情況下,變化是絕對(duì)的,不變是相對(duì)的,我們不要抱怨變化的發(fā)生,重要的時(shí)要有應(yīng)付變化的能 力。但是那絕對(duì)不是聽(tīng)從別人來(lái)變化,而是自適應(yīng)形勢(shì)的變化。 2. 四個(gè)變量:成本、時(shí)間、質(zhì)量、范圍 3. 四個(gè)原則:溝通、簡(jiǎn)單、反饋、勇氣 4. 所有的實(shí)踐: a) 計(jì)劃游戲 i. 業(yè)務(wù)人員需要決定的內(nèi)容: 1. 范圍 2. 優(yōu)先級(jí) 3. 版本的組成 4. 發(fā)布的日期 ii. 技術(shù)人員決定的內(nèi)容: 1. 估算 2. 后果 3. 過(guò)程 4. 詳細(xì)的日程計(jì)劃 b) 小版本 包含最有價(jià)值的業(yè)務(wù)需求。 c) 隱喻 每個(gè)XP軟件項(xiàng)目都是由一個(gè)全面的隱喻指導(dǎo)的。 d) 簡(jiǎn)單設(shè)計(jì) 任何時(shí)候,正確的軟件設(shè)計(jì)都具有下面的特征: i. 能夠運(yùn)行所有測(cè)試 ii. 沒(méi)有重復(fù)的邏輯 iii. 陳述每個(gè)對(duì)程序員重要的意圖。 iv. 有盡可能少的類別和方法 e) 測(cè)試 測(cè)試有助于增強(qiáng)程序員的信心;只對(duì)有可能出錯(cuò)的方法編寫(xiě)測(cè)試代碼。 f) 重構(gòu) g) 結(jié)對(duì)編程 一個(gè)人思考實(shí)現(xiàn)此方法的最佳途徑,另一個(gè)應(yīng)更加偏重于戰(zhàn)略性的角度進(jìn)行思考。 h) 集體所有權(quán) 只有代碼的正式所有者才可以更改代碼 i) 持續(xù)集成 用一臺(tái)計(jì)算機(jī)專門作集成工作 j) 每周工作40小時(shí) 加班時(shí)項(xiàng)目存在嚴(yán)重問(wèn)題的征兆 k) 現(xiàn)場(chǎng)客戶 指的是在系統(tǒng)投產(chǎn)后真正使用系統(tǒng)的人 l) 編碼標(biāo)準(zhǔn) 標(biāo)準(zhǔn)應(yīng)強(qiáng)調(diào)溝通,并必須被整個(gè)團(tuán)隊(duì)自愿地采納。 5. 環(huán)境可能是最后被考慮到的東西,但是往往是非常重要的。 6. 一定要保證一個(gè)小組在工作的時(shí)候不被干擾,否則就無(wú)法真正集中精力工作。 7. 業(yè)務(wù)人員應(yīng)該選擇: a) 發(fā)布的范圍或時(shí)間 b) 提出的功能的相對(duì)優(yōu)先權(quán) c) 提出的功能的確切范圍。 8. 開(kāi)發(fā)組織必須確定: a) 實(shí)現(xiàn)各種功能所需的時(shí)間估算 b) 各種可選的技術(shù)方案的后果估算 c) 適合他們的個(gè)性、業(yè)務(wù)環(huán)境和公司文化的開(kāi)發(fā)過(guò)程。 d) 使用哪組時(shí)間來(lái)開(kāi)始,即以使用什么樣的進(jìn)程來(lái)評(píng)審實(shí)踐的效果和對(duì)變化進(jìn)行試驗(yàn)。 9. 制定計(jì)劃的目的: a) 團(tuán)結(jié)和組織開(kāi)發(fā)團(tuán)隊(duì) b) 決定范圍和優(yōu)先級(jí) c) 估算成本和日程 d) 讓大家對(duì)系統(tǒng)的成功信心百倍 e) 為反饋提供一個(gè)基準(zhǔn) 10. 制定計(jì)劃的原則: a) 只制定下一個(gè)階段所需的計(jì)劃(計(jì)劃需要不停的進(jìn)行迭代) b) 接受的責(zé)任(責(zé)任只能被接受,而不能被強(qiáng)加) c) 負(fù)責(zé)實(shí)現(xiàn)的人進(jìn)行估算 d) 忽略個(gè)部分之間的依賴關(guān)系 e) 為優(yōu)先級(jí)作計(jì)劃與為開(kāi)發(fā)作計(jì)劃的比較—謹(jǐn)記計(jì)劃的目的 11. 首要的一個(gè)問(wèn)題是如何處理好人與人之間的關(guān)系,如果大家都能夠做到權(quán)責(zé)明確,并且和睦相處 ,那么就具備了一個(gè)好團(tuán)隊(duì)所必須的一點(diǎn)。 12. 業(yè)務(wù)方和開(kāi)發(fā)方一定要做到相互信任,相互尊重。 13. 如果能夠把一項(xiàng)工作做的像是大家在共同進(jìn)行一個(gè)游戲的話,大多數(shù)人都會(huì)樂(lè)意去做,而且很快 樂(lè)。 14. 配對(duì)編程是一種非常值得嘗試的方式,可能一旦使用就會(huì)永遠(yuǎn)喜歡上這種方式。 15. 最佳設(shè)計(jì):能運(yùn)行所有測(cè)試用例的最簡(jiǎn)單的設(shè)計(jì) 16. 最簡(jiǎn)單的四種約束: a) 系統(tǒng)必須能夠溝通任何你希望溝通的內(nèi)容 b) 系統(tǒng)不能夠包含重復(fù)的代碼 c) 系統(tǒng)擁有盡可能少的類 d) 系統(tǒng)擁有盡可能少的方法 17. 軟件的設(shè)計(jì)不可能沒(méi)有變化,我們要做的是如何來(lái)面對(duì)并處理這些變化。在極限編程中,對(duì)于變 化我們會(huì)返工,但是那就像是修改一篇文章一樣,是一件令人快樂(lè)的事情。 18. 不停的進(jìn)行測(cè)試的方法似乎與制作網(wǎng)頁(yè)的過(guò)程有些類似,在制作網(wǎng)頁(yè)的過(guò)程中我們會(huì)不斷的進(jìn)行 預(yù)覽,查看在瀏覽其中實(shí)際的效果,而且所有的網(wǎng)頁(yè)都是在持續(xù)集成的過(guò)程中完成的。 19. 測(cè)試先行并不意味著我們?cè)谑裁辞闆r下都要先編寫(xiě)測(cè)試,然后編寫(xiě)代碼。在Eclipse中,如果沒(méi)有 一定的代碼,測(cè)試程序根本就是無(wú)法通過(guò)的,又來(lái)的什么正確不正確呢。而且,在編好了基本的類之后 ,使用自動(dòng)化的工具來(lái)生成測(cè)試程序,在一定程度上也可以提高工作的效率,何樂(lè)而不為呢? 20. 當(dāng)一個(gè)人編寫(xiě)的程序里面Bug太多的時(shí)候,并不意味著他沒(méi)有重視測(cè)試,大多時(shí)候是因?yàn)樗€沒(méi)有 掌握測(cè)試的方法和工具。不知道怎樣來(lái)測(cè)試,怎么可能做好呢? 21. 在保存項(xiàng)目的時(shí)候,如果使用極限編程,應(yīng)該不僅保存項(xiàng)目的源代碼,而且要保存所有的測(cè)試用 例。而且在寫(xiě)注釋的時(shí)候,不僅在程序的源代碼里面要有詳盡的注釋,在測(cè)試用例的代碼中也應(yīng)該做到 這一點(diǎn)。 |
|
|