Skip to content

Instantly share code, notes, and snippets.

@michaelcpuckett
Forked from marshall007/agile_development.md
Created March 20, 2012 14:54
Show Gist options
  • Save michaelcpuckett/2136487 to your computer and use it in GitHub Desktop.
Save michaelcpuckett/2136487 to your computer and use it in GitHub Desktop.
  • Speaker: Tommy Norman, Agile Coach and TFS developer for Omnicell (@tommynorman) (comfortablyscrum.com)
  • agilenashville.com (@AgileNashville)

Agile Development

Philosophy

Short Feedback Loops

  • Quick approvals

Iterative Delivery

  • Incremental changes

Just-in-Time Requirements

  • Details change freely

Release-Ready Deliverables

  • "Done" means done

Continuous Integration

Sustainable Pace

  • Avoid burnouts. A pace you can keep up for an indefinite amount of time.

Lean Management Hierarchy

  • Few defined roles

Self-Organizing Teams

Trust & Transparency

  • Can be expressed through documentation.
  • Think big, deliver small, fail fast, learn quickly.
  • Works both ways - management and programmers

Inspect and Adapt

  • Evolve your process. Make it work for your organization.

Embracing Change

  • No reason to plan for change because you're going to overlook most things anyway.

Agile Processes

Scrum

  • Research was performed in '80-90s.
  • Saw waterfall wasn't working. It was hard to transitoin between phases.
  • Idea was to overlap phases and repeat in cycles.

Roles

  • Product Owner: Go/no-go decisions.
  • Scrum Master: Calls the fouls. Doesn't tell you what to do, just when you break the rules. Educate developers on the process.
  • Development Team: Writes the code for the system.

Events

  • Sprint: Provides heartbeat of the pace. Makes sure things get delivered.
  • Planning Meeting: When decisions need to be made.
  • Daily Scrum: Not to justify your existence. Reporting on where you are relative to your goals.
  • Sprint Review: "Celebration" of what is done. Good opportunity to demo to client.
  • Retrospect: Brainstorm what can be improved/what went wrong and how to adapt.

Artifacts

  • Product Backlog: Helps prioritize. Ordered "by value".
  • Sprint Backlog: Currently active tasks, chosen from the product backlog before every sprint. Shows transparency. Everyone knows what's currently being worked on.
  • Burndown Chart: Track how much needs to be done and how close we are. Project status at a glance.
  • Impediment List: Things that prevent us from moving (killing velocity). Are we missing software packages/tools we need?
  • Product Increment: Current build of our product.

Workflow Overview

"Grooming the Backlog": It's the product owner's job to keep the backlog up-to-date. User stories, prioritization, etc. As long as it's not in the sprint, items can be rearranged at-will.

"Sprint Goals": Work on nothing but the goals. Nothing is more important. Three states: done, in progress, and impeded. No items are added/removed from a sprint while in progress.

"Showcase": ONLY SHOW WHAT'S DONE and celebrate achieving goals.

"Retrospect": Don't always be negative. Do MORE of the good things and also fix the broken things. Vote on and fix the top problems in process. At least one thing should be fixed after every sprint.

We can now start predicting our velocity based on historical data. Which allows us to estimate how long it will take us to complete our goals.

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