agile practices and benefits

36
Agile Practices and Benefits For Northern Developer Network By Rich Stone and Peter Schuh 1

Upload: richard-stone

Post on 18-Jul-2015

124 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Agile practices and benefits

Agile Practices and Benefits

For Northern Developer Network

By Rich Stone and Peter Schuh

1

Page 2: Agile practices and benefits

Agile

• ag·ile (aj-uhl, -ahyl)adj.

– 1. Characterized by quickness, lightness, and ease of movement; nimble.

– 2. Mentally quick or alert: an agile mind.

2

Page 3: Agile practices and benefits

Agile Manifesto

• Individuals and interactions over processes and tools

• Working software over comprehensive documentation

• Customer collaboration over contract negotiation

• Responding to change over following a plan

3

Page 4: Agile practices and benefits

Agile Software Development

• An iterative and incremental (evolutionary) approach to software development

• which is performed in a highly collaborative manner

• by self-organizing teams within an effective governance framework

• with "just enough" ceremony

• that produces high quality solutions

• in a cost effective and timely manner

• which meets the changing needs of its stakeholders.

4

Page 5: Agile practices and benefits

Agile Methodology?

5

XP, SCRUM, FDD, DSDM, Crystal Clear – are all agile “process frameworks” – that recommend a group of related practices.

All come from a consulting mind-set, and all have fairly prescriptive approaches – rather than value selected approaches – so they look like a consultant with a methodology. Not that they don’t add value, but is it the value you need? Only you can decide that.

Page 6: Agile practices and benefits

Why Agile?

More Value, Higher Quality, Less Risk, More Predictable,

and yes, More Productive

6

Page 7: Agile practices and benefits

Simply Agile

• Recognize that value is a more important driver for software asset creation than schedule or cost.

• Admit that we don’t/can’t know everything needed to get done before you start so details can emerge.

• Decentralize decision making to empower the product team as much as possible, flattening team structures, replacing command and control with intense collaboration.

• Exercise all your skill areas concurrently to increase information flow (for the software development system) by shortening all feedback loops.

• Build, Borrow, Buy automation tooling to make things easier, faster, more reliable.

7

Page 8: Agile practices and benefits

Agile Buzzword Bingo?

First one to get four in a row wins a cheeseburger!

8

Page 9: Agile practices and benefits

Agile Practices

• We have a list of practices and a bingo card.

• We are going to walk through a list of practices that are common and valuable.

• If you are on a team that is doing the practice now, put a chip on your card.

• If you are not sure if you are doing it, ask.

• Questions are valuable – ask away.

9

Page 10: Agile practices and benefits

Iteration Zero

Spend a time box to put delivery infrastructure and product backlog in place (dev environment, test environment, test and build automation, user stories, mockups, etc)

Think of it as build a road before we drive the car.

Improves Predictability

10

Page 11: Agile practices and benefits

Continuous Integration

Integrating small bits of completed functionality into the team codebase many times a day, and using manual or automated process to ensure that the codebase is clean after each check-in.

Continuous integration aims to improve the quality, and to reduce time to deliver, by replacing the practice of applying quality control to larger deliverables.

Increases Quality, Reduces Risk

11

Page 12: Agile practices and benefits

Walking Skeleton

A Walking Skeleton is a tiny implementation of the system that performs a small end-to-end function.

It need not use the final architecture, but it should link together the main architectural components.

The architecture and the functionality can then evolve in parallel.

Improves Productivity, Reduces Risk

12

Page 13: Agile practices and benefits

Test Driven Development

Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle:

first the developer writes a failing automated test case that defines a desired improvement or new function,

then produces code to pass that test and finally refactors the new code to acceptable standards.

Improves Quality, Reduces Risk

13

Page 14: Agile practices and benefits

Automated Unit Testing

A systemic suite of tests, coded by individual developers to test at the method level, based on restorable data, run after each successful build, to provide immediate feedback on any new code added to the system.

Improves Productivity, Quality

Reduces Risk

14

Page 15: Agile practices and benefits

Simple Design

This is an extension of YAGNI and satisficing (good enough) design concepts.

Don't design for the ultimate scenario, or anticipate future needs, design only what is needed for the current story/requirement.

Works best when used with other practices including continuous integration, automated build, refactoring, etc.

Improves Productivity, Value Delivery

15

Page 16: Agile practices and benefits

Acceptance Testing

Write tests for each story (requirement) before development (for that story) is complete.

Acceptance tests are defined by the customer as the acceptance criteria for the story. Performed as each story is completed, rather than at the end of a time box or immediately prior to release.

Improves Quality, Reduces Risk

16

Page 17: Agile practices and benefits

Co-located Team

Seating the entire team in an open-space environment where conversation can be overheard, design and analysis sessions organically emerge, questions can be answered without anyone leaving their chair.

