AGILE METHODOLOGY : AGILE METHODOLOGY
Software Development Life cycle : Software Development Life cycle Water Fall Model
V-Model
Iterative Model
Agile Methodology
Scrum Frame Work
XP Extreme Programming
Adaptive Software Development (ASD)
Dynamic System Development Method (DSDM)
…………………
What is Agile Methodology? : What is Agile Methodology? It is a Disciplined project management with frequent inspection and adaptation. That encourages team work, self-organization and accountability.
Testers will need to have an understanding of agile as a whole, but will also need to learn how to adapt their current approach to work within agile efforts.
Principles of Agile…. : Principles of Agile…. Highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Welcome changing requirements, even late in development.
Deliver working Software Frequently
Business people and developers must work together daily through out the project.
The most efficient and effective method of conveying information to and within the development team is face to face conversation.
Working Progress is primary measure of progress
Collaborative team work.
Simplicity– the art of maximizing the amount of work not done –is essential.
The reflection of team should become more effective, to tune and adjust their behavior accordingly
Agenda… : Agenda… Introduction
What is Agile Methodology?
What is Scrum?
History of Scrum
Functionality of Scrum
Components of Scrum
Scrum Roles
The Process
Scrum Artifacts
Scaling Scrum
Agile Manifesto… : Agile Manifesto… A statement of values..
Individuals and interactions over processes and tools.
Working software over comprehensive documentation.
Customer collaboration over contract negotiation.
Responding to change over following a plan.
Agile Methods… : Agile Methods… Agile methods:
Scrum
Extreme Programming
Adaptive Software Development (ASD)
Dynamic System Development Method (DSDM)
…
Agile Alliance (www.agilealliance.org)
A non-profit organization promotes agile development
What is Scrum? : What is Scrum? Scrum is an agile process that allows us to focus on delivering the highest business value in the shortest time.
It allows us to rapidly and repeatedly inspect actual working software (every two weeks to one month).
The business sets the priorities. Our teams self-manage to determine the best way to deliver the highest priority features.
Every two weeks to a month anyone can see real working software and decide to release it as is or continue to enhance for another iteration.
History of Scrum… : History of Scrum… 1995:
analysis of common software development processes not suitable for empirical, unpredictable and non-repeatable processes
Design of a new method: Scrum by Jeff Sutherland & Ken Schwaber
Enhancement of Scrum by Mike Beedle & combination of Scrum with Extreme Programming
1996:
introduction of Scrum at OOPSLA conference
2001:
publication “Agile Software Development with Scrum” by
Ken Schwaber & Mike Beedle
Successful appliance of Scrum in over 50 companies
Founders are members in the Agile Alliance
Characteristics of Scrum… : Characteristics of Scrum… Self-organizing teams
Product progresses in a series of month-long “sprints”
Requirements are captured as items in a list of “product backlog”
No specific engineering practices prescribed
Uses generative rules to create an agile environment for delivering projects
One of the “agile processes”
Why Scrum is Powerful..? : Why Scrum is Powerful..? Focus is on team’s work and team’s work only
Daily communication of status occurs
Enables low-overhead empirical management
Makes impediments visible
Someone is willing to make decisions and
remove impediments real-time
How does it works? : How does it works?
Components of Scrum… : Components of Scrum… A process for incrementally building software in
complex environments.
Backlog – all outstanding work for a product area
Sprints – 30-day increments of work that produce
a deliverable
Scrums – daily status check meetings
K. Schwaber, Agile Project Management with Scrum, 2004. http://www.controlchaos.com
Daily Scrum… : Daily Scrum… Is NOT a problem solving session
Is NOT a way to collect information about WHO is behind the schedule
Is a meeting in which team members make commitments to each other and to the Scrum Master
Is a good way for a Scrum Master to track the progress of the Team
Three Scrum Roles… : Three Scrum Roles… Scrum Master
• project master?
• coach, facilitator, expediter
Product Owner
• customer point of contact
• “whole team”
Development Team
• small, co-located?
• generalists?
Project Owner… : Project Owner… Define the features of the product
Decide on release date and content
Be responsible for the profitability of the product (ROI)
Prioritize features according to market value
Adjust features and priority every iteration, as needed
Accept or reject work results.
Scrum Master… : Scrum Master… Represents management to the project
Responsible for enacting Scrum values and practices
Removes impediments
Ensure that the team is fully functional and productive
Enable close cooperation across all roles and functions
Shield the team from external interferences
Scrum Ceremonies… : Scrum Ceremonies… Sprint Planning Meeting
Sprint
Daily Scrum
Sprint Review Meeting
Scrum Members… : Scrum Members… Typically 5-10 people
Cross-functional
QA, Programmers, UI Designers, etc.
Members should be full-time
May be exceptions (e.g., System Admin, etc.)
Teams are self-organizing
What to do if a team self-organizes someone off the team??
Ideally, no titles but rarely a possibility
Membership can change only between sprints
Scrum Sprint Rules… : Scrum Sprint Rules… Use small interdisciplinary teams
Build clean interface software
Intelligent management required
Solid systems architecture and framework upfront
Prototype all new tools and technology
Develop infrastructure first
Each Sprint results in an executable
Develop, document, and test in parallel
Slide 21 : Spring Planning Meeting…. Sprint Planning
Meeting Sprint Backlog Product Owner Scrum Team Management Customers Sprint Goal
Products Sprint Planning Meeting… : Products Sprint Planning Meeting… 1st Part:
Creating Product Backlog
Determining the Sprint Goal.
Participants: Product Owner, Scrum Master, Scrum Team
2nd Part:
Participants: Scrum Master, Scrum Team
Creating Sprint Backlog
No Changes In Scrum… : No Changes In Scrum… Plan sprint durations around how long you can
commit to keeping change out of the sprint
Daily Scrum Questions… : Daily Scrum Questions… What did you do since the last Scrum?
What got in your way?
What are you going to do before the next Scrum?
Daily Scrum Protocol… : Daily Scrum Protocol… Daily, same place and time, 15 minutes
Only three questions
All pigs (committed) must respond
Chickens (involved) can attend, but must be
silent
No new backlog can be introduced externally
Backlog can be added internally
Sprint Review Meeting… : Sprint Review Meeting… Team presents what it accomplished during the sprint
Typically takes the form of a demo of new features or underlying architecture
Informal
2-hour prep time rule
Participants
Customers
Management
Product Owner
Other engineers
Other Scrum Practices… : Other Scrum Practices… Product Backlog, Release Plan
Sprint Planning Meeting (4+4 hr), Sprint
Backlog
Backlog/Release Burn down Charts
Sprint Review Meeting (4 hr)
Sprint Retrospective Meeting (3 hr)
From Sprint goal to Sprint Backlog…… : From Sprint goal to Sprint Backlog…… Scrum team takes the Sprint Goal and decides what tasks are necessary
Team self-organizes around how they’ll meet the Sprint Goal
Manager doesn’t assign tasks to individuals
Managers don’t make decisions for the team
Sprint Backlog is created
Sprint backlog during the sprint… : Sprint backlog during the sprint… Changes
Team adds new tasks whenever they need to in order to meet the Sprint Goal
Team can remove unnecessary tasks
But: Sprint Backlog can only be updated by the team
Estimates are updated whenever there’s new information
Sprint Backlog… : Sprint Backlog… A subset of Product Backlog Items, which define the work for a Sprint
Is created ONLY by Team members
Each Item has it’s own status
Should be updated every day
No more than 300 tasks in the list
If a task requires more than 16 hours, it should be broken down
Team can add or subtract items from the list. Product Owner is not allowed to do it
Sprint Backlog… : Sprint Backlog…
Scalability of Scrum… : Scalability of Scrum…
Product Backlog… : Product Backlog… A list of all desired work on the project
Usually a combination of
story-based work (“let user search and replace”)
task-based work (“improve exception handling”)
List is prioritized by the Product Owner
Typically a Product Manager, Marketing, Internal Customer, etc.
Product Backlog… : Product Backlog… Requirements for a system, expressed as a prioritized list of Backlog Items
Is managed and owned by a Product Owner
Spreadsheet (typically)
Usually is created during the Sprint Planning Meeting
Can be changed and re-prioritized before each PM
Sample Product Backlog… : Sample Product Backlog…
Pros/Cons… : 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
Slide 37 : Sequential vs. Overlapping Dev. Requirements Design Code Test
Questions and Answer…..? : Questions and Answer…..?
Slide 39 : WISHING YOU A HAPPY AND PROSPEROUS NEW YEAR..
Slide 40 :