Lean Mean & Agile 2009

Preview:

DESCRIPTION

Conference report after attending Agile 2009 in Chicago.

Citation preview

Lean, Mean, & AgileAgile 2009 Conference Report

Harold Shinsato - October 8, 2009

YesPower

IntegrityChallengeStrengthCourageWinning

NoViolence

ArroganceEtc.

Truth, Beauty, Fun

Challenge

Agile

Agile Scrum & XP

Lean 5 Steps

Lean Software Development

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

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

User Experience (UX)

• Jared Spool Keynote

• Guerilla Usability Testing

• Guerilla User Research

• Lightweight Design

• Integrated with Agile/Scrum/Iterative dev.

What’s the Story?

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

Rachel Davies

Johanna Rothman

Deliberate Practice

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

Uncle “Bob” Martin

objectmentor.com

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

Test Driven Development

TDD Benefits

• Clean code

• Self documenting

• Full unit test suite

• Enables near 0 defect rate

• Ensures flexible code

Behavior Driven Development

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

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, .......

RSpec/Cucumber

JBehave

EasyB

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

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());

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)

Dynamic Languages & Groovy

Groovy = less code

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

Groovy Adoption

Discussion vs. Dialog

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

Dialog Processes

• World Café

• Open Space Technology

• Deep Democracy

• Appreciative Inquiry

Leadership Stage

• Coaching

• Organizational Development

• Change Management

• Collaborative vs. “Command & Control”

• Leadership & Self-Organizing

• “Stepping Up & Stepping Back”

Post-Heroic Leadership

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

Stages of Leadership

Responsibility Redefined

• Dr. Christopher Avery

• Leadership means 100% Responsibility

• Responsibility != Accountability

• Responsibility != Shame

Responsibility Process

We cannot solve our problems with the same thinking we used

when we created them.

We Want Your Questions, Thoughts ...

Recommended