GitHub is Not Just for Coding: The Powerful Task Management Tool in Your Back Pocket
Why GitHub?
I’ve spent countless hours searching for the perfect task management tool for myself and my collaborators. The perfect tool would need to be easy to use, allow many collaborators, unlimited tasks and projects, and have some additional nice features like comments, notes, deadlines, task assignments, etc. Moreover, to work for a Ph.D. student on a tight research budget like myself, the tool would need to be free. Cycling through the usual suspects (I’m looking at you, Asana, Notion, Trello, ClickUp…) left something to be desired, so I went back to the drawing board. I realized that I already had the free tool with all of the capabilities I needed: GitHub.
GitHub is ubiquitous in the coding and data science world, but many of its features are useful for productivity management and team collaboration in any field. Here are a few of the key features that make GitHub attractive for task management – even if your work doesn’t involve any coding!
Low startup effort required from team collaborators
Let’s face it: one of the biggest contributors to the usefulness of any task management tool is whether or not its use becomes habit. This applies to both yourself and your team members. Signing up for new software in the first place before being able to try it out and know whether it will work for you can be a big impediment to team adoption of a new tool.
Luckily, a good share of researchers and folks doing data-driven work already have GitHub accounts, so you may be able to get started right away yourself and add your collaborators' existing GitHub profiles to your new project. If your collaborators don’t use GitHub yet, task management is only one among many other reasons to use GitHub, and the perfect opportunity to get started.
Stable, long-term documentation of work
GitHub allows you to create an unlimited number of issues and comments on tasks that you know will be there for years to come. Built around the functionality of version control, documentation, and team collaboration, you can rest assured that you will be able to find that one comment you made on that one task 3 years ago that explains why you made a particular data cleaning choice. You can upload files, use Markdown to include nicely formatted inline code or mathematical expressions, and pop figures and tables right into your comments. You can even integrate your task management with a GitHub repository containing all of your version-controlled code. This tool is prepared to grow with your project over many years.
Easily integrated with other tools
Slack has become a ubiquitous team collaboration tool across many fields. It’s great at what it does – quick team communication across specific channels and topics. While it doesn’t have a task management tool built in, we can easily integrate GitHub tasks for any project into a specific channel of a Slack workspace. This will allow you to make sure that everyone stays apprised of new tasks and updates related to existing tasks, all within your existing Slack workspaces. So there’s no need to open up GitHub to get caught up!
GitHub also has integrations with several other commonly used tools like Microsoft Teams, Jira, and Visual Studio Code.
Lastly, there is also a nice mobile app which allows you to easily comment on tasks on-the-go, or jot down new tasks into your project as soon as they come to mind.
Simple
Finally, task management in GitHub is extremely simple and easy. You can set up a GitHub Project and get tasks up and running in just a few minutes. Without further ado, let’s dive in and get you set up!
How to Get Started
Start a GitHub Repository for your project
First, pick one of your projects or teams that you want to manage tasks for, and start a GitHub repository for it. The repository is where all of your tasks and documentation will be stored for this particular project or team. To do so:
Figure 1. New GitHub Repository
- Log in to your GitHub account and visit your dashboard. (Figure 1)
- Click on the plus symbol in the upper right-hand corner and select New Repository. (Figure 1)
- Give your repository a descriptive title, and a short description. (Figure 2)
- Set your repository to Private to restrict access to yourself and/or your team members. (Figure 2)
- Add a README file. (Figure 2)
Figure 2. GitHub Repository Details
Your repository should now look something like this:
Figure 3. GitHub Repository Structure
Next, add your team collaborators to the repository under “Settings”. You can go back here and add and remove collaborators anytime! (Figure 4)
Figure 4. Add Collaborators
Now that you have a repository for your team, you can create a Github Project to house the task management board.
Start a GitHub Project for your Repository
First, click on the Projects tab (Figure 5) and select the New Project button (Figure 6).
Figure 5: Projects Tab
Figure 6: New Project Button
Figure 7. Start from Scratch Task Board
Select the “Board” option under “Start from Scratch”, choose a descriptive name for your project board, and select Create project.
- Note: There are plenty of pre-made templates here that you might want to explore, but the From Scratch Board is a great place to start!
Finally, add your collaborators to the task management board for the repo.
- To do so, click on the three dots in the top right corner of your task management board, and visit the Settings page. (Figure 8)
Figure 8. Add collaborators to task management board.
- Under Settings, select “Manage access” and click on the Invite button to invite your collaborators to the space. (Figure 9)
Figure 9. Manage Access
- Ensure that all of your collaborators have access to both the Repository you created earlier, and this Project board.
Figure 10. Final Project Board
Congratulations! You’ve just set up your first GitHub project. You and your teammates can now add tasks under the automatically created fields “Todo”, “In Progress”, or “Done”. You can also create your own additional categories here, and customize tab “views” for specific individuals or categories.
Now that we’ve set up the project, let’s learn about some additional customizations to make things even more functional using the Workflows feature within GitHub Projects and adding Slack Integration.
Adding More Functionality
Using “Workflows” to Streamline Task Management
Clicking on the three dots in the top right corner again from the home page of your Project board, click on “Workflows” (Figure 11). This section of your Project board has some automated settings that you can enable or disable within your project. You can make changes to the workflows by clicking on “Edit” in the top right corner of the Workflows page (Figure 12).
Figure 11. Workflows
Figure 12. Edit Workflows
There are a few Workflows that I use and recommend turning on when anytime you start a new project:
-
Item added to project: Turning this workflow on will ensure that anytime you add an Issue or Pull Request to your Repository and assign it to this Project (or when is automatically added to the project, as in the Workflow described in #4 below), it will automatically be added to your task board’s Todo list.
-
Item reopened: Turning on this workflow will ensure that anytime you reopen a closed Issue or Pull Request, it will automatically get moved from e.g. “Done” status back to “Todo” status.
-
Item closed: This workflow ensures that when an Issue in your Repository is closed, it automatically gets moved to the “Done” status.
-
Auto-add to project: This workflow automatically adds any Issues or Pull Requests from a particular Repository (such as the one we created above!) to your project. Having this Workflow turned on in conjunction with Workflow #1 means that you can add Issues to your Repo, and they will automatically feed onto the Project board’s todo list. Nice!
-
Auto-close issue: This workflow will automatically set an Issue status to “Closed” in your Repository when you mark it as “Done” on your task board. It is like the inverse of Workflow #3.
These are all of the Workflows that I would recommend turning on to get started; you can always go back and make changes to them or customize them once you get the hang of things. Turning on all of these Workflows will also ensure that your project tasks are assigned to Issues, which can help you easily add in Slack integration later.
Adding Slack Integration
Adding integration with Slack is an additional step you can take to make your project transparent and functional for your team. Slack integration is first and foremost based on GitHub “Issues”, which is one reason why it is useful to turn on the automated Workflows we described above. Once you have the above Workflows set up, you are ready to dive into the documentation on the GitHub + Slack integration so that all new activity on your project Issues flows directly into a Slack channel of your choice in real time.
There’s So Much More!
The content laid out here is already a super functional task management system, and hopefully has set you up for the productivity management of your dreams. If you’re still looking for more, the GitHub Developer Skills blog is a great place to continue learning.