Skip to content

Instantly share code, notes, and snippets.

@juanpaulo
Last active August 29, 2015 14:09
Show Gist options
  • Save juanpaulo/4226cbee02f69832d2c3 to your computer and use it in GitHub Desktop.
Save juanpaulo/4226cbee02f69832d2c3 to your computer and use it in GitHub Desktop.
CSM Training (Day 2)

Make problems visible

Driven by value, not by the technology

Work in Agile projects is organized by Units of Value, rather than by Architectural Layer.

Monolithic development (Tests) GUI > Client > Server > DB schema

Incremental development (Tests) GUI > Client > Server > DB schema, feedback and repeat

Ranges

  • Notice in both cases we had a range
  • Either a scope range for a fixed date project:
    • "By that date you'll have all of these features and some of these."
  • Or a date range for a fixed-scope project:
    • "It will take us between 6 and 8 iterations to deliver all of those features."
    • Always say: "... based on what we know today"!

Sprint Planning

  • 1 Day
  • A little time to break down the Product Backlog
  • 1-4 hours for team to define Sprint Backlog
  • Anyone can attend, but primary conversation and work is between the Development Team and the Product Owner

Sprint Planning

  • Ideally, Topic 1
  • ...

Sprint Planning - Topic 1 (Product backlog)

Sprint Planning - Topic 2 (Spring backlog)

4. Production and Sprints ...

The ScrumMaster Role

  • Servant Leader and Facilitator
  • ...

Dan's List

  • Manage the relationship between the Product Owner and the Development Team
  • Manage the definition of Done
  • Keep the team focused
  • Challenge the team

Why the ScrumMaster?

  • Scrum makes the problems visible
  • Project managers too often help hide problems
  • ScrumMasters help keep problems visible
  • Resolving problems relieves stress on the team
  • The team gets better and better

ScrumMaster Etiquette

  • Do what it takes, but...
  • A dead ScrumMaster is a useless ScrumMaster
    • The team hires and fires the ScrumMaster
  • Powerless, except:
    • May remove a disruptive person from the team

Single Wrenchable Neck

  • The ScrumMaster is the single point of accountability for the Development Team's Sprint delivery
  • The Product Owner is the single point of accountability ... ROI

Three Answers

  1. What did I do yesterday that helped the Development Team meet the Sprint Goal?
  2. ...
  3. ...

Rules of the Game

  • Same Place and Time Every Day
  • One minute at most per Developer
    • Stand up!
  • Focus is on visibility - not problem solving
    • Solve problems off-line
  • Complete honesty, openness, and visibility
  • Personal impediments...
    • ...

Scrum Meeting Exercise

  • ... for the aspiring ScrumMaster in the class

There are no projects in Scrum Multi-site development is institutionalized slavery

Release Burndown - a bad idea!

  • Separates the concepts of Sprint and Release
  • Can defer end-user feedback on a product increment
  • ...

WaterScrum

Calculating Drag

  • Let's say you have 5 Developers doing 2-week sprints
  • ...
  • Drag

More reductions on velocity

  • What do you do with:
    • vacation?
    • pregnancy leave?
    • team-building activities?
    • Scrum certification courses?
  • These items go on the product backlog!
  • Don't count them as part of Drag

An advanced case: Kaizen

  • Let's say that you feel your bug rate is too high
  • You implement code inspections...
  • ...

Remember to swarm

...

Done

Extending the Scope of Done

Planning, Analysis, Design, Coding, Testing, Performance, User Acceptance, Pilot, Live

Tools to support Done

  • Version Management
  • Automated build
  • Automated testing
  • QA Environments
  • You cannot reasonably do this manually!
  • ... but remember that there are no silver bullets

Technical Debt

  • Done means "no remaining work"
  • What if a project manager forces the project to completion, telling the Development Team to defer tasks such as:
    • refactoring
    • documentation
  • This work adds up over time
  • It is often invisible!

Suprises

  • New product requirements happen
    • Scrum says: Put them on the product backlog for consideration in the next Sprint Planning
  • Sometimes, they can't wait even for the meeting
    • Scrum says: Never extend the Sprint or change priorities
  • So: can the team do a new work item?
  • The team gets to decide!
    • The team may choose to do the feature while still staying within its forecast
    • If it cannot keep its forecast, it should not choose the feature

Emergency Procedure

  • Do something different
  • Get help from outside the team
  • Decrease Scope
  • Abort the sprint

Aborting the Sprint

  • What happens when you foresee a disastrous schedule slip?
  • ...

Sprint Review and Retrospectives

  • Why?
    • Show that the basic architecture and infrastructure work
    • Get feedback on results
    • Easier...
  • ...
  • 2-3 Hours
  • Maximum 1 hour presentation
  • No PowerPoint
  • Done on equipment where product was developed and tested
  • Presented by Development Team to Product Owner and other stakeholders, including end users
  • Basis for planning next sprint
  • ....
  • Check Sprint Goal and SBI completion
  • "are we happy with the overall result so far?"
  • the PBIs not completed (if any)
  • ...

Process Improvement

  • A brainstorming session
  • What are your impediments?
  • Make an impediment list
  • Priority-order it
  • Time-boxed to 30 minutes

???

Organizational Learning Models

  • Single-loop learning
    • The rules change
    • Strategy, structure, culture untouched
    • Change the process
  • Double-loop learning
    • Knowledge and Understanding
    • Change the structure
  • Triple-loop learning
    • Values and Principles
    • Raison-d'etre of an...
    • ....

Summary on Process Improvement

  • Inspect and adapt
  • Leverage self-organization
  • Don't get religion: give and receive trust
  • Do what it takes
  • Take it seriously, but don't be serious

@jcoplien Comments

Java is a class-oriented language Architect is not a verb, design is Architecture is not structure, it's form. Form is the essence of structure

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment