An agile software development framework
This presentation is the property of its rightful owner.
Sponsored Links
1 / 22

An Agile Software Development Framework PowerPoint PPT Presentation


  • 68 Views
  • Uploaded on
  • Presentation posted in: General

An Agile Software Development Framework. Malik F. Saleh International Journal of Software Engineering (IJSE). 資工 4B 995002067 商晉瑋. Abstract. 敏捷 開發 假設客戶 積極的參與 開發 團隊。 但是敏捷開發會遇到的最大問題就是 客戶缺少參與 開發。 制定一個框架讓敏捷方法可以適應各種 挑戰。 這個 框架包含 : developer practices ( 開發商做法 )

Download Presentation

An Agile Software Development Framework

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


An agile software development framework

An Agile Software Development Framework

Malik F. Saleh

International Journal of Software Engineering (IJSE)

資工4B995002067 商晉瑋


Abstract

Abstract

  • 敏捷開發假設客戶積極的參與開發團隊。

  • 但是敏捷開發會遇到的最大問題就是客戶缺少參與開發。

  • 制定一個框架讓敏捷方法可以適應各種挑戰。

  • 這個框架包含:

    • developer practices(開發商做法)

    • customer collaboration (客戶協作)

    • predicting change(預測變化)


Introduction

Introduction

  • 研究發現,開發團隊人員的穩定性以及兼容性會影響到增量迭代開發(incremental and iterative development)的成功。

  • 增量迭代開發讓開發人員可以利用先前版本開發好的內容,被視為是敏捷開發的基石。

  • 使用敏捷方法的主要原因是為了滿足用戶的需求。


Introduction cont

Introduction(cont.)

  • 敏捷方法的出現是為了取代傳統的Document-driven軟體開發方法,以及改良大型的的軟體開發過程。

  • 有很多正在使用中的敏捷方法,像是:

    • Extreme Programming

    • Scrum

    • Cockburn’s Crystal family

    • Feature Driven Development.

  • 其中Extreme Programming最廣泛被接受


Background and related work

Background and related work

  • 敏捷方法被稱為敏捷方法是由於它能快速適應、處理不斷變化的需求。

  • 為了有最大成效,敏捷方法是靈活、可以針對專案量身訂做的→靈活性是敏捷方法的關鍵。

  • 一個專案對敏捷性的適合度會根據專案的性質、大小而有不同。


Background and related work1

Background and related work

  • 敏捷方法的採用與否傾向於全有或全無的方式。

  • 敏捷方法通常受到專案manager和programmer的歡迎,但是manager通常會不清楚如何循序漸進使用敏捷方法,以及不知道適合哪些方法。

  • 另一個manager會面臨的問題是如何確保他們選擇的方法可以隨著programmer的技巧提升而更加精進,並確保開發團隊不會抗拒變化。


Background and related work2

Background and related work

  • 四種元素定義成功的軟體開發:

    • Quality-提供好的軟體產品給客戶

    • Scope-滿足客戶所有的需求和目標

    • Time-在時間內完成最終產品的交貨

    • Cost-在預估的成本以內完成產品


Motivation and the conceptual framework

Motivation and the conceptual framework

  • 敏捷方法靈活度很高,因此被開發人員採用,但它需要裁成一個適合所有人的方法。

  • 敏捷方法的主要支柱包含開發人員和客戶之間的互動。敏捷團隊會面對最大的問題的就是客戶很少參與開發。

  • 因此開發出一個框架讓來面對這些敏捷團隊會面臨的問題。


Motivation and the conceptual framework1

Motivation and the conceptual framework

  • 這個概念框架在三個方面有幫助:

    • 1. 它提供一個剪裁敏捷方法的方法

    • 2. 它提供一個讓敏捷方法可以one size fit-all 的解決方法

    • 3. 它提供讓敏捷開發團隊不用準確照著敏捷方法條例來選擇方法的靈活性


Developer practices

Developer Practices

  • Developer要在一個self-organized的團隊,這種組織能促使開發者對自己的程式完全負責。

  • 一個好的團隊架構不是永久不變的,就算團隊成員不喜歡做改變,當目前的團隊結構是錯的時候就必須改變。

  • 小組要規畫iteration的長度和目標列表,團隊成員分配列表上的工作並估算完成時間。


