When you are somehow responsible of all the LOCs written at your company, your Gitlab top bar might look like this
If you are like me a software engineer, you probably have a lot of issues. Ahem, with issues i obiously mean project related issues, tracking tasks, bugs and whatsoever.
In order to oganize a big number of issues across multiple projects (with multiple components) at apio we developed a little system of labels: TIPS
TIPS is the acronym for Type, Impact, Priority, and Status, meaning that each issue should have a label describing the Type of the issue, one for the Impact and so on..
But what do those words mean? Let’s see
Type: What kind of issue is this? Possible values:
- Deployment
- Bug
- Documentation
- Enhancement
- Security
- Performance
- Refactoring
Impact: Who is affected by this issue? Customers? Development team? The marketing team and the customer?
- Internal: the issue is only visible from inside the company
- External: the issue is impacting other people outside the company
Priority: This is an easy one, which issue must be handled first?
- Critical: Drop anything you are doing and handle this
- High: You should hadle this as soon as possible
- Medium: Do this on schedule
- Low: Do this when you have nothing better to do
Status: Another easy one, this label should tell us what’s the current status of the issue
- Backlog: It’s an issue we have, but we are not handling it now
- Blocked: This is blocked by something else
- In progress: we’re working on it
- Completed: it’s done
- Investigating: Doing required research before handling the issue
- Testing: making sure changes are effective
Labels are built with the following pattern
<CATEGORY-NAME>:<CATEGORY-VALUE>
Some examples taken from our gitlab:
Additions
Some kind of projects require more label due to their nature, for example, our DevOps related issues also have the environment label to indicate which environment is affected by an issue.
- Environment:
- Production
- Testing
- Staging
- ..Wathever
Monorepos (which have been popularized by recent whitepapers and articles by huge companies like Google and Facebook) have multiple sub projects in them, wo when creating an issue, we add specialized labels to indicate to which sub-component the issue is relsated:
- HugeProject/UserMicroservice
- HugeProject/ItemsMicroservice
- HugeProject/WorkerA
- HugeProject/WorkerB
Let me know if you developed your own system and how it works for you!