intro agile development methodology abhilash chandran
DESCRIPTION
Aquikc review of Agile Software development PrinciplesTRANSCRIPT
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 : [email protected]• Twitter : https://twitter.com/cabhilash• Blog : http://www.TheAgileSchool.com