Having access to a modern IDE these days makes it possible to write clean code and extract things into proper names in seconds. I don't get what you mean by "unthought-through code". Any code that works is code that you understand and think about. In my experience, unless is a trivial spec you implement, the mor disorganized you are, the later you get to deliver. If there are just a few lines of code, there is no reason not to have them clean. If there is a larger portion of code, if you do not start by keeping it clean, you will only be slower, because you will not be able to reason about you code you just wrote. I do get the fact that code may not be perfect. There may be duplication. There may not be the best possible architecture on the first try. But code has to be clean and it should be easy to reason about, whatever the deadline may be. Writing code takes the time that it takes. But never the time to write code is the most important part. You spend over 80% of your time reading it.