One gotcha is that to truly making the code concise also can be over-engineering. It takes a phenomenal amount of work to really understand something, well enough to make it as simple as possible.
And then you release it and discover that the problem is a little different from what you thought, or you solved the wrong problem. It wasn't that you were stupid, just that you didn't have the data that can only come from outside yourself.