When designing a solution and then writing code for it, I often face a dilemma: Should I build a quick solution to finish my work quickly, or should I spend more time early on to build a solution that ...