Baby Steps To Agility

Preview:

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.

Citation preview

Baby Steps to Agility

How to Grow Into Agile

• A little about me

• A little about Agile

• Growing into Agile

• Questions

Goals

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.

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

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.

• 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

• Define the current state

• Identify the problems

• Write down the reasons for Change

Sitting Up

• Product Company– Patches and Upgrades

• Internal IT– Point Solutions

• Professional Services– Working Software Quickly

How Does “The Business” Work

• 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

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?

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

• Iterative process for delivering.

• Complete Tickets

Starting to Crawl

• Build

• Test

• Report

What does the Build look like?

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

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.

• Have the Team Define Solution

• Spend Time in a Dark Room with Power Point

• Close the Feedback Loop

First Steps

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

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.

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.

• Team Retrospective

• Management Retrospective

• Reporting on Actions

Circle the Ideas

• Agile Performance Indicators

• Define a Point

• Quality

Speaking in Sentences

• 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

Define a Point

Quality Pyramid

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

Iteration integration and component level testing (bi-weekly)

Release Regression Testing(quarterly)

Patience

Questions