Option 1: Zenhub

Zenhub's main advantage is that it is highly compatible with github.  In fact, it adds tabs directly to your github repositories as shown here:


The new tabs include "Boards" and "Reports".  Just as it sounds, Boards is a kanban-style project board, composed of cards (user stories/issues/tasks) and organized in columns (pipelines):

Cards on your zenhub project board that are linked with specific github repositories appear as issues in those github repositories.  When you close an issue on github, zenhub moves this issue to the "closed" pipeline.  I think that github pull requests would also automatically appear on your zenhub board in the "new issue" pipeline.  If a card on your project board is linked with a github repository, then you can open the card and select "view issue on github".  This will bring you to the "Issues" section of that github repository.

You can format card comments with markdown and outline sub-tasks with markdown checklists.  You can sign in with github, which adds convenience and efficiency.

The boards are very customizable so you add multiple labels (e.g. "Infrastructure, bug fix", "Data Structures, enhancement", etc).  And, you can filter the tasks by team member or label.  It also has user-friendly tools for estimating the difficulty of each task (a Fibonacci sequence is often regarded as a pretty appropriate reflection of how teams can gauge task difficulty):

Such estimation is essential for standard agile tools such as burndown and velocity charts, which can be generated with the "reports" tab.  And these tools are in turn essential to design sprints, prioritize tasks, and gauge progress during each sprint.  The reports tab also has other agile functionality such as as an online form for the Sprint Retrospective that everybody can contribute to:

When you create a new issue, you have many useful options built in.  For example, you can choose which pipeline (column) to put it in, assign a deadline, assign responsible team members, assign difficulty, and specify dependencies.  You can also identify the issue as a sub-task of an existing issue.  Zenhub will block an issue until all of its dependencies are closed.

Zenhub also has other useful things like email or dashboard notifications and archived project histories, but I think these are pretty standard - Trello has them too.  I haven't checked Jira yet, but I would expect they would also have this functionality.

The main drawback of Zenhub might be the same as its main advantage - It might be too tied in with github.  We do not really want a project board associated with each github repo (UFO, MPAS, OOPS, etc).  Zenhub can handle projects that span multiple repos as shown here:

so that is no problem.  However, I do not think you can have a github repository appear on more than one project board.  However, this is a feature that the user community seems to want and they are actively looking into developing it: see https://github.com/ZenHubIO/support/issues/139.

Furthermore, I do not think it is possible to create a board that is not tied to a github repo.  So, for example, for planning the JCSDA summer school, I think we'd have to create a github repo as a placeholder.   This could possibly just be empty (I tried creating a board with an empty repo and it works fine).  However, it may actually be useful to track summer school planning with a git repo (e.g. keep track of the participants, travel, and schedule).  There is no need for a git repo to be code.

Another possible disadvantange: zenhub is currently available for Google Chrome and Firefox.  Users/developers may not be able to access the project boards and other functionality if they use other browsers.  They say they are working on adding other browsers.  If you are accessing a github archive from a browser without the zenhub extension installed, you'll still be able to view the archive but the zenhub features will not be displayed or available.

Epics provide another tier of organization that might help organize projects across the entire JCSDA organization. 

Pricing:

ZenHub is free to use on public, personal, and academic repositories. For teams using private repositories, ZenHub $5/user/month.  So:

10 users: $50/month

100 users: $500/month

Option 2: Trello

Trello's main advantage seems that it is very user-friendly: Easy to use with a nice interface:

In principle, I think Trello has much of the same functionality as zenhub, with customizable boards, cards, labels, notifications, etc.  However, most of this functionality is achieved through applications called Power-Ups that you enable for a particular board.  The free version of Trello only allows you to enable one power-up per board.    The Business class allows unlimited power-ups but it's twice the price of zenhub (see below).

As an example, consider the github power-up, which allows you to attach github issues, commits, or pull requests to a pariticular Trello card (Very useful!):


