Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova An Introduction to Scrum and XP Prof. Riccardo Berta.

Slides:



Advertisements
Similar presentations
Engineering Bernd Fischer RW344: Software Design ▬ ▬ ▬▬ ▬ ▬
Advertisements

What is Agile? Agile is a software methodology based on iterative and incremental development, where requirements and solutions evolve through collaboration.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
CSE 403 Lecture 24 Scrum and Agile Software Development Reading:
ECE44x SCRUM Overview slides adapted from Marty Stepp
Agile Project Management with Scrum
Lecture 3 CS171: Game Design Studio 1I UC Santa Cruz School of Engineering 12 January.
An Introduction to 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
Dept. of Computer Science & Engineering, The Chinese University of Hong Kong Agile Software Development CHEN Xinyu
Scrum. An evolutionary/iterative/incremental/agile software process The main roles in Scrum are: – Scrum team: Team of software developers – Scrum master.
Agile Development.
Presentation from: See Also: scrumreferencecard.com/ScrumReferenceCard.pdf.
Scrum CS These slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Agile Programming 9 OCTOBER History 1960’s  60’s  “Cowboys” wrote software anyway that they could  Difference between best programmers and worst.
 User assignments (product owner)  ‘circle’  1 st sprint: ◦ Scrum Boards (informative workspace)  Product -, release -, sprint -, defect backlog 
