730 likes | 1.54k Views
Introduction to Agile. Objectives. High level overview Agile Scrum Take Home Message Gain enough of an understanding of Agile and Scrum to see how it will work and how it may bring benefits to us and our customers. How did we get here?. Traditional Software Development Waterfall
E N D
Objectives • High level overview • Agile • Scrum • Take Home Message • Gain enough of an understanding of Agile and Scrum to see how it will work and how it may bring benefits to us and our customers.
How did we get here? • Traditional Software Development • Waterfall • Based on False Assumptions • Requirements can be predicted up front • You can perfect one phase before moving on to the next • Timeframes and budgets can be predicted upfront • Feedback isn’t valuable • Agile is an answer to this problem • Frequently deliver software in increments • Get detailed requirements “just in time” before development to allow for change. • Frequently gain feedback to adapt to change. • Agile is about communication and collaboration
Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
Agile Principals • Early and continuous delivery • Welcome changing requirements • Deliver working software every couple of weeks to a couple of months, with a preference to the shorter timescale. • Business people and developers must work together daily. • Give the team the environment and support they need, and trust them to get the job done. • The most efficient and effective method of communicating is face-to-face conversation. • Working software is the primary measure of progress. • Sustainable development, to maintain a constant pace indefinitely. • Technical excellence and good design enhances agility. • Simplicity is essential. • The best architectures, requirements, and designs emerge from self-organizing teams. • At regular intervals, the team reflects on how to become more effective, adjusts its behaviour accordingly.
Agile Benefits • What gets better after going agile? • Ability to manage changing priorities (84%) • Improved Project Visibility (77%) • Increased Productivity (75%) • Improved Team Morale (72%) • Faster Time to Market (71%) • Better alignment to business objectives (68%) • Enhanced Software Quality (68%) • Simplify Development Process (68%) • Reduced Risk (65%) • Improved engineering discipline (62%) • Enhanced Maintainability (60%) • Reduced Cost (49%)
Sprints and Releases • Detailed requirements and design occur much later in the process to allow for change • Each sprint results in potentially shippable software • Sprint is time boxed and never extended • If requirements change drastically during the sprint, or meeting the requirements becomes impossible. the sprint can be cancelled
Roles • Product Owner • Close to the business side of the project • Responsible for prioritising the backlog • Ensures the maximum ROI • Communicates the vision • Scrum Master • An expert in scrum • Facilitates and enables scrum • Coaches the team to be agile and keep to the framework • Bulldozer of impediments • Scrum Team • Responsible for developing the product • Cross functional • Self organising • Makes a fixed commitment to what will be developed in a sprint
Artefacts • Product Backlog • Sprint Backlog • Burndown Chart
Ceremonies • Sprint Planning 1 • Sprint Planning 2 • Daily Scrum • Sprint Review • Sprint Retrospective • Also - Backlog Grooming
Customise Up • Scrum gives us the mandatory basic framework. • Most commonly customised with elements of extreme programing (xp) • Unit Testing • Test Driven Development • Coded UI tests • Refactoring • Continuous Integration • Pair Programming • Whole Team
Expectations • Learning Curve • We must behave in an agile way • We must implement the whole process • Don’t be wagile • Don’t be fragile • Do Scrum, not scrumbut.
Discuss • Any questions?