Hi Atlassian Community! Today, we’re excited to give you an inside look at how Compass was brought to life here at Atlassian.
With the growing complexity of modern software systems, engineering teams often face the challenge of organizing their services. At Atlassian, we experienced this firsthand as we saw our own systems grow. To address this, we first built Microscope, the first iteration of our internal developer platform, and later utilized our learnings to create Compass, our solution that brings our internal success to teams globally.
Compass is Atlassian’s internal developer portal, a place where users can track and improve all the software a company builds.
Since its launch in 2023, Compass has been chosen by thousands of organizations to accelerate developer productivity, improve software reliability, and build a better engineering culture. Compass empowers software teams to:
track software component details and delivery performance
improve consistency and compliance through scorecards and automation
give developers insights and context to promote a healthy culture of autonomy.
In this article, we will share our journey of building and evolving a developer platform, starting with Microscope.
Compass arose from Atlassian’s own developer productivity challenges. In 2016, Atlassian began its journey from monoliths to microservices to accelerate agile development and product build time. The explosion of microservices meant that Atlassian developers could interact with up to 20 touchpoints and searched for service logs across multiple platforms just to find basic service information and debug issues. Knowledge was siloed, with developers across Atlassian’s global offices relying on a web of internal pages of links maintained by certain individuals or teams, making information access a matter of ‘who you know’ rather than ‘what you know’. These issues were visible during high-stress incidents, when minutes that could have been spent implementing fixes were instead used for searching for component and owner information.
In 2017, Compass' predecessor, known as Microscope, was born as a UI for Atlassian’s PaaS. By consolidating service metadata, basic metrics, and logs into a single platform, Microscope significantly reduced context-switching and the number of steps developers took to get work done. Atlassian teams contributed to Microscope through simple tools, known as Microscope plugins, for reliability, compliance, and centralized service logging.
Having seen how Microscope improved developer productivity within Atlassian by reducing software sprawl, we recognized that our customers likely faced similar challenges. Via customer interviews, we had already heard of customers using spreadsheets to organize service information. A product like Microscope didn’t yet exist on the market. By building upon our learnings from Microscope, we could fill this gap with the added edge of integrating with the Atlassian platform!
We started Compass with powerful capabilities developed internally, from search to metrics to scorecards. We also reimagined frequently-used Microscope plugins in Compass:
Deployments are available in the activity feed
Logs are consolidated in the components overview page
The service linter plugin has evolved into scorecards to maintain component reliability and security
But we quickly remembered that every customer has different needs and workflows.
Enter Forge, Atlassian’s serverless app development platform. Developers can chart their own course by contributing to Compass via the Forge platform and calling the Compass GraphQL API. Forge enables teams to create fully-functional applications on top of existing Atlassian products in a matter of hours, thanks to helpful templates and example app repos. Forge gives teams the flexibility to shape Compass to fit any workflow or need.
Some examples of current Forge apps available in Compass include:
Bitbucket, which allows users to import and link repositories within Compass, and view relevant Compass components right in code repositories
Slack, which allows users to unfurl component information just from a Compass link sent in Slack
LaunchDarkly, an externally-owned app allowing users to visualize LaunchDarkly feature flags for Compass components.
Every developer dreads a late-night alert. In the past, these high-pressure situations meant searching through bookmarked dashboards and digging through Confluence documentation while half-awake. Now, Compass is my first stop when I get paged. Instead of wading through my Chrome bookmarks, I can easily navigate to the affected component in Compass and access service dashboards, view recent deployments, and investigate issues with any related service dependencies - all in just a few clicks within the component overview page!
An increasingly efficient workflow thanks to Compass means decreased time investigating nighttime alerts and incidents - and increased sleep during an on-call week!
Software development rarely happens in isolation. Engineering teams often work with multiple services at once. When developing features spanning multiple teams or products, I need a clear understanding of component ownership, dependencies, and documentation before touching a line of code. Compass allows developers to get all of this information quickly via the component overview page, cutting down on time needed wading through wiki pages just to find basic service information.
This enhanced visibility comes in handy during the code review process. Using Bitbucket’s integration with Compass, I can determine what Slack channel to ping when I’m working on an unfamiliar repo. Recently, we’ve worked on migrating icons for TEAM 25, which required many cross-product contributions. Within Bitbucket, I am able to easily view the owning team and Slack channel associated with a Compass component, thereby saving time spent surfing Slack channels, pinging random developers, and Confluence pages to find the appropriate point of contact to review my pull request.
At TEAM 25, Domino’s shared how Compass has transformed their developer experience.
Domino’s move from project teams to product teams meant engineers lacked context due to unclear ownership. Like Atlassians prior to the development of Microscope, Domino’s engineers had to work on unfamiliar services with scattered documentation and metrics, so they needed a better picture of the services they supported - a problem that Atlassian knew all too well.
Domino’s felt that Compass could help reduce cognitive load by consolidating component information and bringing clarity to component ownership via Compass' component catalog.
Some of Domino’s favorite Compass features include:
having component information consolidated into the component overview page,
configuring Jira projects to use Compass components, helpful when teams work on things owned by other teams,
using metrics and scorecards to help dev managers track quality,
You can watch Domino’s full TEAM 25 session from the on-demand library here.
From Atlassian’s own struggles with software sprawl to Domino’s journey to consolidate component information, we’ve seen how organization issues are universal. Through Compass, we’re helping teams across the globe tackle these problems, one component at a time.
How does your compnay manage software sprawl? If, like we were, you are having trouble finding out which teams owns which service and wether that service meets all the requirements to be in production - I suggest you give Compass a try!
Kali Cornn
0 comments