Regardless if you work in a continuous delivery flow like Kanban, a sequential delivery flow like waterfall or an iterative delivery flow like Scrum, you will benefit greatly from having portfolio management. Having a dedicated funnel ensures that you get a proper overlook of your incoming request. In this article we will discuss how that can be done by creating a process for it in Jira Software.
Advanced Roadmaps is a very useful tool because it allows us to get the big picture. It also allows us to scale the hierarchies in Jira for issue types. This is important because the standard hierarchies are designed for teams, so they do not scale well. While you can work around this using the sideways approach where you have the higher hierarchies in a separate project and link between them, that is not really a hierarchy. This also works poorly when you wish to display things in Advanced Roadmap.
The first thing we need to do for a proper hierarchy view in Advanced Roadmaps is to define the portfolio levels. We need to accommodate for multiple scenarios as requests, or demands, often come in different forms. The most common types are projects or even programs, or new features. We also want to make sure we can work with the different frameworks out there, so we add a collaboration level as well as defined in SAFe.
To avoid a lot of confusion between different frameworks and other tools, we rename the Epic issue type in Jira Software to Feature. It will not be perfect, but it will have to do until we get the ability to rename it properly when Atlassian makes that change in the future. We do this by going to Issues -> Issue Types and edit the Epic issue type. We also add two new issue types for Initiative and Capability.
Next we go to Plans -> Settings -> Advanced Roadmaps hierarchy configuration. There we add two new levels called Initiative and Capability and map them with our newly created issue types with the same names. Finally, we rename the Epic to Feature, and we should have our first hierarchy defined. We can go back and adjust this later if we want. The setup should now look like this:
We can now add this to our projects by adding the issue types to our Issue Type Schemas. Depending on your setup you may want the new issue types for Initiative and Capability to exist in a separate Issue Type Schema, or you will add them to the standard schema. Either way we still need to give the new issue type a workflow that match their purpose. So we head over to Issues -> Workflows and create a new workflow.
Again we want to consider what the purpose of these issue types is and who will actually work with them. Initiative, Capability and Feature are all used by management and requirement analysts to provide information on how to realize demands. That means that we do not have the same transfer of responsibility as for User Stories. Instead, we need to consider what we actually do in the portfolio and what we need to track in terms of activities.
SAFe have a pretty good example of this for their Portfolio Kanban. Their first step is Funnel and for us that is pretty much everything that comes into our workflow, and we define this as new. Anything that comes in to the portfolio needs to be reviewed to see what we should focus on next. Since we will not review everything we add two steps for the review process: Ready for Review and In Review. This allows us to only pick things that we want to review by moving them from new to Ready for Review, and then we have an active status to indicate that we are working on this.
We do the same for Analysis, which is the step where we involve Business Analysts and Requirement Analysts to define the need in more detail. For this we add Ready for Analysis for when the Review process lead to us spending time to break down the need in a requirement process. We also add the In Analysis to indicate that it has entered the Requirement process.
Before we close this workflow we add the Implementation process as well. Ready for Implementation indicate that the requirement process has led to a decision to implement and In Implementation indicate that the need is being fulfilled. We do not fracture this further as we can easily drill down to individual tasks in Advanced Roadmaps, and it is not really useful to have for example test and release part of this workflow. That is because each issue type will have many issue types below it, and you can only transition on the last sub-task, making it misleading and feeling stagnant.
Finally, we add a status for Blocked/Pending to allow us to track when things are preventing this activity from being fulfilled. This can be external or internal dependencies or financial reasons for example.
As always we go for an open workflow to allow for free transitions. We add a close screen to the Close status to set a resolution and then add a post function to remove resolution on all other statuses. This workflow should now look like this:
The final step is now to go to our workflow scheme and add this new workflow. We do this by going to Issues -> Workflow Schemes and click edit on the workflows scheme we have Initiative, Capability and Feature added to. We click add Workflow and add the new workflow we just created. Then we select that this workflow will be applied to Initiative, Capability and Feature before hitting save.
This should now allow you to work inside Advanced Roadmaps using Initiatives, Capabilities and Features in a proper portfolio management process that allow for larger projects and programs as well as manage smaller feature or even user stories.
I hope you found this useful and as always, if you have any questions just write a comment and I will do my best to help you.