20世紀60年代:軟件做坊,軟件規模小,以做坊式開發爲主;
70年代:軟件危機,硬件飛速發展,軟件規模和複雜度激增,引起軟件危機;
80年代:軟件過程控制,引入成熟生產製造管理方法,以「過程爲中心」分階段來控制軟件開發(瀑布模型),必定程度上緩解了軟件危機;
90年代:重型過程,軟件失敗的經驗促使過程被不斷增長約束和限制,軟件開發過程日益「重型化」,開發效率下降、響應速度發慢;
2001~今:敏捷正在流行,隨着信息時代到來,需求發化更快,交付週期成爲企業核心競爭力,輕量級的,更能適應發化的敏捷軟件開發方法被廣泛承認並迅速流行。框架
咱們一直在實踐中探尋更好的軟件開發方法,
身體力行的同時也幫助他人。由此咱們創建了以下價值觀:
工具
個體和互動 高於 流程和工具
工做的軟件 高於 詳盡的文檔
客戶合做 高於 合同談判
響應變化 高於 遵循計劃
測試
也就是說,儘管右項有其價值,
咱們更重視左項的價值。
url
Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler |
James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick |
Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas |
一、咱們最重要的目標,是經過持續不斷地及早交付有價值的軟件使客戶滿意。spa
二、欣然面對需求變化,即便在開發後期也同樣。爲了客戶的競爭優點,敏捷過程掌握變化。設計
三、常常地交付能夠工做的軟件,相隔幾星期或一兩個月,傾向於採起較短的週期。blog
四、業務人員和開發人員必須相互合做,項目中的每一天都不例外。進程
五、激發個體的鬥志,以他們爲核心搭建項目。提供所需的環境和支援,輔以信任,從而達成目標。ci
六、不論團隊內外,傳遞信息效果最好效率也最高的方式是面對面的交流。資源
七、可工做的軟件是進度的首要度量標準。
八、敏捷過程倡導可持續開發。責任人、開發人員和用戶要可以共同維持其步調穩定延續。
九、堅持不懈地追求技術卓越和良好設計,敏捷能力由此加強。
十、以簡潔爲本,它是極力減小沒必要要工做量的藝術。
十一、最好的構架、需求和設計出自與自組織團隊。
十二、團隊按期地反思如何能提供成效,並依次調整自身的舉止表現。
專一:因爲咱們在一段時間內只專一於少數幾件事情,因此咱們能夠很好地合做並得到優質的產出。咱們可以更快地交付有價值的事項。
公開:在團隊合做中,你們都會表達咱們作得如何,以及遇到的障礙。咱們發現將擔心說出來是一件好事,由於只有這樣才能讓這些擔心及時獲得解決。
尊重:由於咱們在一塊兒工做,分享和成功失敗,這有助於培養並加深互相之間的尊重,並幫助彼此成爲值得尊重的人。
承諾:因爲對本身的命運有更大的掌握,咱們會有更堅強的信念得到成功。
勇氣:由於咱們不得單打獨鬥,咱們可以感覺到支持,並且掌握更多的資源。這一切賦予咱們勇氣去迎接更大的挑戰。
Scrum是跨職能團隊以迭代、增量的方式開發產品或項目的一種開發框架。它把開發組織成被稱爲Sprint的工做週期。這些迭代每一個都不超過4周(最多見的是兩週),而且無間歇地相繼進行。Sprint是受時間箱限制的,不管工做完成與否它們都會在特定日期結束,而且從不延長。一般由Scrum團隊來選定一個Sprint的時長,而且對於他們全部的Sprint都使用這一時長,直到這個團隊能力提升,可使用較短週期。在每一個Sprint的初始,跨職能團隊(大約7名成員)從排好優先級的列表中選擇事項(客戶需求)。團隊對於在Sprint結尾他們相信本身能夠交付哪些目標集合達成一致意見,這些交付應該是有形的而且能被真正「完成」的。在Sprint過程當中不能夠增長新事項,Scrum在下一Sprint時才接受變化,當前這麼短的一個Sprint週期裏只注重於短小、清晰、相對固定的目標。團隊天天都進行簡短會面來檢驗工做進程,並調整後續步驟以確保完成剩餘工做。在Sprint結尾,團隊與利益關係人一塊兒回顧這個Sprint,並演示所構建的產品。團隊成員從中獲取能夠結合到下一Sprint中的反饋。Scrum強調在Sprint結尾產生真正「完成」了的可工做產品。在軟件領域是指已經集成的、徹底測試過的、已經爲最終用戶生成文檔的、潛在可交付的系統。說了這麼多看一下Scrum框架圖就明白了。
一、敏捷宣言:個體和互動 高於 流程和工具,工做的軟件 高於 詳盡的文檔,客戶合做 高於 合同談判,響應變化 高於 遵循計劃
二、12條敏捷原則
三、5個價值觀:專一、公開、尊重、承諾、勇氣
四、Scrum是一個框架,不是方法論