1 / 33

Agile Software Development

Agile Software Development. Junjie Hu 07/04/2014. The Agile Tide in the Industry. 2. Outline. What is agile software development? Two agile methods Scrum For process management Extreme programming (XP) For coding Conclusion. Agile Software Development .

ady
Download Presentation

Agile Software Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Agile Software Development Junjie Hu 07/04/2014

  2. The Agile Tide in the Industry 2

  3. Outline • What is agile software development? • Two agile methods • Scrum • For process management • Extreme programming (XP) • For coding • Conclusion

  4. Agile Software Development Rapid, incremental delivery of software 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 http://www.agilemanifesto.org

  5. Outline • What is agile software development? • Two agile methods • Scrum • For process management • Extreme programming (XP) • For coding • Conclusion

  6. Agile Methods Scrum Extreme programming (XP) Adaptive software development (ASD) Dynamic system development method (DSDM) Feature driven development (FDD) Lean software development (LSD) … Process Coding http://www.agilealliance.org 6

  7. 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

  8. 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

  9. 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

  10. Waterfall Model vs. Scrum Requirements Design Implementation Verification Rather than doing all of one thing at a time... Time ...Scrum teams do a little of everything all the time Time

  11. Time-boxes • Sprint • Sprint planning • Daily scrum • Sprint demo • Sprint retrospective The Scrum Framework Roles Artifacts • Product owner • Scrum master • Team • Product backlog • Sprint backlog • Burndown chart

  12. As a user, I want to cancel a reservation, so that I don’t have to pay for a room I won’t use. 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

  13. 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

  14. 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

  15. 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 15

  16. 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 Time-boxed Activity: Sprint Planning

  17. How Scrum Works 17 17

  18. 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

  19. A Daily Scrum Henrik Kniberg, Scrum and XP from the Trenches, InfoQ Enterprise Software, 2007 Development Series, 2007

  20. 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

  21. 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

  22. A Whiteboard Example from a Retrospective

  23. 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

  24. Sprint Info Page

  25. Burndown Chart • A publicly displayed chart showing the number of tasks remaining for the current sprint

  26. Sprint Backlog – A Wall-based Taskboard

  27. Outline • Agile software development • Agile methods • Scrum • For process management • Extreme programming (XP) • For coding • Conclusion

  28. Extreme Programming (XP) • Coding is the key activity throughout a software product • XP is extreme because commonsense practices taken to extreme levels

  29. 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 andintegrate test several times a day • Continuous integration (CI) • Since simplicity is good, keep the system in the simplest design that supports its current functionality • …

  30. XP Best Practices Simple design Prototype User stories Design Iteration plan Refactoring Coding Planning Pair programming Testing Unit test Release Acceptance test Continuous integration

  31. Outline • What is agile software development? • Two agile methods • Scrum • For process management • Extreme programming (XP) • For coding • Conclusion

  32. Conclusion • Agile software development is a trend • Adapting to quickly changed requirements • Iterative delivery • Scrum for process management • XP for coding

  33. Thank You

More Related