HASSANHABIB

§ 2.2 — The Standard Team Practices

Naming Your Work

7 min read · chapter 6 of 15

Every branch, commit and pull request carries a category. The same list decides how a piece of work is named and, later, how it is counted.

Branch Names

For branch names we can apply the following naming convention: users/[username]/[category]-[entity]-[action]

The variables can be substituted

  • [username] => your github username
  • [category] => the category that you are working on
  • [entity] => the entity that your service / broker uses
  • [action] => the action

Categories

The categories below are grouped by the kind of work they describe.

Infrastructure and delivery

CategoryDescription
INFRAInitial project setup, creating the build project / build scripts.
MAJOR INFRAMajor updates, removing or adding simple configurations or files.
MEDIUM INFRAMedium updates, removing or adding simple configurations or files.
MINOR INFRAMinor updates, removing or adding simple configurations or files.
PROVISIONSCreating provision project / scripts.
RELEASESInfrastructure work to release software.
CONFIGAny configuration changes i.e. setting up appsettings.json for your various environments.

Data

CategoryDescription
DATACreation of a data model (and its migration when EF is used)
MAJOR DATAChanging existing data model with 5+ property additions/modifications.
MEDIUM DATAChanging existing data model with 3-4 property additions/modifications.
MINOR DATAChanging existing data model with 1-2 property additions/modifications.
MIGRATIONMoving or transforming data from one system to another, updating existing data, or generating reports.
MAJOR MIGRATIONMajor data migration or transformation tasks involving significant data volume or complexity.
MEDIUM MIGRATIONMedium complexity data migration or updates involving moderate data volume or effort.
MINOR MIGRATIONMinor data migration or simple data updates with low complexity or small data volume.

Brokers and services

CategoryDescription
BROKERSWhen creating a broker to wrap external libraries, resources, services, or APIs
MAJOR BROKERSMajor changes to existing broker (significant functionality changes).
MEDIUM BROKERSMedium changes to existing broker (multiple significant modifications).
MINOR BROKERSMinor changes to existing broker (simple modifications).
FOUNDATIONSWhen creating a Foundation Service
MAJOR FOUNDATIONSChanging existing foundation service with writing or updating all or to 5+ tests.
MEDIUM FOUNDATIONSChanging existing foundation service with writing or updating to 3-4 tests.
MINOR FOUNDATIONSChanging existing foundation service with writing or updating to 1-2 tests.
PROCESSINGSWhen creating a Processing Service
MAJOR PROCESSINGSChanging existing processing service with writing or updating all or to 5+ tests.
MEDIUM PROCESSINGSChanging existing processing service with writing or updating to 3-4 tests.
MINOR PROCESSINGSChanging existing processing service with writing or updating to 1-2 tests.
ORCHESTRATIONSWhen creating an Orchestration Service
MAJOR ORCHESTRATIONSChanging existing orchestration service with writing or updating all or to 5+ tests.
MEDIUM ORCHESTRATIONSChanging existing orchestration service with writing or updating to 3-4 tests.
MINOR ORCHESTRATIONSChanging existing orchestration service with writing or updating to 1-2 tests.
COORDINATIONSWhen creating a Coordination Service
MAJOR COORDINATIONSChanging existing coordination service with writing or updating all or to 5+ tests.
MEDIUM COORDINATIONSChanging existing coordination service with writing or updating to 3-4 tests.
MINOR COORDINATIONSChanging existing coordination service with writing or updating to 1-2 tests.
MANAGEMENTSWhen creating a Management Service
MAJOR MANAGEMENTSChanging existing management service with writing or updating all or to 5+ tests.
MEDIUM MANAGEMENTSChanging existing management service with writing or updating to 3-4 tests.
MINOR MANAGEMENTSChanging existing management service with writing or updating to 1-2 tests.
AGGREGATIONSWhen creating an Aggregation Service
MAJOR AGGREGATIONSChanging existing aggregation service with writing or updating all or to 5+ tests.
MEDIUM AGGREGATIONSChanging existing aggregation service with writing or updating to 3-4 tests.
MINOR AGGREGATIONSChanging existing aggregation service with writing or updating to 1-2 tests.

Exposers

