最近很多人一直提敏捷開發!我就想這是什么玩意,真的有那么好嗎?我做開發四五年了,我們用的又是什么開發呢?
首先,既然有敏捷開發(這是一種思想,一種理念),那么應該是不是還有其他的開發思想呢?自然的我就查了下百度和google.
但是始終沒有找到標準的答案,只查到了以下幾種:
極限編程(eXtreme Programming,簡稱XP):關注的是參與開發的人,以及提交物的質量,強調溝通、協作,主張擁抱
變化。
測試驅動開發:它要求在編寫某個功能的代碼之前先編寫測試代碼,然后只編寫使測試通過的功能代碼,通過測試來推動
整個開發的進行。這有助于編寫簡潔可用和高質量的代碼,并加速開發過程。
Scrum:是一種迭代式增量軟件開發過程,通常用于敏捷軟件開發。
RUP(我們公司好像用到就是這個東西)(“工程化”軟件開發管理思想):希望穩定需求,通過關注過程而保證結果.一般有嚴
格的開發文檔,代碼規范,代碼升級等等一系列的東東!————通常會使項目管理者很有成就感
其次,敏捷開發是什么東東?(敏捷之于游戲開發)
百度百科(http://baike.baidu.com/view/309926.htm)里說了一大堆,還是一頭霧水.不知道我理解的對不對?
1)把大項目切割成一個個相互聯系的子項目,并分別完成任務.如果有條件的話,可以設置多個開發小組,
為每個開發小組分配一個子項目,然后每個小組再細分每個模塊給程序員(我們公司對數據層的訪問,使用接口式編程(通
過url訪問,得到json數據),每個組只要開發和維護自己的接口)。下面是一張概念的簡圖

2)對文檔的要求不是很高,如果非要文檔,只需簡單的uml模型,能讓自己和別的程序員看懂就OK!
3)更注重版本,更注重交流,更注重結果,而不是流程!
4)包括迭代增量的開發方法!所謂的迭代即系統化的返工.迭代的目的是為了應付需求的變化。
我們經常提到Scrum(英音:['skr?m)]),經常用于敏捷軟件開發.

再次,我們怎樣實施敏捷開發呢?這個沒有標準,視情況而定!
1)人員調度.
結對編程(最好男女搭配,呵呵):XP就提倡兩個人一起寫同一段程序(PairProgramming),
而且代碼所有權是歸于整個開發隊伍 (CollectiveCodeOwnership)。程序員在寫程序和重整
優化程序的時候,都要嚴格遵守編程規范。任何人都可以修改其他人寫的程序,修 改后要確定新
程序能通過單元測試。好處是,一個人編寫代碼時另一個人在思考。思考者的頭腦中保持總體概念,
不僅手頭問題的這一段,而且還有XP指導方針。例如,如果兩個人都在工作,就不太可能會有其中
一個說“我不想首先寫測試”而離開。如果編碼者遇到障礙,他們就交換位置。如果兩個人都遇到障
礙,他們的討論可能被在這個區域工作的其他人聽 到,可能給出幫助。這種結對方式,使事情順暢、
有章可循。也許更重要的是,他能使程序設計更具有社交性和娛樂性。
快慢配.
2)每日立會,報告一天的工作進度以及明日的安排!有問題的地方,大家共同討論解決方案以及今日的
心得體會!一般較簡短,設置時間為15分鐘左右!
3)進度跟蹤:可以使用office project進行進度跟蹤!
4)代碼審查
最后,不斷的學習和調整是敏捷開發的核心思想。
總結,我覺得在敏捷開發中重點就是xp,這篇文章比較能說明問題。
http://baike.baidu.com/view/259207.htm?func=retitle
對敏捷開發,我腦子里一直很模糊,寫這篇文章的原因是希望能夠得到大家的意見,讓敏捷開發在我腦子中有個
大致的輪廓!