by Srinivas Mahakud Scrum Agile Methodology 1 Session Objective Provide an Overview of Agile Methodology Comparison of Agile with Traditional Methods Learn about Scrum Agile Methodology Project Tracking using Burn Down Chart Scrum Agile Methodology 2 Classical Method of Software Development have many disadvantages and here are the top 5 reasons for Projects failing: Lack of end-user (customer) involvement Poor requirements Unrealistic schedules Lack of change management Lack of testing Inflexible and bloated processes New Method for Software Development: Agile Software Development Methodology Definition: Agile software development based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, a time-boxed iterative approach, and encourages rapid and flexible response to change. Scrum Agile Methodology 3 How Agile Methodology Addresses these Problems: The Customer is King – Addresses ‘lack of end user or customer involvement’ Requirements are written as Acceptance Tests Before Any code is written – Addresses ‘Poor Requirements’ Schedules aren’t Assigned, They are Negotiated – Addresses ‘Unrealistic Schedules’ Nothing is Carved in Stone except for the Delivery Date – Addresses ‘lack of Change Management’ Tests are Written before code is written and Testing is Automated – Addresses ‘lack of Testing’ Project Management is not a separate Activity – Addresses ‘inflexible and bloated processes’ Scrum Agile Methodology 4 How Agile Methodology Addresses these Problems: The Customer is King – Addresses ‘lack of end user or customer involvement’ Requirements are written as Acceptance Tests Before Any code is written – Addresses ‘Poor Requirements’ Schedules aren’t Assigned, They are Negotiated – Addresses ‘Unrealistic Schedules’ Nothing is Carved in Stone except for the Delivery Date – Addresses ‘lack of Change Management’ Tests are Written before code is written and Testing is Automated – Addresses ‘lack of Testing’ Project Management is not a separate Activity – Addresses ‘inflexible and bloated processes’ Scrum Agile Methodology 5 Waterfall Spiral Iterative Agile Defined Processes Required Required Required Planning & Closure only Final product Determined during planning Determined during planning Set during project Set during project Project Cost Determined during planning Partially variable Set during project Set during project Project Completion Date Determined during planning Partially variable Set during project Set during project Responsiveness to environment Planning only Planning primarily At end of each iteration Throughout Team flexibility, creativity Limited Limited Limited Knowledge transfer Training prior to project Training prior to project Training prior to project Teamwork during project Probability of success Low Medium Low Medium High Testing Testing at the end of the project (high Testing at the end of the bugs) project (high bugs) Extensive Testing at every stage (reduced bugs) Extensive Testing at every stage (reduced bugs) Customer Satisfaction High Possibility of customer dissatisfaction High Possibility of customer dissatisfaction Reduced Possibility of Reduced Possibility of customer dissatisfaction customer dissatisfaction Documentation Emphasis is placed on documentation Emphasis is placed on documentation Emphasis is placed on documentation Scrum Agile Methodology Unlimited during iterations Less importance to documentation 6 Agile Iterations lasts from one to four weeks Each Iteration will have planning, requirements analysis, design, coding, unit testing and acceptance testing. At the end of each iteration working product is demonstrated to stakeholders, which minimizes overall risk and allows the project to adapt to changes quickly. At the end of each Iteration the stakeholders review the progress and re-evaluate priorities as per customer needs and company goals. Agile prefers to have small size teams between 5-9 people to simplify team communication and team collaboration Agile enforces a stand up meeting for 15-30 mins with all the people involved in a particular Iteration and discuss about 'what each member has done the previous day', 'what they intend to do today', 'are their any road blocks'- this is referred as daily stand-up meetings or daily scrum meetings. Agile can also be applied to Teams working across different geographic locations or teams working for a larger development efforts by coordinating priorities across teams, using video conferencing, voice, email etc. Agile assumes people are well versed with the technology and know what is to be done instead of spending time on learning. Scrum Agile Methodology 7 Extreme Programming (XP): promotes high customer involvement, rapid feedback loops, continuous testing, continuous planning, deliver software at frequent intervals typically every 1-3 weeks. Dynamic System Development Method (DSDM): DSDM is based on rapid application development (RAD), focuses more towards solving most common failures of information systems projects, including exceeding budgets, missing deadlines, and lack of user involvement and top-management commitment. based on nine key principles that primarily revolve around business needs/value, active user involvement, empowered teams, frequent delivery, integrated testing, and stakeholder collaboration. All critical work must be completed in a DSDM project. Lean Software Development: focuses eliminating waste through selecting only the truly valuable features of a system, prioritizing those selected and delivering them in small batches. Practiced by companies like Toyota Kanban: emphasizes on continual delivery while not overburdening the development team, promotes continuous collaboration, ongoing learning and improving by defining the best possible team workflow. Scrum Agile Methodology 8 Crystal: comprised of a family of Agile Methodologies such as Crystal Clear, Crystal Yellow, Crystal Orange etc. Its based on the fact that each project may require a slightly tailored set of policies, practices and processes in order to meet the projects unique characteristics. Feature-Driven Development (FDD): Describes very short phases of work which are to be accomplished separately per feature, these include domain walkthrough, design, design inspection, code, code inspection, regular builds. Agile Unified Process (AUP) : is a simplified version of the IBM Rational Unified Process (RUP).The AUP applies agile techniques including test driven development (TDD), Agile Modeling, agile change management, and database refactoring to improve productivity. Scrum: Scrum is a lightweight agile project management framework with broad applicability for managing and controlling iterative and incremental projects of all types. Scrum has been proven to scale to multiple teams across very large organizations. With Scrum, projects progress via a series of iterations called sprints. Each sprint is typically 2-4 weeks long and sprint planning is essential. While an agile approach can be used for managing any project, Scrum is ideally suited for projects with rapidly changing or highly emergent requirements such as we find in software development. Scrum Agile Methodology 9 The length of an iteration in XP is usually 1-3 weeks whereas, in Scrum sprints are 2-4 weeks Once sprint (or iteration in XP) starts, customer cannot change the requirements, in other words the customer will have to wait until the sprint (or iteration in XP) finishes. In XP however, requirements can change anytime. In XP features are developed in a strict order whereas in Scrum, the team is free to choose the features to be developed. Sequence does not matter. Both XP and Scrum define the role of a coach, In Scrum it is called Scrum Master and requires (or strongly recommended) certification, whereas, XP defines the role of coach quite informally and the role may float between members of the team. Scrum and XP are often used together: Scrum defines the framework and XP defines the engineering practices and they fit together nicely. Scrum Agile Methodology 10 Scrum Agile Methodology 11 Scrum Agile Methodology 12 Scrum Agile Methodology 13 Scrum Agile Methodology 14 Scrum Agile Methodology 15 (Owned by Product Owner) Scrum Agile Methodology 16 Scrum Agile Methodology 17 Scrum Agile Methodology 18 Scrum Agile Methodology 19 Scrum Agile Methodology 20 (Owned by Development Team) Scrum Agile Methodology 21 Scrum Agile Methodology 22 Scrum Agile Methodology 23 Scrum Agile Methodology 24 Scrum Agile Methodology 25 Scrum Agile Methodology 26 Scrum Agile Methodology 27 Scrum Agile Methodology 28 Scrum Methodology Uses ‘Burn Down Chart’ as a mechanism for Tracking and Reporting the progress of Sprint. • Quick View of Sprint Progress • How much time is left in the Sprint Vs How much work is left to be done • Depicts the total Sprint Backlog hours remaining per day • Shows the estimated amount of time to release • Ideally should burn down to zero to the end of the Sprint • Y- Axis Remaining Effort required to Complete the Task, X-Axis Iteration Timeline in days Scrum Agile Methodology 29 If the actual remaining effort line is above the blue line for an extended period, then it means adjustments have to be made to the project. This could mean dropping a task, assigning additional resources, or working late, all of which can be unpleasant but because of the burn down chart, at least you can deal with it sooner rather than just before a deadline. Scrum Agile Methodology 30 Scrum Agile Methodology 31 Start with 0.7 as the Efficiency Factor. One month is a good iteration timeline for many projects (20 work days). Only record progress against completed tasks. If a task is 99% done, it is still not complete and cannot be used for a release. If actual performance is significantly above the ideal iteration line in the burn down chart, investigate and correct the issue by dropping tasks, assigning additional resources, or working overtime. Avoid task estimates that are longer than a few days. Break long tasks into shorter ones. Measure priority in tens, as in, 10, 20, 30… Use fractions for determining the number of developers if time is split across projects. Scrum Agile Methodology 32 Advantages: Agile scrum helps the company in saving time and money. Scrum methodology enables project’s where the business requirements documentation is hard to quantify to be successfully developed. Issues are identified well in advance through the daily meetings and hence can be resolved in speedily Daily meetings make it possible to measure individual productivity. This leads to the improvement in the productivity of each of the team members. Due to short sprints and constant feedback, it becomes easier to cope with the changes. Scrum Agile Methodology 33 Disadvantages: you can get development started fast, but with the caveat that the project scope statement is "flexible" and not fully defined. Hence this can be one of the major causes of scope creep if not managed properly. because unless there is a definite end date, the project management stakeholders will be tempted to keep demanding new functionality is delivered. If a task is not well defined, estimating project costs and time will not be accurate. In such a case, the task can be spread over several sprints. It is good for small, fast moving projects as it works well only with small team. This methodology needs experienced team members only. If the team consists of people who are novices, the project cannot be completed in time. Scrum works well when the Scrum Master trusts the team they are managing. If they practice too strict control over the team members, it can be extremely frustrating for them, leading to demoralization and the failure of the project. If any of the team members leave during a development it can have a huge inverse effect on the project development Scrum Agile Methodology 34 Rally (www.RallyDev.com) Version One (www.VersionOne.net) Simple spreadsheets and documents ScrumWorks (www.ScrumWorks.com) Scrum Agile Methodology 35 Scrum Agile Methodology 36