[dmd-internals] Jira?
David Held via dmd-internals
dmd-internals at puremagic.com
Sat May 30 18:01:05 PDT 2015
Although BugZilla has served well for many years, I would like to
propose a move to Jira. I see the following benefits:
* BugZilla is a bug tracking system; Jira is bug tracking + project
management
* Jira has a more mature UI, due to commercial licensing paying for
development
* Jira is free for OSS!
So why does D need project management? I would suggest that work on D
is somewhat disorganized and haphazard. That is partly just the nature
of OSS/volunteer work, but also partly due to a lack of organizational
structure. Although language changes are neatly encapsulated by D
Improvement Proposals, the vast majority of work which would benefit D
falls far short of a proposed language change, and is not neatly and
clearly tracked. From what I can tell, this is where someone would look
to find out where to make a contribution:
http://wiki.dlang.org/How_You_Can_Help
This is better than nothing, but just barely. With a proper project
management tool, we can capture issues which arise on the newsgroups,
informal discussions, conferences, IRC, etc., along with associated
communication and any artifacts produced. We can order work by
importance and track progress. We can set goals and gain visibility
into how and where contributions are made.
None of this means that the current D community workflow needs to
change, other than using Jira instead of BugTracker. While this does
incur a user cost to switch, I think most people will find that Jira is
generally easy to use and relatively painless to pick up. They should
also find it much easier to run reports and view dashboards.
If the community agrees to make the switch, I will volunteer to apply
for the Jira license and work with the current BugZilla maintainer(s) to
migrate the DB (Jira has a tool for BugZilla to do this). I will also
volunteer to capture information from the newsgroups into tasks and
other relevant project-tracking data.
Although it is possible to track non-bug issues in BugZilla, this is not
the kind of use case for which BugZilla was designed. Since Atlassian
is making their tools available to us for free, I think we should take
advantage of this offer. For the record, I think we should stick with
MediaWiki rather than move to Confluence. And I do not know of anyone
who thinks that Stash is better than GitHub.
Dave
P.S. For those less familiar with the Agile methodology, what I propose
to do is to create a master backlog of work. The community can
collaborate to define the ordering of the backlog, but the backlog would
represent the priority of work, such that someone who wanted to
contribute would know that the top item on the backlog is considered the
most important task to work on next, and they could just scan from the
top down until they find something they think they can work on.
We can debate whether there should be a backlog per work type (website
maintenance, compiler maintenance, documentation, etc.) or a global
backlog, but these things only make sense to discuss when we have a tool
that makes maintaining a backlog easy to do. The backlog can also
capture work which was only partially done. So someone might pick up a
task, work on it for a while, and then update the work item to explain
how far they got, even if they couldn't close it out.
The project tracking system can help produce reports on task progress,
bug vs. non-bug work rate, etc. The idea is that by having easy access
to this reporting information, the community can have greater visibility
into the overall workings and accomplishments of the "D machine" and see
the areas which are deemed important but neglected in a quantified way.
Ideally, this would result in self-directed behavior which would
optimize towards the high-value work rather than just the easy work.
Even if it only does so in, say, 20% of the contributions, this would
still be a significant improvement in return-on-contribution-invested.
Furthermore, contributors could voluntarily report on status, which
would give a sense of what people were actively working on, and help
answer the question: "Why isn't issue X being addressed?" Folks could
just look at the capacity dashboard and say: "Oh, I see people are
working on Y and Z, which is much higher in the backlog." Then they
could either lobby to have the backlog reordered, or they could admit
that the highest value-add was being worked on, and pitch in to the
tasks that they deem important.
Of course, I have done a lot of hand-waving about "community-ordered
backlog". In reality, I expect this to be a major point of contention
and source of more than a few flame wars. But having a single place to
witness the debate over priority unfold should be valuable all by
itself. As long as justifications are provided as to why the backlog is
ordered the way it is, I think the community can come together and agree
that it is reasonable, even if it doesn't fit every person's exact
preferences (nor could such an ordering be produced). And, of course,
the backlog doesn't determine what anyone works on. It just represents
what the community thinks is important, in rank order. Anyone is still
free to pick something from the bottom and work on it. However, finding
that a lot of people are working on low-ranked tasks should communicate
something important about the community in and of itself. That's why
these kinds of tools are important.
A unified backlog should also make it easier for people to discover
overlapping and/or duplicated work. This probably doesn't happen often,
but may save a lot of time and effort for folks when it does. At the
least it should make people aware of each other's work so they can
proceed deliberately rather than in ignorance. These kinds of things
are done informally now via the newsgroups, but are a kind of waste of
contributor cycles, because humans do not need to be the web servers for
this kind of mundane information. By offloading these overhead tasks to
the proper software, the forums can be optimized for discussions which
cannot be automated. That should make everyone happier and more efficient.
More information about the dmd-internals
mailing list