By Robert Leitch on September 7, 2014
Igor, what are you doing here?
Hi Bob! I'm transferring some notes from catWorkX Midsummer Day into our Wiki.
But if you're starting the interview, I'm all yours.
Igor, what are you doing here?
Ah, right. I'm developing our Structure plugin.
Pictured: not what Igor is doing here
Wonderful, how long have you been doing that and how did it all come about?
I joined ALM Works in 2008. Back then we had JIRA Client and Deskzilla, and I developed these products until I joined the Structure team around two years ago.
What's your claim to fame?
I introduced S-JQL search into Structure.
What exactly was your role in that?
I created it. With a lot of valuable input from the team, of course.
What new goodies are you cooking up for our users?
The issue details view on the structure board, the same as you see in the JIRA Issue Navigator.
I'm with you so far...
Well, in the issue navigator there's an issue details view, right?
Right...
When you focus an issue in the list on the left, you see all its details in a pane on the right. I'm working on a feature to bring the same thing to Structure.
Will it be inline-editable?
Yes, it will. It's going to behave the same way as in the issue navigator.
What about multi-select with multi-inline-edit? Something like inline bulk editing?
Not at this time. You have to use JIRA Client for that.
So what's the best part of the job for you?
I think it's mostly about the company culture. Our process allows me to focus on my own tasks and gives me creative freedom, with helpful feedback from the team. Equally, my feedback on others' tasks also contributes to the team effort.
When I was developing S-JQL, we were working on our specifications for the language. Since people have already been working on languages for querying trees (which Structure hierarchy is), I studied existing developments.
There were some exciting things, like the link between tree automata, logic and game theory. I liked the fact that we could look at this and use it to help shape our language.
Although we ended up not implementing an equivalent of monadic second order logic, we know how to get there if need be (and how to know whether we need it).
Bob? You still there?
Huh? Yes, yes. I'm here. Nomadic tree logic - wonderful stuff.
I've thought of another best part — I get to learn a lot from the people I work with.
Please tell me there's something you don't like about your job.
It's hard to say. If I don't like something, I try to change it.
That figures. Now tell me how you use Structure in your own work.
I have my own structure for the issue navigator feature where I break down this task into smaller tasks. It's very useful because this feature requires lots of work on different facets.
The challenge is that these facets interact with each other, so that when you start working on facet A, you immediately notice things to do in other facets as well, so you need to remember to work on them when you come to these other facets. Structure helps me enter these new tasks quickly.
Tell more about how you organise your structure.
I have several top-level meta-issues. One of them is "To do", which is the equivalent of a todo list that I used to write on paper. It is broken down into second-level meta-issues, like "Binding with structure events", "View", "Controls".
Another one is "Bugs", where I enter all bugs discovered while developing. They are often small, but I don't want to distract from the current task at hand, so I add them to Structure and return to them later.
Another top-level meta-issue is "Test cases", where I add test cases each time I implement something complex. It's better to do that in the context of the work, when you know what might break it and how.
I configured a view with a few columns. One is Summary, where I switched the description off and renamed it to "Note". Most often my issues contain just the summary, since most of them are essentially notes.
Another is "Comment" which is in fact JIRA's Description field. These columns occupy most of the space.
There's also the Labels column, where I mark notes with labels like 'decide later'.
Issues are ordered by priority, so I can attend to them in sequence.
Do you have any synchronisers there?
Yes, I have a Status Rollup synchronizer. This means that when all sub-issues are resolved, the parent issue also becomes resolved and is hidden automatically. Most of the time I have the "Unresolved" filter button toggled, so I don't see resolved issues.
Cunning stuff.
Another one is a Filter synchronizer that I use to move bugs under the Bugs meta-issue. This way I can enter bugs in any place in the structure, and they will be moved to the right place automatically.
How do you while away the hours when you're not working?
I'm also studying for a PhD, doing research into music information retrieval. My vision is to enable computers to understand music well enough to perform tasks like content-based recommendation, search and suchlike. But my best hours are those spent with my lovely girlfriend Dasha whom you have already interviewed. We like to travel, especially after Atlassian events abroad.
Sweet. Is there anything you'd like to say to our readers while you're on air?
Hi everybody, see you next week at the Summit in San Jose!
Hierarchical issues for great project management in Jira
Jira ClientDesktop client for Jira