01 - The Team
02 - The Goal
03 - The Problem
04 - The Opportunity
05 - The Solution
06 - Create a Smart Standup Board
07 - View Smart Standup Board
08 - Filter Smart Standup Board by Participant
09 - Change Smart Standup Board Lookback Period
10 - Change Card Color to Highlight Important Issues
11 - See Changelog within Card
12 - See Comments with Automated Sentiment Analysis within Card
13 - See Linked Issues within Card, with changes highlighted
14 - Drill into Linked Issue Changelogs, Comments, and more
15 - Make Notes and Optionally Save as Comments in Issue
16 - The Roadmap
17 - The Obstacles
18 - The Comparison
19 - The Recap
20 - Parting Thoughts
Our team is made of up 5 people from 4 different teams and 2 countries on 2 continents. We've worked with different people and different team structures over the years, but we've all shared a common experience: wasted time during Standups.
We found that team SUs can easily become mundane and inefficient, and while Sprint Boards are a good way to track overall progress, they only display individual issue status info and they don't show enough detail. As a result, 90% of SU time is spent sharing regular updates, while only 10% is used for critical discussions.
An opportunity exists to create an app that will utilize SU time more efficiently by surfacing the critical information up front — to cut down on status updates and allow more time for meaningful discussions.
What it does
Introducing Smart Standups for Jira, a new app that allows users to create intelligent SU Boards that go beyond displaying simple statuses to display changes since the last meeting — based on participants and a user-defined lookback period. With Smart Standups for Jira, teams can spend less time sharing updates and more time sharing ideas and overcoming blockers.
To create a Smart Standup Board, the team lead simply selects a board name, participants, a default lookback period, and optional JQL Issue filters. Once these items are set up, the board automatically pulls in Issue Cards that show a Change Log (based on the lookback period) for each relevant Issue, a visualized mapping of Linked Issues, and optional User Notes.
In addition to the informative visual map, the robust Linked Issues feature shows the Change Log for each of the Linked Issues and offers optional User Notes as well. If a Linked Issue has had a change within the lookback period, that is indicated by a circle around the Issue dot on the visual map. If you adjust the lookback period, the Linked Issue map will update to reflect what changes have been made, and the Change Logs for each Issue will update as well.
User Notes are a great way for SU participants to make a note about anything they want to discuss as a group during SU. Notes can be logged on the Smart SU Board only, or they can also be logged as Issue Comments to preserve important discussions, thoughts, or decisions within Issues for future reference.
Issue Cards also display Comment Sentiment to help participants and team leads more easily identify which new developments since the last SU are most important to discuss or tackle next.
Using the Board during an SU is easy for all. Participants can make notes, drag-and-drop reorder their Issue Cards, select a Card Color to flag an issue for discussion, or ignore or hide a Card if it's not relevant for a particular SU. Team Leads can adjust the lookback period, filter the view by participant, and make any of the same adjustments as participants to keep the meeting flowing efficiently.
How we built it
When we want to quickly understand something, it's more effective to look at what has changed, so the driving inspiration for this app was to present information in the form of differences from the last meeting (or last X days/hours). The idea was born.
For example: Looking at an Issue with fix version Version 3 vs. looking at an Issue whose version changed from Version 2 to Version 3 in last 2 days.
The latter immediately informs us that the delivery of this issue is scheduled for later version and hence may incur some delay.
Our team met 1-2 times per day for a few weeks when we were building this app. We collaborated remotely using Jira, Confluence, Bitbucket, Google, Zoom, and Slack and a few other collaboration tools. We got feedback from several colleagues as we were building this.
Initially, we thought we would have to build a time series database and persist snapshot of issues based on time, but then we realized that Jira provides a ChangeLog API which does exactly this, and with Forge it was very easy and quick to access.
A few issues were that the ChangeLog API does not include comments, so we needed to get comments data from a separate API. For linked issues, again we called a separate API and recursively gathered ChangeLog and Comments for all linked issues.
None of the API provided time based filter; hence, we had to do filtering at our end. It would be nice for Jira to provide filtering based on time.
Once we had the access to data, we started building the UI. We wanted to have this app for everyone, but Forge does not have general pages module; it only has project page or admin page. So we built create/list/edit board as an admin page while listing and viewing board is part of project page.
While building the UI, we used some custom UI. A lot of Forge UI components didn't play well in Custom UI, so we went back to using Atlas Kit where needed. Rest is a lot of UI work for presentation, interaction, etc.
We used Google's NLP API for sentiment analysis and Forge Storage for storing Notes.
Forge Storage is specifically very limited to key-value pair data only. Large Apps may need more sophisticated features for storage and persistence. But for our use it was sufficient.
Challenges we ran into
As our team was working on Smart Standups for Jira, we did run into a two main obstacles as mentioned above:
First, we had compatibility issues between some custom UI components and the Forge UI components, specifically with avatars. The solution we found was to use the Atlaskit components for avatars instead.
Second, because Forge does not have a General Page module, we had to put Smart Standup Boards within Project Pages. This isn't the ideal location for the boards since it could limit access to the board.
Accomplishments that we're proud of
There are many tools out there to help teams run Standups. We looked at Standalone Products, chat-based SU-bots, and other Atlassian apps. We're proud that we were able to build an app with several important differentiators:
First, we wanted to enable teams to hold Standups right within Jira, where they're already working and where project information already lives.
Second, rather than showing static statuses, we wanted to automate the process of showing the changes from SU to SU. The Card layout with Change Logs does just that.
Third, we wanted users to be able to add additional context or discussion topics with custom notes, card flagging, card reordering, muting cards, and more.
Fourth, we wanted to show Linked Issues to provide a full picture of the team's work and its impact. We're particularly proud of how much useful information we're showing here in an efficient way with the combination of the Change Logs and visual mapping.
Fifth, we're really proud that we were able to automatically analyze Comment Sentiment for Issues and display it in a quick, visual format. This helps participants and team leads more easily understand their day-to-day impact.
For teams who already use Jira, we think this app will be the best way to organize information for Standups.
What we learned
Forge is easy and quick to set up and use. It eliminates a lot of platform-related work, and developers can focus on building apps.
In the future, we hope to see Forge expand its storage to include relational data, searching, and sorting capabilities; improve dependencies and package management (e.g., we had problems using moment.js); add access to Confluence and Bitbucket from Forge Jira apps (e.g., for our app, we would like to access and present change log data from linked Confluence pages and also developer info from bitbucket, but currently didn't find anything for this in Forge; accessing Confluence API from JIRA App results in error); and from an API perspective, include time-based filters in Jira.
What's next for Smart Standups for Jira?
In our original roadmap, we planned a few additional features that we didn't have time to add during Codegeist. Next up on our roadmap:
- Allowing users to add custom Cards to their Smart Standup Boards for additional SU discussion topics
- Preserving Issue Card reorder on page reload
- Automatically detecting critical blockers and showing notifications within the Board view
- Building additional settings for permissions and Board access
Smart Standups for Jira offers...
- Quick setup — just add meeting participants and set the cadence
- Easy updates — reorder boards and add notes before SUs
- Meeting flow — Simple UI makes it easy to see changes at a glance
- Full picture — Unique Linked Issues visibility within SU boards
- Track decisions — Powerful note and Comment features
With Smart Standups for Jira, teams can spend less time sharing updates and more time sharing ideas and overcoming blockers.
Smart Standups for Jira helps teams make better use of standup time.