180 likes | 311 Views
AGILE : Boon for today’s Software Industry- A Review. Ashish Agrawal*, Malay Tripathi *, Sadhana Singh*, L.S.Maurya ** 102522004 曾少甫. Outline. Abstract Introduction Literature Review Agile Manifesto Values And Principles Agile Key Concept s And Methods
E N D
AGILE: Boon for today’s Software Industry-A Review Ashish Agrawal*, Malay Tripathi*, Sadhana Singh*, L.S.Maurya** 102522004 曾少甫
Outline • Abstract • Introduction • Literature Review • Agile Manifesto Values And Principles • Agile Key Concepts And Methods • Conclusion And Future Work
Abstract • 敏捷軟件開發在現今已有完善的概念,方法包括Scrum、Kanban、pair programming、extreme programming..等 • 讓一個project在其最佳狀態完成(即以時間和成本為考量,產生最好的結果)。 • 敏捷方法不一定只適用在軟件開發領域,也可應用於每一個領域中獲取以最少的努力達到最佳效果。 • 本文提供關於敏捷方法的研究基礎,並期望用在除了工程之外的領域做出改變。
1.Introduction • 直到現今,已經有許多發展成熟且具成本效益的軟體開發策略或方法,但都有其自身的侷限性,而敏捷方法對於軟體開發者來說是一種恩賜,喚起軟體開發群體的組織性。 • Example: 敏捷方法最大的挑戰就是對象拒絕以開放接受的心態接納敏捷方法來使用 ─ 2002, Mark Paulk, promoter of CMM stated (Paulk 2002) • 在本文中,首先著眼於敏捷宣言的價值觀和原則,接著討論敏捷技術以及用途
2.Literature Review • 敏捷方法和原則,把重點放在增量(incremental)軟件開發與回合(iteration),適應不斷變化的要求、保持密切溝通、自我組織化的團隊和精簡化。
2.Literature Review • 缺點:(CUSTOMER VS USER) • AGILE的利益相關者著重於CUSTOMER(客戶) • 但在客戶的角度來看可能仍無法滿足軟體實際購買者和使用者(USER)的需求 • 客戶僅僅猜測使用者想要什麼或者只考慮到自己的需求而沒有考慮到使用者
2.Literature Review • 根據Agile採用率調查 • by Dr. Dobbs Journal in 2008 agile teams report • 在生產效率、質量、利益相關者的滿意度、成本改善上有顯著的提高 • 類似的調查:Version One • AGILE對回報能力的提升使AGILE特別適用於資訊系統的發展 (不斷的改變與回應緊急用戶的要求)
3. Agile Manifesto Values And Principles • February 2001, 17 位軟體開發者發表敏捷軟體開發宣言並定義AGILE敏捷開發方法的四大核心價值與12項原則:─敏捷方法苗圃 • 個人與互動 重於 流程與工具 • 可用的軟體 重於 詳盡的文件 • 與客戶合作 重於 合約協商 • 回應變化 重於 遵循計劃
3. Agile Manifesto Values And Principles • 竭誠歡迎改變需求,甚至已處開發後期亦然。敏捷流程掌控變更,以維護客戶的競爭優勢。 • 經常交付可用的軟體,頻率可以從數週到數個月,以較短時間間隔為佳。 • 業務人員與開發者必須在專案全程中天天一起工作。 • 以積極的個人來建構專案,給予他們所需的環境與支援並信任他們可以完成工作。 • 面對面的溝通是傳遞資訊給開發團隊及團隊成員之間效率最高且效果最佳的方法。
3. Agile Manifesto Values And Principles • 可用的軟體是最主要的進度量測方法。 • 敏捷程序提倡可持續的開發。 • 贊助者、開發者及使用者應當能不斷地維持穩定的步調。 • 持續追求優越的技術與優良的設計,以強化敏捷性。 • 精簡──或最大化未完成工作量之技藝──是不可或缺的。 • 最佳的架構、需求與設計皆來自於能自我組織的團隊。 • 團隊定期自省如何更有效率,並據之適當地調整與修正自己的行為。
4.Agile Key Concepts And Methods Communication between AgileMethods
4.Agile Key Concepts And Methods Scrum • 一種回合式增量軟體開發過程,包括了一系列實踐和定義角色的過程骨架 • Sprint- • 是SCRUM的基本開發單元 • 將功能寫成User stories並且以Product Owner 提供的Product Backlog(backlog items) 為優先,代表客戶視角 • 最高優先級的功能作為Sprint的目標功能 • 以Sprint Planning Meeting開始並對目標功能做細分和評估
4.Agile Key Concepts And Methods • Daily stand up meetings- • 基於每天花數分鐘(15分鐘)來討論和規劃每天的任務,每天固定在相同時間地點舉行,所有出席者都應站立並回答三個SCRUM問題 • -What did you do since the last scrum meeting? • -Do you have any obstacles? • -What will you do before the next meeting?
4.Agile Key Concepts And Methods • Extreme Programming (XP) – • 由Kent Back開發,著重於審查、持續整合、測試、配對、簡化 • 技術人員負責工作的估量、商業決策的技術結果、發布的開發過程和詳細的日程安排
4.Agile Key Concepts And Methods • Pair Programming- • 由一人擔任程式主要撰寫者“driver” 、另一人擔任導航者“navigator”仔細注意程式的撰寫 • 一個人的邏輯思考上常常會出現漏洞,兩個人的邏輯思考卻可以降低這樣的漏洞發生。 • 不僅可以提昇工作上的品質,更可以營造出融洽的工作氣氛,加快開發及除錯速度,並激發創意。
4.Agile Key Concepts And Methods • Kanban- • 控制開發和生產過程的程序,確保每個行動都能及時達成 • 對任務排優先次序 • 衡量、管理程序流程並找出改進的機會
4.Agile Key Concepts And Methods • Crystal Clear- • 由Alistair Cockburn 所開發 • 著重於人與人之間的溝通 • 小團隊間的溝通應該是透明的、融洽的,使所有的活動都能以最佳表現進行。 • 如果溝通不好,則沒有人能有好的工作表現且無法創造一個健全的開發環境。
5.Conclusion And Future Work • 敏捷方法通常重點在於人與人的關係、客戶的滿意度、生產出最好的產品、成本效益分析等等。雖然已發表敏捷宣言超過10年,但在軟體工業仍然未被完全實踐(多數公司企業仍採用傳統軟體開發方法) • 期望:依不同領域針對每個程序調整出最適合的使用方式。