“敏捷開發”并不是一門技術或者工具,而是一個軟件開發方法,也可以說是思想。
敏捷,不意味著快速、越快越好,加班加點寫代碼、趕進度。
什么是敏捷開發?
敏捷開發是一套軟件開發的價值和原則,倡導演進式開發,提早交付,持續改進,鼓勵對變化做出快速靈活的反應。對于敏捷,我們可看作是輕量級、高效。
一般而言,傳統軟件開發時通常是羅列大堆需要的功能,之后再進行線性流程開發,這也被稱作瀑布流開發流程。而敏捷開發則是將項目分解成多個“小目標”,通過分階段不停完成這些小目標,進而完成一整個大項目。
敏捷開發的核心思想是?
敏捷開發是一種面臨迅速變化的需求快速開發的能力,它有四個核心思想:
1、強調面對面的溝通
2、把精力集中在可執行的程序上,可以運行的產品勝于編制綜合性文檔,也就是強調了原型、模型、Demo等的重要性
3、團隊合作和團隊激勵,合作勝于談判,敏捷開發能將需求、開發、測試等全部團隊成員融合成一個整體,大家都是一條線上的螞蚱
4、超強的適應能力,適應變化勝于按部就班,敏捷開發的特點就是快速。對于互聯網行業來說,這點非常重要
如何進行敏捷開發?
敏捷開發的體系建設主要有如下六個方面:
1、團隊密切協作
2、不斷反饋和調整
3、保持軟件可用
4、短迭代,增量發布
5、提早集成,不斷集成
6、自動化集成、測試與部署
綜上所述,敏捷開發最大的一個特色就是迭代式開發,不過迭代式開發也并非敏捷思想的全部,團隊協作與自動化開發也是敏捷管理的精髓所在。
敏捷開發的原則是?
關于敏捷開發這里有12條原則,分別是:
1、我們最優先考慮的是盡早和持續不斷的交付有價值的軟件,從而使客戶滿意(使客戶滿意)。
2、即使在開發后期也歡迎需求變更,敏捷過程利用變更可以為客戶創造競爭優勢(擁抱變化)。
3、采用較短的項目周期(從幾周到幾個月),不斷的交付可工作軟件(短周期持續交付)。
4、業務人員和開發人員必須在整個項目期間每天一起工作(跨職能)。
5、圍繞富有進取心的個體而創建項目。為他們提供所需的環境和支持,信任他們所開展的工作(信任)。
6、不論團隊內外,傳遞信息效果最好且效率最高的方式是面對面交談(面對面溝通)。
7、可工作軟件是度量進度的首要指標(用戶價值)。
8、敏捷過程倡導可持續開發。發起人、開發人員和用戶要能夠共同維持其步調穩定延續(可持續開發)。
9、堅持不懈的追求技術卓越和良好的設計,從而增強敏捷能力(技術卓越)。
10、以簡潔為本,最大限度的減少工作量(簡潔)。
11、最好的架構、需求和設計出自于自組織團隊(自組織團隊)。
12、團隊定期的反思如何能提高成效,并相應地協調和調整自身的行為(回顧總結)。
這十二條原則囊括了軟件項目管理的所有基本流程,而且這些流程要足夠具體,才可最終達成有效途徑。
敏捷開發模式的分類?
敏捷開發的實現主要包括 SCRUM、XP(極限編程)、Crystal Methods、FDD(特性驅動開發)等等。
同樣是敏捷開發,XP 極限編程更側重于實踐,并力求把實踐做到極限。這一實踐可以是測試先行,也可以是結對編程等,關鍵要看具體的應用場景。
SCRUM則是一種開發流程框架,也可以說是一種套路。SCRUM框架中包含三個角色,三個工件,四個會議,聽起來很復雜,其目的是為了有效地完成每一次迭代周期的工作。