Agile Software Development CHEN Xinyu 2011 02 14

  • Slides: 31
Download presentation
Agile Software Development CHEN Xinyu 2011 -02 -14 Dept. of Computer Science & Engineering,

Agile Software Development CHEN Xinyu 2011 -02 -14 Dept. of Computer Science & Engineering, The Chinese University of Hong Kong

The Agile Tide in the Industry Dept. of Computer Science & Engineering, The Chinese

The Agile Tide in the Industry Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 2

Outline What is agile software development? r Two agile methods r n Scrum Ú

Outline What is agile software development? r Two agile methods r n Scrum Ú n Extreme programming (XP) Ú r For process management For coding Conclusion Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 3

Manifesto for Agile Software Development Rapid, incremental delivery of software r A statement of

Manifesto for Agile Software Development Rapid, incremental delivery of software r A statement of values n n n Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan n http: //www. agilemanifesto. org Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 4

Agile Methods Process Scrum Coding r Extreme programming (XP) r Adaptive software development (ASD)

Agile Methods Process Scrum Coding r Extreme programming (XP) r Adaptive software development (ASD) r Dynamic system development method (DSDM) r Feature driven development (FDD) r Lean software development (LSD) r… r http: //www. agilealliance. org Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 5

Requirements Churn r Requirements churn n r During a project the customers can change

Requirements Churn r Requirements churn n r During a project the customers can change their minds about what they want and need Software development is an empirical, unpredictable and non-repeatable process Frederick P. Brooks, The Mythical Man-Month: Essays on Software Engineering, 1975 Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 6

Scrum An agile, lightweight software development framework r Scrum was intended to be for

Scrum An agile, lightweight software development framework r Scrum was intended to be for management of software development projects r n n Accepting that the problem cannot be fully understood or defined Focusing instead on maximizing the team's ability to deliver quickly and respond to emerging requirements Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 7

Definition of Scrum 橄欖球Rugby術語:前鋒對陣爭球 r A scrum is a way to restart the game

Definition of Scrum 橄欖球Rugby術語:前鋒對陣爭球 r A scrum is a way to restart the game after an interruption r n The forwards of each side come together in a tight formation and struggle to gain possession of the ball when it is tossed in among them Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 8

Waterfall Model vs. Scrum Requirements Design Implementation Rather than doing all of one thing

Waterfall Model vs. Scrum Requirements Design Implementation Rather than doing all of one thing at a time. . . Verification Time . . . Scrum teams do a little of everything all the time Time Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 9

The Scrum Framework Roles ü Product owner ü Scrum master ü Team Artifacts ü

The Scrum Framework Roles ü Product owner ü Scrum master ü Team Artifacts ü Product backlog ü Sprint backlog ü Burndown chart Time-boxes ü ü ü Sprint planning Daily scrum Sprint demo Sprint retrospective Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 10

Role: Product Owner Provide product vision r Define the features of the product as

Role: Product Owner Provide product vision r Define the features of the product as items in the product backlog r n Each item is a user story Ú r A short, simple description of a feature told from the perspective of the person who desires the new capability, usually a user or customer of the system Prioritize features according to business value As a user, I want to cancel a reservation, so that I don’t have to pay for a room I won’t use. Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 11

Role: Scrum Master r Act as the sheepdog for the team n Responsible for

Role: Scrum Master r Act as the sheepdog for the team n Responsible for keeping the flock heading in the same direction and keeping the wolves away Work with the management to remove impediments for the scrum team r Responsible for the scrum process r n Ensure that the scrum team understands the scrum values, practices, and rules Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 12

Role: The Team Turn product backlog items into increments of potentially shippable functionality every

Role: The Team Turn product backlog items into increments of potentially shippable functionality every sprint r 5~9 members r Cross-functional r n Team members must have all of the skills necessary to complete the selected product backlog items Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 13

Time-boxed Activity: Sprint r Scrum projects make progress in a series of “sprints” n

Time-boxed Activity: Sprint r Scrum projects make progress in a series of “sprints” n 小步快跑 (iterations) Product is designed, coded, and tested during the sprint r Ideally, selected work does not change during a Sprint r Typical duration is 2~4 weeks r n A constant duration leads to a better rhythm Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 14

