Engineering Code

  • 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.
Copy link
On this page
Engineers make complex systems simple
Identify the funnel
Identify each step in the funnel
Within each step, identify the inputs, processes, and outputs
See if the process can be broken down
See if the process can be done in parallel
Build tools to measure the funnel
Funnel Data Structure
Steps can change, moved, and removed
Steps can be parallized
Tests, Monitoring, Alerts
Reduce Technical Debt
Maintaining/Managing States is a PITA
What slows down momentum