Skip to main content

Agile Product Management in Roam - Part 2

This post summarizes my learnings from the Roam Agile project. I present the Minimum Viable Product (MVP) version of the Agile Development Template. Here you will find the link to the Roam EDN archive containing the template, instructions for how you can get started, YouTube videos showcasing the solution, and a link to the graph I used for my project with my backlog, user stories, sprints, daily standups, customer feedback, etc.

This is part 2 of a series. If you are unfamiliar with Agile methodologies, or you are interested in my interpretation and understanding of those, please check out my previous post: Agile Product Management in Roam - Part 1

Following an Agile product development process to build Roam Agile has strengthened my belief in the power of Agile methodologies. It was a smooth journey. What’s even better, Roam proved to be an outstanding platform for managing my mini project! I have hands-on experience with established Agile platforms like Jira or Azure DevOps. Based on these two weeks of using Roam as an Agile tool, and comparing it to established systems, I can attest that Roam is a viable alternative for managing smaller Agile projects with a single scrum team. It could even work for larger groups of up to a few teams... however, the lack of role-based access management may become an issue as the number of the teams grow.

Agile Product Management
Photo by Startup Stock Photos from Pexels

The Motivation for Roam Agile

The market is overflowing with powerful platforms like Jira Software, monday.com, Sauce Labs, Azure DevOps Services, and many more. Why should you consider Roam as your platform for Agile Product Management?

Stories play a key role in Agile Product Development. The Product Owner is the storyteller. His/her role is to introduce the product to the development team. Understanding the intricate details of the product will allow the team to construct a solution that far surpasses anything they could have specified, designed, and built following traditional waterfall methodologies.

Stories, however, are inherently messy. Important details surface at the most unexpected times. A Product Development tool centered on stories, with the ability to deal with tasks, is more suited to this process than task management tools with the added ability to manage stories. The shift in focus is subtle but important.

Roam Agile shows the art of the possible. It is a fully functional concept to illustrate how a team could use Roam Research for managing the full development life-cycle of their product. Using Roam for this purpose shifts the focus from task management using the backlog, sprint planning, and kanban boards; to developing deep user-stories intertwined with design decisions, product visioning, customer feedback, and more.

The power of networked note-taking

With networked note-taking you can build deep contextual links between user-stories. For example, during the elaboration of a story, other requirements may surface that are best captured by additional user-stories. Networked note-taking helps preserve the context in which the desire for those additional stories surfaced.

With the user-story [[story/Document final how-to guide]] I extensively used linked references in Roam. As I was writing user-stories, doing daily standup meetings, reviewing customer feedback, etc. every time something occurred to me, that I should include in the final how-to guide, I tagged it with this story. As a result, when it came time to write the final [[Start Here]] page I had a list of all the ideas and reminders I wanted to work into the guide. The image below shows the top of part of [[story/Document final how-to guide]] in the right sidebar and the lower section of the page with linked references on the left.

Final How To Guide

Pattern Language

User stories are the Pattern Language of the product. See my blog post about Pattern Language for Effective Thinking if you are interested in pattern languages.

The term originates from architect Christopher Alexander. He popularized this concept in his 1977 book A Pattern Language and his 1979 book The Timeless Way of Building.

A Pattern Language has the structure of a network. However, when we use the network of a language, we always use it as a sequence, going through the patterns, moving always from the larger patterns to the smaller. Since language is a network, there is no one sequence that perfectly captures it. The sequence of patterns is both a summary of the language and an index to the patterns. If you read through the sentences which connect the groups of patterns to one another, you will get an overview of the entire language. No pattern is an isolated entry. Each pattern can exist in the world only if other patterns support it.

Similarly, user-stories gain richer meaning when referenced extensively in the product documentation, including in the product vision, design dilemmas and decisions, the description of personas and their journeys, customer feedback, other user stories, etc.

Algorithms of Thought

Algorithms of Thought

Algorithms of Thought (AoT) are simple yet powerful thinking strategies to direct our thinking. When explained, AoTs feel self-evident, yet, we seldom use these approaches in a systematic and disciplined way. This is where a tool like Roam can help by integrating these algorithms into our documents and thinking process. AoTs have the power to improve the quality of your user stories, design decisions, etc. leading to an overall superior product.

