Download - Advanced Agile Workflow - Dione Technology

Transcript
Page 1: Advanced Agile Workflow - Dione Technology

London Atlassian User Group, February 2014

The story of a basic Agile worflow

The story of a basic Agile workflow...or how I discovered SIL

Dan Petzen

[email protected]

London Atlassian User Group, 18 February 2014

Page 2: Advanced Agile Workflow - Dione Technology

London Atlassian User Group, February 2014

The story of a basic Agile worflow

Background

● Dan Petzen, Dione Technology - founded 2013 with Ram Tandukar and Sven Lecherbonnier

● Current client:

● Various interesting projects and tasks

● One of the tasks:

– Work with the DevOps team to help them make the most of their JIRA

Page 3: Advanced Agile Workflow - Dione Technology

London Atlassian User Group, February 2014

The story of a basic Agile worflow

High level overview

Page 4: Advanced Agile Workflow - Dione Technology

London Atlassian User Group, February 2014

The story of a basic Agile worflow

First workflow draft

Page 5: Advanced Agile Workflow - Dione Technology

London Atlassian User Group, February 2014

The story of a basic Agile worflow

Final (initial) workflow version

Page 6: Advanced Agile Workflow - Dione Technology

London Atlassian User Group, February 2014

The story of a basic Agile worflow

...a bit more complicated...

Page 7: Advanced Agile Workflow - Dione Technology

London Atlassian User Group, February 2014

The story of a basic Agile worflow

Page 8: Advanced Agile Workflow - Dione Technology

London Atlassian User Group, February 2014

The story of a basic Agile worflow

This is not an advert – really!(They don't even know I'm doing this presentation)

What's this? JJupin?

Page 9: Advanced Agile Workflow - Dione Technology

London Atlassian User Group, February 2014

The story of a basic Agile worflow

SIL – Simple Issue Language

● Called from post-functions, validators, listeners, services etc, etc

● Runs in a JIRA or an issue context

● Access to variables (R/W) and API function

● ...and loads more

Page 10: Advanced Agile Workflow - Dione Technology

London Atlassian User Group, February 2014

The story of a basic Agile worflow

User story post function 'B'

string st; for (st in subtasks(key)) { if (%st%.status == "Created") autotransition("Queue", st);}

Page 11: Advanced Agile Workflow - Dione Technology

London Atlassian User Group, February 2014

The story of a basic Agile worflow

User Story validation of tranisition 'E'

string sub_task;

for (sub_task in subtasks(key)) { if (%sub_task%.status != "Done") return false, "One or more sub-tasks are still being worked on ('Doing' state)."; else return true;}

Page 12: Advanced Agile Workflow - Dione Technology

London Atlassian User Group, February 2014

The story of a basic Agile worflow

User Story post function for transistions 'F' and 'Fn'string st;boolean sub_tasks = false;

// Parent (i.e. User Story):if (isNull(parent)) { resolution = "Cancelled"; for (st in subtasks(key)) { if (%st%.status == "Ready") { autotransition("Cancel", st); %st%.resolution = "Cancelled"; logPrint("DEBUG", "Task " + %st%.key + " is moved to 'Ready' via the 'Cancel' transition."); sub_tasks = true; } } return;}

// Sub-task (Fn):for (st in subtasks(parent.key)) { if (%st%.status == "Ready" || %st%.status == "Doing") sub_tasks = true;}

if (!sub_tasks) { if (parent.status == "Ready") { logPrint("DEBUG", "This (" + key + ") was the last sub-task. The story is in 'Ready', so I'm 'Cancelling' story " + parent.key); autotransition("Cancel", parent); parent.resolution = "Cancelled"; }}

Page 13: Advanced Agile Workflow - Dione Technology

London Atlassian User Group, February 2014

The story of a basic Agile worflow

What's next?

● One more demo session

● Stomp out bugs, thorough testing etc

● Implementation in production

Page 14: Advanced Agile Workflow - Dione Technology

London Atlassian User Group, February 2014

The story of a basic Agile worflow

Questions?