A Quick Guide to Using GitHub For Project Management
Working in the tech industry, you realize there’s always a lot of noise around adopting the latest trends in management, content creation, or programming skills. But the new fad isn’t always what’s best for your company. Sometimes, searching constantly for “the best” that’s out there can prevent you from finding the simple solutions for the things your business really needs.
This is true in project management. A small startup that recruits a high-powered project manager because they are desperate to adopt Agile could be making a mistake if a self-managed team is better suited for their size and structure. Good project management is about establishing clear goals, setting out an efficient work schedule, maintaining budget control, and tracking progress. That means finding a model that works for your business and not forcing your team to keep learning new processes and tools just people everyone’s talking about them.
One option we’ve found that supports the ‘keep it simple’ approach to software development is using the collaborative coding platform GitHub for project management. GitHub may not be the most powerful project management tool out there, but it can do the job well, and - importantly - most developers will be comfortable with it as they already use it to store and share repositories. Collaborators already using GitHub will also be grateful that they won’t need to open new accounts for a new project management tool.
Project Management in GitHub
For a while now, organizations have been using GitHub Issues for project management. GitHub Issues is essentially a system for describing tasks, tracking their progress, and communicating around them. This typically involves a description of the work (or ‘issue’) with additional comments, assignees, labels and milestones. It is primarily used for bug tracking, but its core functionality meant it is also a useful tool for more general project management purposes. Getting started is as simple as creating a new issue with a new idea or goal, then assigning tasks and tracking progress.
In 2016, GitHub launched a new card-based project management tool to compete with existing platforms like Trello. The project boards enabled the organization and tracking of multiple issues, pull requests, and notes. Project board cards contain relevant metadata for issues and pull requests, like labels, assignees, and current status. Repository project boards can be set up to deal with issues and pull requests within a single repository, while organization-wide project boards can contain issues and pull requests from up to 25 repositories that belong to an organization.
Today, using GitHub for project management is pretty straightforward. To begin the setup process, just click on the ‘projects’ tab in your repository and select ‘create a project’. Once you give your project a name and description you can choose from a number of templates that offer a quick way to set up the columns that represent the different stages of the workflow (e.g. ‘To Do’, ‘In Review’ and ‘Done’) and the way in which tasks move through them. You can also choose no template to begin with a blank board and customize every aspect of my project without sacrificing functionality. And then you’re ready to start creating categories and adding issues/tasks for your project.
GitHub Project Management Features
- Automated Triggers: One of the keys to the GitHub project management system is that it includes triggers that automatically move tasks around. For example, you could set up a trigger so that whenever someone creates a pull request it automatically adds it as a task and puts it in the appropriate column (“To Do” maybe?). Likewise, a pull request that is set to “Needs Approval” could be used as a trigger to move it to a column marked “In Review”. When setting up new columns, you have an option to manage and customize automated trigger behaviors via presets. For example, the “To Do” preset includes triggers for newly created issues and pull requests to be moved into this new column the moment they’re created. The main benefit of this is that once a project board has been set up correctly with triggers, there won’t be much need for further manual interaction.
- Milestones: These can be used to easily track progress on groups of issues or pull requests in a project. When you create a milestone you effectively set a ‘due date’ for any issues/pull requests that you associate with it. Within a milestone, you can prioritize issues that are most urgent and track what percentage of tasks have been completed at a glance.
- Wikis: Every GitHub repository comes with a section for hosting documentation, called a wiki. You can use this to provide detailed information about the project - its design, its purpose, and its goals. It can also include any other additional documentation that will help others use and contribute to the project.
- Integrations: At the heart of the GitHub project and community is the concept of continuous improvement. As part of this, the platform has a large directory with hundreds of extra integrations to turbo charge your project management process. These include some of our favorite remote work tools such as Slack and other project management tools like Asana and ZenHub.
It may not be the most fashionable or powerful project management tool, but GitHub can help you organize your workflow without overcomplicating things for you or the rest of your developer team. So before you reach for a superpowered new product, ask yourself: is that what your project really needs?
If you want to stay up to date with all the new content we publish on our blog, share your email and hit the subscribe button.
Also, feel free to browse through the other sections of the blog where you can find many other amazing articles on: Programming, IT, Outsourcing, and even Management.