Developer practices cont

Developer Practices(cont.)

  • 小組要規畫iteration的長度和目標列表,團隊成員分配列表上的工作並估算完成時間。

  • 列表內容是讓客戶、團隊成員和project leader了解的。

  • 團隊成員集思廣益如何讓列表上的目標實現。


Developer practices cont1

Developer Practices(cont.)


Developer practices cont2

Developer Practices(cont.)

  • 開發團隊要從implementation中分割出interface,開發人員和架構師的職責就在這兩者種。

  • 開發人員和架構師必須持續合作。

  • 開發人員依照由interface設計專家設計的interface來實做。

  • 綜合以上,敏捷團隊應該採用的第一種做法是責任分工,讓開發人員專注於implementation。


Developer practices cont3

Developer Practices(cont.)

  • 不論是大型或是小型的團隊,都會做到三個過程:

    • 系統構成

    • 開發

    • 評估


Developer practices cont4

Developer Practices(cont.)

  • 客戶和開發團隊的互動是敏捷方法的一個關鍵,但研究發現敏捷方法遇到最大的困難就是客戶的參與,下面是面對一些問題的解決方法:

    • 溝通問題:e-Collaboration在客戶很少參與,或是不在定期會議中參與。

    • 澄清問題:開發人員在等待客戶的澄清的時候,為了保持開發的進度,應該改變目前待辦的優先度。

    • 駐點客戶問題:當一個開發團隊沒有駐點客戶時,團隊的其中一個成員來扮演客戶來執行系統測試和驗收測試。


Collaboration

Collaboration

  • 透過溝通,可以把團隊成員的工作聯繫在一起。

  • Team leader跟團隊成員分享所有資訊。

  • Team leader比起跟所有團隊成員溝通,應該營造一個促進協作的環境。

  • 團隊成員的參與程度是一個專案成功與否很重要的因素。


Collaboration cont

Collaboration(cont.)

  • 另一個影響成功的因素是團隊成員彼此接收的回饋。

  • 如果整個團隊都在提供回饋給其他成員,團隊對code的ownership就會提升,並且成員的技巧也會進步。

  • Code communication是很重要的,開發人員為了在必要的時候做修改,必須了解其他人的code。


Collaboration cont1

Collaboration(cont.)

  • 敏捷宣言重視個體和交流,可工作的軟體勝過面面俱到的文件,和客戶合作勝過談判。客戶不能在現場時,可以使用e-collaboration 。團隊的合作可以是面對面、電話會議、網絡會議、email,或者其他許多電子協作工具。


Predicting change

Predicting Change

  • 敏捷方法在任何時候都支持變化,就算是在專案的末期。

  • 在面對預測未來科技變化時,敏捷團隊照著操作性技術和戰略性技術來分,客戶喜歡些受新技術,因此對新技術的支援必須內建在軟體裡面。

  • 最後,軟體開發團隊在聚焦於新的設備和工具前,應該要注重商業模型和業務流程,開發團隊應該要了解市場趨勢,把這些變成可以管理的需求變化。


Analysis

Analysis

  • 使用敏捷方法的主要原因是為了滿足客戶的需求,敏捷開發引入一些有效的溝通方式,像是駐點客戶。駐點客戶可以讓客戶跟開發團隊做有效的溝通,讓文件的需求大量的減少。

  • 溝通是解決問題的核心概念。

  • 敏捷方法能靈活應對外部因素,核心業務不受影響。專案的核心做法不會受敏捷項目所面臨的不同情況而影響。


Conclusion

Conclusion

  • 一個成功的專案沒有必要去遵行一個正式的、行之有年的開發方法。敏捷開發的重點是和所有相關人員的溝通。

  • 敏捷方法之所以稱為敏捷是因為他有能力處理快速、不斷變化的需求,甚至敏捷方法本身的方法也是可以因為需求的不同而有彈性的。


An agile software development framework

END

Thanks for listening


  • Login