”Complex systems are easier to build than to figure out after they’re working.” - Valentino Braitenberg
- This Law of Downhill Invention, Uphill Analysis starts becoming visible as development teams and projects start scaling.
- The person who creates the system knows the ins & outs of it. They start assuming & expecting same level of knowledge of the system from everyone on the team.
- First thing to ensure productive development environment is to accept the overhead that comes with larger teams. It is a tradeoff for scale.
- Stop using any words that suggest anything is simple or obvious in all team communication.
- Write tests so people afraid of unintentional breakages can freely experiment with their ideas & contribute to the system.
- Try pair programming. It is one of the best ways of knowledge transfer about systems.
- Make an exhaustive README document for developers on the team. Start this on day 1 when you start building any system.
Full post here, 5 mins read