GitLab in software development – part 1: Workflow

GitLab is a repository manager based on Git architecture, as well as a powerful tool for software development. Offering a user-friendly interface, GitLab enables efficient work – both using the command line and the UI itself.

The entire software development cycle in one place

GitLab is very helpful for developers but also other team members, providing all employees with a single, unique work platform.

GitLab’s workflow is intuitive and easy to work with. Thanks to that, teams find it easy to use the platform that also offers a straightforward implementation.

GitLab’s workflow

GitLab’s workflow is nothing else than a sequence of activities that are part of the software development process handled inside the GitLab platform.

GitLab’s workflow is based on GitLab Flow and thus supports version management following Git’s principles. Its main goal is integrating teamwork and improving performance at all stages – from implementation to production. This is what we call the “fast transition from idea to production in 10 steps”.

1. Idea, 2. Issue, 3. Plan, 4. Code, 5. Commit, 6. Test, 7. Review, 8. Staging, 9. Production, 10. Feedback.

Stages of software development

The traditional software development process usually takes place in 10 main steps. GitLab has created a solution for each of them:

  • IDEA: Every new project starts with an idea, often expressed in a conversation. At this stage, GitLab uses the integration with Mattermost.
  • APPLICATION: The most efficient way to discuss an idea is by submitting it to the system. Your team and coworkers can help you refine and develop it with Issue Tracker.
  • PLAN: After the consultation process is over, it’s time to code. First, however, you need to prioritize and organize your workflow. To do that, we can use the Issue Board.
  • CODING: When we finish planning, we can start writing the code.
  • COMMIT: Once the working version is satisfactory, we can commit the code to a functional branch with version control.
  • TESTS: Thanks to GitLab CI, we can run scripts for building and testing our application.
  • REVIEW: When our scripts, builds, and tests work, we’re ready to review the code and accept it.
  • STAGING: Now it’s time to send the code to the test environment to check that everything is working correctly.
  • PRODUCTION: If our application works smoothly, it’s time to implement it to a production environment.
  • FEEDBACK: The last stage is applying corrections. We can also use the Cycle Analytics tool to check how much time we have spent on each stage.

Effective passage through all the stages requires good workflow support mechanisms. In the following sections, we provide an overview of GitLab tools for facilitating the work of development teams.

GitLab Issue Tracker

GitLab offers an application tracking function, allowing you, your team, and colleagues to freely share and exchange ideas, both before and during implementation.

Categories are color-coded

Reports (issues) is the first of the essential GitLab workflow functions. Starting a discussion from the application is the best way to follow the evolution of the new idea.

Issue Tracker allows, among others:

  • discussing ideas,
  • proposing new solutions,
  • asking questions,
  • reporting errors and malfunctions,
  • receiving support,
  • considering new code implementations.

Each project hosted by GitLab has its Issue Tracker. To create a new application in the right project, select Issues> New issue, give it a title corresponding to the topic and describe it with the help of Markdown. You can use these tips to create good descriptions.

GitLab Issue Tracker provides additional features to facilitate the organization and prioritization described below.

The confidential checkbox needs to be checked.

Confidential applications

If you want a discussion on the application to be available only to your team, you can mark it as confidential. Even if the project is public, the specific application will be protected. The browser will show a 404 error if someone without the permission (at least at the Reporter level) attempts to open the request URL.

Deadlines

You can assign a deadline to each application. Some teams have a tight schedule, so it is necessary to set a deadline for deployment and troubleshooting. Deadlines introduce this possibility.

For multitasking projects, such as a new release, product launch, or quarterly task tracking, the tool offers milestones.

Assignments

When someone starts working on a report, you can assign it directly to that person. Assignments can be changed without restrictions. The idea is that the assigned person is responsible for reporting until they are assigned to someone else. Of course, it is possible to filter the application by assignments.

Signs

The GitLab naming system is another essential part of the GitLab workflow. We can use them to categorize applications, arrange them in the workflow, and prioritize them.

The markings allow working with the GitLab application table, enabling the planning and organization of workflows.

A novelty here is the ability to create group markings that allow assigning the same designations to groups of projects.

Weight of entries

Each application can be assigned the appropriate weight to precisely determine the difficulty of implementing it. Easier applications can get weight between 01-03, ones that are a bit harder between 04-06, and the most difficult ones usually weigh between 07-09. In agreement with the team, you can, of course, develop your own weight standards.

A small note: the feature described above is only available in the GitLab Enterprise Edition and GitLab.com versions.

GitLab Issue Board

GitLab Issue Board is an excellent tool for planning and organizing applications with the aim of adapting them to the processes in your project.

The board displays appropriately marked lists that allow dividing entries by category. Each of the lists contains relevant applications presented in the form of cards.

Cards can be pinned to lists in any way. This action adds a list marker to a given card. As a result, it makes it easier to work with after switching from the board view to the view of the declaration (Issues).

A new feature that has been introduced recently is the option to use multiple Multiple Issue Boards in one project. Multiple Issue Boards is the best way to organize entries from several workflows simultaneously.

***

Do you want to know more about the GitLab license options or get to know GitLab better? Get in touch with us – our consultants will be happy to answer all your questions!

Radosław Kosiec

Radosław is Partner Product Department Director in Deviniti spaceship. He’s been supporting Deviniti in many areas since 2011. He advises companies about tools for DevOps, service desk, customer service, task and project management, and more! He is proud to be a Deviniti astronaut because the company follows the principles he has always believed in. He is a great Capitan of his crew!

More from this author