KEMBAR78
Lean Mean & Agile 2009 | PDF
Lean, Mean, & Agile
  Agile 2009 Conference Report
    Harold Shinsato - October 8, 2009
Yes
 Power
Integrity
Challenge
Strength
Courage
Winning




              No
             Violence
            Arrogance
               Etc.
Challenge




Truth, Beauty, Fun
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 Example
SUT sut = new SUT(); // System Under Test
Mock mock = new Mock(Collab.class);

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

//exercise
sut.testedMethod((Collab) mock.proxy());

//verify
mock.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 ...

Lean Mean & Agile 2009

  • 1.
    Lean, Mean, &Agile Agile 2009 Conference Report Harold Shinsato - October 8, 2009
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 9.
    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
  • 10.
    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
  • 11.
    User Experience (UX) •Jared Spool Keynote • Guerilla Usability Testing • Guerilla User Research • Lightweight Design • Integrated with Agile/Scrum/Iterative dev.
  • 12.
    What’s the Story? As<role> I want <function> so that <business value> Rachel Davies Johanna Rothman
  • 13.
  • 14.
    10 Years toWorld 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
  • 15.
    Uncle “Bob” Martin objectmentor.com
  • 16.
    Software Craftsmanship • SoftwareCraftsmanship 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
  • 17.
  • 18.
    TDD Benefits • Cleancode • Self documenting • Full unit test suite • Enables near 0 defect rate • Ensures flexible code
  • 19.
  • 20.
    BDD Benefits • TDDis 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
  • 21.
    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, .......
  • 22.
  • 23.
  • 24.
  • 25.
    Mock Objects • MockRoles not Objects • System Under Test & Collaborators • “Mocks aren’t Stubs” (or dummies) • State vs. Behavior Verification • Java tools - jMock, EasyMock, Mockito
  • 26.
    JMock Example SUT sut= new SUT(); // System Under Test Mock mock = new Mock(Collab.class); //setup expectations mock.expects(once()).method(“neededMethod”) .with(eq(1), eq(“String param”)); //exercise sut.testedMethod((Collab) mock.proxy()); //verify mock.verify(); assertEquals(EXPECTED_STATE, sut.state());
  • 27.
    Bad Mocking (thanks PaoliniCarolini & Sudhindra Rao) • Unreadable tests • Replacing Integration Testing • Unnecessary (e.g.Value Object) • Context Confusion • Mock returns Mock • Mock Abuse (better: FakeDB, Dummy, Stub, Fixture)
  • 28.
  • 29.
  • 30.
    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
  • 31.
  • 32.
  • 33.
    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
  • 34.
    Dialog Processes • WorldCafé • Open Space Technology • Deep Democracy • Appreciative Inquiry
  • 35.
    Leadership Stage • Coaching •Organizational Development • Change Management • Collaborative vs. “Command & Control” • Leadership & Self-Organizing • “Stepping Up & Stepping Back”
  • 36.
    Post-Heroic Leadership Gilles Brouillet “Developing Agile Leaders and Team: A Developmental Path”
  • 37.
  • 38.
    Responsibility Redefined • Dr. Christopher Avery • Leadership means 100% Responsibility • Responsibility != Accountability • Responsibility != Shame
  • 39.
  • 40.
    We cannot solveour problems with the same thinking we used when we created them.
  • 41.
    We Want YourQuestions, Thoughts ...