I'm using Asana as my primary project management tool. But I keep my eyes on other tools as well, because the more I use a tool, the more I understand its pros and cons. No tools can satisfy everyone. Github Projects is one of the free project management tools that I've been watching. And here is my take on it.
What is Github Projects?
GitHub Projects is a project management tool offered by GitHub, which allows you and your team to organize tasks, issues, and bugs into a kanban-style board or a list view.
It provides a structure that includes organizations, projects, repositories, and issues. Users can create, manage and track their work with the help of task lists, notes, labels, and milestones. It also allows users to assign team members to specific tasks and to track progress on each task in real time.
GitHub Projects comes with several features, such as custom fields for tasks, automatic workflows, and the ability to create and manage public or private projects within an organization. It also allows users to convert a task into an issue, which provides more advanced features such as commenting and referencing between issues, commits, and pull requests.
We'll look at its pros and cons in detail below.
Github Projects Overview
Before getting into the details of Github Projects, we must understand how it's created within Github, so we know how it works and how to use it effectively.
The basic structure is:
Organization > Projects > Repos > Issues
- Projects are created within an organization. An organization can have multiple projects.
- Projects can have multiple repos. This is important, as the first time I looked at Github Projects, I thought a repo can contain a project, e.g. a project is a way to manage tasks within a repo. I was wrong. Projects are bigger than repos and can have multiple repos.
- Of course, a repo can have many issues, which we already know.
Similar to other project management tools, Github Projects has:
- Board and list view
- Multiple views for projects, just like Airtable and Notion. Views are filters for the tasks in the projects. Like you have an "All" view which shows all tasks, "Urgent" view which shows high-priority tasks.
- Drag and drop tasks
- Notifications, which are merged into the same Github bell.
- You can create one or more private or public projects for each organization. So,
- Each task in a project can be drafted or converted into an issue. Note that a task is not always an issue, but it can be converted into an issue. This is extremely helpful when you have "ideas" or "thoughts" but not really a "todo" or a bug/feature to work on. When converting to an issue, you can choose the repo for that issue.
- Once a task is converted into an issue, you have the full benefits of Github references when committing, mentioning, or PR. This is very important for an engineering team. I've been dreaming about this kind of integration with Asana!
- You can add unlimited custom fields to the task. By default, there's only status (Todo, In Progress, Done). You can add fields like priority (with color), due date, and start date. This is my favorite feature. The project management tool that I'm using Asana doesn't have this feature in the Free plan.
- Automated workflow. For example, when an issue is closed, it automatically moves to the Done column.
- You can manage permissions based on people in the organization, and allow outsiders to enter. Hence no user limit. Other project management tools always limit you by the number of users! Github doesn't!
- And it's free.
- You can comment only when the task is converted to an issue. Therefore, it is not possible to discuss between members or refer to/from other tasks/issues when a task is just an "idea" or "draft". That really sucks!
- Can't reference between tasks, but only when converted to issue, can reference between issues.
- Do not import tasks from other tools like Asana through. It's quite important for people like me, who are using another tool.
- Using the same Github notification for PR/comments/issues so it will be confusing if there are many projects or repos, issues.
Asana is not perfect. I'm still looking for an alternative if possible. In our company, we have an engineering team, a marketing team, and also HR, account, that work on multiple products: Meta Box and Slim SEO. Asana does the job for us quite well in the last several years, but when talking about code, we miss the Github references. How convenient it is when referring to a commit in an issue, or a PR! Everything is linked, which makes us easy to know what's the problem and how it's solved.
However, in my opinion, Github Projects seem to be suitable for a small engineering team, which mostly works with code (on Github, of course). If your company is big and/or has other teams as I have, then it's probably not the best choice.