Adam Rypel is a busy person. With the end-of-life date for Atlassian Server looming, Adam is leading the team of migration experts at MoroSystems. MoroSystems are a Platinum Solution Partner of Atlassian, and many enterprises rely on their help with Jira Cloud migrations of their critical sites. In fact, the team is growing and sharpening their tools and practices. They need to avoid any waste of time and be perfectly organised so that they can meet the surge in demand without dropping any ball.
I met with Adam to hear how he has set the team up for success. I know he was using Jira Snapshots for Confluence as an important enabler in their workflow, but now I was hearing the whole story.
Leveraging Jira, Confluence and Jira Snapshots to enjoy the best of all worlds
Adam: “Each migration has a planning phase. Based on the specific customer use case, the latest information from Atlassian and our own learnings, we build a clear list of tasks. We organise this list into a runbook that we follow through the migration. This runbook needs to be visible to the customer. We started by building it as a table in Confluence. Customers have access to our Confluence, where we collaborate with them in a project space. The problem was that a Confluence table is not an easy way to maintain 50-ish tasks in the correct order. We frequently re-ordered the tasks, modified them, added new ones etc. A Confluence table is just not dynamic enough and is not a good fit for this purpose. It was annoying and energy-draining. There had to be a better way.
What my team wanted was to manage their work in Jira. So we did that: each migration phase became an Epic, and within this Epic we open all the Tasks required to achieve the migration. We use Jira roadmaps to organise the tasks in a certain order. Internally in Jira the Task order is captured within the “Rank” field (same field that is used to order backlogs or sprint boards).
Team Leader, Atlassian Cloud Migrations with MoroSystems
Moving to Jira was great for the team. We live and breathe Jira and managing tasks there feels natural. But, there was a challenge: we needed to share the runbook with the customer. There is the native Jira Macro that can show Jira data in Confluence, but it does not work for us because our customer does not have access to Jira. When a user does not have Jira access, the Jira Macro shows no data.
We came so close to having a good workflow, I was convinced there is a way to overcome that last hurdle. And indeed, a visit to the Atlassian Marketplace was all that it took to discover Jira Snapshots for Confluence. It exports Jira data into Confluence and everyone with access to the Confluence page sees exactly the same information.
I now had a solution for everyone:
“For our Jira Cloud migrations projects, we would do all the internal planning and action in Jira. A Confluence page with Jira Snapshots Macro will give the customer the visibility they need. Jira Snapshots has already saved me a lot of time. Looking on all the migration projects on our backlog for 2023, I know its going to save me even more time going forward.”
Then, Adam shares some of the specific features of the App that are his favorites:
My other two favorite features are pretty essential. First, the fact that you can add to the snapshot any field you have in Jira- including your own custom fields. Second: The usage of Jira’s own JQL (to define the scope of the snapshot) provides you with a familiar and powerful way to scope the snapshot.”
The configuration cookbook
A migration runbook in Jira
Each migration has its own dedicated Jira project, where in a later stage, the Epics for test and prod migration are created. All migration Tasks are issues of these Epics. A typical migration phase would have around 50 such Tasks.
The order of Tasks is important. The team uses Jira’s roadmap feature to drag-reorder all the tasks so that its correct. Jira maintains the order of each Task through the internal Rank field. They invest a lot of time reviewing the order and ensuring they did not forget anything.
Each Task is the responsibility of one of the parties: the vendor (Adam’s team), the customers, or the Atlassians’. Adam configured a “Responsibility” field to capture this information.
Customer alignment with Confluence and Jira Snapshots
Each customer project gets a space in Confluence. It is used for regular communication and collaboration between customer and Adams’ team.
Within this space, Adam sets a page for the Jira Cloud migration runbook.
The migration runbook is imported with the Jira Snapshots Macro. Its a single level table with the data from all the Tasks in the migration Epic, ordered by Rank. The “Responsibility” field is on this table, nudging the customer to make progress on their issues.
With this tooling setup, Adam feels ready to meet the surge in demand for migration projects. His team will use Jira to build and manage their migration runbooks. Through Confluence and Jira Snapshots for Confluence, his customers will always be aware of what’s going on. Especially- they will clearly see what’s required on their side. Adam will spend less time on data copying, informing, and chasing. Because, hey- migration is hard enough without spending loads of time on communication.