Project Management with GitLab

Project Management with GitLab

GitLab is great for teams looking to manage the entire DevOps lifecycle inside of a single platform. Here's how.

GitLab is a complete DevOps platform that provides end-to-end capabilities for each stage of the software development lifecycle. It helps teams reduce cycle time and increase productivity, creating value for customers as a result. More recently, GitLab’s use cases are evolving.

GitLab started as an open-source project to help teams collaborate on software development through source code management, CI/CD, and monitoring. Now, it offers useful project management features for teams too.

This article explores the tools GitLab offers for project management, and how to get the most out of them.

GitLab Project Management

GitLab enables an integrated project management environment tailored to you, irrespective of which formal Agile framework you’re using: Scrum, Kanban, Lean—or your own alternative.

In GitLab, you can manage issues, visualize the status of work across your cycles, and track effort and resolution priority just like you would with dedicated project management applications.

Let’s break down some of the key project management features GitLab offers:

Projects

GitLab projects are used to organize your work and host your codebase. You can create a project to track issues, plan work, collaborate on code, and continuously build, test, and use built-in CI/CD to deploy your app. Projects can be made available publicly, internally, or privately, with no limit on the number of private projects that can be created.

Groups

A GitLab group is a collection of several projects, essentially functioning like a folder. You can also use groups to manage permissions for your projects. If someone has access to a particular group, they can access all of the projects within it. Plus, you can view all of the issues and merge requests for the projects in a particular group, and access analytics that show group activity. Groups allow you to communicate with all group members at once, and subgroups can be created for larger organizations.

Boards

A GitLab board allows you to organize a workflow your team can use to easily manage their work. Boards show you the issues being worked on, who is assigned to each issue, and where issues are in the workflow. On your board, issues appear as cards in vertical lists which teams can move across lanes to reflect where work currently is in the workflow. Boards work seamlessly with Scrum and Kanban methodologies, and multiple boards can be created within the same project.

A diagram showing a GitLab board

Issues

GitLab issues are a fundamental artifact of its project management tool; they allow you to define a single feature that delivers value to users. Your team can then use a created issue to collaborate on ideas, solve problems, and plan work. Issues are always created on a specific project and can be shared and collaborated on with people outside your organization.

GitLab recommends some different use cases for issues:

  • Discussing the implementation of an idea
  • Tracking tasks and work status
  • Accepting feature proposals, questions, support requests, or bug reports
  • Elaborating on code implementations

Issues can be assigned to indicate who is working on them—each issue can have multiple assignees.

When creating an issue you can set its due dates, importance, confidentiality, dependencies on other issues, link it to another issue, and add task lists.

You can also create issues via email to receive issue tickets from people without access to your GitLab instance.

A diagram showing a GitLab board

Epics

GitLab epics allow you to group issues that share a common theme across projects and milestones; this enables you to manage your portfolio of projects more efficiently. Example epics could include Security, GraphQL upgrades, or User Onboarding.

GitLab recommends using epics for the following scenarios:

  • When your team is working on a large feature involving multiple discussions in different issues on different projects in a group.
  • To track when work for a group of issues is targeted to begin and end.
  • To discuss and collaborate on feature ideas and scope at a high level.

Labels

GitLab labels make it easier to keep track of your issues and projects within GitLab, especially as your organization grows and you use GitLab for longer. Labels allow you to tag your work in a flexible way, which allows you to easily track and find items you’re interested in.

GitLab recommends these use cases for labels:

  • Categorize epics, issues, and merge requests using colors and descriptive titles like bug, feature request, or docs.
  • Dynamically filter and manage epics, issues, and merge requests.
  • Search lists of issues, merge requests, and epics—as well as issue boards.

A diagram showing a GitLab board

Burndown Charts

GitLab burndown charts allow you to see your completion progress of a milestone. GitLab plots this for you in a clear and well-presented chart. You will be able to track your work in real-time and identify any risk of delays much earlier.

A diagram showing a GitLab board

Milestones

GitLab milestones allow you to create a cycle and set timeframes of when work will begin and end. GitLab tracks issues and merge requests to achieve this. In practice, you give a milestone a title, with an optional start date and optional due date. Milestones can be used to track Agile sprints or releases.

A diagram showing a GitLab roadmap

Roadmaps

A roadmap visualizes upcoming work in your product development workflow. They allow everyone to have the same understanding and improve communication for projects currently in progress.

Teams use roadmaps to outline future product functionality, as well as the release of new features. GitLab’s roadmap displays epics and milestones in a group containing a start date or due date—visualized in the form of a timeline. On each epic in the roadmap, you can view the epic’s title, start date, due date, and completed weight percentage.

A diagram showing a GitLab roadmap

Wikis

GitLab’s wiki is a documentation tool that allows you to keep documentation in the same project as your codebase. Each GitLab project has its own wiki. Every wiki is a separate Git repository, so you can create wiki pages in the web interface, or locally using Git. Agile teams can also use a wiki to store their cycle’s retrospective meetings history.

Traceability

GitLab provides automated linking of issues to the current state of your code through merge requests where developers implement and deliver the code changes. This is a powerful project management feature for visibility.

In the description of a merge request, developers can link to an issue using its ID. They can then use helpers that let GitLab know the merge request is part of the work for the issue. Alternatively, it could be the final piece of work required and the issue will automatically close once the merge request is released. This automated project management ensures boards are always reflecting work progress accurately.

A diagram showing a GitLab board

Larger Organizations

GitLab’s project management tools support large organizations too; they can organize multiple Agile teams to achieve enterprise Agile scalability. Scaled Agile methodologies that large organizations might be using include: Scaled Agile Framework (SAFe), Spotify, Disciplined Agile Delivery, and more. All of these can be supported with GitLab’s project management solutions.

Tools You Can Use

GitLab project management gets a lot easier once you connect it to a project management tool that organizes data inside GitLab. Let’s explore some of the tools you can use:

Slack

Slack is a workplace communication platform that provides a single place for messaging, tools, and files.

GitLab allows you to easily add a Slack notification service to your project. This makes use of webhooks, notifying your team whenever a new issue or merge request is opened or closed.

You can also configure Slack to control GitLab directly inside your chat client using slash commands. This can be useful if you want to trigger any actions on your GitLab quickly through your chat application.

Status Hero

Status Hero is a work communication tool that turns asynchronous check-ins and project management data into concise, insightful reports. It eliminates time-consuming meetings, shoulder taps, digging for data, and other interruptions so you can focus on your core responsibilities.

When you connect your Status Hero team and GitLab repos, Status Hero will automatically include team members’ commits and merge request updates with their check-ins. You and your team can also view, filter, and cross-reference real-time pushes and merge requests.

Status Hero and GitLab

Conclusion

Development teams continue to accelerate value delivery with iterative, incremental, and lean project methodologies like Scrum, Kanban, and Extreme Programming (XP).

This article has shown you how GitLab can provide more value than source code management, CI/CD, and monitoring. GitLab is now a powerful project management platform, irrespective of which methodology is being used by your team. This allows teams to have everything they need—all in one place.

Using GitLab for project management results in way less process compared to an Agile project management application. As a result, it's easier for developers and project managers to manage their projects, freeing up time to allocate elsewhere.

To optimize your project management process, supportive tools like Status Hero can integrate with GitLab to further boost your team’s capabilities.

By Tanaka Mutakwa. Tanaka is a technology leader who is driven to help software engineers have fulfilling careers. He has a passion for technology, leadership, and building high-performing teams.