Comments
Transcript
Sprint - Università Degli Studi Di Genova
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 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. Software is not a skyscraper! Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Individuals and interactions The Agile Manifesto over Process and tools Working software over Comprehensive documentation Customer collaboration over Contract negotiation Responding to change over Following a plan Source: www.agilemanifesto.org 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 Roles Product owner ScrumMaster Team Artifacts Product backlog Sprint backlog Burndown charts Scrum (and XP) framework Ceremonies Sprint planning Sprint review Sprint retrospective Daily scrum meeting Practices XP Pair Programming Refactoring Test Driven Development Continuous integration … Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Sprint 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 Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Scrum Master Roles 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 SPRINT 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 Product owner Team Typically 5-9 people Cross-functional: programmers, testers, user experience designers, etc. Members should be full-time Teams are self-organizing (no titles) Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Artifacts Burndown chart 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 SPRINT 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 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 Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Ceremonies Sprint retrospective 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 Team capacity 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 SPRINT you do yesterday? What will you do today? Is anything in your way? Sprint planning meeting Sprint prioritization Product backlog Business conditions Current product Technology Analyze and evaluate product backlog Select stories to be done Sprint backlog 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 Planning Meeting 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 Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova The whole picture Sprint retrospective Scrum Master Burndown chart Product owner Sprint Planning Meeting Team Sprint Review Meeting Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Product backlog Backlog item Estimate Allow a guest to make a reservation 3 As a guest, I want to cancel a reservation. 5 As a guest, I want to change the dates of a reservation. As a hotel employee, I can run RevPAR reports (revenue-per-available-room) 3 8 Improve exception handling 8 ... ... 30 50 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 Write the foo class Add error logging Sprint backlog Mon Tues Wed Thur Fri 8 4 8 16 12 10 4 8 16 16 11 8 8 8 8 8 8 4 12 8 Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova Burndown chart Tasks Mon Tues Wed Thur Code the user interface Code the middle tier Test the middle tier Write online help 8 16 8 12 4 12 16 8 10 16 7 11 Fri 8 50 Hours 40 30 20 10 0 Mon Tue Wed Thu Fri 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 Scuola Politecnica Dipartimento DITEN