Agile development By Sam Chamberlain. First a bit of history..
An Introduction to Scrum
An Introduction to Scrum
An Introduction to Agile SCRUM Methodology
Agile-SCRUM. Introduction to SCRUM Sanil Xavier What is Scrum?
Managing a Project Using an Agile Approach and the PMBOK® Guide
Scrum Agile Methodology
Introduction to Agile.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
1 Agile Methodology & Programming Ric Holt July 2009.
What is Scrum Process? Where is it used? How is it better?
Mountain Goat Software, LLC An Introduction to Scrum (extended by) Manuel E. Bermudez August 2015.
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/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
1 An Introduction to Scrum. 2 Square One Consulting We’re losing the relay race Hirotaka Takeuchi and Ikujiro Nonaka, “The New New Product Development.
Dr. Nguyen Hai Quan.  Why SCRUM?  What is SCRUM?  Some terms  SCRUM Meetings  Sprint  Estimation  Product backlog  Sprint backlog  Whiteboard.
Traditional Process Models A quick overview. 2 Waterfall Model (Diagram) Communication Project initiation Requirements gathering Planning Estimating Scheduling.
Presentation from: See Also: scrumreferencecard.com/ScrumReferenceCard.pdf.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Applying Agile Methodology
SCRUM.
PV213 EIS in Practice: 06 – Development process 1 PV213 Enterprise Information Systems in Practice 06 – Development process.
The Agile Manifesto Some thought starters for Ogilvy on how to work with Agile and SCRUM approaches to managing projects.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
SCRUM. WITH ACKNOWLEDGEMENT TO MIKE COHN FROM MOUNTAIN GOAT SOFTWARE, LLC.
#msdevcon Community Track IMPLEMENTATION OF SCRUM Bernardin Katić Insa Investment Software AG.
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.
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Agile Project Management
SCRUM Scrum and Agile Software Development Reading:
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.
Chapter 3: The Project Management Process Groups: A Case Study
Rapid software development
The Agile Product Owner
Scrum MODULE 3 – Part 3.
Teaching slides Chapter 1.
Scrum - Plan a Sprint Great Video (but added release /sprint layer)
Chapter 3 – Agile Software Development
Introduction to Agile Blue Ocean Workshops.
Adjective: Able to move quickly and easily. Principles and Values
Extreme Programming.
Presentation transcript:

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova An Introduction to Scrum and XP Prof. Riccardo Berta

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Project management Software is not a skyscraper! The waterfall development model originates in the manufacturing and construction industries; highly structured physical environments in which after-the-fact changes are prohibitively costly, if not impossible.

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova The Agile Manifesto Process and tools Individuals and interactions over Following a plan Responding to change over Comprehensive documentation Working software over Contract negotiation Customer collaboration over Source:

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova SCRUM A scrum is a way to restart the game after an interruption, where 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

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Values

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Scrum (and XP) framework Product owner ScrumMaster Team Roles Sprint planning Sprint review Sprint retrospective Daily scrum meeting Ceremonies Product backlog Sprint backlog Burndown charts Artifacts Pair Programming Refactoring Test Driven Development Continuous integration … Practices XP

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova SPRINT Scrum projects make progress in a series of “sprints” Typical duration is 2–4 weeks A constant duration leads to a better rhythm Product is designed, coded, and tested during the sprint Sprint

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Define the features of the product Decide on release date and content Prioritize features Adjust features and priority every iteration Accept or reject work results Responsible for enacting Scrum values and practices Removes impediments Ensure that the team is fully functional and productive Enable close cooperation across all roles and functions Scrum Master Typically 5-9 people Cross-functional: programmers, testers, user experience designers, etc. Members should be full-time Teams are self-organizing (no titles) SPRINT Roles Product owner Team

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova The requirements A list of all desired work on the project Ideally expressed such that each item has value to the users of the product Prioritized by the product owner SPRINT The team takes the Product Backlog and decides what tasks are necessary Team self-organizes Manager doesn’t assign tasks to individuals Managers don’t make decisions for the team Burndown chart Artifacts Depicts the total hours remaining per day Shows the estimated amount of time to release Ideally should burn down to zero to the end of the Sprint Actually is not a straight line Can bump UP

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova SPRINT Sprint planning meeting Sprint prioritization Analyze and evaluate product backlog Select stories to be done Sprint planning Create sprint backlog (tasks) from product backlog items (user stories / features) Each task is estimated (1-16 hours) Estimate sprint backlog in hours Sprint backlog Sprint backlog Business conditions Team capacity Product backlog Technology Current product Sprint Planning Meeting Daily, 15-minutes, Stand-up Whole world is invited, but only team members, Scrum Master and product owner can talk Everyone answers 3 questions: What did you do yesterday? What will you do today? Is anything in your way? Team presents what it accomplished during the sprint Typically takes the form of a demo of new features Informal, 2-hour, no slides Whole team participates Invite the world Sprint Review Meeting Daily Scrum Meeting Periodically take a look at what is and is not working Typically 15–30 minutes Done after every sprint Whole team participates Sprint retrospective CeremoniesCeremonies

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova The whole picture Scrum Master Product owner Team Burndown chart Sprint retrospective Sprint Review Meeting Sprint Planning Meeting

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Product backlog Backlog itemEstimate Allow a guest to make a reservation3 As a guest, I want to cancel a reservation.5 As a guest, I want to change the dates of a reservation. 3 As a hotel employee, I can run RevPAR reports (revenue-per-available-room) 8 Improve exception handling

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Sprint backlog Tasks Code the user interface Code the middle tier Test the middle tier Write online help Write the foo class Mon Tues Wed Thur Fri 8 8 Add error logging

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Tasks Code the user interface Code the middle tier Test the middle tier Write online help Mon Tues Wed Thur Fri Hours MonTueWedThuFri 50 Burndown chart

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Pair Programming  In XP, programmers work in pairs, sitting together to develop code  This helps develop common ownership of code and spreads knowledge across the team  It serves as an informal review process as each line of code is looked at by more than 1 person  It encourages refactoring as the whole team can benefit from this  Measurements suggest that development productivity with pair programming is similar to that of two people working independently

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Test driven development  User involvement in test development and validation  Automated test harnesses are used to run all component tests each time that a new release is built  Writing tests before code clarifies the requirements to be implemented  Tests are written as programs rather than data so that they can be executed automatically. The test includes a check that it has executed correctly  All previous and new tests are automatically run when new functionality is added. Thus checking that the new functionality has not introduced errors

Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Refactoring  The process of code improvement where code is reorganised and rewritten to make it more efficient, easier to understand, etc.  Refactoring is required because frequent releases mean that code is developed incrementally and therefore tends to become messy  Refactoring should not change the functionality of the system  Automated testing simplifies refactoring as you can see if the changed code still runs the tests successfully