SlideShare a Scribd company logo
Agile Definition
• Agile is an incremental, iterative approach to
delivering high quality software with frequest
deliveries to ensure value throughout the
process. It places high value on individuals,
collaboration, and the ability to respond to
change.
CAID, National Informatics Center 1
Traditional Models
• Waterfall Model
• Whole task of software development is broken into 6 phases and executed in sequential
manner.
• Problems
 Scheduled Risk
 Limited Flexibility
 Reduced Customer Involvement
• Spiral Model
 Considered a light weight development model, because product is developed through a
series of iterations, where a prototype of product is delivered at end of each iteration.
 Uses prototyping and incremental delivery process to manage project risk.
 Designed to be especially effective for systems that had a high level of uncertainty
around what exactly needed to be built .(In short, requirement are not clear.)
CAID, National Informatics Center 2
Introduction to Agile
• In February of 2001, agile methodology came into picture, which gave emphasis on
creating a model in which each iteration in the development cycle “learned” from
the previous iteration.
• Manifesto for Agile Software Development
– Individuals and Interactions over processes and tools.
– Working Software over comprehensive documentation.
– Customer Collaboration over contract negotiation.
– Responding to change over following a plan.
CAID, National Informatics Center 3
12 Core principles of Agile
methodology
• The highest priority is to satisfy the customer through early and continuous delivery of
valuable software.
• Welcome changing requirements, even late in development. Agile processes harness
change for the customer’s competitive advantage.
• Deliver working software frequently, with a preference to shorter timescale.
• Business people and developers must work together daily throughout the project.
• Build projects around motivated individuals. Give them the environment and support
they need and trust them to get the job done.
• The most efficient and effective method of conveying information to and within a
development team is face to face conversation.
• Working software is the primary measure of progress.
• Agile processes promotes sustainable development.
• Continuous attention to technical excellence and good design enhances agility.
• Simplicity
• Self organizing teams
• At regular intervals, the team reflects on how to be more effective.
CAID, National Informatics Center 4
Understanding Agile Roles
• Agile deemphasizes specialized roles and considers all team members equal – everyone
works to deliver a solution regardless of their job.
• With the exception of stackholder, everyone’s effectively in the role of team member.
• Being A StackHolder-
• A stackholder is someone who’s financially impacted by the outcome of the solution
and clearly more than an end user.
 Direct or indirect user
 IT Manager
 Owner who funds the project
 Developers working on others systems that integrate/interact with the one under development.
• The Product Owner
• The product owner is the team member who speaks as the “one voice of the
customer”. This person represents the needs and desires of the stackholder community
to the agile delivery team.
• Is responsible for maintaining a prioritized list of work items that the team will
implement to deliver the solution.
CAID, National Informatics Center 5
Roles of Product Owner
• Communicate the project status and represents the work of the agile team to key
stackholders.
• Develops strategy and direction for the project and sets long and short term goals.
• Understands and conveys the customer’s and other business stakeholder’s needs
to the development team.
• Gathers, prioritizes and manages product requirements.
• Directs the product’s budget and profitability.
• Chooses the release date for completed functionality.
• Answers questions and makes decisions with the development team.
• Accepts or rejects completed work during the sprint.
• Presents the team’s accomplishments at the end of each iteration.
CAID, National Informatics Center 6
Roles
Team Member
• The role of team member focuses on producing the actual solution for
stakeholders. Team members perform testing, analysis, architecture, design ,
programming , planning, estimation and many more activities as appropriate
throughout the project.
• Note every team member has every single skill but they have a subset of them and
strive to gain more skills over time.
Team Lead
• Team lead an agile coach who helps keeps the team focused on delivering work
items and fulfilling its iteration goals and commitments to the product owner.
• The team lead facilitates communication, empowers the team to self optimize its
processes , ensures that the team has the resources it needs, and manages issue
resolution in a timely manner.
CAID, National Informatics Center 7
Roles
Architecture Owner
Architecture is the key source of project risk and someone has to be responsible for
ensuring the team mitigates this risk.
The architecture owner is the person who owns that architecture decisions for the team
and who facilitates the creation and evolution of the overall solution design.
Setting up an Agile Mentor
The agile mentor, sometimes called agile coach, implements agile projects and shares that
experience with a project team. He provides valuable feedback and advice to new project
teams and to project teams that want to perform at a higher level.
Agile Secondary Roles
Domain Expert
Specialist
Technical Expert
Independent Tester
Integrator
CAID, National Informatics Center 8
How Agile Actually Works: Steps
• How the agile team organizes the software development process?
– Everything the stakeholder want in their software is broken down into
small chunks, ranked, worked on in priority order over short
iterations(1-4 weeks), reviewed for approval, and delivered to
production. This process repeats until the prioritized list is finished,
called a release.
• Agile Planning
Involves scheduling the work to be done during an iteration or release
and assigning individual work items to members of the team.
Planning occurs at three levels
 Release Planning
 Iteration Planning
 Daily Planning
