Advanced Agile Workflow - Dione Technology

download Advanced Agile Workflow - Dione Technology

of 14

  • date post

    22-Oct-2014
  • Category

    Technology

  • view

    379
  • download

    1

Embed Size (px)

description

Example of an Agile workflow for Catapult Satellite Applications

Transcript of Advanced Agile Workflow - Dione Technology

London Atlassian User Group, February 2014The story of a basic Agile worflow

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

Dan Petzen

dan@dionetechnology.com

London Atlassian User Group, 18 February 2014

London Atlassian User Group, February 2014The 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

London Atlassian User Group, February 2014The story of a basic Agile worflow

High level overview

London Atlassian User Group, February 2014The story of a basic Agile worflow

First workflow draft

London Atlassian User Group, February 2014The story of a basic Agile worflow

Final (initial) workflow version

London Atlassian User Group, February 2014The story of a basic Agile worflow

...a bit more complicated...

London Atlassian User Group, February 2014The story of a basic Agile worflow

London Atlassian User Group, February 2014The 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?

London Atlassian User Group, February 2014The 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

London Atlassian User Group, February 2014The 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);}

London Atlassian User Group, February 2014The 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;}

London Atlassian User Group, February 2014The 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"; }}

London Atlassian User Group, February 2014The story of a basic Agile worflow

What's next?

One more demo session

Stomp out bugs, thorough testing etc

Implementation in production

London Atlassian User Group, February 2014The story of a basic Agile worflow

Questions?

Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14