We announced Compass back in April at Team 2021 to enormous interest - clearly the idea of a tool to help transform the way your software teams work with distributed systems resonates with many of you!
As part of Atlassian's Point A program we've been working closely with many of you to help co-create Compass, understanding and learning more about how we can help harness the power of distributed systems and the culture of DevOps, and iterating our way forward. So thanks to everyone who has tried the product and given us feedback during the alpha so far!
Based on your feedback so far we're confident in the problems we're trying to solve and the direction we're headed. We strongly believe that developer experience platforms like Compass can transform the way your teams work and allow your engineers to be more creative, happy, and productive.
It's a culmination of all the hard work and effort the team has put in over the last 6 months (more about that below), and we feel the alpha is ready for wider use and feedback. Now all you have to do is go to https://www.atlassian.com/software/compass and you can install Compass on any existing or new site.
We look forward to hearing your feedback so we can continue crafting the product with your help into something your teams will love to use!
We have made some incredible progress with the alpha over the last few months, with a focus on the following areas:
Get started with your catalog.
Add information about your components.
Build a model of team ownership and component health.
Extend the product UI and craft your own dev experience.
Let’s take a look at these in more detail.
Creating and importing components
The starting point for creating a great developer experience is tracking the catalog of software components that your teams build, assemble, and operate. We made it easier to import thousands of components through various methods, including SCM tools like Bitbucket and GitHub.
Search and labels
We made it easy to search and find components, helping you get the information you need to understand your architecture fast. And with labels you can arbitrarily group components and use those labels to search - with more ways to use labels coming in the future.
Atlassian editor smart links
The smart links functionality in the Atlassian editor allows you to reveal additional context about links you drop into a confluence page, Jira issue, or comment. By pasting a Compass component URL, it will unfurl to reveal more information, making it easy to reference different parts of your architecture as you discuss and collaborate!
Config-as-code
Compass provides a great way for GitOps practitioners to scale and manage thousands of component definitions through the use of ‘config-as-code’. This means you can use source code, via a compass.yml file, to act as the source of truth for any particular component, tying directly into your existing development workflows.
Jira integration
Connecting the work moving through Jira to the individual components in your distributed architecture is important for teams that build and operate software, allowing them to find the balance between innovation and stability, providing a true total cost of ownership that cuts across both dev and ops.
Activity feed with deployment
This is a powerful new capability that allows your teams to understand what is happening to each component across various tools & events - starting with deployment events for your services.
Dependency management and announcements
As your architecture and DevOps practices scale, the ability to track the relationships of components and co-ordinate activities across them and related teams grows in importance. Compass helps keep track of these dependencies and allows teams to broadcast messages as an initial starting point.
Component-level API specs
Software isn’t written anymore, it’s assembled from various components owned by autonomous teams, and successfully assembling software across a wide set of components requires an understanding of how to use them. This includes understanding the APIs and contracts made available to interact with each individual component. Here, we are using the OpenAPI specification to render API information simply by adding a swagger.json file to that component.
Team ownership and dashboards
Based on Atlassian’s own experience supporting and building products for over 200,000 customers, Compass provides an opinionated stance that all components should be owned by a single team. Atlassian Teams are a relatively new concept that will span across all of our products allowing you to tie work, documents, and components together. This allows you to aggregate component health information about each team and across your entire organisation.
Scorecards
Scorecards are a powerful way to tie disparate information across many different tools and then codify best practices for your teams to follow. You can see which components or teams are scoring low on development practices or operational maturity, giving you a birds eye view you need to take action and improve where it is needed.
There is no one-size-fits-all when it comes to how you build and operate software, and that's why we've spent time making Compass a developer experience platform that's as extensible as possible. Not only can you interact with all the information you see in the product through our APIs, but you can also extend the UI itself to tailor the developer experience to suit your own needs.
We have extension points on the component detail view and global view at the moment, with many more extension points to come! Using Atlassian Forge, you can let Atlassian handle running the apps so you can focus on the application logic.
You can get started by checking out our developer docs.
See how you can create a static ‘hello world’ app in under 60 seconds!
Being an Alpha product and part of Point A means that we're rapidly iterating and our roadmap is quite fluid. This means it's a great time to let us know what you would like to see and we can respond quickly to your feedback.
Note: Please keep in mind these are design mockups to convey the concept, they will change as we test & learn while building each new capability.
Below are just a few highlights of things we are spending time exploring:
Customers love the idea of scorecards, but need a flexible way to add more information about components so they can construct more complex sets of criteria across dev and ops. Using the new concept of metrics, you can add all kinds of information about those components - some of which we will provide by default as best practices (when you install Bitbucket for example) and others you can define yourself. Read more here.
We will continue to invest in the activity feed by allowing new event types and then track those events across your dependencies as well. We will move this into a new timeline view to key on time to make it easier to triage incidents, looking across everything that has happened related to that particular component at a given point in time. This pulls in course-grain information across tools for you to then dive into specific areas in those tools for the details.
We will continue to invest in dependencies by overlaying incidents that occur to a particular component, as well as those you depend on. In a world of many components and assembling software, understanding the health and quality of your dependencies is just as important as keeping your own components in a healthy state.
As more information gets added to the catalog, we want to provide you with an easy way to search and find information through a powerful search mechanism. This would allow you to search on different criteria, save filters, and lots more!
In DevOps, teams are responsible for both building and operating their software. On the operations side, this can be a shared responsibility through the use of scorecards - owned by a platform team, and then the teams that need to keep those scorecards in a passing state. One way we can save your team a ton of time is by aggregating all this information into a weekly check-in for your development team to assess whether they are doing enough to keep their components healthy. There is a balance between building new features and paying down technical debt - this gives you a great way to see that often hidden cost of engineering health.
Look out for more information about the above features here in the Community (be sure to join the group to be notified of new posts!). We’re excited about this next phase of the alpha and look forward to collaborating with you in 2022 and beyond
Kelvin Yap
12 comments