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

Lean Mean & Agile 2009

Nov 06, 2014

Download

Technology

Harold Shinsato

Conference report after attending Agile 2009 in Chicago.
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: 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 ...