|
|
|
|
|
by flyinglizard
2182 days ago
|
|
1. Embrace refactoring/rewriting as inevitable; 2. Understand it's very often easier, faster and better to write something trivially but twice than writing it well once; 3. Realize no matter how hard you try, unless this is something you've already done once (which brings you back to #2 above), then your information of the problem is incomplete and therefore any all-encompassing solution you may have will essentially be partial and based on extrapolation of your knowledge and guesswork. The above also deals with a significant cause of procrastination - an internal subconscious feeling we can't do what we're about to do well, therefore we'd rather not even start it. Just sit down and tell yourself, "today I'm going to write a bad module X", and with enough time you'll be able to sit down again and write a good X. The one thing you should spend a bit more time on is interfaces and decoupling, but as for internal implementations of things, or even entire system blocks that you can swap later on - don't bother too much. It'll be OK at the end, and you'll get there faster. Even if you need to rewrite the whole god damn thing. |
|
Also:
1. cut features and enjoy saying no.
2. set deadlines and ship (if not enough time, see 1 above)
3. don't skip tests; makes refactoring/rewriting a breeze