- Reduce complexity
- Becareful about increasing/introducing complexity
If you can't measure it. You can't improve it.
Build it into a chart.
See Pipelines
Source | Destination | Time |
---|---|---|
1 | 2 | 2015-11-05 12:33:41 |
1a | 2 | |
1b | 2 | |
2 | 3 | |
2 | 4 |
Having such a table means you can generate a graph.
Search online: Representing a graph in a database
Build these in.
Make it easy to do so.
Cons of Technical Debt
- Slows you down
- Slows down the team
- Harder to clean up the longer it exists
- Frustrating
- Burns out people
Introduced as:
- Complexities
- Inconsistencies
- Non standardization
- Gotchas
- Surprises
- Patches
- Death by a thousand commits
- Poor foresight
- Poor encapsulation
The road to hell is paved with good intentions
Maintaining/managing states is a PITA. When there are more states to maintain, it increases the complexity of the project.
- Processes
- We should engineer the processes out. Automate them. That is what engineering does best.
- Communication Overhead
- We should engineer reducing communication overhead.
- Non Reproducible Steps
- We should engineer reproducible steps.
- Synchronous Knowledge Sharing
- We should engineer asynchronous knowledge sharing.