- Know when to stop. There are so many good reasons to stop. My favorite is that the longer you delay the more likely it is that the customer is going to ask for something else. In reality a 30 minute delay to color a report header for a one-time report that could be done in seconds by hand; especially when time is critical.
- Tools that are stable, terse and simple are the most productive even if you have to create a DSL of your own. This way the minutia is separated from the work. So much easier to debug and easy to be fast.
So I get severely peeved when developers design tools like git. It's just tool damn expensive from multiple points of view.