I have included 8 different algorithms in the Roam Agile template. These are:

  • Choice. This AoT features four very simple steps, 1) articulate the question or situation, 2) identify constraints, 3) enlist solution options and elaborate those, and finally, 4) state your decision.

  • 6 attention directing tools from Edward De Bono. In case you are interested in these, I recommend two of my posts: De Bono’s Algorithms of Thought for Lateral Thinking and Creativity Part 1 and De Bono’s Algorithms of Thought for Handling Disagreements:
    • CAF: Consider All Factors.
    • APC: Alternatives, Possibilities, Choices; similar to Choice, but focuses more on exploring possibilities.
    • OPV: Other People’s Views; which I used for identifying possible end-user groups when defining the personas for my product.
    • CnS: Consequence and Sequel; a tool to explore longer-term consequences of our choices.
    • PMI: Plus, Minus and Interesting; to assess aspects of ideas, proposals, opportunities.
    • ADI and EBS: Agreement, Disagreement and Irrelevance and Examine Both Sides. These are two interrelated AoTs combined in one, focused on handling disagreements.
  • TOSCA: Trouble, Owner, Success Criteria, Actors; an algorithm for framing problems.

Here’s one example of using Choice for a decision on the Sprint template.

Choice AoT

Visual thinking

Roam is primarily text-based. That said, it includes several tools out of the box to support visual thinking.

  • {{[[mermaid]]}} is an integrated diagramming tool to create flowcharts, sequence diagrams, class diagrams, state diagrams, entity-relationship diagrams, user journeys, Gantt charts, and pie charts. A detailed description of these is available here.
  • {{[[drawing]]}} is for freehand drawing, useful when sketching simple ideas embedded in your text.
  • {{[[diagram]]}} is a concept mapping tool you can use to visualize the relationship between blocks in your text. Use it to depict dependency and the relationship between user stories.

Here’s an example of using {{[[mermaid]]}} to visualize the process flow for closing a sprint.

Close sprint SmartBlock flow diagram

Beyond the native tools, {{[[roam/js]]}} extensions offer further opportunities to add visual components to your user-stories and design documents. Some examples are:

  • Charts by David Vargas. I have included this in Roam Agile. This extension adds diagramming support for {{line}} and {{bar}} charts. I use {{line}} for the burndown charts in the sprint template.
  • Mindmap is another extension by David. It displays a page in a mindmap like tree. I have not included this in the Roam Agile template, but you can easily add it. It is available on roamjs.com.
  • Diagram.Codes is yet another powerful diagramming extension that will be soon available for Roam. Find details here.

Heres’s the example of using {{line}} to display the burndown chart for a sprint.

burndown chart for sprint 4

Key features of Roam Agile

Roam Agile supports all the key elements of an Agile Product Development process, assuming an Agile Scrum approach.

It supports key ceremonies:

  • Backlog Grooming
    Backlog grooming
  • Sprint Planning
    Sprint Planning
  • Daily Standup Meeting
    Daily Standup Meeting
  • Sprint Demo
    Sprint Demo
  • Sprint Retrospective
    Sprint Retrospective

Beside the ones listed above, the template also includes examples and tools to support key artifacts and processes in the agile development process, including:

  • Product Vision
    Product Vision
  • Product Roadmap
    Product Roadmap
  • Map of Personas
    Personas
  • Customer Journey Map
    User Journey Map of a Sprint
  • Customer Feedback
    Customer Feedback
  • Solution Design
    Design Dilemmas

Getting started with Roam Agile

To get started, I recommend that you first explore the Roam Agile sample graph online. This is the graph I used to develop the Roam Agile. Here you will find all the pages and examples referenced above, in my videos, and in the part 1 blog post.

Download the Roam Agile EDN archive from here.

Please note that when you restore this EDN into an existing graph, you will lose the previous content of that graph. First, make a backup of your graph using Export All to EDN format. After restoring the Roam Agile template into your graph, navigate to [[Start Here]] and follow the instructions. To help with the process, I have created a video walkthrough of setting up an Agile project using the Roam Agile template.

Looking under the hood

If you are interested in customizing this template for your purposes, reusing parts of my solution, or just to explore how I use the roamAlphaAPI, watch this video. I provide a quick guided tour of the components that make Roam Agile possible. In the template’s building, I have extensively used the Datomic advanced-template I share in Deep Dive Into Roam’s Data Structure - Why Roam is Much More Than a Note-Taking App.

Further videos

If you are interested in more, I have three further videos introducing the solution:

Limitations and other reflections

Overall, I am very satisfied with the MVP product.

Using {{[[roam/js]]}}, Roam42 SmartBlocks, and Charts from roamjs.com I successfully added all the basic features and automation that result in an almost frictionless experience running a full-blown agile development process in Roam. I am especially happy with the automation that solves the maintenance of the burndown chart, the synchronization of the sprint plan with the backlog, the daily standup view, and the automated management of status changes on the sprint plan, the backlog, and the user stories. With these additions, Roam is a very viable contender as an agile development platform.