Time-boxed Activity: Sprint Planning What? ü ü ü Define sprint goal Analyze and select

Time-boxed Activity: Sprint Planning What? ü ü ü Define sprint goal Analyze and select product backlog Estimate sprint backlog in story points Define time and place for the daily scrum Determine sprint demo date Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 15

How Scrum Works Dept. of Computer Science & Engineering, The Chinese University of Hong

How Scrum Works Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 16

Time-boxed Activity: Daily Scrum Meeting Timeboxed at 15 minutes regardless of the team's size

Time-boxed Activity: Daily Scrum Meeting Timeboxed at 15 minutes regardless of the team's size r All attendees should stand r n r The daily standup Each team member answers three questions n n n What have you done since yesterday? What are you planning to do by tomorrow? Do you have any problems preventing you from accomplishing your goal? Not for problem solving r Only the team can speak r Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 17

A Daily Scrum Henrik Kniberg, Scrum and XP from the Trenches, Info. Q Enterprise

A Daily Scrum Henrik Kniberg, Scrum and XP from the Trenches, Info. Q Enterprise Software, Dept. 2007 of Computer Science & Engineering, The Chinese University of Hong Kong Development Series, 2007 18

Time-boxed Activity: Sprint Demo All sprints end with a demo r Team presents what

Time-boxed Activity: Sprint Demo All sprints end with a demo r Team presents what it accomplished during the sprint r n …and not done Informal collaboration r Invite stakeholders and management r No slides show r 4 -hour time-box for one month sprints r Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 19

Time-boxed Activity: Sprint Retrospective Inspect how the last sprint went in regards to people,

Time-boxed Activity: Sprint Retrospective Inspect how the last sprint went in regards to people, relationships, process and tools r Identify actionable improvement measures for the team to implement in the next sprint r 3 -hour time-box for one month sprints r Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 20

A Whiteboard Example from a Retrospective Dept. of Computer Science & Engineering, The Chinese

A Whiteboard Example from a Retrospective Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 21

Visual Management: Make Things Obvious Sprint info page r Burndown chart r Wall-based taskboard

Visual Management: Make Things Obvious Sprint info page r Burndown chart r Wall-based taskboard r Defect trend chart r The system anatomy (Ericsson) r n Showing the dependencies between capabilities in the system Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 22

Sprint Info Page Dept. of Computer Science & Engineering, The Chinese University of Hong

Sprint Info Page Dept. of Computer Science & Engineering, The Chinese University of Hong Kong

Burndown Chart r A publicly displayed chart showing the number of tasks remaining for

Burndown Chart r A publicly displayed chart showing the number of tasks remaining for the current sprint Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 24

Sprint Backlog – A Wall-based Taskboard Dept. of Computer Science & Engineering, The Chinese

Sprint Backlog – A Wall-based Taskboard Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 25

Outline Agile software development r Agile methods r n Scrum Ú n Extreme programming

Outline Agile software development r Agile methods r n Scrum Ú n Extreme programming (XP) Ú r For process management For coding Conclusion Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 26

Extreme Programming (XP) Coding is the key activity throughout a software product r XP

Extreme Programming (XP) Coding is the key activity throughout a software product r XP is extreme because commonsense practices taken to extreme levels r Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 27

XP is Extreme r Since design is good, everybody will design daily n r

XP is Extreme r Since design is good, everybody will design daily n r Since code reviews are good, review code all the time n r Pair programming Since testing is good, everybody will test all the time n r Refactoring Testing driven development (TDD) Since integration testing is important, build and integrate test several times a day n Continuous integration (CI) Dept. Since of Computer Science & Engineering, The Universitykeep of Hong Kong r simplicity is. Chinese good, the system in 28 the

XP Best Practices Simple design Prototype User stories Design Iteration plan Refactoring Coding Planning

XP Best Practices Simple design Prototype User stories Design Iteration plan Refactoring Coding Planning Release Testing Acceptance test Pair programming Unit test Continuous integration Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 29

Conclusion r Agile software development is a trend n n Adapting to quickly changed

Conclusion r Agile software development is a trend n n Adapting to quickly changed requirements Iterative delivery Scrum for process management r XP for coding r Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 30

Thank You Dept. of Computer Science & Engineering, The Chinese University of Hong Kong

Thank You Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 31