Sprint to Demos
My goal with the early sub-projects isn’t to build a finished sub-component, it is to build a good enough sub-component so I can move on to the next thing on the path to a demo. ✨
This tradeoff isn’t just manifested in functionality. It may be manifested in algorithmic or design considerations. For example, you may know that in the future, you’ll need to use something like a real database or a fancy data structure or support streaming data. But for the initial set of work, you can just use in-memory contents, built-in data structures such as dictionaries, and require all your inputs/outputs up front.
I think this is an important tradeoff so I will repeat it: do not let perfection be an enemy of progress. Going further, do not let future improvements you know you’ll have to make stop you from moving on to the next thing. The goal is to get to a demo.