I made a design decision to use Roam native templates until I hit a blocker. Of the eighteen templates included in Roam Agile, only four remained as a native. These are the templates for the User Story, Sprint, Choice, and Persona. If I were to continue the development of Roam Agile, I would move these four into Roam42 SmartBlocks as well, for the simple reason, that having native templates and SmartBlocks co-exists means you need to remember which template to invoke using “;;” and which using “jj”. I find this confusing. It is difficult to remember which template is where. For this reason, I will use only SmartBlocks in the future.

I built the workflow in Roam Agile assuming the happy scenario. Sometimes things go wrong. The solution assumes flexibility on the side of the user to correct for these mishaps. Automation never deletes data, thus a derailed SmartBlock should never cause major problems. It only means that you may need to open up a couple of pages and change statuses or update the chart manually. I think this is all very reasonable. Over time, if you use the template regularly, you can one by one develop validations and error handling for the alternative process flows.

The solution does not include any role-based access management or any other form of control. It assumes a small team where people trust each other and understand and stick to the agreed rules. I created Roam Agile to support a creative and collaborative workflow, not enterprise-grade command and control.

The road ahead

As further development opportunities, I would look at customizing Algorithms of Thought included in Roam Agile, tailoring them to the Agile Development process. One such example is developing a dedicated AoT for defining product personas, built on the foundations of De Bono’s OPV method.

Other enhancements could include developing a template for Epics or adding best practice and team ways of working reminders to the Daily Standup template. SmartBlocks and the window.roamAgile would also benefit from some refactoring, harmonizing Datalog queries, consistently applying naming conventions, pulling out common functions, etc.

I hope you find the template and the related blog posts and videos as useful as I have found the development process enjoyable. Have fun playing with Roam Agile!

Check out my related posts

Like this post?
Show your support.

Comments

  1. Hi Zsolt. I've been testing out your Agile Product Management template this last week and have found it incredibly useful for both myself (personal scrum) and the small team I've onboarded onto it as their ScrumMaster. What I particularly enjoy about your implementation is the ease in which it affords contextualizing work items across different vantage points in a single view (i.e. I can get a quick grasp of how a story ties into an Epic, Sprint and the broader strategic vision in a single view through the use of links and panels). With that said, I'm just wondering if you have any plans to continue building this template up or if this was just an experiment meant to showcase Roam's capabilities. I don't really have technical chops but already there's a bunch of things I'd love to be able to do which I'm not even sure is possible with Roam.. (e.g. is there a way to create say a dashboard out of multiple panels I've built up on a page?, is it possible to have a visual indicator of a story's age?, is it possible to integrate the standup feature with Slack or Telegram? is it possible to automate templating when creating a story? can one build control charts?). Anyway, thought I'd ask and once again thanks for this great template!

    ReplyDelete
    Replies
    1. This all sounds doable. Roam Agile was more of a demonstration of a concept.

      You may want to check out comments by Carlisia on this video. I think she has worked a bit on enhancing my template for her own project.
      I searched her name on Twitter and found her. You may consider DM-ing her there.
      https://www.youtube.com/watch?v=L8RYtTzAAYU

      Delete

Post a Comment

Popular posts from this blog

Showcasing Excalidraw

Conor ( @Conaw ) pointed me to Excalidraw last week, and I was blown away by the tool and especially about the opportunities it opens up for  Roam Research ! It is a full-featured, embeddable sketching component ready for web integration. This post will showcase key Excalidraw features and discusses some of the issues I still need to solve to complete its integration into Roam. I spent most of my free time during the week integrating Excalidraw into Roam. This article will introduce Excalidraw by showcasing its features.

Mind mapping with Excalidraw in Obsidian

Mind-mapping is a powerful tool. In this post I will show you how and when I mindmap with Excalidraw in Obsidian and why mindmapping is such a good tool for Personal Knowledge Management. Like this post? Show your support.

Evergreen Note on Note-taking Strategies and Their Practical Implementations

This is an evergreen note that I will be revisit regularly to develop a comprehensive list of note-taking approaches including their practical implementations in various software tools. This post will serve as an elaborate table of contents, including a brief introductory discussion on the importance of note-taking, followed by a high-level walkthrough of each method. Links to posts and videos with detailed examples and descriptions will follow over the coming weeks and months.

Deep Dive Into Roam's Data Structure - Why Roam is Much More Than a Note Taking App

Which are the longest paragraphs in your graph? Which pages did you edit or create last week? How many paragraphs of text do you have in your database in total? Which pages do you have under a given namesapece (e.g. meetings/)?

contact: info@zsolt.blog