JIRA is a great tool for project management, but drawing the lines between JIRA projects correctly leads to painful collaboration across teams.
At my company, we have two JIRA projects: Monolith (MONO
) and Service (SVC
).
MONO
comprises 2 scrum teams that work across 3 legacy codebases.
SVC
comprises a third scrum team that only works on a new API codebase: Dragonfruit.
To no surprise, MONO
and SVC
have different processes for things like stand-up, testing, code review, and demos. However, the legacy codebases are starting to depend on Dragonfruit. When we need Dragonfruit work commissioned, we write tickets in the SVC
project and wait until they’ve been groomed, pulled into a sprint, and completed to un-block MONO
tickets.
Obviously, this is not a good system since it requires an almost waterfall approach where we as MONO
developers turn into POs for the SVC
project. If the requirements change, the scope of the SVC
sprint changes.
The best solution seems to be allowing MONO
developers to work in the Dragonfruit codebase but that messes up the SVC
scrum team’s demos and testing cycles, since they “own” that codebase. Unexpected changes to the API, potential breaking changes, that kind of thing. We could permit these breakages, in my opinion, if it led to faster development if and only if the two codebases have the same milestones.
Unfortunately, given that they are two JIRA projects they cannot share the same milestone reporting metrics (“Fix Version”). When new work is discovered in MONO
and ticketed up in SVC
, the estimated date of milestone completion in SVC
gets pushed back while it remains the same in MONO
. In our company, this is illogical when you consider that Dragonfruit has no business value except to support milestones in MONO
.
Where am I getting with this? Oh yes, a solution.
Draw JIRA projects across milestones, ideally no more than two or three at a time. A scrum team should span projects and can have that number of sprints in progress at a time (or, if possible, let a sprint comprise tickets across projects). When a milestone finishes, archive and close the project. When projects are “owned” by one team then all other teams must conform to that team’s process, and when projects are tied to a codebase then business-value milestones must be arbitrarily split and tracked separately.