Things I learnt the hard way in thirty years of software development
Great lessons! Although it didn't include one that I had to learn the hard way, multiple times:<p>Your throwaway prototype will be the codebase for the project.<p>In my career, I've seen multiple throwaway prototypes that were hacked together. None of them ended up in the waste bin.<p>"Just add X and Y and you're done". "But this is just a quick hack to show the interface, there is nothing behind it!" "Yes, and the interface is fine, so why start from scratch? Just add the rest".<p>Now I know: I never build throwaway prototypes ever again, it's always a base for the project to come.