九、技術(shù)實(shí)踐
追求技術(shù)進(jìn)步
1、測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)

2、重構(gòu)
重構(gòu)是指改變代碼的結(jié)構(gòu),而不是代碼的行為,需要定期對(duì)代碼進(jìn)行清理,避免代碼腐爛
3、集體所有權(quán)
指所有的開(kāi)發(fā)人員共同負(fù)責(zé)開(kāi)發(fā)過(guò)程中的所有產(chǎn)出內(nèi)容,特別是代碼和自動(dòng)化測(cè)試
確保開(kāi)發(fā)人員不會(huì)變得太專以至于只能在某一方面作出貢獻(xiàn)
確保沒(méi)有一個(gè)地方變得太錯(cuò)綜復(fù)雜以至于只有一個(gè)開(kāi)發(fā)人員可以明白和完成其工作
4、持續(xù)集成
指盡可能快地將新開(kāi)發(fā)和修改過(guò)的代碼集成到一個(gè)應(yīng)用程序中,然后測(cè)試這個(gè)應(yīng)用程序,確保沒(méi)有任何東西被破壞,而不是可能過(guò)了幾天甚至幾周才提交代碼
持續(xù)集成通常借助于一個(gè)工具或者腳本來(lái)實(shí)現(xiàn),不允許手動(dòng)實(shí)現(xiàn)
冒煙測(cè)試是在每次代碼檢入的時(shí)候運(yùn)行,包括當(dāng)前里程碑(Sprint)的所有測(cè)試腳本和過(guò)去里程碑的部分腳本
全量回歸每隔一個(gè)小時(shí)運(yùn)行一次,包括所有的腳本——一般不采用
5、結(jié)對(duì)編程
指兩個(gè)開(kāi)發(fā)人員一起寫(xiě)代碼,這是一個(gè)很好的寫(xiě)代碼的方式,結(jié)對(duì)會(huì)花費(fèi)更多的人時(shí),但總時(shí)間更少
Brooks定律——給延期軟件項(xiàng)目增加人手,會(huì)使其進(jìn)一步延期
設(shè)計(jì):有意的而又是涌現(xiàn)式的
1、習(xí)慣于不做大型設(shè)計(jì)
在過(guò)去,做大型的前期設(shè)計(jì)完全可能節(jié)省時(shí)間和金錢,但是,Scrum使用優(yōu)秀的技術(shù)實(shí)踐,通過(guò)更頻繁地修改應(yīng)用程序,他們可以用更低的成本適應(yīng)客戶的需要
2、引導(dǎo)設(shè)計(jì)
Scrum團(tuán)隊(duì)可以影響事項(xiàng)的工作順序,特別是在新項(xiàng)目的早期,團(tuán)隊(duì)成員要鼓勵(lì)PO選擇可以那些能最大化知識(shí)并排除技術(shù)不確定性或風(fēng)險(xiǎn)的事項(xiàng)
技術(shù)實(shí)踐的改進(jìn)并不是可有可無(wú)的
技術(shù)實(shí)踐在應(yīng)用中可能不總是100%的需要
持續(xù)集成只是每日構(gòu)建的自然延伸,它是對(duì)敏捷團(tuán)隊(duì)的最低要求
結(jié)合使用這些實(shí)踐可以制造出質(zhì)量高、缺陷少的產(chǎn)品
敏捷編程為變更而做設(shè)計(jì),它的目標(biāo)是設(shè)計(jì)出能接受變更、甚至期望變更的程序。理想情況下,敏捷編程允許以簡(jiǎn)單的、局部的方式來(lái)適應(yīng)變更,以避免或大大減少重大重構(gòu),重新測(cè)試和系統(tǒng)構(gòu)建