Over-engineering

As a developer, I tend to want to build great software, not temporary quick fix. Building something that at the same time answer users needs and is working efficiently, easy to maintain, easy to understand...

When testing new ideas, time is often limited. You don't want to spend weeks to test an assumption. To faster you get an answer the better. Writing code that will be thrown out can be difficult, but testing each ideas with a well written solution will take too much time. Sometime it's OK to write crappy code if it's not meant to last, but don't forget to implement a better solution if that idea is the way forward.