My company has recently adopted GitLab and we’re trying to find the best way to make it fit our workflow and organizational structure. I’d like to share our thinking so far to see if it makes sense to more experienced GitLab users and to ask how others have addressed similar situations.
I’m at a small company that makes a few different software products. These products are all under active development: none is finished yet. They are mostly independent: developed by different teams, with different schedules, and different scrums and sprint cycles. A single product’s codebase may consist of multiple services. Some services are unique to a product, and others may be shared between multiple projects.
Our services are generally something that can be packaged inside a Docker image, so we’re creating a GitLab Project for each one and using the CI/CD tools to compose them as needed. This seems to work.
We’re less certain of how to reflect our organizational structure in GitLab terms. We’re leaning towards creating a Gitlab Group for each of our products. Groups seem like the right high-level abstraction, and the fact that Epics and Issues are sorted by Group reflects the way we manage products. The fact that Projects also divide up by Group also mostly works for us, except we’re not sure what to do for code shared among multiple products. Should that go into a “common” group? If we do put shared Projects in a “common” group, can their Issues still be tracked by multiple other Groups?
This is an open-ended question, and I realize there are multiple ways to set things up. But does our general thinking seem to be in the right direction? Does anyone have anecdotes about how their organization addressed similar structures?