Other power-ups allow you to assign points for task difficulty as described above and, with that, compute burndown and velocity charts.  

To see some sample Trello boards see:

https://trello.com/b/DnZvFigA/agile-board
https://trello.com/b/TFWoOH5n/production-workflow

https://trello.com/b/0xzkRjTH/scrum-project-management-board

https://trello.com/b/BqfIiceR/trello-bug-tracking-process

https://trello.com/b/GyqsETvS/govuk-high-level-roadmap-2015-16

More at:

https://trello.com/inspiration/project-management


One advantage of Trello over zenhub is that it allows you to group boards into collections.  This could be very useful on an organizational level.  For example, JEDI might have, say, 2 or more project boards.  However, perhaps each project is small enough to stick to one board.  And, this collections functionality is only available with the relatively expensive Business Class option.

Another interesting feature in Trello that I didn't see in zenhub is an email-to-board option where you can send an email to Trello to create a new issue/task.  I don't think I personally would use this very much (I like to see issues within context on the board) but some might find it handy.

Trello also boasts about its integration with google apps (another Business Class feature).  I'm not sure what this really means in practice but it could potentially come in very handy, given UCAR's commitment to gmail, google calendar, google drive, google docs, hangouts, etc.

One disadvantage is that the most useful capabilities are contained in these power-ups, which seems a little manipulative to me.  It's like certain computer games for kids - they try to lure you in with a low-cost version but to do anything that you really want to do you have to pay more to upgrade.  Another disadvantage that we've discussed is that Trello was recently bought out by Jira so it's future is questionable.  It could be subsumed into Jira at some point and, given the lure-upgrade vibe I get from them, I wouldn't be surprized if they would try to raise the price, claiming that Jira can do more.

Pricing:

The basic version of Trello is free but it's capabilities are limited (one power-up per board, 10MB limit on uploads)

The pricing for Business Class (unlimited power-ups, attach files up to 250 MB) is $9.99/user/month.  So, twice as much as zenhub:

10 users: $100/month

100 users: $1000/month (warning)

There is also a third option called Trello Gold but I'm a bit confused about the pricing.  It says $5/month but I assume that this is per user.  This would make it the same cost as zenhub.  This allows for three power-ups per board, which may be enough.  But, it does not have board collections and it think it may be less integrated with google apps compared to business class.

Option 3: Jira

Jira's main advantage appears to be its reporting.  As far as I can tell, it seems to have far more options than zenhub or Trello.  This includes flow charts and roadmaps that nicely highlight dependencies.   Also time tracking, user workloads, resolution time reports, pie charts - all sorts of things.

Another advantage is that it is highly integrated with other Atlassian products - so, if we use Bamboo for CI and Confluence for communications then this might be a substantial benefit.  However, it seems to me that the CI should be integrated more with the code repository than the management software and there are many CI platforms that integrate directly with github.  

The main disadvantage is that it is much less user-friendly than the other applications I looked at.  Just figuring out how to display or create a project board is frustrating.  I couldn't figure out how to do it on the jcda1.atlassian.net site - it may be a permissions issue.  So, I created my own free Jira trial site.  There I was able to create a scrum-style board and link it to one or more github repositories.  But again, the user interface is not as user-friendly.  It's not trivial to customize the column headings, add new cards, assign team members and labels, estimate task difficulty, specify dependencies, etc.  All these things are obvious on zenhub and Trello, without having to consult user manuals.   When you finally figure out how to add story points, they are not Fibonnaci or related sequences as in zenhub (widely recognized as useful indicators) - just a linear scale.   Impatient users will quickly become frustrated with this interface (as I did!).  You have to be pretty committed to use it properly - not for the faint of heart.

