Task management tools not only help in planning resources, project estimations, and milestones, but they also take part in the problem identification as well as changing the priority of methods and resources depending on the current circumstances.

Up until January, we used to use both GitLab and Asana, GitLab for handling software projects and Asana for everything else such as sales and marketing activities. But a few months ago we decided to move to GitLab completely and manage all our tasks and projects in one place, and I must say it was a good decision.

What is GitLab?

GitLab is an online platform that offers a number of features, from project planning and source code management to CI/CD and monitoring. It started as an open-source project to help teams collaborate on software development, but by delivering new functionality at an industry-leading pace, GitLab now provides a single application for the entire software development and operations lifecycle.

At Keitaro, we use it to organise and manage all of our projects and tasks, whether it be a software development project, or a simple social media marketing campaign.

Why do we need a task management tool?

When you’re handling a team, especially a remote one, having a task management tool is essential for numerous reasons:

  • It helps to increase the work efficiency and reduce waste
  • It helps to centralize the work activity and thus minimizes the risk of data loss
  • It encourages teamwork and provides uninterrupted communication, thus leading to an increase in overall productivity.
  • Tasks can be easily prioritized and also reminders are set for the timely execution of tasks.
  • Tasks and events are managed daily anywhere and anytime, you just need a good internet connection.
  • It helps to meet deadlines.

GitLab as a task management tool

GitLab provides a perfect pairing between issue tracking and project management, so we can keep everything in the same place. We define the project process and GitLab organizes it for us.

Organise projects with Groups and Sub-groups

Groups are used to combine and administer projects together, and share them with certain people. For example, all of my colleagues are part of the group called Keitaro.

We also create subgroups to better organize different projects and teams. Each project we create has to be part of a group or sub-group.

Organise all tasks and activities with tracking boards

For each project, we create an issue/task tracking board within that project. One project can have multiple boards and we usually use this feature for large projects with more than one team or in situations where a repository is used to host the code of multiple products.

Here are the main things inside a Board that helps us in managing a project:

Project lists

We use project lists for managing the requirements through the project board: In order to split the requirements according to their category and to provide a simpler interface for working. The new lists are always inserted at the end of the board, before the default list Closed. Moving and reordering lists is as easy as dragging and dropping them around.

Lists can easily be deleted without affecting the labels, it’s just the list view that is removed. We can always add it back later on.

Project Milestones

Milestones in GitLab are a way to track issues in order to achieve the project’s goals in a certain period of time. Milestones allow us to organize the issues and merge requests into a cohesive group, with an optional start date and an optional due date.

Make each project clear and organised by using labels

Labels allow us to categorize the requirements using descriptive titles like a bug, user story, status, or category. Each label has a customizable color and allows us to quickly and dynamically filter and manage epics, issues and merge requests. With GitLab tracking boards, we organize the requirements in lists that correspond to their assigned labels, visualizing issues designed as cards throughout those lists. When the issue board is ready, we can drag and drop the requirements from one list to another in order to present their status.

We can create an unlimited number of labels to organise the tasks in categories according to the project’s need, but there are a few labels that we use for almost every project in Keitaro.

Labels that show Requirements status:
  • Open – this label comes automatically from GitLab when we create the tracking board. The Open status presents the Project Backlog in the agile framework Scrum. All requirements for building the final product are added in the list “Open”.
  • To Do – prioritized requirements.
  • Doing – requirements on which the team is currently working.
  • Blocked – requirements that depend on another item and cannot be implemented until that item is completed (until the dependencies are clarified).
  • Verified – requirements that are completed and deployed on the testing environment and are waiting to be tested by the project tester.
  • Closed – this label comes automatically from GitLab and presents the requirements that are completed – implemented, deployed and working as expected.
Labels that show Requirements category:
  •  Back-end – back-end implementation of the requirement.
  • Front-end – front-end implementation of the requirement.
  • DevOps – deployment requirements.
Labels that show Other categories: 

Depending on the type of the project, the team can use additional labels which will make their work clearer and easier. For example, the following labels can be used in order to provide more description of the requirements: bug, CR-change request, design, marketing, etc.

Last but not least – Tasks

Since the project board alongside the board lists and the milestones are created, adding the project tasks is the next step. Each task can have the following:

  • Title and description.
  • Assignee: Each task is assigned to a team member that will be responsible for execution.
  • Milestone: All tasks belong to different milestones. The milestones present the time frame when the tasks are expected to be completed.
  • Time tracking: The hours needed for execution of the task.
  • Due Date: The due date when the task is expected to be completed.
  • Tasks Labels: Label description of the tasks (task status, task category).

Within tasks, we keep the team up to date with task comments. We use the comments box to tag our colleagues, to ask for their input when we get stuck, or to simply share our progress.

Final thoughts

There are many online tools that help teams stay organised, but what I like about GitLab is that it provides so many options for tech teams, that you only need one tool for everything.

If you’re thinking of using GitLab as a task management tool, I hope this article will help you get started.

Author avatar

About Jasmina Petrovska

was part of Keitaro