lean mean & agile 2009

41
Lean, Mean, & Agile Agile 2009 Conference Report Harold Shinsato - October 8, 2009

Upload: harold-shinsato

Post on 06-Nov-2014

1.303 views

Category:

Technology


0 download

DESCRIPTION

Conference report after attending Agile 2009 in Chicago.

TRANSCRIPT

Page 1: Lean Mean & Agile 2009

Lean, Mean, & AgileAgile 2009 Conference Report

Harold Shinsato - October 8, 2009

Page 2: Lean Mean & Agile 2009

YesPower

IntegrityChallengeStrengthCourageWinning

NoViolence

ArroganceEtc.

Page 3: Lean Mean & Agile 2009

Truth, Beauty, Fun

Challenge

Page 4: Lean Mean & Agile 2009

Agile

Page 5: Lean Mean & Agile 2009

Agile Scrum & XP

Page 6: Lean Mean & Agile 2009

Lean 5 Steps

Page 7: Lean Mean & Agile 2009

Lean Software Development

Page 8: Lean Mean & Agile 2009
Page 9: Lean Mean & Agile 2009

A little history

• agilemanifesto.org - February 2001

• Programmers tired of bureaucracy

• lean.org - Toyota Post WWII

• Few customers

• Had to remove waste

• Scrum Conference + XP Conference

Page 10: Lean Mean & Agile 2009

Agile 2009 Conference

• Chicago - August 24-27

• 1350+ Attendees

• Large Music Festival Model (21 “stages”)

• 20+ sessions going on at any time

• Any number of “Open Jam” sessions

Page 11: Lean Mean & Agile 2009

User Experience (UX)

• Jared Spool Keynote

• Guerilla Usability Testing

• Guerilla User Research

• Lightweight Design

• Integrated with Agile/Scrum/Iterative dev.

Page 12: Lean Mean & Agile 2009

What’s the Story?

As <role> I want <function>so that <business value>

Rachel Davies

Johanna Rothman

Page 13: Lean Mean & Agile 2009

Deliberate Practice

Page 14: Lean Mean & Agile 2009

10 Years to World Class

• The Role of Deliberate Practice in the Acquisition of Expert Performance - by Anders Ericsson

• Sufficient time (hours a day)

• Mentor/Coach/Teacher

• Specific practice

• Immediate Feedback

Page 15: Lean Mean & Agile 2009

Uncle “Bob” Martin

objectmentor.com

Page 16: Lean Mean & Agile 2009

Software Craftsmanship

• Software Craftsmanship North America

• Know your craft

• Study more than 1 language (Java, C#, Dynamic, Functional)

• YOU are responsible for your training

• No technical debt - only mess making

Page 17: Lean Mean & Agile 2009

Test Driven Development

Page 18: Lean Mean & Agile 2009

TDD Benefits

• Clean code

• Self documenting

• Full unit test suite

• Enables near 0 defect rate

• Ensures flexible code

Page 19: Lean Mean & Agile 2009

Behavior Driven Development

Page 20: Lean Mean & Agile 2009

BDD Benefits

• TDD is actually not about testing

• TDD is a design methodology

• “Test” Driven Development encourages “Test” mindset and delays mastery of TDD

• BDD encourages starting from the behavior and the use of

• Mock objects

Page 21: Lean Mean & Agile 2009

BDD Sessions + Tools

• Agile 2009 Sessions:

• “Acceptance Testing Java Applications with Cucumber, RSpec, and JRuby”

• “How to Make Your Testing More Groovy”

• Tools

• RSpec, Cucumber, JBehave, EasyB, .......

Page 22: Lean Mean & Agile 2009

RSpec/Cucumber

Page 23: Lean Mean & Agile 2009

JBehave

Page 24: Lean Mean & Agile 2009

EasyB

Page 25: Lean Mean & Agile 2009

Mock Objects

• Mock Roles not Objects

• System Under Test & Collaborators

• “Mocks aren’t Stubs” (or dummies)

• State vs. Behavior Verification

• Java tools - jMock, EasyMock, Mockito

Page 26: Lean Mean & Agile 2009

JMock ExampleSUT sut = new SUT(); // System Under TestMock mock = new Mock(Collab.class);

//setup expectationsmock.expects(once()).method(“neededMethod”) .with(eq(1), eq(“String param”));

//exercisesut.testedMethod((Collab) mock.proxy());

//verifymock.verify();assertEquals(EXPECTED_STATE, sut.state());

Page 27: Lean Mean & Agile 2009

Bad Mocking(thanks Paolini Carolini & Sudhindra Rao)

• Unreadable tests

• Replacing Integration Testing

• Unnecessary (e.g. Value Object)

• Context Confusion

• Mock returns Mock

• Mock Abuse (better: FakeDB, Dummy, Stub, Fixture)

Page 28: Lean Mean & Agile 2009

Dynamic Languages & Groovy

Page 29: Lean Mean & Agile 2009

Groovy = less code

Page 30: Lean Mean & Agile 2009

Other Groovy Features

• Fully compatible with Java code

• Can use Static Types

• Easy to make Domain Specific Language

• Dynamic typing, closures, metaprogramming, etc.

• Easy XML processing, string & list handling

Page 31: Lean Mean & Agile 2009

Groovy Adoption

Page 32: Lean Mean & Agile 2009

Discussion vs. Dialog

Page 33: Lean Mean & Agile 2009

Decision vs. Exploration

• Discussion is “convergent”. It assumes a single viewpoint must be chosen.

• Dialog or Conversation allows for exploration and does not require decision.

• Dialog is critical for many Agile processes.

• User Research, Retrospectives, Learning

Page 34: Lean Mean & Agile 2009

Dialog Processes

• World Café

• Open Space Technology

• Deep Democracy

• Appreciative Inquiry

Page 35: Lean Mean & Agile 2009

Leadership Stage

• Coaching

• Organizational Development

• Change Management

• Collaborative vs. “Command & Control”

• Leadership & Self-Organizing

• “Stepping Up & Stepping Back”

Page 36: Lean Mean & Agile 2009

Post-Heroic Leadership

Gilles Brouillet“Developing Agile Leaders and Team: A Developmental Path”

Page 37: Lean Mean & Agile 2009

Stages of Leadership

Page 38: Lean Mean & Agile 2009

Responsibility Redefined

• Dr. Christopher Avery

• Leadership means 100% Responsibility

• Responsibility != Accountability

• Responsibility != Shame

Page 39: Lean Mean & Agile 2009

Responsibility Process

Page 40: Lean Mean & Agile 2009

We cannot solve our problems with the same thinking we used

when we created them.

Page 41: Lean Mean & Agile 2009

We Want Your Questions, Thoughts ...