Issue management for multiple, dependent projects

Dear all,

we’re transitioning from a Gitlab Free server to a Gitlab Premium server and thus now have options like Epics and better issue boards.

I’m now searching for best practices to structure the work of our small software team (3-4 people).

Currently, the group structure is mainly based on technology, like

- Tutorials
- Application Software
  + App 1
  + App 2
- Web
  + Web App
  + MySQL Database
- Libs
  - Embedded
     + Project 1
     + Project 2
  - Matlab
  - C#
- Customer Projects
  + Project 1
  + Project 2

+ denotes a GitLab project, - a group or subgroup.

Libraries are shared and therefore used by multiple customer projects and so is the MySQL database project which stores to current structure of a global database.

Our problem is the task and project management. So far, we were creating issues on project levels, without using Epics or anything. It led to big confusion in dependent projects, because it was not clear where to create the issue.

For example,
To implement a feature in Customer Project 1, we need changes in the MySQL Database, in Application App 1 and in a C# lib. I tried to create a “summary” issue in Project 1 and cross-linked implementation tickets in the other mentioned projects. That is a time consuming and error prone task unfortunately. People forget that there are multiple locations for tickets, tickets do not appear on the same issue board etc.

Now, there’s the idea to make the whole grouping more project based, e.g.:

- Tutorials
- Customer Projects
  - Project 1
    - Application SW
      + App 1
    - Web
      + MySQL DB
    - Libs
      - C#
          + lib 1
          + lib 2
     ...  
  - Project 2

Optionally do not use subgroups but just multiple projects. The benefit would be to have a single entry point for all tickets. The group Project 1. And then, Epics could be used, since they are group-based, only.

But how to deal with shared stuff?

The big drawback here is: the database or some libs might need to be used and updated by other customer projects, too. Usually not at exactly the same time but it cannot be assumed that Project 1 is finished before Project 2 gets started. I.e. we had two or more diverging repos. That can’t be right either.

Basically, I’m searching a project/group structure that helps to simplify task assignment + tracking without many manual steps like linking in the case of running multiple customer projects simultaneously that depend on multiple other projects/repos.

The main requirement is that the overhead must be as low as possible. We’re a small team and some people are reluctant to spend significant time to sort and cross-link tickets :wink:

Thank you very much!