CAID, National Informatics Center 9
How Agile Actually Works: Steps
• Attending the Daily Coordination Meeting
• Creating User Stories
• Estimating your work
• Tracking Velocity
• Measuring Progress with Burndown Reports
• Test Driven Development
• Continuous Integration and Development
• Presenting Results at the Iteration Review
• Collecting Feedback in the Iteration Review Meeting
• Learning and improving at the Iteration Retrospective
CAID, National Informatics Center 10
Scrum: Organizing Construction
Scrum is the most popular approach to agile software development.
With the approach, any adjustments the development team makes to any
aspect of the project is based on experience, not theory.
Scrum provides four deliverables:
• Product Backlog
• Sprint Backlog
• Burndown Chart
• Shippable functionality
CAID, National Informatics Center 11
XP: Putting the Customer First
• The Focus of Extreme programming (XP) is customer satisfaction.
• XP teams achieve high customer satisfaction by developing features when customer
needs them. New requests are part of development team’s daily routine, and the team
must deal with requests whenever they crop up. The followings are XP Practices:
• Coding standard
• Collective Ownership
• Continuous Integration
• Test Driven Development (TDD)
• Customer Tests
• Refactoring
• Pair Programming
• Planning Game
• Simple Design
• Small Releases
• Sustainable Pace
• Whole Team
CAID, National Informatics Center 12

More Related Content

