從開始編程實(shí)踐之前,就一直對(duì)敏捷開發(fā)弟跑,精益生產(chǎn)的理念特別敢興趣灾前,比較好的是,我個(gè)人從來對(duì)最后那個(gè)眾所周知的開發(fā)速度快感興趣孟辑,而是被敏捷方法所包含的理念所吸引哎甲,團(tuán)隊(duì)合作、高質(zhì)量饲嗽、精益求精炭玫,這些都是我自己特別感興趣的。所以幾年來貌虾,一直不斷的在追求如何實(shí)現(xiàn)真正的敏捷吞加,閱讀了很多書籍,文章尽狠,親自在工作中實(shí)踐衔憨。2016年剛剛開始,正好結(jié)束了之前系統(tǒng)的開發(fā)一段時(shí)間袄膏,總結(jié)一下自己的感想和收獲践图。
現(xiàn)在談到敏捷開發(fā),應(yīng)該是混合了XP
和Scrum
沉馆,就像馬丁福勒說的平项,現(xiàn)在已經(jīng)沒有人單獨(dú)談?wù)揦P赫舒,就像談?wù)摵芏嗥渌麣v史上的理念,不是因?yàn)椴恢匾嗣銎埃亲兊孟窨諝庖粯幼匀唬詻]有感覺了扣讼。而現(xiàn)實(shí)中幾乎所有人都看到了敏捷的好處椭符,都渴望敏捷帶來的優(yōu)勢销钝,不談敏捷仿佛就是異教徒蒸健;但是不幸的是似忧,更多的聽到的聲音是,我多短的時(shí)間做了這么多功能淳衙,這個(gè)一定是敏捷了箫攀,看我也敏捷靴跛,這里面肯定有一部分已經(jīng)像空氣一樣自然的敏捷,但是很多人其實(shí)完全忽略了團(tuán)隊(duì)才是敏捷的核心严拒,高質(zhì)量是敏捷的自然結(jié)果裤唠,而做出來的系統(tǒng)莹痢,代碼質(zhì)量本身反而是最先被犧牲的,這樣的實(shí)踐當(dāng)然不是敏捷诫硕。
我自己的實(shí)踐
代碼審查
在保證代碼質(zhì)量上章办,代碼審查是必不可少的藕届,只有審查才能確保像縮進(jìn)亭饵、循環(huán)嵌套層數(shù)這樣的錯(cuò)誤能夠被及時(shí)糾正辜羊,通過大量的審查只冻,至少保證代碼整體水平任何時(shí)候都是團(tuán)隊(duì)當(dāng)前能達(dá)到的最高水平山橄;另外在團(tuán)隊(duì)建設(shè)航棱,尤其是培養(yǎng)新人饮醇,形成新的架構(gòu)的過程中朴艰,代碼審查也是最高效的祠墅。
碰到的問題是毁嗦,有的時(shí)候代碼質(zhì)量很低狗准,幾乎會(huì)整個(gè)推翻重寫腔长,效果是提高了饼酿,但是開發(fā)效率降低非常明顯故俐。
結(jié)對(duì)編程
在敏捷軟件開發(fā)(原則模式與實(shí)踐)中药版,提到了結(jié)對(duì)編程的一些意義槽片,例如互相發(fā)現(xiàn)問題还栓、提高專注度谷婆、還有編寫測試
對(duì)敏捷的一些總結(jié)
高水平的團(tuán)隊(duì)
我心中理想的敏捷,首先要明確一點(diǎn)纪挎,人是核心异袄,以人為中心去打造團(tuán)隊(duì)和架構(gòu)烤蜕,只有最頂尖的人理念相通的團(tuán)隊(duì)讽营,才能最高效的去溝通斑匪,并且有絕對(duì)的執(zhí)行力蚀瘸;就算暫時(shí)還不是頂尖的高潛力人才贮勃,也要通過團(tuán)隊(duì)的敏捷實(shí)踐寂嘉,加速新人融入團(tuán)隊(duì)泉孩。這種情況下的結(jié)對(duì)編程寓搬,不管是熟悉的人和不熟悉的人結(jié)對(duì)句喷,還是測試驅(qū)動(dòng)唾琼,都是達(dá)到最佳效果所必須的锡溯。
可持續(xù)的開發(fā)
敏捷一定是倡導(dǎo)可持續(xù)的開發(fā)趾唱,在很多地方,其實(shí)這個(gè)反而是最難做到的宛乃,不但要求開發(fā)人員的高效率征炼,個(gè)人實(shí)踐管理眼坏,技術(shù)和知識(shí)的提升還有規(guī)劃和設(shè)計(jì)宰译;在團(tuán)隊(duì)和企業(yè)層面上,也面臨巨大挑戰(zhàn)闯第,通常的情況是,以快速出成果為名蛛淋,在完全看不到細(xì)節(jié)的情況下敷扫,不經(jīng)過設(shè)計(jì)诚卸,拍腦袋一個(gè)進(jìn)度出來合溺,然后去趕這個(gè)時(shí)間棠赛,結(jié)果可想而知睛约,沒有規(guī)劃自然不知道怎么檢查反饋贸伐,定出的進(jìn)度和期限捉邢,必然嚴(yán)肅性就和指定一樣伏伐,結(jié)果就是加班來修改代碼藐翎;沒有精心設(shè)計(jì)赚导,最終的質(zhì)量可想而知,沒有想明白要做什么就開始寫代碼未舟,邏輯上的正確性幾乎是沒有保障的,我的總結(jié)昼扛,就是看著需求文檔直接寫代碼抄谐。
全面的自動(dòng)化
從開發(fā)蛹含,測試到構(gòu)建浦箱、集成酷窥、部署、運(yùn)維伴网,整個(gè)生命周期的自動(dòng)化蓬推,是支持敏捷開發(fā)的基礎(chǔ)設(shè)施,全面自動(dòng)化澡腾,將開發(fā)和運(yùn)維人員從各種復(fù)雜多變的環(huán)境配置遷移同步和管理中解放出來拳氢,高效率的像流水線一樣讓系統(tǒng)運(yùn)轉(zhuǎn)起來,開發(fā)人員和測試人員蛋铆、運(yùn)維人員馋评,就可以減少很多溝通成本,還有不必要的重復(fù)勞動(dòng)刺啦,專注于業(yè)務(wù)邏輯的設(shè)計(jì)、實(shí)現(xiàn),把時(shí)間花在功能設(shè)計(jì)和開發(fā)上,就有了更多的時(shí)間來推進(jìn)測試驅(qū)動(dòng)開發(fā)。
良好的設(shè)計(jì)
無論是功能的實(shí)現(xiàn)、程序的質(zhì)量、還是自動(dòng)化測試,都離不開良好的設(shè)計(jì)度陆,從用戶故事開始,需求和代碼之間還有太多的細(xì)節(jié),有巨大的鴻溝,只有通過各種層次的設(shè)計(jì)方法,不斷的進(jìn)行溝通,才能夠真正設(shè)計(jì)出好的程序,只有經(jīng)過兩好設(shè)計(jì)的程序浪箭,在測試门坷、部署绸吸,開發(fā)和用戶體驗(yàn)上,才可能有高質(zhì)量稿存。
溝通和協(xié)作
任何理想的想法和強(qiáng)大的工具安聘,還是規(guī)范念颈,都不可能打造出卓越的團(tuán)隊(duì)讨彼,不能自動(dòng)完成質(zhì)量的程序蜜自,只有付出努力的辛勤的不斷嘗試戈鲁,讓團(tuán)隊(duì)能夠有效的進(jìn)行寫作鸣皂,不斷反饋荆陆,才有可能實(shí)現(xiàn)改善泡挺,以1+1大于2的方式去開發(fā)。