I've often heard it said that a 'shortcut' is "the longest distance between two points".
Somehow I found myself developing a database application for my wife, in my 'spare' time. I really, really didn't have time to do this, but it had to be done, so I took a couple of shortcuts. The net result of which was that I had to throw away pretty much everything half way through and begin again.
So many things went wrong that just would not have happened if I'd treated this like any project in my day job. Of course it's not fair to compare coding at home to coding at work. The office environment is intended to facilitate the flow of productive work. A home with two kids is not. At least 80% of the time I've spent on this project was wasted time.
Anyway, I've finally managed to deliver something I'm happy with. The system survived the first demo (during which only two minor bugs came to light) and the 'client' seems happy. I'd like to say I've learned some lessons, but none of it was anything I didn't already know: