Engineering Code
Engineers make complex systems simple
Reduce complexity
Becareful about increasing/introducing complexity
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
If you can't measure it. You can't improve it.
Build it into a chart.
See Pipelines
Funnel Data Structure
Table
Having such a table means you can generate a graph.
Search online: Representing a graph in a database
Steps can change, moved, and removed
Steps can be parallized
Tests, Monitoring, Alerts
Build these in.
Make it easy to do so.
Reduce Technical Debt
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
Maintaining/managing states is a PITA. When there are more states to maintain, it increases the complexity of the project.
What slows down momentum
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.
Last updated