Dev work trackers
I've used a lot of tools to track and/or manage software development work. Here are the ones I remember, roughly in order of first use:
- Bugzilla. For years. Dead now.
- Physical 3x5 cards and a wall. (Really! I had a stacks and stacks of completed cards!)
- Spreadsheets. A few times.
- Jira. A few times at a few different team sizes. From the earliest days of the product up to this year. Sadly not dead now.
- Microsoft Project. Once.
- Pivotal Tracker. The first tool that seemed like it really "got" agile product management. Dead now.
- ikiwiki. Once, for about a year.
- Team Foundation Server / TFS / Azure DevOps. For years, across multiple teams and products.
- Trello. Occasionally, for small stuff.
- Scrum Mate. For years, across multiple teams and products. Another tool that seemed to really "get it". Also, sadly, dead now.
- Monday.com. Most recently, at the new job.
(I've also been adjacent to: FogBugz, Trac, Quality Center, Basecamp, GitHub Issues.)
Finding a new tool
It was Monday.com that led to this blog post - Monday.com is not a suitable dev work tracker! So I set out to find a new one, for my small team of desktop-software developers. (Which is not the typical target market for any of these tools.)
And Jira is the "obvious" choice for a dev team, but I have an enormous anti-Jira bias. Every time I've used it, it has just seemed "anti-agile" in its design, and like we had to fight to get it out of our way.
So I started with a list of obvious candidates:
- Monday Dev. Monday.com has a "Dev" version which would have been a small shift from what we were already doing.
- Jira. Jira is always on the list, even if I don't want it to be.
- GitHub Projects. We already use GitHub so it might have been an easy choice.
From there I found:
- Linear. I really like what they have to say about themselves.
- Plane. Similar to Linear, but more customizable.
- Fibery. Monday.com for geeks.
From there I made a list of criteria, and started testing out tools.
Criteria
Dear reader, it's important to understand that I have strong ideas about how software development should be done. Not a fixed idea of The One True Way, but strong ideas about things that work and things that don't, and strong ideas of "process smells", and a lot of those ideas intersect directly with how these tools are designed.
Included in those ideas are things like:
- Software product development is a team sport.
- Work in a product-centric way, not a project-centric way, as much as possible.
- For a well-functioning team, "sprints" get in the way.
- One backlog per team, sequentially ranked.
- Have just one record per unit of work (e.g. "story" or "card" or "issue" or whatever you call it) - no duplicates/copies.
- Have an "inbox" where new cards can be filed and triaged.
- A way to shove cards somewhere out of the way, e.g. a "later" status (that really means "never").
- Some way to associate cards with bigger containers, e.g. "epics" or "projects" - and to track the progress of the work in that container.
- And critically, to show a single chart with two series: work "in scope" (as scope changes over time), and work "complete" (as work gets done over time). (I.e. a burn-up chart, at the project level.)
- Then ideally, to forecast a date when those two series will intersect (i.e. a release date).
- A way to chart team "velocity" in "card counts" and/or "points" over arbitrary units of time (days, weeks, sprints, months).
- A way to associate cards with releases, both ahead of time (planned releases) and after the release is actually cut/published.
Note that all of this is compatible with a spreadsheet, if you design it right. And Monday.com is basically a spreadsheet, which is why it was "usable enough" as a dev work tracker. But a spreadsheet lacks many great conveniences, and encourages many poor practices, and takes a lot of careful setup and management. So it turns out there are some "tool features" that are also important:
- General ease of use of the tool, especially for common dev workflows.
- Especially: type a card ID and have it become a link to that card (or similar keyboard-driven feature).
- Multiple assignee roles (e.g. dev, tester) per card.
- Drag-and-drop ordering of the backlog.
- Good handling of all those process things I described above.
- Customizable card states.
- Custom fields and/or tags and/or ways to extend the core domain model.
- Search that can find anything/everything.
- Good (& configurable) notifications.
- WIP ("work in process") limits.
- Integration with other tools (GitHub, etc.).
Conclusions
After carefully evaluating the tools above against the criteria above, here are my high-level conclusions:
Monday Dev
It's not a serious product, on its own. It's more like an MVP of a dev work tracker, with just a basic agile process in mind, and just the bare minimum of features. It's better than plain Monday.com for dev teams that are in an organization that uses Monday.com for everything and really want to stick to a single platform. But we're not restricted in that way.
Jira
I gave Jira a serious chance. And I was pleasantly surprised, in some ways.
But it is still Jira. Still fundamentally tied up in years of anti-agile design, bad-design-decision debt, and trying to solve all problems for all people, especially enterprises with giant departments using Jira across many teams.
It still forces you to make a massively consequential choice between "team-managed" or "company-managed" without nearly making it clear what that means.
If you pick the "team-managed" version of Jira (basically a rewrite-inside-the-product), most of the out-of-the-box experience is quite good. It literally met all my key requirements, and nearly all my secondary requirements. It has some great charts (in team-managed only!) and some great release-planning features (team-managed again!).
But search doesn't find card comments. Hard to believe, but true.
It has no feature to auto-link cards. Hard to believe, but true.
And then you run into insane things like specific badly-named fields that can't be renamed.
And a bunch of customization features are locked away because you chose "team-managed" - so I hope you don't need them!
In the end, it's the safe choice, and you can definitely use it. But you'll feel bad about yourself.
GitHub Projects
Definitely good enough for teams that need a little more structure than GitHub Issues. Not really a serious competitor to any product designed as a standalone dev work tracker, though.
One key limitation: every card in a organization-level GitHub Project has to be backed by an Issue in a specific repo. So if you have a card with scope that spans repos, the details of that card only live in one of the repos.
Card search kinda sucks.
Basically if you're already doing everything in GitHub, GitHub Projects might help you improve how you work.
Linear
Wow, I really wanted Linear to win. I really like their product positioning, and their usability focus, and what they say about how they work. They have exactly the charts I want, out of the box, right up front - and most other products only give those charts through customization! The product design is very opinionated, and I agree with most of the opinions.
So why don't they win?
They don't have custom fields. None. They have tags - but tags don't let you have arbitrary write-in fields, for things like release notes.
They also only allow a single "assignee" per card. So you can't have a developer and a tester both on a card.
They also have a weird model for "projects" and "milestones" (i.e. releases) - you can only apply a milestone to a card if that card is part of a project. So basically to use their "releases" feature you have to have everything in a "project", which runs counter to my "product-centric" thinking.
They have a Kanban board layout, but no WIP limits.
I tried hard to figure out a way to live with these restrictions, and I just couldn't. But if I could have, I think I would have really liked Linear.
Plane
Plane is open-source and markets themselves as self-hostable. Neither is a key requirement for us, but it gives a sense of their target market.
They literally describe themselves as Linear but with custom fieids which gave me a lot of hope.
In my feature research and testing of a free trial, they seemed really good. All the core features I cared about, with no obvious downsides. Usability was a little quirkier than Linear, but still good. Charts were a little weak, but usable.
They can't auto-link cards by ID, which was frustrating.
They have a Kanban board layout, but no WIP limits.
But I was ready to choose them as the winner.
Then I tried actually importing our data from Monday, and discovered some glaring issues.
First, they can't import the "estimates" field. Like, it's just not a field you can target during an import. What?!?
Second, their "milestones" feature (i.e. release planning), as great as it sounded on paper, isn't really "there". It's a lot like they had an intern do a summer project, and nothing was too bad about it, so they shipped it. And then added it to their marketing. And then never touched it again.
And their customer support, when I asked about these issues, was very slow to respond and obviously disinterested.
So... no. I'm not gonna gamble on that.
Fibery
I only found Fibery after I got desperate. I was seriously considering Jira (and seriously wondering where I had taken a wrong turn in my life!) when I complained on social media about it and someone suggested Fibery in response.
Fibery is a lot like Monday - a big basket of features that you have to assemble into a workflow that works for you.
But they aren't like a spreadsheet; they're more like a database, with tables that have relationships and UI elements associated with them.
And as a geek with strong opinions about process and tools, with a team that's evolving its process quickly, that's maybe perfect.
They don't specifically target development, but dev workflows are clearly a strong focus.
And once you figure out how it all works, it Just Works! Each time I tried to set up some new relationship or state rule or calculated field... everything in the UI just adapted to the change exactly how I wanted it to.
The learning curve is fairly steep, but by starting with the dev template, it wasn't too hard to figure out. As long as I'm willing to set it all up, every key requirement - and every secondary requirement - is met.
There are some limitations and issues, but so far none have been blockers. And the limitations are all way down in the details - nothing fundamental.
One downside: they're still a startup - 7 years old, and not yet profitable. So I'm a little worried they'll die out from under us. But not super-worried.
Our choice
Tuesday we switched to Fibery, and kicked off a sprint! And so far, it's been a very positive experience!