Working on Large Technical Projects

Working on Large Technical Projects

Recently I was reading an article published by Mitchell Hashimoto on how he works on large technical projects, the link can be found here.

To Summarize the approach:

  1. Decompose a large problem into smaller problems. Importantly, each small problem must have some clear way you can see the results of your work.

  2. Only solve the smaller problem enough to progress on a demo-aspect of the larger problem, then move on to the next small problem.

  3. Only solve enough small problems to be able to begin building runnable demos of your software, then continue to iterate on more functionality. Make demos as frequently as you can.

  4. Prioritize functionality that enables you to adopt your own software, if applicable (a personal project, a work project solving a problem you actually have, etc.). Then continue to solve your own problems first.

  5. Go back and iterate on each component as needed for future improvements, repeating this process as needed.