Using the Decisions Helper App to Shape the Future of Forge

Reading Time: 4 minutes

When it comes to building new features for a product like Forge, making decisions and getting the right stakeholders aligned can be complex and time consuming. It's important to have processes in place that clearly outline the options to finalize an outcome and hold stakeholders accountable for contributing. These pain points are what sparked my interest to build the Forge app: Decisions Helper for Confluence, with the goal to help streamline the decision making process for our team and our fellow Atlassians.

Learn about how I identified a business gap, built a Forge app to fill it, and how Decisions Helper for Confluence has helped Atlassians make over 100 decisions to date.

Identifying the Problem

Every organization, no matter its size, can experience difficulty with decision making. Whether it's identifying the right stakeholders, knowing who has final say, or clearly defining a consistent process and way to collaborate, sometimes decision making can be flat-out messy, confusing, and non-linear.

After noticing how Atlassian teams made decisions in many different ways, I put together an internal guide on best practices for decision making to help us determine a decision-making framework depending on the type of decision being made.

It was during a recent Innovation Week that I saw an opportunity to build an app based on the guide I had created to help teams internally standardize their processes and improve the speed and efficiency of our decision making as a whole.

I chose to build a Confluence app with Forge as it was the easiest and fastest to get up and running with, and allowed me to focus my time on building valuable app features while under a time constraint. As an engineering manager for Forge, I saw this as an exciting opportunity to use the platform that I work to improve every day, and to better grasp our strong points and shortcomings from the perspective of a developer.

Building a Better Workflow

To get started building the app, I first outlined two decision making tracks: general consensus through RFC (request for comments) used to inform others of a decision and allow them to evaluate, comment, and agree/object, and the DACI framework (driver, approver, contributor and informed) that requires explicit approval. The app needed to include approval tracking, automated workflows (draft, in progress, seeking approval and approved), the ability to set due dates, and send notifications to those involved to ensure the decision status is visible at any point in time.

The macro I built (shown above) sits on the top of a Confluence page so that any visitor to the page can clearly see what the status is and who is involved in making the decision. I used Custom UI due to advanced functionality of UI components described in a later section, the Forge macro extension point, and macro config, and was really happy with how the user interface turned out. The app took me three days total to build, and I felt like I accomplished a lot in a short window of time!

Discovering Areas of Improvement

A few technical challenges presented themselves throughout the course of building the app. One important component is being able to see how many people are active on the page, which is displayed in the upper right hand corner of the app. Custom UI was needed because it was the only way I could show how many people are on the page and that is constantly changing. Forge does not currently support web sockets, so I had to use polling every 10 seconds to make a call to the server and show how many people are currently active on the page.

I also had challenges with the user avatars I brought in and ended up having to add the avatar URLs to egress permissions. This is something that should probably work out of the box and definitely something I'd like to improve upon. I also wanted to be able to use the Teams APIs so that I could tag an entire team as being informed vs. individual people, but the API was not supported at the time that I built the app.

Lastly, there are a few improvements I want to make that will be unblocked by future Forge storage enhancements, like adding reporting functionality to compile all open decisions on our team. With the current storage capabilities, you can only pull all decisions or no decisions. I am lobbying for storage enhancements such as advanced search for Storage API among other Storage API improvements. Going through the process of building this Forge app opened my eyes to see these gaps from an app developer standpoint.

Putting the Decisions Helper App Into Practice

After building the Forge app, I decided to put Decisions Helper for Confluence to the test to help my team make decisions regarding a Forge product enhancement.

If you're already a part of the Atlassian developer community, you may have noticed that last October we announced that we'll be removing the allow access prompt for Forge apps for individual users. Instead of requiring each user to 'allow access' for every app within their Atlassian instance, their account administrator will consent on their behalf. This improvement will help streamline workflows for users and help make for a seamless experience between out-of-the-box product features and apps.

Ironically, when I installed the app to help our team in making the decision to remove the 'allow access prompt', most of the team couldn't figure out how to contribute to the decision making as they had not allowed access to the new Decisions Helper app yet! It's safe to say this experience definitely played a role in confirming the need to remove this prompt for users.

Measuring Success

Once our Atlassian team members started using our app, I immediately started hearing how great the user experience was, how helpful it was to follow a standard decision making process each time, and that the app helped to expedite decisions across teams. Colleagues specifically pointed out that it was beneficial that the app enforced an explicit "I agree" instead of passively letting decisions go through. This was my ultimate goal. So far, Atlassian has made over 100 decisions with the app, and I can’t wait to see what the future holds for Decisions Helper.

Find Decisions Helper on the Marketplace

I’m excited to announce that Decisions Helper app for Confluence recently made it to the Marketplace, and is now available to help you and your organization simplify and streamline decisions in your organization. I’m curious to know; does your organization use the apps that you build, and were those apps built using Forge?