Dan Petzen presented on the story of a basic Agile workflow and how he discovered SIL (Simple Issue Language) while working with a client's DevOps team to help them improve their use of JIRA. SIL allows automation of workflows through post-functions, validators, listeners and services using a simple scripting language. He demonstrated how SIL can be used to automatically transition subtasks and parent issues based on their status. Further testing and implementation was planned before full production use.
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Advanced Agile Workflow - Dione Technology
1. The story of a basic Agile workflow
...or how I discovered SIL
London Atlassian User Group, 18 February 2014
Dan Petzen
dan@dionetechnology.com
The story of a basic Agile worflow
London Atlassian User Group, February 2014
2. 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
The story of a basic Agile worflow
London Atlassian User Group, February 2014
3. High level overview
The story of a basic Agile worflow
London Atlassian User Group, February 2014
4. First workflow draft
The story of a basic Agile worflow
London Atlassian User Group, February 2014
5. Final (initial) workflow version
The story of a basic Agile worflow
London Atlassian User Group, February 2014
6. ...a bit more complicated...
The story of a basic Agile worflow
London Atlassian User Group, February 2014
7. The story of a basic Agile worflow
London Atlassian User Group, February 2014
8. What's this? JJupin?
This is not an advert – really!
(They don't even know I'm doing this presentation)
The story of a basic Agile worflow
London Atlassian User Group, February 2014
9. 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
The story of a basic Agile worflow
London Atlassian User Group, February 2014
10. User story post function 'B'
string st;
for (st in subtasks(key)) {
if (%st%.status == "Created")
autotransition("Queue", st);
}
The story of a basic Agile worflow
London Atlassian User Group, February 2014
11. 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;
}
The story of a basic Agile worflow
London Atlassian User Group, February 2014
12. User Story post function for transistions 'F' and 'F n'
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";
}
}
The story of a basic Agile worflow
London Atlassian User Group, February 2014
13. What's next?
●
One more demo session
●
Stomp out bugs, thorough testing etc
●
Implementation in production
The story of a basic Agile worflow
London Atlassian User Group, February 2014