Agile Iteration Kickstart

Revision as of 07:28, 6 November 2007 by Clarman (talk | contribs) (New page: == Overview == 5 days <br> <br> Virtually every leader and organization that has adopted agile and iterative methods, including the recent Yahoo adoption of Scrum, will vouch for the high-...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Overview

5 days

Virtually every leader and organization that has adopted agile and iterative methods, including the recent Yahoo adoption of Scrum, will vouch for the high-impact value in having an experienced coach help kick start the adoption of these practices on a pilot project, which often involve significant and sometimes subtle changes in how to approach project planning, requirements analysis, test, and measurement. Thus, in addition to the first step of helping executive management understand the motivation, evidence, and big ideas regarding agile and iterative methods, in the second step I help these organizations launch a pilot project through my Agile Iteration KickStart program.

This has some similarity to my highly-customized mentoring package, but the KickStart is a more structured 5 or 10-day workshop centered around your project.

In short, the KickStart takes the team through some “classic” events and activities of an iteration, such as iteration planning, requirements or design workshops, and more. This often revolves around the (extremely) popular Scrum method, but other methods, such as XP, FDD or Crystal, can form the foundation if you desire. I’ll (or one of my very talented coaching colleagues) be spending significant time with a cross-functional team, coaching them through the details of perhaps a requirements and/or design workshop, and the iteration planning meeting. I’ll be spending time with the team and business stakeholders to help understand and apply Scrum skills, and chart progress with iteration and release burn-down charts. I’ll be working with developers at their workstations, and in small teams at the whiteboards during object design and agile modeling sessions, also perhaps coaching test-driven development or refactoring.

Several schedule variations are possible and will be customized with you beforehand, depending on the degree of requirements and design fuzziness and complexity, and state of the team. For example:

  • Monday: Agile software architecture documenting with an N+1 view model and technical memos
  • Tuesday: Requirements workshop, applying use cases or use stories
  • Wednesday: Design workshop, applying Agile Modeling
  • Thursday: Test-driven development, refactoring, and continuous integration
  • Friday: Release and/or Iteration planning meeting, applying relative point estimation, velocity, burndown charts, and more

Possible Topics

I emphasize not only analytical skills such as requirements and design patterns, but harder-core engineering skills such as setting up and using a continuous integration and test environment, test-driven development, pair design, light-weight code reviews, and more. There are myriad skills that may be applied and mastered. Depending on your needs, that may include:

  • Agile and iterative project management and methods adoption with blended UP, XP, and Scrum practices.
  • Creating a Product Backlog and Iteration Backlog
  • Agile estimation with relative point estimates
  • Agile requirements analysis with use cases and other specification techniques
  • How to run an iteration planning meeting; how to plan a timeboxed iteration
  • How to run a fast and focused timeboxed evolutionary requirements workshop
  • How to do an Agile Modeling Day
  • Applying effective object-oriented analysis and design
  • Rapid architectural documentation with an agile N+1 view model for architecture
  • Coaching for high-performance OO designs in Java or C++
  • Useful UML; modeling like a master
  • Agile Modeling with the UML
  • Possibly an agile approach to a Release Planning Workshop
  • Design patterns
  • Refactoring and refactoring tools
  • A healthy, scalable build environment with continuous integration and automated testing
  • Architectural analysis
  • How to quickly and effectively document your architecture
  • How to work in a common project room without driving each other crazy
  • Applying the Decider protocol for effective team-based decision making
  • The daily Scrum meeting
  • Walls of wonder for modeling and project management
  • Test-driven development
  • Code reviews for improved detailed programming and use of APIs
  • Reviews, analysis and coaching for suitable performance of (for example, Java) applications.
  • Organizing your project files and build environment
  • Automated acceptance and unit testing runs