idea for modular workflow setup

Kost, Michael June 29, 2021

Hi Everyone,

 

I would like to hear your opinion about an approach, I would like to follow when creating new workflows in JSM.

Now I design workflows with all status needed, directly in the workflow. If anything is changing in the workflow (additional approval step, new status in the workflow needed) I need to adjust the whole workflow.

To reuse workflows for other use cases, compromises must be made to find the existing workflow to the new use case. (status names not fitting to the to do, missing steps/unnecessary steps)

So, I would like to design more flexible workflows, where often used sub sequences are outsourced to separate workflows. You can imagine it like modules attached together as needed.

 

We often need approval status in different shapes. Therefore, I have thought about this part more in depth.

My idea is to separate approvals and the working workflows into two different issues.

My idea consists of 3 parts that needs to be put together.

  1. Insight CMDB object where the workflow setup is stored (approval needed, how much approvals, maybe in which custom field is the approver stored)
  2. A “To do” workflow with a status representing the approval, but without approval configuration
  3. An “approval” workflow, with several approval steps, only created by a “working” workflow with approval setup

Example:

The customer creates a new issue. Because of the request type of the issue is identified as issue which needs 2 approvals.

After creating the issue, the status “approval needed” is reached and triggers the creation of the approval workflow. Within this workflow, it’s determined how many approvers are needed for this setup. The approvals are handled and if approved, reported back to the original issue.

After the approval the “To do” workflow will automatically transit out of the approval status and can be processed by the responsible.

With this approach I hope to get a more flexible setup, where changes on an approval setup don’t lead to a rework of a whole process. Additionally, I promise myself to get a workflow toolbox, from which I can select modules to fit to new use cases  

Has anybody realized a similar setup yet and can point me to some points to be aware of?

 

1 comment

Dirk Ronsmans
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
June 29, 2021

Hi @Kost, Michael and welcome to the community!

I like your use case and it's an interesting method of solving this issue. I've been long been lobbying for workflows within workflows but sadly nothing on that front has moved yet :)

While I haven't worked around the issue like you suggest, what we do is work with Insight to at least have some dynamic approvals based on a service/CI chosen on the issue which will (when you hit the approval status) check Insight and add the correct approvers to the issue. (this could be one or multiple users).

This however has the shortcoming of that all approvers are immediately notified and you don't really have a hierarchy in the approvals. But it does solve the issue where you want to have flexible approvers based on the issue details.

You could also use that CI/Asset/Service and work in a more staged approach. If you for example add a fixed amount of approval stages on your asset (as attributes) you could also keep on the issue in what Stage you are and get the next set of approvers when the previous one is done. (or move to rejected when the approval fails). 

This could also be facilitated by a self-reflecting transition.

Again already a bit more flexible but not yet perfect for all use cases.

 

Your idea also sounds good and could maybe be combined with my Insight idea.

You could add a linked issue (with maybe a relation of "is approved by"/"approves") and only allow the main issue to transition when the "approval issue" reaches a certain status.

All in all it's not a simple thing to implement but it is doable. I feel that a combination might be the cleanest but only using Insight could be the quickest to implement. (depending on what flavor you need). If you don't require hierarchical approval but just dynamic approval, that could be set up in a day or 2 imho.

 

As a last point and I would be remis not to mention it.

I think if you really want to go for a minimum amount of implementation and have a (little) money to spend (implementing this will also bring a cost) you could look towards an app.

https://marketplace.atlassian.com/search?hosting=server&product=jira-service-management&query=approval

For example: https://marketplace.atlassian.com/apps/1215680/approvals-advanced-issue-acceptance?hosting=server&tab=overview seems to be able to just have an approval flow that you can trigger.

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events