Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Dept. of Computer Science & Engineering, The Chinese University of Hong Kong Agile Software Development CHEN Xinyu 2011-02-14."— Presentation transcript:

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

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

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

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

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

6 Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 6 Requirements Churn  Requirements churn 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

7 Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 7 Scrum  An agile, lightweight software development framework  Scrum was intended to be for management of software development projects 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

8 Dept. of Computer Science & Engineering, The Chinese University of Hong Kong Definition of Scrum  橄欖球 Rugby 術語:前鋒對陣爭球  A scrum is a way to restart the game after an interruption 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 8

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

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

11 Dept. of Computer Science & Engineering, The Chinese University of Hong Kong Role: Product Owner  Provide product vision  Define the features of the product as items in the product backlog Each item is a user story  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 11 As a user, I want to cancel a reservation, so that I don’t have to pay for a room I won’t use.

12 Dept. of Computer Science & Engineering, The Chinese University of Hong Kong Role: Scrum Master  Act as the sheepdog for the team 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  Responsible for the scrum process Ensure that the scrum team understands the scrum values, practices, and rules 12

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

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

15 Dept. of Computer Science & Engineering, The Chinese University of Hong Kong Time-boxed Activity: Sprint Planning 15 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

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

17 Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 17 Time-boxed Activity: Daily Scrum Meeting  Timeboxed at 15 minutes regardless of the team's size  All attendees should stand The daily standup  Each team member answers three questions 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  Only the team can speak

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

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

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

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

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

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

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

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

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

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

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

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

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

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

32 Dept. of Computer Science & Engineering, The Chinese University of Hong Kong 32 Refactoring  Refactoring Refactoring is a disciplined process of changing a software system in such a way that it does not alter the external behavior of the code while at the same time improves its internal structure Refactor continuously as you develop  Every day, look at yesterday’s work to see if it needs to be improved Refactoring complements design  By doing some of the design “in process” programmers avoid the problems of over designing for reuse, flexibility, or extendibility that is never needed


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

Similar presentations


Ads by Google