Build Better Software

The Power of Purpose

The best dashboards begin by answering the question, “Why?”

by Jay Hogan

When you’re designing a dashboard, start by asking “Why?” Answering this one radically simple question will help you define your dashboard’s purpose, which should drive every design decision you make, from what is displayed to how you display it. Without a clear, defined purpose, your dashboard will fail.

To discover your dashboard’s purpose—your “Why?"—you’ll need to answer these four key questions:

1. Why does the dashboard exist?2. What insights do you want to provide?3. What actions do you want users to take?4. How will users interact with the dashboard?

To illustrate the importance of purpose and how it can serve as your project's true north, let's consider Hygieia, which won a 2015 Black Duck Open Source Rookie of the Year award. Our friends at Capital One launched Hygieia, a configurable dashboard that provides a nearly real-time consolidated view of an entire delivery pipeline, at OSCON 2015.

Question 1: Why does the Hygieia dashboard exist?

In a 2016 InfoQ article, Topo Pal, who led the Hygieia team, said Capital One couldn’t find a commercial or open source dashboard tool to meet its purpose, which is to monitor the health of a continuous delivery pipeline (that’s why the dashboard is named for the goddess of health). He explained that available tools couldn’t generate the information they needed to see, from code commit to production deployment, with all the necessary information around the health and quality of the software.

The Hygieia dashboard was created because there was no single source of information that allowed a dev to see all of the relevant information about the pipeline. For example:

Jenkins has a dashboard, but it only shows build information.

Sonar has a dashboard, but it only shows code quality information.

GitHub has a dashboard, but it only shows source code commit information.

Jira and VersionOne have dashboards, but only for features and user stories.

Question 2: What insights does Hygieia provide?

Hygieia provides absolute transparency for everyone involved in product development—from the product owner and developers, to security engineers and management—providing insight into pipeline health. By truing back to its purpose, Hygieia succeeds. Some examples:

Is there a problem right now?

Did a build fail? When did it fail? Has it failed several times in a row?

Are any of my servers down? Was it caused by a recent deployment?

Are any of my automated tests failing? Which ones, and how long have they been broken?

Is my software quality acceptable?

How many source code issues do I have? Are they Critical, Major, Minor or Trivial?

Is my Technical Debt within acceptable limits?

How frequently do builds fail?

Question 3: What actions do Hygieia users to take?

Purpose-driven dashboards enable better business decisions. As Topo Pal points out in the InfoQ article, by exposing issues such as poor unit test coverage and open critical code analysis issues early on, Hygieia helped dev teams incorporate improvement work into their regular sprints and received management’s support to do so.

Examples of actions for Hygieia users:

If there is a major issue, fix it now:

Troubleshoot broken builds.

Eliminate blocker or critical code quality issues.

Correct failing unit or functional tests.

Investigate critical infrastructure issues.

Ensure that software quality is trending in the right direction:

Code coverage may be 74% but is it trending up or down? Be sure the team stays focused on writing tests as the software changes.

Let’s say there are 28 code issues, how many were there last sprint? Is the team focused on keeping technical debt within reasonable limits?

Question 4: How do users interact with Hygieia?

Hygieia functions as a nearly real-time information radiator, but how users interact with it dictates how the dashboard is designed and displayed: