Agile Software Engineering Frank Maurer Agile Software Engineering Lab, University of Calgary http://ase.cpsc.ucalgary.ca/Frank.Maurer frank.maurer@ucalgary.ca What is software development? Understand Evaluate Construct Agile Methods Overview 2 UI layer Business layer Feature 56 Vision Feature 45a Feature 45b Application features Product Feature 1 Iterative and incremental development Final System Data access Hardware Agile Methods Overview 3 Adaptive project management Customer Communication • Project planning meetings, on-site customer reps … Constant Feedback • Demos, pairing with customer, iteration reviews Design & Implement • TDD, develop feature code, vertical slices Agile Methods Overview 4 Whole team o “Individuals and interactions” Requirements Engineering Interaction Design Software Architecture o Customer representatives & developers & testers Quality Assurance o Planning meetings o Retrospectives Domain-driven Design Software Security eXtreme Developer Agile Methods Overview 5 Story Test Driven Development – Agile Approach to Quality Ux Designers Customer Team + Testers Development Team Pair Programming Adapted from Rick Mugridge. Advanced FIT Tutorial Agile Methods Overview 6 Agile Project Planning o Project vision the really big picture o Release planning strategic picture o Chooses a few months worth of user stories/features o Date and scope o Can be changed o Creates product backlog o Iteration planning tactical picture o Few weeks o Set of stories prioritized by customer o Creates sprint backlog o Define set of tasks for each story o Task granularity: 1-3 work days estimation accuracy Agile Project Management 7 Iteration Zero o Demonstrate tool competency as a team by implementing a few features of the assignment project o Create a release plan and low fidelity prototypes o Start reporting process metrics o Form a team out of a group of people Agile Software Engineering 8 Agile Software Engineering Project Visioning Frank Maurer Agile Software Engineering Lab, University of Calgary http://ase.cpsc.ucalgary.ca/Frank.Maurer frank.maurer@ucalgary.ca What is software development? Understand Evaluate Construct Project Visioning 10 Project Vision – First step towards understanding o Develop general goal for project o Market research, champion, past experience Innovation games o The toughest part of innovation: Accurately predicting what customers want, need, and will pay for. o 12 games for answering this question Project Visioning 12 Product box Project Visioning 13 Vision Box – Jim Highsmith o Who – Clarify the target customer and use language intended for that audience o What – Describe what the product is o When – Discuss stakeholders’ time expectations o Where – Will the new product be used by everyone in the organization, or only in parts o Why – Why would the users and stakeholders change their existing habits and migrate to this new product? sell box to audience Project Visioning 14