Intro agile development methodology abhilash chandran

33
Introduction to Agile Software Development Abhilash Chandran Xerox

description

Aquikc review of Agile Software development Principles

Transcript of Intro agile development methodology abhilash chandran

Page 1: Intro agile development methodology   abhilash chandran

Introduction to Agile Software Development

Abhilash ChandranXerox

Page 2: Intro agile development methodology   abhilash chandran

What are we going to discuss today?

• Process Overview• Waterfall Model• Agile Evolution• Agile Principles• Scrum Overview

Page 3: Intro agile development methodology   abhilash chandran

What is Software Development?

• Science • Engineering• Art• Innovation

Page 4: Intro agile development methodology   abhilash chandran

Problem we are trying to solve

• Many studies have suggested that only 40% of the software meets the initial criteria of– Cost– Quality– Scope

Page 5: Intro agile development methodology   abhilash chandran

What is Process?

• A series of actions or steps taken in order to achieve a particular end.

• A better process leads to a better outcome

Page 6: Intro agile development methodology   abhilash chandran

A familiar model

Page 7: Intro agile development methodology   abhilash chandran

Long Stages

Stage Time taken % Months ( for 1 year project)

Requirements 20 2.4

Design 20 2.4

Implementation 40 4.8

Verification 15 1.8

Maintenance 5 0.6

Lot of wastage because of handoffs & decision delays

Page 8: Intro agile development methodology   abhilash chandran

Waterfall Model

• Used in Manufacturing and construction• A well defined documented process• Clear project objectives • Strict sign-off at each stage

Page 9: Intro agile development methodology   abhilash chandran

Waterfall…

• First formal description by Winston W. Royce– as an example of a flawed, non-working model

• Problems– Lacks Periodic Feedback– More Time to Market– Complex Communication – Lot of wastage– No stakeholder interaction

Page 10: Intro agile development methodology   abhilash chandran

Time To Market

Products developed with waterfall takes more time to reach market• Lost Opportunity• Less Revenue

Page 11: Intro agile development methodology   abhilash chandran
Page 12: Intro agile development methodology   abhilash chandran

Why do we need agile?

Page 13: Intro agile development methodology   abhilash chandran

What is Agile?

• Definition: Able to move quickly and easily & respond to changes

• Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.

Page 14: Intro agile development methodology   abhilash chandran

PDCA Cycle

• The PDCA (Plan DO Check Act) cycle was made popular by Dr. W. Edwards Deming.

• This is a scientific cyclic process which can be used to improve the process (or product).

• This is cyclic in nature and usually time boxed.

Page 15: Intro agile development methodology   abhilash chandran

PDCA - Plan

• Plan - Goal Setting– This is the first stage of the process. – During this step the team discusses the objectives,

the process and the clear conditions of exit (conditions of acceptance).

– This stage sets the measurable and achievable goals for the team.

Page 16: Intro agile development methodology   abhilash chandran

PDCA - Do

• DO– Team works together to achieve the objective set

in the planning phase. – Team works with the set of agreed process.

Page 17: Intro agile development methodology   abhilash chandran

PDCA - Check

• Check– Once the implantation is done team regroups and

verifies the output and compares it to the agreed conditions of acceptance decided during the planning phase.

– The deviation, if any, is noted down.

Page 18: Intro agile development methodology   abhilash chandran

PDCA - Act

• ACT– If any deviation in planned tasks is observed

during the Check stage, a root cause analysis is conducted.

– Team brainstorms and identifies the changes required to prevent such deviations in future. Team also brainstorms ideas/process changes (including the scope changes and measurement metrics) which can result in a better process/product in next cycle or iteration.

Page 19: Intro agile development methodology   abhilash chandran

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 toolsWorking software over Comprehensive documentationCustomer collaboration over Contract negotiationResponding 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

Page 20: Intro agile development methodology   abhilash chandran

Agile Principles

The Agile Manifesto is based on twelve principles:1. Customer satisfaction by rapid delivery of useful software2. Welcome changing requirements, even late in development3. Working software is delivered frequently (weeks rather than months)4. Working software is the principal measure of progress5. Sustainable development, able to maintain a constant pace6. Close, daily cooperation between business people and developers7. Face-to-face conversation is the best form of communication (co-location)8. Projects are built around motivated individuals, who should be trusted9. Continuous attention to technical excellence and good design10. Simplicity—the art of maximizing the amount of work not done—is essential11. Self-organizing teams12. Regular adaptation to changing circumstances

Page 21: Intro agile development methodology   abhilash chandran

Agile Methodology

• Iterative way of development producing incremental delivery of working software in time-boxed interval of 1,2 or 4 weeks

Page 22: Intro agile development methodology   abhilash chandran

Agile Iteration

• One way to organize agile development is using short iterations

Each iteration step:• has some analysis, some design, some coding,

some integration and testing• executed by a cross-functional team• delivers some kind of internally or externally

usable functionality – intermediate demos or deliveries are possible!

Page 23: Intro agile development methodology   abhilash chandran

Scrum Overview

Page 24: Intro agile development methodology   abhilash chandran

Scrum Roles – Product Owner

• Product Owner – OWNS the product– Responsible for the product– Prioritizes Features to get maximum ROI– Manages the interests of the different

stakeholders • Customer• Development team• Management

Page 25: Intro agile development methodology   abhilash chandran

Scrum Roles – Scrum Master

• Scrum Master– Leads the Scrum team – DOES NOT manage it– He/she is a process champion • Ensures that the process is followed by all• Provides coaching/mentoring

– Helps a team increase their productivity• Responsible for having barriers removed• Remove Risks - not manage it

– Acts as Change Agent for team and organization

Page 26: Intro agile development methodology   abhilash chandran

Scrum Roles – Feature Team

• Responsible for the deliverables• Self-managing and self-organizing– Requirements,– design, development – testing – They are either all done completely or not at all

Page 27: Intro agile development methodology   abhilash chandran

Sprint Meetings

Anyone with a basic understanding of PDCA Agile cycle can correlate the scrum terminologies to this scientific approach.Plan – Sprint planningDo – Actual engineering sprintCheck – Sprint reviewAct – Retrospective

Page 28: Intro agile development methodology   abhilash chandran

Product Backlog

Page 29: Intro agile development methodology   abhilash chandran

Scrum Task Board

Page 30: Intro agile development methodology   abhilash chandran

Books

Page 31: Intro agile development methodology   abhilash chandran

Resources

• Scrum Guide - https://www.scrum.org/Scrum-Guide

Page 32: Intro agile development methodology   abhilash chandran

Questions

Page 33: Intro agile development methodology   abhilash chandran

Contact Me

• Email : [email protected]• Twitter : https://twitter.com/cabhilash• Blog : http://www.TheAgileSchool.com