Workflows

After my post yesterday on JIRA Agile and Hipchat using post functions on workflow transitions, I played around with modifying the default JIRA workflow to include a ‘testing’ stage – as currently it goes from “Open”, “In Progress” to “Resolved” or “Closed” – with no mention of testing.

This is easy enough to add – you simply modify the workflow, and add a new stage, as per below:

Screen Shot 2014-08-14 at 14.03.43

Here I added a new status, ‘In Testing’, and linked it from ‘In Progress’ with a  ‘QA’ transition. This is really cool, because you go from having a default view of an ‘in progress’ story of:

sample_Start

 

To one that has a new button, “QA”, the developer has finished with the story:

_TP-10__Subtask_testing_-_JIRA

 

When the developer clicks ‘QA’ (Or ‘Assign to QA’, whatever you call it!) the buttons will change, along with the status of the story / task, as per the image below:

_TP-10__Subtask_testing_-_JIRA2

Obviously, you might want to link the ‘In testing’ status to ‘In Progress’ again, if the testing fails for example – this is just a quick setup 🙂 The problem we have with the above workflow however, is that the same workflow is not applicable to all types!

So what do i mean by this? Well, you might want to use a different workflow for tasks or bugs, compared to user stories – i.e. in a user story, you will generally have ‘developer’ tasks and QA tasks, therefore having a developer task go to ‘In testing’ makes no sense – you might want just ‘open’,’in progress’ and ‘closed’ for example – whereas bugs might be ‘open’, ‘in progress’ and ‘fixed’, etc. Luckily, there is a way in JIRA that you can create seperate workflows for specific items – hidden in plain sight at ‘Workflow’ under your project:

Project_Test_Project_-_Workflows_-_JIRA

In my example above – I have 2 workflows – one for ‘tasks’, and one for ‘everything else’. In tasks I have forgone the QA element – just to diffentiate between them, as per above.

Im not going to go through adding a workflow, as its really simple – you basically click ‘Add workflow’, choose the one you want (i.e. JIRA default), associate that with the issue types you want, and then click OK/Submit. Then, edit away – add new statuses/transitions, rename labels, add new post functions, and more. Then, publish – and your changes are applied!

Task in progress

_TP-21__A_sub_task__-_JIRA

Bug in progress

_TP-10__Subtask_testing_-_JIRA

Conclusion

Basically, using workflows and post functions, you can pretty much customise everything you want in JIRA Agile. For example, I played around with ‘Slack’ last night on the recommendation of a friend, and whilst it wasnt as advanced as the Hipchat integration – it is remarkably easy to setup – just configure it as a Webhook, and again – select a post function on a transition, ‘Type: Webhook’ and voila, your configured! Its really simple but incredibly powerful.