Top Banner
AGILE PRACTICES @andreaprovaglio WHAT I DO I help IT organizations to find and implement better ways of doing business. I coach teams and individuals who want to improve technically and relationally. In 20+ years in IT, I had clients in three continents and a U.S. work visa for “extraordinary abilities in Sciences”. WHAT WE’LL TALK ABOUT Basic Practices Delivering by Iterations Developing Just-in-time Testing 1 2 3
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: Ag02   agile practices - dnc14 handouts

AGILE PRACTICES@andreaprovaglio

WHAT I DO

I help IT organizations to find and implement better ways of doing business.

I coach teams and individuals who want to improve technically and relationally.

In 20+ years in IT, I had clients in three continents and a U.S. work visa for “extraordinary abilities in Sciences”.

WHAT WE’LL TALK ABOUT

• Basic Practices

• Delivering by Iterations

• Developing Just-in-time

• Testing

1

2

3

Page 2: Ag02   agile practices - dnc14 handouts

BASIC PRACTICES

Agile Founding Blocks

Retrospectives

Stand-up MeetingContinuous Integration

Test-driven Development

Pair ProgrammingShort Iterations

Some may be prescribed. All are designed to support each other.

Refactoring

Cross-functional Teams

Iterative Development

http://www.photos4travel.com/travel-guides/rome

Was this built from a huge pile of specs?

High-value Requirements Deployment

Short Iterations (can be timeboxed)

Analysis & Planning

ImplementationTesting

Evaluation

4

5

6

Page 3: Ag02   agile practices - dnc14 handouts

Task Boards

http://leansoftwareengineering.com/2007/10/27/kanban-bootstrap/

Physical or Virtual?

Large Information Radiators

Cross-functional Teams

http://leansoftwareengineering.com/2007/10/27/kanban-bootstrap/

Stand-up Meetings

http://robertryanpmp.com

•Short (15 mins)•Remove Impediments•Align the team•Makes daily activities more

effective

7

8

9

Page 4: Ag02   agile practices - dnc14 handouts

Retrospectives

A core Agile Practice: team stops and reflects on how to improve

Takes experience to get it right. (Tip: have an external facilitator at first)

Running RetrospectivesRetrospective

Open Data

Insights

Actions

Close

Iteration

Improvements

Development Meeting

Product IncrementsAdapted from “Agile Retrospectives” by Derby & Larsen

Pair Programming

http://www.prospeed-elite.co.ukhttp://www.prospeed-elite.co.uk

• “If two developers in front of a computer are half as

productive, why don’t you put one developer in front

of two computers?” -- Jurgen Appelo• Tip: Google for video by Niclas Nilsson & Hans

Brattberg

10

11

12

Page 5: Ag02   agile practices - dnc14 handouts

DELIVERING BY ITERATIONS

Scrum Process

http://en.wikipedia.org/wiki/File:Scrum_process.svg

User Stories

http://caernarfonandchepstow.blogspot.com/

As a Student I want to buy a parking pass so that I can drive to school.

Priority: MediumEstimate: 4

(adapted example by Scott Ambler)

Tests:* the buyer must be a currently enrolled student

* the buyer will receive a pass only if payment is sufficient

* the student may buy only one pass per month

13

14

15

Page 6: Ag02   agile practices - dnc14 handouts

Scrum Roles

Product OwnerScrum Master

“The Team”(cross-functional)

Scrum ProjectPO: Represents the business vision and needsSM: Guarantees the process, removes impedimentsTechs: Implement the product, have all the required expertise

Interactions of the Scrum RolesStuff You Build

What

How

Quick but unsustainable wins

Wrong Thing

Wrong Way Right Way

Right Thing

Fast FailureSlow Failure

PO and SM work to ensure that we build the Right Thing in the Right Way

Market,Users

PO

SMTeam

Backlogs(Product and Sprint)

Enduring Success

What/How diagram adapted from “Agile Product Management with Scrum” by Roman Pichler

Scrum Working Agreements

• The Team (not the single individuals) commits to deliver the agreed upon, potentially shippable units of code at the end of the Sprint

• The Business commits to leaving the Team undisturbed for the length of the Sprint (i.e. Sprints cannot be changed, only aborted)

16

17

18

