Engineering Code

#Engineering Code: Starting a New Project/Feature

#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

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

#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

#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.