Top Banner
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
12
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Agile

Agile Definition

• Agile is an incremental, iterative approach to delivering high quality software with frequestdeliveries 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

Page 2: Agile

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

Page 3: Agile

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

Page 4: Agile

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

Page 5: Agile

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

Page 6: Agile

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

Page 7: Agile

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

Page 8: Agile

Roles

Architecture OwnerArchitecture 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 MentorThe 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

Page 9: Agile

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

Page 10: Agile

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

Page 11: Agile

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

Page 12: Agile

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