AGILE - Methodology July 2017 Srinivas-Kothuri
AGILE - Methodology July 2017 Srinivas-Kothuri
AGILE - Methodology July 2017 Srinivas-Kothuri
July 2017
Srinivas-Kothuri
AGENDA
Agile What is?
Iterative & Incremental Development
Agile Manifesto (Values & Principles)
Agile Methodologies
SCRUM - What is ?
Waterfalls Intro & Pitfalls
Scrum - Comparison with waterfall
Scrum Pros & Cons
Extreme Programming (XP) intro
KANBAN Intro
DevOps What is?
AGENDA CONTINUED..
Agility The ability to both create and respond to change in order to profit in a turbulent
business environment
Companies need to determine the amount of agility they need to be competitive
Incremental:
Iterative:
Agile Manifesto (Values & Principles)
Manifesto for Agile Software Development:
We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to the value:
That is, while there is value in the items on the right, we value the items on the left more.
Principles:
Satisfy the Customer Promote Sustainable Pace
Welcome Change Promote Technical Excellence
Deliver Frequently Have Self Organized Teams
Collaborate Daily Support & Trust Motivated Teams
Promote Face-to-Face Maximize Through Simplicity
Conversations
Deliver Working Software Reflect & Adjust Regularly
Agile Methodologies
Various Methodologies:
SCRUM
Crystal
Feature Driven Development (FDD)
Adaptive Software Development (ADP)
Extreme Programming (XP)
Rational Unified Process (RUP)
Agile Unified Process (AUP)
Rapid Application Development (RAD)
Team Software Process (TSP)
Dynamic Systems Development method (DSDM)
Kanban
Test Driven Development (TDD)
Acceptance Test Driven Development (ATDD)
Behavior Driven Development (BDD)
Domain Driven Design (DDD)
Model Driven Design (MDD)
Iterative & Incremental Development (IDD)
Lean Software Development (LSD)
DevOPS
Scrum What is?
Definition
A framework within which people can address complex adaptive problems, while
productively and creatively delivering products of the highest possible value. Scrum is not a
process or a technique for building products; rather, it is a framework within which you can
employ various processes and techniques.
Scrum Theory
Scrum is founded on empirical process control theory, or empiricism. Empiricism
asserts that knowledge comes from experience and making decisions based on what is known.
Scrum employs an iterative, incremental approach to optimize predictability and control risk.
Scrum Roles:
Product Owner:
Defines the features of the Product & decides on release date and content
Prioritize features according to Market value & Accept or reject work results
Scrum Master
Removes Impediments * Ensures that the team is fully functional and productive
Responsible for enacting SCRUM values, Practices & Shields the team from external
interferences
Scrum Team
Cross functional, Full-time staff that is self organizing
Scrum What is? (Continued..)
Scrum Ceremonies:
Sprint Planning
Create Backlog, Determine Sprint Goal & Create Sprint Backlog
Daily Standup
15 Minutes stand-up for communication and discuss commitments and not for problem
solving
Sprint Review Meeting
Present accomplishments, waits for acceptance
Sprint Retrospective
Feedback & Lessons learnt meeting.
Scrum Artifacts:
Product Backlog
List of all desired work prioritized and is owned and managed by the Product Owner
Sprint Backlog
Subset of Product Backlog, owned by the Sprint Team and estimates are updated
Product Increment
Potentially shippable product increment aligns with development teams Definition of
Done
Monitoring (Burndown Chart for iterations, Burndown chat for releases, Burnup charts)
Depicts the total backlog hours for Sprints/Releases.
Scrum What is? (Continued)
Late Delivery
Projects didnt meet deadlines
Long time to react to market demands
Requirements issues:
Customers dont have idea of what they want
Customers change requirements after design
Lack of flexibility or problems with deadlines
Implementation issues:
Technology unknown
Evolving technology needs
Unanticipated technical problems
Release issue
Market changes continuously
Company changes direction
Scrum Comparison with Waterfall
SCRUM Process
Scrum Comparison with Waterfall (Continued..)
Scrum Pros & Cons
Advantages
Completely developed and tested features in short iterations
Simplicity of the process
Clearly defined rules
Increasing productivity
Self-organizing
each team member carries a lot of responsibility
Improved communication
Combination with Extreme Programming
Drawbacks
Undisciplined hacking (no written documentation)
Violation of responsibility
Current mainly carried by the inventors
Fatigue for the project team for extended durations
Lessened Telecommute options
Extra coordination required for distributed teams
Main cause for scope creep
Attrition can cause changes in velocity and planning
Extreme Programming (XP) intro
Extreme Programming is a type of Agile methodology that is popular and somewhat controversial
method consisting in values, principles and practices.
Kanban Steps:
Define a work process flow.
Elaboration & Acceptance criteria
Development
Test
Deployment
Layout a Visual Kanban board.
Goals column on left, then a waiting queue, process steps and a final done to the
right
Decide on limits for items in queue and work in progress
Good limit is the factor of the number of people in a role that can work on an item
in a given process step
Place prioritized goals on the left column of the board.
Visible goals promotes focus
Helps prioritize
Helps manage feature scope & requirements
Start the board by placing stories or features in queue
Product owners manage the waiting queue
Date and time marked to measure cycle time
KANBAN Intro cont..
Move features through the process flow as work is completed
Mark the start and end date for the card for every process step
Use the dates on the cards to calculate cycle time
Calculate cycle time which is the end time start time
Calculate average cycle time which is the wait time
Relieve bottlenecks as quickly as possible
Display and manage cycle times
Reduce the number of Kanban slots allowed until cycle time remains unchanged
Reduce the size of development items
Work in progress is actually the number of items * the average size of items
Identify and act on bottlenecks immediately
Relieve repeated bottlenecks by changing the number and types of people in each
role and cross training.
Evaluate the quality of the product from a functional, engineering and UX perspective
Evaluate pace of Development
Evaluate and adjust the process
Begin looking at the process using lean thinking
Monitor cycled time of validated decisions
Dont overlook the feedback and watch for backed-up queues
DevOps What is?
Characteristics: Definitions:
Treating Infrastructure as Code is fundamental Applying agile techniques to operatio
to DevOps Getting development and operations
Automating the work of setting up and
work together
maintaining systems infrastructure
Making it defined, efficient, testable, DevOps is the last mile of Agile
auditable and standardized How to deploy software with speed a
Automated Testing is part of pipeline confidence
Automated CI / CD pipeline DevOps is about accelerating softwar
Automated application deployment deployment
Logging & Traceability of all changes
Security:
DevOps and CD allow businesses to deploy software far more frequently than in the past,
increasing consistency, predictability, and ultimately, quality.
The deltas between builds are much smaller, reducing the likelihood of catastrophic errors.
Bugs are smaller and easier to fix. While functional problems can often be detected through
regular use, security vulnerabilities are harder to spot.
Since infrastructure as code allows VMs to be provisioned and de-provisioned in minutes,
keeping track of security vulnerabilities without automation is impossible.
Transitioning to DevOps Compare with Agile
Agile Development:
Iterative development,
Sprints, Stories,
Velocity
DevOps
Continuous Integration
Continuous Deployment
IT Automation
Application management
Things to consider:
Transparency- It ensures that aspects of the process that affect the outcome
are visible to those managing the outcomes.
Inspection The various aspects of the process must be inspected frequently
enough that unacceptable variances in the process can be detected.
Adaption When inspection determines that one or more aspects of the
process are outside acceptable limits, an adjustment must be made as quickly
as possible to minimize further deviation.
Customer relationship:
Scrum implies a transparent relationship with the customer
It keeps everything about a project visible to anyone
The customer sees the product constantly
This way, it can provide early exposure to possible schedule slips
When accepting a project, be sure to communicate risks to the customer.
Courage is needed!
Make him make the decision
Just saying "yes" can harm everyone
Give him probabilistic answers (about the expected percentage of
success) + risk analysis
Transitioning to Agile from Waterfall continued..
Transition Warnings:
Transition to Scrum without support from the top of the company creates a resistance
that cannot be overcome from below.
To reduce resistance, keep the change process nameless among employees
Don't start a new project until it can be fully staffed
All disciplines must be represented from the beginning
A company is never ``done'' becoming agile: there are always improvements to be made
None of the agile processes described by their originators is perfect for your
organization. It needs to be tailored and adapted
Do not reward single individuals, but only the whole team
A bonus can be a free Sprint to work on whatever they want
REFERENCES
The Scrum Guide from scrum.org
Scrumalliance.com
Leading Agile
http://en.wikipedia.org/wiki/Agile_Modeling.
http://en.wikipedia.org/wiki/Extreme_Programming.
http://en.wikipedia.org/wiki/Agile_Unified_process.
http://en.wikipedia.org/wiki/Scrum_28development29