Page 7: Ag02   agile practices - dnc14 handouts

Scrum Rhythms and CeremoniesStrategy

Release

Sprint

Daily

Continuous Integration

Adapted from the “Agile Poster” by VersionOne

Start: Release Planning MeetingEnd: Demo and RetrospectiveCadence: Months

Start: Sprint Planning MeetingEnd: Demo and RetrospectiveCadence: Weeks

Stand-up MeetingCadence: Daily

Metrics: Velocity

http://elegantcode.com/

A planning tool based on historical data. Represents the Team’s productive capacity (story points per Sprint)

Metrics: Burndown Charts

http://www.infoq.com/articles/agile-kanban-boards

Release BurndownSprint Burndown

http://lookforwardconsulting.com/

Both display progress vs. work still to complete.

19

20

21

Page 8: Ag02   agile practices - dnc14 handouts

PUSH VS. PULL

Just-inTime ProductionSW features are like bananas:• They get stale (lose their business

value after a while)• Inventory, Overproduction and

Waiting should ideally be kept to the minimum

A Kanban Pull System

Stuff To Do(Backlog)

Kanban System

Stuff Produced

Items are PULLED into the system when there is

capacity.

<--- Lead Time --->

• System visualizes the actual workflow

• Each stage has its WIP limit

22

23

24

Page 9: Ag02   agile practices - dnc14 handouts

Kanban Key Points

• Visualize the real workflow• Use a Kanban board with columns for the different stages (swim

lanes and sub-colons for more complex flows)• Split work into units and use cards to represent them

• Limit the Work-in-Progress (WIP)• Measure the Lead Time• Optimize the workflow for maximum throughput

A Digital Kanban Board

http://www.targetprocess.com/Product/agile_tour/Kanban.aspx

A Digital Kanban Board

http://www.targetprocess.com/Product/agile_tour/Kanban.aspx

Iterations or JIT?

25

26

27

Page 10: Ag02   agile practices - dnc14 handouts

QA AND TESTING

Main Testing LevelsAcceptance Test

“Does the system work as users expect?”

Integration Test“Does our code work against code that we cannot change?”

Unit Test“Do our objects do the right thing? Are they convenient to work with?”

Developers

“Does our code work against code that we cannot Developers

Business

http://angeles.sierraclub.org/skimt/trips/grandcyn07/grand-14.htm

The Testing Pyramid

Place as many tests as low as you can.

Manual

End-to-End

Integration

Unit

28

29

30

Page 11: Ag02   agile practices - dnc14 handouts

Behavior-Driven Development

Using examples, scenarios and conversations to illustrate behavior

http:// lizkeogh.com

!"#"$

%&

'$()&

*(+(,")"-.&

/0(-120&

3-$2.&

340%

(2"$&

*$50

&

!"#"$

%&!"#"$

%&!"#"$

%&

'$()&

*(+(,")"-.&

/0(-120&

3-$2.&

340%

(2"$&

*$50

&*$

50&

*$50

&

!""#

"%,%-).%*&#

"%-12%*30%#"1&4),%*5#&+1--&

/%&0%*&

http:// lizkeogh.com

"%,%-).%*&

"%-12%*30%#"1&4),%*5#&+1--&

/%&0%*&/%&0%*&

!"#$%&'($)&*+,&-./0*1&+&2"3(.4+#$5%)&1*$&2"3(.4+#$&3.,1&67885%)&1*$&2"3(.4+#$&4+,&.%&789&)",3./%1:*$%&4$&($;/%)&1*$&2"3(.4+#$<*$%&'($)&!"#$%&'-$&($;/%)$)&6=8>

Test-Driven Development

• A test-first approach• Improves overall quality• Makes changes easier

(programmers are more confident)• Simple designs evolve over

time• Testing single units of code

creates better architectures

Continuous IntegrationAn automated, continuous process for quality control.

http://www.javaworld.com/javaworld/jw-06-2007/jw-06-awci.html

Automaticunit testing, regression testing, integration

Lots of CI tools: CruiseControl, TeamCity, Team Foundation Server, etc.

31

32

33

Page 12: Ag02   agile practices - dnc14 handouts

THANK YOU!

LinkedIn Twitter Slideshare

http:// andreaprovaglio.com

Also on:

QUESTIONS?

34

35