Also, it seems to me that Jira was originally designed for bug tracking and has been retro-fitted to serve as an agile project management tool.  So, it has some features that seem archaic.  For example, when you create a new issue, it has a menu for specifying its priority (high, medium, low, etc).  However, prioritization in an agile framework (e.g. scrum) is typically done by rearranging the order of the cards on the project board.  There is no need for a separate tag.  Also, the full project backlog does not appear on the boards (or at least, not as a column that you can pull items from).  Apparently the boards are only created for each active sprint.  I don't find this very useful - I'd like to see the full backlog in context when deciding which issues to add or remove from a particular Sprint.  This is what Zenhub and Trello do.

There is a list of recent activity and a list of issues assigned to you that both appear on your dashboard when you log in.  This could be useful, although I for one would rather go directly to the project board to see the current status of the project and the summary of recent activity.

Pricing:

Up to 10 users is $10/month.  11-100 users is $7/user/month

10 users: $10/month

100 users: $700/month 

Another option is to host the software yourself, at your institution, rather than the cloud.  For 100 users, this would be a one-time payment of $6,600.

Option 4: Gitter/GitLab

Gitter (https://gitter.im/) is essentially a bulletin board.   I have been using it as a Mac application but I believe you can also interface with it via web browsers.  

First you create or join a "community" - a group of users.  Then, within this community, you can start chat rooms that members of the community can post to.  If you wish, you can format your posts in markdown and attach images and html links. Within each room, there are multiple conversation threads, defined by replies to and quotes of previous posts.  You can also initiate one-to-one conversations with individual users.  There is no limit to the number of communities, rooms, or conversations you can be a part of.

You can initiate discussion on a particular issue by creating a room. This can be public (anyone can join) or private (only people added to the room can join). You can give the members of the room access to a particular github repository so we could, for example, use this as a mechanism to discuss specific feature developments or bug fixes. You can arrange it so that you are notified by email whenever someone posts to a particular room. Rooms are archived and searchable so you can easily find discussion about a particular topic.

It looks like it is well integrated with github. You can sign in via github. You can create communities and rooms that are directly linked to github repos. This will allow features such as the activity feed in the room to automatically receive webhooks of activity in the repository on GitHub and link issues in the room to issues on GitHub. You can refer to github issues and pull requests by number if you preceded them with a #. This creates a link to the github issue in question (green if the issue is open, red if closed). You can also mention issues and pull requests across repositories by typing owner/repo#<number>.

The disadvantage of gitter is that it does not do project boards.  It is a discussion forum, not a project management tool.  It cannot really be used to manage backlogs, prioritize tasks, organize sprints, or prepare reports (e.g. story points, burndown charts, velocity charts, roadmaps, etc.).  Also, since it is free, it is very sparse on documentation and support.  Still, it could be useful in conjunction with zenhub or Trello if we find that we would benefit from such a discussion forum.

But gitter is now owned by Gitlab (https://about.gitlab.com/), and gitlab has many other project management tools, including project boards: https://about.gitlab.com/features/issueboard/.  However, Gitlab also functions as its own git repository manager.  So, in order to use the full functionality of GitLab project management, we would have to move all of our github repositories to Gitlab and host them there.  GitLab also has built-in continuous integration & delivery.  So, using this would be a major change of our current course.    Github is currently far more popular and more familiar to our developer and user community than gitlab.  So, although GitLab (with project management functionality) may be somewhat less expensive than github+zenhub for the startup package ($39/user/year), it may not be worth the trouble at this point.

I suggest that we start with zenhub or Trello to see if they meet our needs.  The discussion capabilties offered by these may be sufficient for our needs.  If not, we could easily open some gitter discussion forums to get further input on the development of particular features from our distributed developer community.  In fact, Zenhub has an option to integrate with gitter (so does Trello, but you may have to pay more, e.g.: https://www.integromat.com/en/integrations/gitter/trello).

Pricing:

Gitter is Free

Gitlab is:

$3.25 / user / month for the Starter package

$16.58 / user / month for the Premium Package

  • No labels