CategoryDescription
CONTROLLERSWhen creating a Controller
MAJOR CONTROLLERSChanging existing controller with writing or updating all or to 5+ tests.
MEDIUM CONTROLLERSChanging existing controller with writing or updating to 3-4 tests.
MINOR CONTROLLERSChanging existing controller with writing or updating to 1-2 tests.
CLIENTSWhen creating a client on a library that others can use
MAJOR CLIENTSChanging existing client with writing or updating to 5+ tests.
MEDIUM CLIENTSChanging existing client with writing or updating to 3-4 tests.
MINOR CLIENTSChanging existing client with writing or updating to 1-2 tests.
PROVIDERSWhen creating a provider on a SPAL provider library that others can use
EXPOSERSWhen creating any other kind of exposer i.e. Program.cs
MAJOR EXPOSERS—
MEDIUM EXPOSERS—
MINOR EXPOSERS—

Front end

CategoryDescription
VIEWSWhen creating a View Service
MAJOR VIEWSChanging existing view with writing or updating all or to 5+ tests.
MEDIUM VIEWSChanging existing view with writing or updating to 3-4 tests.
MINOR VIEWSChanging existing view with writing or updating to 1-2 tests.
BASESWhen creating a Frontend Base Component
MAJOR BASES—
MEDIUM BASES—
MINOR BASES—
COMPONENTSWhen creating a Component
MAJOR COMPONENTSChanging existing component with writing or updating all or to 5+ tests.
MEDIUM COMPONENTSChanging existing component with writing or updating to 3-4 tests.
MINOR COMPONENTSChanging existing component with writing or updating to 1-2 tests.
PAGESWhen creating a Blazor Page
MAJOR PAGES—
MEDIUM PAGES—
MINOR PAGES—

Tests

CategoryDescription
ACCEPTANCEWhen writing an Acceptance Test
MAJOR ACCEPTANCE—
MEDIUM ACCEPTANCE—
MINOR ACCEPTANCE—
INTEGRATIONWhen writing an Integration Test
MAJOR INTEGRATION—
MEDIUM INTEGRATION—
MINOR INTEGRATION—

Fixes and clean-up

CategoryDescription
CODE RUBSmall change to fix things styling, code formatting, spelling (Not for bug fixes)
MAJOR CODE RUBSignificant code cleanup affecting multiple files.
MEDIUM CODE RUBModerate code cleanup affecting several files.
MINOR CODE RUBMinor code cleanup affecting few files.
MINOR FIXA minor bug fix / change that do not significantly alter the overall functionality of the program.
MEDIUM FIXA fix that has a moderate level of impact on the functionality or performance of a program or system.
MAJOR FIXA major bug fix is a significant repair or correction made to a software program or system that addresses a critical or major issue.
IMPORTWhen you are copying code and tests over from another system with no or minor changes like namespaces. Should include the component being imported, format: IMPORT: [COMPONENT]: [Description]

Design and documentation

CategoryDescription
DOCUMENTATIONGeneral documentation
STANDARDWhen you update or introduce a new thing in The Standard
DESIGNCreating documentation has design details for your architecture (High Level Design / Low Level Design)
MAJOR DESIGNDesigning 15+ service methods.
MEDIUM DESIGNDesigning 10-14 service methods.
MINOR DESIGNDesigning <10 service methods.
BUSINESSCreating documentation that outlines your business processes / Standard Operating Procedures.
STATUSWhen updating STATUS information in your design documentation.

People and process

CategoryDescription
REVIEWReviewing submitted work in the context of project standards, and Standard compliance.
PLANNINGPlanning should occur once per feature and involve collaboration across services. Individual work and planning for themselves doesn’t quality as planning. Planning involves multiple engineers with a leader who assigns and distributes the tasks across the team.
MAJOR PLANNINGPlanning 10+ tasks.
MEDIUM PLANNINGPlanning 5+ tasks.
MINOR PLANNINGPlanning <5 tasks.
MENTORSHIP60+ minute session.
MAJOR MENTORSHIP60+ minute session.
MEDIUM MENTORSHIP45 minute session.
MINOR MENTORSHIP30 minute session.
DISCUSSIONWhen conducting a discussion meeting under the DISCUSSION title, surrounding technical issues.
MAJOR DISCUSSION60+ minute discussion.
MEDIUM DISCUSSION45 minute discussion.
MINOR DISCUSSION30 minute discussion.

This chapter lives on GitHub, where it is written in the open. Read the source or suggest a change.