Download presentation
Presentation is loading. Please wait.
Published byMaud Hamilton Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.