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

Slides:



Advertisements
Similar presentations
Program Management School Agile & ADDIE Add-Up (AAAU) Elliott Masies Learning 2012 October 21-24, 2012.
Advertisements

ITEC 370 Lecture 24 Lifecycles. Review Questions? –Grades for Requirements/Design Doc F give prototype demonstration –Testing plan for your software Maintenance.
What is Agile? Agile is a software methodology based on iterative and incremental development, where requirements and solutions evolve through collaboration.
ECE44x SCRUM Overview slides adapted from Marty Stepp
Agile Project Management with Scrum
Process and tools Individuals and interactions over Following a plan Responding to change over Comprehensive documentation Working software over Contract.
An Introduction to Agile SCRUM Methodology
Scrum. An evolutionary/iterative/incremental/agile software process The main roles in Scrum are: – Scrum team: Team of software developers – Scrum master.
Agile Development.
Scrum CS These slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
© Timothy Korson Page 1 Scrum by Dr. Korson For CPTR 209 Software Engineering Version
Scrum introduction XP Days Agenda Introduction The Scrum process – roles, ceremonies and artifacts Backlog management Conclusions and questions.
Scrum 1.
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
Agile development By Sam Chamberlain. First a bit of history..
Agile
An Introduction to Scrum
Agile Software Development Matt Rice November 27, 2006.
An Introduction to Agile SCRUM Methodology
Managing a Project Using an Agile Approach and the PMBOK® Guide
Programming with eyes wide open. Your host today Subby Angelov Team
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
An Agile View of Process
Introduction to Agile.
Agile Design and SCRUM Brent M. Dingle, Ph.D. “For the last few centuries, … science has been attempting to break matter down into ever smaller bits, in.
1 Agile Methodology & Programming Ric Holt July 2009.
Chapter 4 Agile Development
What is Scrum Process? Where is it used? How is it better?
1 SCRUM 22/02/2009 By Siemen Bastiaens >>
Software Engineering- Scrum 徐 瑋 Alen 林芳瑜 Flora 1.
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
SCRUM introduction 6 April Scrum Team are known as pigs because they’re committed to delivering Sprint Goal People who are involved but not dedicated.
Stephen Chief Strategy Officer Telerik
© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Agile Assessment Gadi Lifshitz, Ayelet Kroskin, Barak Yagour, Yael Dubinsky.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Dr. Nguyen Hai Quan.  Why SCRUM?  What is SCRUM?  Some terms  SCRUM Meetings  Sprint  Estimation  Product backlog  Sprint backlog  Whiteboard.
K.Ingram 1 Sept 2007 Agile Software Development. K.Ingram 2 Sept 2007 Contents Agile Software Development: 1.What is it? 2.Agile’s Values, Principles,
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 4 Agile Development Discussion of Agile Development and Agile Process.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Presentation from: See Also: scrumreferencecard.com/ScrumReferenceCard.pdf.
Copyright © by Mark J. Sebern Software Engineering Process I SE 2800.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
The Agile Manifesto Some thought starters for Ogilvy on how to work with Agile and SCRUM approaches to managing projects.
Introduction to Agile. Introduction Who is this guy?
Managing Agile Software Development Teams Using Scrum AKA: Wrangling Developers for Fun and Profit!
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
The Scrum Framework Presented by Somnath Ghosh Scrum Practitioner 24 hours weeks.
CMPS 116 Software Design Project. Introduction Instructor: Dr. Huahai Yang IBM Research – Almaden Former SUNY Albany Programming.
Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova An Introduction to Scrum and XP Prof. Riccardo Berta.
Manifesto for Agile Software Development
Agile Methodology and Scrum
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
AGILE SCRUM METHODOLOGY
Agile Training Day 2 November 17, 2015.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Agile Software Development Brian Moseley.
Approaches to Systems Development
Scrum MODULE 3 – Part 3.
Summarizing Our Models to Date
Introduction to Agile Blue Ocean Workshops.
Adjective: Able to move quickly and easily. Principles and Values
Scrum Science NGSS: Engineering, Technology, Applications of Science
Scrum in Action.
Agile Development.
Presentation transcript:

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

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

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

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

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) …… Coding Process

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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