For as long as I've programmed, I've never really been entirely satisfied with any projects that I've finished. Sure, they do what I've set out to do, but there has always been something in the code that I, in retrospect, would have done differently but can't be bothered to refactor.

5 Answers
5

IMHO, it is common. Can't speak for others naturally, and avoiding that crap about striving for perfection and all that, it is partially because you know where all the weak points in your program are / and what are they.

So, you're not satisfied.

Of course, most users will never notice most of those, and therefore will always have a higher regard to your program then you will.

Remember, it is not striving for perfection, but being just good enough that make good programmers / engineers.

p.s. Interesting what kind of crazy philosophical posts I can write at 00:30 after 4 cups of tea ...

I'd say that this is quite common for any kind of engineer. Our job is, by definition, an on going process of design, construction, and revision. We as programmers tend to know know the problem areas in our applications better than any other person involved in the final product and thus they stick out to us like a sore thumb. In addition to that fact, a good engineer is always seeking ways to improve his or her efforts so that the next thing they work on is (hopefully) better than the last.

I can't say that I personally have ever been completely satisfied with a product I've shipped, but I see that as a motivation toward self-improvement, rather than an indication of poor work or perpetual of malcontent.

As an engineering student, I see myself constantly criticizing my own work. As well, I find that if I don't sit down and design something throughly from start to finish (such as my second attempt to write an Assembler for a VonNeumann Emulator I wrote as part of course work), I end up second guessing myself and compensating for my own work everywhere (such as my first attempt at writing a Von-Neumann emulator). I still think there are drastic improvements that can be made in these programs, etc etc. So you aren't alone. Me and everyone else who posted here seem to agree with you.