Sunday, January 25, 2009

An Agile Understanding


    Some excerpts from a presentation I gave to people looking for help with Agile Project Management and SCRUM. Credit to the Dilbert folks J of course.

    So what is SCRUM and Agile Project Management?

    Not going into any overly specific jargon or canned answers:

    • Agile is a Project Management Methodology that focuses on
      • Iteration
      • Interaction
      • Transparency
      • Product Delivery

    • SCRUM is a meeting and project tracking format used heavily in organizations that practice Agile Project Management

    Traditional Project Management and SCRUM/Agile Project Management

    • Traditional Project Management places emphasis on
      • Milestones
      • Artifact management
      • Historical reporting
      • Minimizing Change

    • SCRUM/Agile Project Management places emphasis on :
      • Iteration
      • Product oriented delivery
      • Transparency
      • Extensive Product Owner Involvement
      • Change is expected and incorporated in the process to provide value add.
      • Does not rely heavily on historical or artifact management but rather how much work remains moving forward.

    The Agile Manifesto

    Individuals and interactions over processes and tools

    Working software over comprehensive documentation

    Customer collaboration over contract negotiation

    Responding to change over following a plan

    Pasted from <http://agilemanifesto.org/>


    Iterative Development

    • Developing End to End, a working product with the assumption that improvement and gains can be made throughout the development iterations
    • The product may not have 100% of the feature set but could be used in production
    • The general concept is to flesh out and improve over each iteration to meet the requirements/expectation of the business

    SCRUM… What's it all about

    • SCRUM is the default process for Agile Project Management and has the following assumptions in its pure form:
      • Senior Team Members
      • Dedicated Team
      • 100% Product Owner Involvement
      • Product Backlog
      • Sprint Backlog
      • Daily Meeting
      • The Burndown
      • Sprint Planning Meeting
      • Pigs - Committed
      • Chickens - Not Committed

    The Daily Meeting

    • 15min or less
    • What are we doing?
    • What is planned?
    • What is blocking us
    • Take a look at the "Burn Down" or whatever graphical representation of the project the team uses
    • That’s it. No muss no fuss

    Pitfalls of the Daily

    • "Lets talk about implementation details" - Good Idea, wrong time
    • "Logorreha" - The idea is to keep meetings short so the communication used is supposed to be boiled down, too much talking and team members not on your portion of the sprint loose interest and slows morale
    • "What are we supposed to be doing" - No product owner no sprint is what I say, he's the guy/gal that breaks ties on what has to happen and should be the definitive authority on the project Prioritizing and Deprecating as the process moves forward.
    • "Scrummaster does that? Right?" - Scummaster doesn't do very much but act as the alarm for the team and escalate issues and run interference for the development team (Pigs and Chickens)

    The Burn Down

    • This is the Graphical Representation of Agile it measures velocity of completing a sprint.
    • It looks to work remaining as the metric as opposed to how much is done.
    • Seems counter intuitive but from a line perspective it allows the resource to see what is remaining and how much its going to take as opposed to looking at the Gantt and seeing what was done and have no idea how much its going to take given the current time frame.

    Question 1:

    • Are Unplanned items usually unexpected production support related issues? What else is unplanned?
      • Well from my perspective we prioritize the production issues and weigh them against the constraints to hitting the sprint as negotiated by the product owner.
      • If the product owner says this product support issue trumps the feature the issue gets the effort and the feature gets pushed to the product backlog for reallocation .
      • Remember because of the Transparency (in this case finite resources and product owner involvement) Delivery expectations match what the product owner wants.
        • Note: as soon as the Product Owner assigns the task to a sprint and gives it a priority it stops being unplanned.

    Question 2:

    • If we determine part of the way into a sprint that existing code (Created before the Sprint) needs refactoring, should that be included as an unplanned item
      • In the sprint the User Story should take into account potential unplanned tasks and reflect it in the Complexity Points (If you use them)
      • At the very least be brought up as a blocker in the Daily for discussion on inclusion into the sprint and requiring Product Owner resolution.

    Question 3:

    • If we start work on a story and realize the initial estimate of the story was way off, do we modify the total number of points in the sprint?
      • I wouldn't. This should be brought up in the daily that the sprint as it currently sits is in jeopardy and that the product owner needs to re-assess the Sprint as a whole and reprioritize the Tasks/User Stories as it would meet the expectations of the Product Owner and end users.

    Question 4:

    • If we start work on a sprint and the product owner decides he/she doesn’t want a story anymore do we modify the number of points in the sprint?
      • Yes. However it's been my experience that the Product Owner never wants to take things off without adding more. The reason is typically to assign more work.

    Question 5:

    • What sort of requirement gathering process do you go through before you start a new sprint?
      • I have a pre-planning meeting with the Product Owner and Lead Engineers, review the product backlog, and then pick the brains to identify additional work.

    Question 6:

    • If we have a project that is only 1-2 weeks worth of work would you recommend setting this up as a spring? If not how would you choose to handle it?
      • I would assess is it really an independent initiative or if I could roll it up as a User Story in the forthcoming sprint.