Intro agile development methodology abhilash chandran

Post on 28-Nov-2014

237 views 0 download

Tags:

description

Aquikc review of Agile Software development Principles

transcript

Introduction to Agile Software Development

Abhilash ChandranXerox

What are we going to discuss today?

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

What is Software Development?

• Science • Engineering• Art• Innovation

Problem we are trying to solve

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

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

A familiar model

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

Waterfall Model

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

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

Time To Market

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

Why do we need agile?

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.

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.

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.

PDCA - Do

• DO– Team works together to achieve the objective set

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

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.

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.

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

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

Agile Methodology

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

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!

Scrum Overview

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

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

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

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

Product Backlog

Scrum Task Board

Books

Resources

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

Questions

Contact Me

• Email : c.abhilash@gmail.com• Twitter : https://twitter.com/cabhilash• Blog : http://www.TheAgileSchool.com