Improves Productivity, Quality

17

Page 18: Agile practices and benefits

Incremental Releases

Release product to production as soon as you have something of value, rather than waiting for the entire scope of value to be complete.

Moves the flow of information about value back to product team and product owner as early as possible.

Improve Value Delivery, Reduce Risk

18

Page 19: Agile practices and benefits

Product Backlog

Sequenced list of features or stories that have value and effort estimates associated with them.

Used in all planning exercises

Increases Value Delivery

19

Page 20: Agile practices and benefits

Emergent Requirements

Any requirements method that acknowledges that we don't know everything “up front”.

Starting with what we know, and expecting to learn more through design, development and feedback from customers.

Yield requirements that are independent and can be sequenced.

Improves Value, Productivity

20

Page 21: Agile practices and benefits

Emergent Planning

A form of planning, where one works top down, identifying large chunks of work and estimates in gross to form a baseline schedule, then takes a shorter window of time to “elaborate” the plan in more detail (focusing on the near-term deliverables), and continues over time.

Improves Predictability, Reduces Risk

21

Page 22: Agile practices and benefits

Time Boxing

The time box (iteration, sprint) is the feedback or measurement cycle of your project.

By choosing short time boxes, you increase the information flowing into your development process, so that genuine process improvement can result.

Requires planning through sequencing and team commitment of deliverables.

Improve Productivity, Predictability, Reduces Risk

22

Page 23: Agile practices and benefits

Planning Game

Making sequencing (a form of prioritization) of stories or features into a game.

Designed to reduce emotions in planning.

Goal: put the greatest possible value into production over the life of the game.

Improves Value Delivery

23

Page 24: Agile practices and benefits

Retrospective

In agile development retrospectives play a very important role in iterative and incremental development. At the end of every time box a retrospective is held to look for ways to improve the process for the next time box.

Improve Productivity, Reduce Risk

24

Page 25: Agile practices and benefits

Burn-up/down Chart

A bar chart, or line graph, showing the passage of time on the X axis, and the remaining work estimate on the vertical axis.

Useful for determining if the team is burning work, according to a pre-determined schedule or commitment (like within a time box)

Improves Predictability

25

Page 26: Agile practices and benefits

Other Practices

• The following practices were weeded out, solely on the basis of our need to restrict the size of the BINGO card.

• Just sayin’

26

Page 27: Agile practices and benefits

Blitz Planning

A single planning activity, attended by members across the project, that can produce a draft product backlog, release plan, and sequencing.

Improves Predictability

27

Page 28: Agile practices and benefits

Refactoring

Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure.

When developers encounter unnecessary complexity in the area of code they are working on, they can simplify and clean the code, thereby paying down technical debt.

Improves Quality, Reduces Risk

28

Page 29: Agile practices and benefits

Automated Deployment

Automated deployment of a build to a user-configured environment (for example: DEV, QA, STAGE, PROD) enables early testing of the system in production-like environments and drastically reduces the possibility for migration-based errors.

Reduces Risk

29

Page 30: Agile practices and benefits

Solution Sheets

A simplified analysis document that articulates the essential requirements, business logic and/or design of a user story prior to its development.

Improves Predictability

30

Page 31: Agile practices and benefits

Kanban Board

A visual, work queue-based approach to planning and tracking that:

(1) puts the team's value stream at the center of the development process and

(2) easily communicates prioritization and ongoing activity across the team and its stakeholders.

Improves Productivity, Value Delivery

31

Page 32: Agile practices and benefits

Effort Estimates

Estimating effort instead of duration:

- not when will I have this done, but how much of my time will I spend on this specific work.

- allows work to be split across team members, and estimates to calculate mathematically.

- allows the development of a cost estimate and a schedule

Improves Predictability, Reduces Risk

32

Page 33: Agile practices and benefits

On Site Customer

A practice that engenders a highly-collaborative environment with speedy turn-around times, constant adjustment to user-driven feedback and low documentation. It costs the dedication of a "super user" and the co-location of that individual with the delivery team.

Improves Productivity, Value Delivery

33

Page 34: Agile practices and benefits

User Stories

A lightweight, INVEST-based approach to project features/requirements, making them Independent, Negotiable, Valuable, Estimatable, Small, Testable.

Improves Value, Productivity

34

Page 35: Agile practices and benefits

Daily Stand

A brief daily whole team meeting (15 min or less) focused on a simplified status of work in progress or recently completed.

Helps to identify issues and obstacles, before any commitments are impacted.

Improves Productivity, Reduces Risk

35

Page 36: Agile practices and benefits

Thank You

Thanks for playing along.

We hope that you were able to glean some valuable nuggets of information.

We hope that you will consider adopting/adapting some of the practices presented here for your team’s benefit.

The spreadsheet attached to the invite also has links to external (to Northern) information resources regarding Agile Practices

36