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:
-
Decompose a large problem into smaller problems. Importantly, each small problem must have some clear way you can see the results of your work.
-
Only solve the smaller problem enough to progress on a demo-aspect of the larger problem, then move on to the next small problem.
-
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.
-
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.
-
Go back and iterate on each component as needed for future improvements, repeating this process as needed.