敏捷開發是一套軟件開發的方法學,或者方法框架,包含有很多內容,詳細定義可以點擊 ,
本文主要是講在開發團隊中實踐敏捷開發:
1 角色
在瀑布模型中,所有的流程是預先定義的,角色更是根據流程而劃分,如下圖
在敏捷中,定義的角色有
利益相關者(stakeholder) 產品所有者(product owner) 開發團隊(developer team(scrum master)) 角色被分爲三類:在開發團隊中包含了Business Analysis、 Developer 、Tester、 Technical Architect、UserInterfaceDesigner,這些在瀑布中根據流程固定下來的角色,現在完全變成一個Team,鼓勵Team之間相互溝通,用產品來驅動整個開發過程,而不是用流程來保證角色,來完成開發。對於利益相關者需要關心產品,可交付可使用的產品。對於產品所有者,他需要去規劃這個產品,從開發團隊獲得反饋。
2 概念
sprint 直譯是衝刺,作爲一個開發過程,一般是2-4周。敏捷是一套通過快速迭代,來完成可交付產品開發的方法,過長會讓sprint目標過於複雜,過短則完成不了計劃任務。
story 直譯是故事,在開發過程中,對白板(storyboard)的應用,形象直觀,把每一個需求,用story來描述清楚,這是一個product ower整理出來的,想要幹什麼的過程,其不用關心技術,只是描述清楚what即可。
task 直譯是任務,每一個story,都可以分爲若干個task,task是對問題的how的描述,是developer team完成開發工作用,將task再分成子task,有助於細化問題。每個開發人員都需要對assign給自己的task,完成時間評估,而不是由項目管理人員評估。
3 流程
敏捷開發,不像瀑布強調流程,它有一些keyword,如下
PS:圖片縮得不清晰了,下載流程圖(.vsd)的點擊
Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle. The Agile Manifesto[1]introduced the term in 2001.