1 / 28

BTS530: Major Project Planning and Design

BTS530: Major Project Planning and Design. Iterative Development References: Agile & Iterative Development, by Craig Larman, 2004, Addison Wesley. Applying UML and Patterns, 3 rd Edition, Chapter 21, Craig Larman Web sites as listed. Agenda. Iterative development Agile modeling SCRUM

Download Presentation

BTS530: Major Project Planning and Design

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. BTS530: Major Project Planning and Design Iterative Development References: Agile & Iterative Development, by Craig Larman, 2004, Addison Wesley. Applying UML and Patterns, 3rd Edition, Chapter 21, Craig Larman Web sites as listed

  2. Agenda • Iterative development • Agile modeling • SCRUM • Extreme Programming • Refactoring

  3. Iterative Development • Product development lifecycle is composed of several iterations in sequence, each delivering a “chunk” of functionality • Each iteration is a self-contained mini project: • Planning • Development (including testing) • Implementation • Review/Refactoring

  4. Iterative Development Initial Requirements, Vision + Feedback/Input from Iterations … Iteration3 Iteration2 Iteration1 (Typically between 3 and 30 iterations in a system development project) Production System (grows with each iteration)

  5. Iterative Development • Each Iteration • Plan • tasks, time estimates, milestones • Track/Control progress • adjust scope if required • Develop • Implement • Review/Refactor

  6. Iterative Development • Planning Each Iteration • Risk driven • choose riskiest, most difficult elements • Client driven • choose highest business value • Ideally—a mixture of both

  7. Iterative Development • Tracking/Controlling • Timeframes for iterations are typically shorter than for traditionally run projects, necessitating more control • “Timeboxing” Approach is common in iterative development methodologies using agile methods • Iterations typically 1 to 6 weeks • Scope adjusted if necessary; not time, not quality

  8. Iterative Development • Benefits over “Big Bang” approaches • “Depth” vs “breadth” – issues through to implementation uncovered and addressed more quickly • Early results reveal and enable required changes—end product is more suitable • Early results enable more accurate estimates for the rest of the system • Momentum sustained…constant visible progress • Other?

  9. Agile Methods • Iterative methods typically (but not always) employ agile methods • Agile methods defined and supported by http://www.agilealliance.org/ • Agile methods start with the “Manifesto for Agile Software Development” http://www.agilemanifesto.org

  10. Agile Methods • Principles • http://www.agilemanifesto.org/principles.html

  11. Agile Methods • Iterative development methodologies employing agile methods include: • Scrum • Extreme Programming (XP)

  12. SCRUM: Intro An agile method for software development. Projects progress via a series of iterations called sprints. Each sprint iteration is approx. 2-4 weeks long. Ideally suited to projects with rapidly changing or “sudden” requirements. Mountain Goat Software http://www.mountaingoatsoftware.com/scrum

  13. SCRUM: the players Ensures team productivity by removing roadblocks and protecting the team from the “outside” Key Stakeholder or user Scrum Team --5-9 people --no traditional roles --All working together Mountain Goat Software http://www.mountaingoatsoftware.com/scrum

  14. SCRUM Product Backlog: a prioritized list of features containing every desired feature or change to the product. Prioritized by the product owner. Mountain Goat Software http://www.mountaingoatsoftware.com/scrum

  15. SCRUM A Sprint Planning Meeting is held at the start of each sprint. The product owner reprioritizes the product backlog and the scrum team decides what it can complete in the coming Sprint. The result is theSprint Backlog a list of tasks to complete all work in the current sprint. Mountain Goat Software http://www.mountaingoatsoftware.com/scrum

  16. SCRUM The Scrum: a daily meeting for entire Scrum team: Scrum Master asks “What did you do yesterday?”; “What will you do today?”; “Are there any roadblocks?” Mountain Goat Software http://www.mountaingoatsoftware.com/scrum

  17. SCRUM At the end of a sprint the team has a Sprint Review Meeting to demonstrate the result of the sprint: a Product Increment. ProductIncrement (working, high-quality software) Scrum 2-4 Week Sprint ProductBacklog SprintBacklog Mountain Goat Software http://www.mountaingoatsoftware.com/scrum

  18. XP: Intro A form of agile software development. Promotes simplicity and agility Managers, customers, developers are equal partners in the development team http://www.extremeprogramming.org

  19. XP: Specifications User Stories are at the heart of XP They are written by the customers, are each about 2-3 sentences long and are similar to scenarios. User stories drive acceptance tests User stories are the “specs” http://www.extremeprogramming.org

  20. XP: Iterations A Release Planning Meeting creates a release plan which details which user stories will go into a release (80 + or – 20 is the “norm”) An Iteration Planning Meeting is held at the start of each Iteration in the release to decide what will go into that iteration Each “time boxed” iteration is usually a constant length; typically 1-3 weeks. http://www.extremeprogramming.org

  21. XP: Meetings Daily Standup Meeting is used to communicate problems, solutions, and promote team focus Everyone stands up in a circle to avoid long discussions http://www.extremeprogramming.org

  22. XP: Coding Coding done in pairs: Pair Programming The customer is ALWAYS available Coding Standards must be followed Test Driven Development: The Unit Test is written first Code is integrated at frequent (hours) intervals No overtime Code is Refactored frequently http://www.extremeprogramming.org

  23. Refactoring: Intro • Part of each iteration – review and refactor what is “smelly” • Simplify!

  24. Refactoring • Structured, disciplined • Rewrite/restructure existing code without changing its external behaviour • Apply small transformation steps combined with re-executing test steps

  25. Refactoring • Why? • remove duplicate code • improve clarity • shorten long methods • remove “hard coded” constraints • “smelly code” –consider refactoring • “code stench” – MUST refactor

  26. Refactoring • Code Stench • duplicated code • BIG GIANT METHOD • BIG GIANT CLASS (lots of code) • Class with MANY instance variables • strikingly similar subclasses • little or no use of interfaces in the design • high coupling between many objects • and so on…

  27. Sample Refactorings

  28. Refactoring • Examples: pg 391-393, chapter 21, Larman text • Resources • www.refactoring.com

More Related