Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

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.

Is this just me, or is it a common programming trait?

share|improve this question

put on hold as primarily opinion-based by MichaelT, durron597, GlenH7, Dan Pichelman, Snowman 2 days ago

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

reminds me of a quote I've heard before: "Programs are never finished. One day, people just stop working on them" –  GSto Sep 21 '10 at 22:32
Whatever you do, don't let it kill your sense of accomplishment. Been there; done that; nothing good came from it. –  Steve Evers Sep 22 '10 at 1:14
@GSTo: Haha, so true. –  gablin Sep 22 '10 at 8:06
@SnOrfus: Yeah, I've been there too, and am trying to be constantly aware of what I'm doing and ask myself "Is what I'm doing really what I should be doing?" –  gablin Sep 22 '10 at 8:07

5 Answers 5

up vote 11 down vote accepted

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 ...

share|improve this answer

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.

share|improve this answer

I think it's one of those things along the lines of "if I ever think I know it all, I must not know anything".

If I can't find anything to improve, I think that is a sign that I'm letting ego get in the way of critical thinking. Which means the whole thing probably is terrible.

share|improve this answer

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.

share|improve this answer

For me, it's just normal. When I see something unsatisfactory in my code, I'm doing any thing just to improve it.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.