Managing Projects with GitHub: Dive into Milestones and Project Board

In our previous article, we took a deep dive into GitHub Issues, exploring how to track and manage project progress. If you missed it, you can read it here or any of the previous articles, you can scroll down to catch up. This week, we will continue to enhance our project management skills by focusing on Milestones and Project Boards in GitHub.

What are Milestones?

Milestones allow us to track progress on groups of issues or pull requests within a repository. They serve as a way to organize and manage work in a structured manner, providing a clear timeline and set of goals for your project. By grouping related tasks together, milestones help in planning and forecasting project timelines, ensuring that key objectives are met on schedule.

How Milestones help in planning and tracking progress.

  • Setting Goals: At the beginning of a project or a new phase, you can set milestones to outline major objectives and deadlines.

  • Monitoring Progress: Throughout the project, you can monitor the progress of each milestone by checking which issues and pull requests have been completed and which are still open.

  • Adjusting Plans: If you find that a milestone is at risk of being delayed, you can reallocate resources or adjust the scope to ensure that the project stays on track.

Creating A milestone

To create a milestone, navigate to your repository (or create one if you don't have one yet). For guidance on creating a repository, you can read this article. After setting up your repository, go to the "Issues" or "Pull requests" tab. Next to the search field, click on "Milestones".

After clicking on the "Milestones" button, a new page will appear. On this page, click on "Create a Milestone" or "New Milestone" to begin creating your milestone.

Populate the milestone with details such as the title (e.g., the release of software or a specific task), the due date (which can also be the release date of the application), and a description of the milestone. Once you've filled in these details, click the "Create milestone" button.

When the milestone is created, this is how it looks. To edit the milestone, simply click on "Edit." To close it, click on "Close," and to delete it, click on "Delete."

Using a milestone with an Issue

Milestones are used with issues to help track the progress of a project. Start by creating an issue in your repository. If you are not familiar with creating issues, click here to learn more about issues.

There are different ways to use milestones with issues. The first method is to associate a milestone when creating an issue, as shown below. Tap on "Milestones" on the right-hand side, below "Projects." A list of milestones will appear; select the milestone you want to associate with the issue. After that, click "Submit new issue."

Now let's use a milestone with an already created issue. Navigate to "Issues," and select the issue you want to associate with the milestone by checking the checkbox next to it. Just above the issues list, click on the "Milestone" dropdown menu and select the milestone you want to use. And that's it!

Using a milestone with a Pull request

Create another branch, make some commits, and then create a pull request. You can associate it with the appropriate milestone by checking the checkbox next to the pull request and selecting the milestone from the "Milestone" dropdown menu.

As demonstrated below, the progress of a milestone can be tracked through the issues and pull requests associated with it. When a pull request is merged or an issue is closed, it contributes to the progress of the milestone.

Project Boards in GitHub

What are Project Board?

Before diving into Project Boards, let's first understand what a project is on GitHub. A GitHub project is a versatile tool that combines the functionalities of a spreadsheet, task board, and roadmap. It seamlessly integrates with your issues and pull requests, facilitating effective planning and tracking of your work. Put in mind that a project can be made of one to more repositories.

A project board, on the other hand, is a visual tool within GitHub that helps organize and manage tasks and workflows. It allows you to create customized columns (e.g., To Do, In Progress, Done) to represent different stages of your project. Cards representing issues, pull requests, or tasks can be moved between these columns to track progress and manage work items efficiently. The project board provides a clear visual overview of your project's status and helps in coordinating efforts among team members.

Create a Project

To create a project, navigate to the repository you want to link it to. Click on "Projects," then select "Link a project" if you have existing projects, which will appear in the menu. Otherwise, click on "New project" to create a new one.

You will be prompted to the next page where you can choose a template. Templates often include more than just a board they may include tables and roadmaps. For our project, select "Board" from the menu.

On the next page, name your project and click the "Create project" button.

Once the project is created, it will look as shown below. To add issues and pull requests to the project board, click "Add item" at the bottom of any column. In the text box, type #, and a list of repositories will appear. Select the repository you are working with, and a list of issues and pull requests (PRs) will be shown. Choose the items you want to add. You can also drag and drop cards from one column to another to update their status.

Automating Project Boards

To automate Project Boards, click on the three dots in the top-right corner of the page, and select "Workflows".

Such a page will be shown, and choose what workflow you want to edit for example i will choose Auto add to project and then click the "Edit" button.

On the next page, you will see various options to automate your workflows. You can set up rules to automatically move cards when certain actions occur, such as when an issue is opened or a pull request is merged. For example, is:issue means the rule will apply to issues, and is:pr means the rule will apply to pull requests. Configure the workflows according to your needs to streamline your project management. Click "Save and turn on workflow" once your are done

Let's try it out. Navigate back to your repository and create an issue. On the right-hand side, below "Labels" and "Assignees," click on "Projects." A list of projects will be shown. Choose the project you are working on, and then submit the issue.

Check the project board, and the issue created should appear in the "To Do" list.

Tracking and managing your project's progress is crucial for successful software development, and GitHub offers powerful tools to help. Milestones let you set objectives and monitor progress, ensuring that key goals are met on time. Project boards provide a visual way to organize and track tasks, with customizable columns and automation features.

Integrating milestones with project boards enhances your ability to manage and monitor your project efficiently. I had the opportunity to deepen my understanding of these GitHub features through the "All in Africa" program, which greatly improved my project management skills.

I hope this article has provided valuable insights into using milestones and project boards on GitHub. If you missed any of the previous articles, you can scroll down to catch up. Embrace these tools to enhance your project management and streamline your workflow on GitHub. Happy coding!

12
Subscribe to my newsletter

Read articles from Aseru Kevin Ziyada directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Aseru Kevin Ziyada
Aseru Kevin Ziyada

Recent grad exploring the realms of software engineering, with a passion for crafting seamless user experiences. ๐Ÿš€ Currently delving into the world of open source and diving headfirst into Flutter development from scratch. Let's connect, learn, and build together! ๐Ÿ’ปโœจ #SoftwareEngineering #UIUX #OpenSource #Flutter