Agile

  • 1. Agile Definition • Agile is an incremental, iterative approach to delivering high quality software with frequest deliveries to ensure value throughout the process. It places high value on individuals, collaboration, and the ability to respond to change. CAID, National Informatics Center 1
  • 2. Traditional Models • Waterfall Model • Whole task of software development is broken into 6 phases and executed in sequential manner. • Problems  Scheduled Risk  Limited Flexibility  Reduced Customer Involvement • Spiral Model  Considered a light weight development model, because product is developed through a series of iterations, where a prototype of product is delivered at end of each iteration.  Uses prototyping and incremental delivery process to manage project risk.  Designed to be especially effective for systems that had a high level of uncertainty around what exactly needed to be built .(In short, requirement are not clear.) CAID, National Informatics Center 2
  • 3. Introduction to Agile • In February of 2001, agile methodology came into picture, which gave emphasis on creating a model in which each iteration in the development cycle “learned” from the previous iteration. • Manifesto for Agile Software Development – Individuals and Interactions over processes and tools. – Working Software over comprehensive documentation. – Customer Collaboration over contract negotiation. – Responding to change over following a plan. CAID, National Informatics Center 3
  • 4. 12 Core principles of Agile methodology • The highest priority is to satisfy the customer through early and continuous delivery of valuable software. • Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. • Deliver working software frequently, with a preference to shorter timescale. • Business people and developers must work together daily throughout the project. • Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done. • The most efficient and effective method of conveying information to and within a development team is face to face conversation. • Working software is the primary measure of progress. • Agile processes promotes sustainable development. • Continuous attention to technical excellence and good design enhances agility. • Simplicity • Self organizing teams • At regular intervals, the team reflects on how to be more effective. CAID, National Informatics Center 4
  • 5. Understanding Agile Roles • Agile deemphasizes specialized roles and considers all team members equal – everyone works to deliver a solution regardless of their job. • With the exception of stackholder, everyone’s effectively in the role of team member. • Being A StackHolder- • A stackholder is someone who’s financially impacted by the outcome of the solution and clearly more than an end user.  Direct or indirect user  IT Manager  Owner who funds the project  Developers working on others systems that integrate/interact with the one under development. • The Product Owner • The product owner is the team member who speaks as the “one voice of the customer”. This person represents the needs and desires of the stackholder community to the agile delivery team. • Is responsible for maintaining a prioritized list of work items that the team will implement to deliver the solution. CAID, National Informatics Center 5
  • 6. Roles of Product Owner • Communicate the project status and represents the work of the agile team to key stackholders. • Develops strategy and direction for the project and sets long and short term goals. • Understands and conveys the customer’s and other business stakeholder’s needs to the development team. • Gathers, prioritizes and manages product requirements. • Directs the product’s budget and profitability. • Chooses the release date for completed functionality. • Answers questions and makes decisions with the development team. • Accepts or rejects completed work during the sprint. • Presents the team’s accomplishments at the end of each iteration. CAID, National Informatics Center 6
  • 7. Roles Team Member • The role of team member focuses on producing the actual solution for stakeholders. Team members perform testing, analysis, architecture, design , programming , planning, estimation and many more activities as appropriate throughout the project. • Note every team member has every single skill but they have a subset of them and strive to gain more skills over time. Team Lead • Team lead an agile coach who helps keeps the team focused on delivering work items and fulfilling its iteration goals and commitments to the product owner. • The team lead facilitates communication, empowers the team to self optimize its processes , ensures that the team has the resources it needs, and manages issue resolution in a timely manner. CAID, National Informatics Center 7
  • 8. Roles Architecture Owner Architecture is the key source of project risk and someone has to be responsible for ensuring the team mitigates this risk. The architecture owner is the person who owns that architecture decisions for the team and who facilitates the creation and evolution of the overall solution design. Setting up an Agile Mentor The agile mentor, sometimes called agile coach, implements agile projects and shares that experience with a project team. He provides valuable feedback and advice to new project teams and to project teams that want to perform at a higher level. Agile Secondary Roles Domain Expert Specialist Technical Expert Independent Tester Integrator CAID, National Informatics Center 8
  • 9. How Agile Actually Works: Steps • How the agile team organizes the software development process? – Everything the stakeholder want in their software is broken down into small chunks, ranked, worked on in priority order over short iterations(1-4 weeks), reviewed for approval, and delivered to production. This process repeats until the prioritized list is finished, called a release. • Agile Planning Involves scheduling the work to be done during an iteration or release and assigning individual work items to members of the team. Planning occurs at three levels  Release Planning  Iteration Planning  Daily Planning CAID, National Informatics Center 9
  • 10. How Agile Actually Works: Steps • Attending the Daily Coordination Meeting • Creating User Stories • Estimating your work • Tracking Velocity • Measuring Progress with Burndown Reports • Test Driven Development • Continuous Integration and Development • Presenting Results at the Iteration Review • Collecting Feedback in the Iteration Review Meeting • Learning and improving at the Iteration Retrospective CAID, National Informatics Center 10
  • 11. Scrum: Organizing Construction Scrum is the most popular approach to agile software development. With the approach, any adjustments the development team makes to any aspect of the project is based on experience, not theory. Scrum provides four deliverables: • Product Backlog • Sprint Backlog • Burndown Chart • Shippable functionality CAID, National Informatics Center 11
  • 12. XP: Putting the Customer First • The Focus of Extreme programming (XP) is customer satisfaction. • XP teams achieve high customer satisfaction by developing features when customer needs them. New requests are part of development team’s daily routine, and the team must deal with requests whenever they crop up. The followings are XP Practices: • Coding standard • Collective Ownership • Continuous Integration • Test Driven Development (TDD) • Customer Tests • Refactoring • Pair Programming • Planning Game • Simple Design • Small Releases • Sustainable Pace • Whole Team CAID, National Informatics Center 12