Why This Course
While we find no shortage of people who have great product visions, we seem to struggle with building up a series of small steps that realize those product visions. This course is a foundation for managing complex domains. Learn how to gather, analyze, validate and build complex products that teams love to build and delight customers.
Stories and Use Cases are close cousins but each have a distinct strength. How do we balance the tension between performing complex analysis and driving the team at the optimum pace with small increments of work?
Use Cases are and continue to be one of the best techniques we have for performing analysis from a functional point of view. Well written Use Cases help us by decomposing complex product requirements and tracking all the little moving parts. By organizing the connections between requirements with Use Cases we get a broad view of our product’s potential and how it can evolve. One of the most influential books on this topic is Alistair Cockburn’s, Writing Effective Use Cases. Use Cases are a great technique that allows us to create, understand, and manage large amounts of interconnected and coherent logic.
User Stories focus on being simple, build-able, and verifiable pieces of the product. Small pieces of product can then be validated one step at a time. For each piece of product we create sharp definitions of “done.” With small pieces of work, we can change the direction of the team rapidly and not over-commit. The combination of Stories and Use Cases forms a strategy that enables organizational agility.
This Course Covers
- What good Use Cases looks like
- How and when to unfold Stories from a Use Case
- What good Stories look like
- How and when to decompose stories into tasks using the Planning Game
- Creating clear & sharp definitions of “done” for all work that we do
- How and when to seek validation
- Special topics: Scaling Teams, Tools, Non-collocation, Testing, and Skill deficits
- Why ‘avoid & eliminate waste’ is tightly coupled to agile analysis
- Why the success of our products is so strongly influenced by our analysis
- Tight coupling of prioritization and focus
- Agile development best practices
- Guide Analysis Effort by “Reflect Early & Often’
Who would benefit?
Product Owner, Business Analyst, Software Analyst, QA, Testers, ScrumMaster, Process Advocate, Project Manager, Software Developers, Architects, and anyone else involved in product development. Sometimes these roles are categorized by responsibilities such as requirements capture, design, gathering, refining, business decomposition, requirements trace or development. In summary, those who require strong skills in the areas of systematizing complex logic, communicating and building products.
Section 1: Personas and Great Use Cases
How to write clear manageable Use Cases that unfold information as needed. We will do this by reviewing common pitfalls, writing, and working through examples. This section will be largely based on writing effective Use Cases, but will include an emphasis on just-in-time agile unfolding.
Section 2: Unfolding Stories from Use Cases
As we build up information from our Use Cases, we begin to quickly see opportunities for exploring technical outcomes. So, the question becomes “When can we actually start the team building a real product?” What we observe is that will learn many things simply by moving. Starting the team building something can often occur much sooner than is commonly thought. We might never build the whole Use Case so handing a “whole Use Case” to the team if often a big mistake and frequently causes “analysis paralysis”. Instead, we will explore how to pull manageable pieces (user stories) out of Use Cases without committing the team to large up front efforts.
Section 3: Users, Stories, User Stories
The key to exploring the complexity of your product’s domain is identifying and building stories which allow the team to move forward without stalling out. Our goal in this section will be to show how visibility, user stories, and analysis are all combined in a product development effort. We will manage the work for our product domain in this manner.
Section 4: Managing the Work
There are a series of confusing terms that show up repeatedly in the agile literature and is pivotal for effectively managing the work. This part of the course will make sense of the terms product, capability, story, task, user story, chores, infrastructure, epic, CVA, and theme. Each of these terms can and does fit together to form an elegant language to describe work and how to focus our analysis effort. Mastery of these concepts is critical for the analyst to avoid the confusion of loose lingo. Agile analysis enables effective prioritization and drives the work.
Section 5: Decomposing Stories into Tasks Using the Planning Game
During this section our work will have generated sufficient information to launch a planning game. The purpose of the planning game will be to decompose stories into tasks and insure that all work for the iteration (sprint) is visible. We will also cover the importance of “done” and how a rollup of “done” creates a testable definition for quality.
Section 6: Scaling Teams, Tools, Non-collocation, Testing, and Skill Deficits
This last section will explore the range of issues that face agile analysis and product development. We will explore how breaking the work down is tool agnostic. Also, for people that are not present, we still must develop sharp definitions of done. Testing our system is a technically very challenging activity and needs to start up front with product development. The agile analysis identifies and allows for remedy of skill deficits during product development.
Running Themes: Occurs Throughout the Course
The following topics are called running themes because they are not constrained to one section of the course, but will be constant companions as we work through product development. Each running theme will be treated in multiple ways and at multiple times throughout.
- Sharp definitions of “done”
- How and when to validate the product
- Why the principle of “avoid and eliminate waste” is tightly coupled to agile analysis
- Why the success of our products is strongly influenced by our analysis
- How to leverage the power of emergence
- The importance of continuous prioritization to maintain the right focus
- What are the fundamental practices of agility
- Reflect early and often to pull out lessons learned