Baby Steps To Agility

25
Baby Steps to Agility How to Grow Into Agile

description

Agile software development methodology is sweeping the IT Industry. Many organizations are experimenting with Agility and there are many “brands” of Agile including Scrum, XP, Lean, Crystal Clear and DSDM. Adoption of one of these methodologies could be wholesale in the case of a small well defined project that has no dependencies on other projects and can be completely delivered by a trained and motivated team. As these types of adoptions are rare organizations are looking for ways to ease into Agile practices without losing productivity.This session is designed to discuss and identify ways that agile enablers can facilitate the transition to Agile practices. Participants learn basic Agile practices as well as techniques for introducing them to the software delivery team. This session will present common software delivery problems and the Agile path to solutions.

Transcript of Baby Steps To Agility

Page 1: Baby Steps To Agility

Baby Steps to Agility

How to Grow Into Agile

Page 2: Baby Steps To Agility

• A little about me

• A little about Agile

• Growing into Agile

• Questions

Goals

Page 3: Baby Steps To Agility

About me

• I want to deliver great software.

• Almost 20 years experience in software

• Experience managing a 200+ person program

• Using Agile Methods since 2000.

• Agile is a better way.

Page 4: Baby Steps To Agility

The Agile Manifesto

Agile Prefers1. Individuals and interactions

2. Working Software

3. Customer collaboration

4. Responding to change

Over1. Processes and tools

2. Comprehensive documentation

3. Contract negotiation

4. Following the plan

Page 5: Baby Steps To Agility

12 Agile Principles1. Our highest priority is to satisfy the

customerthrough early and continuous deliveryof valuable software.

2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

4. Business people and developers must work together daily throughout the project.

5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

7. Working software is the primary measure of progress.

8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

9. Continuous attention to technical excellence and good design enhances agility.

10. Simplicity--the art of maximizing the amount of work not done--is essential.

11. The best architectures, requirements, and designs emerge from self-organizing teams.

12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Page 6: Baby Steps To Agility

• Sitting up – Why Change?

• Starting to Crawl - Pick Change

• First Steps - Team focus and “buy-in”

• Speaking in Sentences - Agile Reporting

• Patience – Continuing to Change

Practice Development Milestones

Page 7: Baby Steps To Agility

• Define the current state

• Identify the problems

• Write down the reasons for Change

Sitting Up

Page 8: Baby Steps To Agility

• Product Company– Patches and Upgrades

• Internal IT– Point Solutions

• Professional Services– Working Software Quickly

How Does “The Business” Work

Page 9: Baby Steps To Agility

• We don’t know when we are done.

• We test functionality and it is not working in the build we give to the customer.

• Our customer is constantly changing his mind.

• How is this software supporting “the business”?

Some Problems

Page 10: Baby Steps To Agility

1. We are only going to work on things that are important to our customers.

2. We can guarantee delivery of the product on time with known quality.

3. We can clearly define what is in a release and what is not in a release.

4. We can report the outcome of our testing to a customer.

5. We can deliver important customer issues outside of a release.

How is this going to help us?

Page 11: Baby Steps To Agility

• Build of the system that includes installation packages and automated test.

• Iterative process for delivering.

• Complete Tickets

Starting to Crawl

Page 12: Baby Steps To Agility

• Build

• Test

• Report

What does the Build look like?

Page 13: Baby Steps To Agility

What does Iterative Development look like?Ticket

TicketBa

cklo

g

Ticket Prioritiztion

Development Iteration 1 (2 weeks)

Development Iteration 2 (2 weeks)

Development Iteration 3 (2 weeks)

Regression Iteration

(2 weeks)

Ticket Regression Iteration 1

Ticket Regression Iteration 2

Release CandidateIteration 1

Release CandidateIteration

1 & 2

Release

Completed Tickets

Incomplete Tickets

Completed Tickets

Incomplete Tickets

Completed Tickets

Incomplete Tickets

Page 14: Baby Steps To Agility

When is a Ticket Done

• Replication of the issue or Requirements• Analysis and Review of Solution• Test Cases• Unit test• Implementation• Code Review• Verification• Documentation• Release for System Integration.

Page 15: Baby Steps To Agility

• Have the Team Define Solution

• Spend Time in a Dark Room with Power Point

• Close the Feedback Loop

First Steps

Page 16: Baby Steps To Agility

Ticket process as defined by Team

Replica of Customer

Environment for Testing

Replica of Customer

Environment for Dev

Incoming Ticket

Propose Solution

Solution Approved External to Dev

Create Automated

Acceptance Test

Design Review by R&D

Write Automated Unit Test

Implement Solution

Code Review Clean Build

Run Test

Quarterly Release

Automated Release Process

Paycheck $$$

Review Process and Improve

Pass

Fail TestQA

Dev

Page 17: Baby Steps To Agility

What is Agile Development?

1. Agile is a broad set of principles for delivering software

2. Agile is based on the concept of teams delivering software where the business people are part of that team.

3. The same principals of ISO Standards and CMM are captured in Agile development practices.

Page 18: Baby Steps To Agility

What Agile is not.

1. Agile is not a rigid set of instructions.

2. Agile is not a silver bullet.

3. Agile is not anti-documentation.

Page 19: Baby Steps To Agility

• Team Retrospective

• Management Retrospective

• Reporting on Actions

Circle the Ideas

Page 20: Baby Steps To Agility

• Agile Performance Indicators

• Define a Point

• Quality

Speaking in Sentences

Page 21: Baby Steps To Agility

• Velocity – How fast are we going?• Capacity – How much can we do?• Burn up / down - When are we going to finish?• Backlog – How much is there to do?• Burn rate – How much does it cost?• Progress – How are we doing on initiatives?

Agile Performance Indicators

Page 22: Baby Steps To Agility

Define a Point

Page 23: Baby Steps To Agility

Quality Pyramid

Individual Tickets – peer review, unit test, verification(daily)

Iteration integration and component level testing (bi-weekly)

Release Regression Testing(quarterly)

Page 24: Baby Steps To Agility

Patience

Page 25: Baby Steps To Agility

Questions