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, no registration required.

I didn't ask how the quality of the software is important to the product itself, the customers/users, the manager or the company. I want to know how it is important to the programmer that build it.

I'll be interested in any books (please specify the chapter), articles, blog post, and of course your personal opinion on the subject regardless your experience.

share|improve this question

closed as not a real question by Mark Trapp, StuperUser, gnat, ChrisF Oct 30 '12 at 11:47

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Could you be a bit more specific? Quality of what? –  Steve Evers Dec 5 '10 at 9:13
    
I'll try to be more specific in the edit I'm about to make –  user2567 Dec 5 '10 at 9:14
    
@gablin: would you be so kind and post your comment as an answer? –  user2567 Dec 5 '10 at 18:46
    
@Pierre 303: Done. Didn't think it long enough for an answer. ^^ –  gablin Dec 5 '10 at 21:09
    
And in this particular setting "quality" covers what exactly? –  user1249 Dec 6 '10 at 3:50
show 6 more comments

13 Answers 13

up vote 15 down vote accepted

If your question mean that "Should quality be important to programmer as a professional", the answer is, "Unequivocally yes".

However if your question is "do programmers care about quality personally", answer is, "It depends".

On the one hand there are programmers who are not satisfied until they have perfected the code, but on the other hand there are programmers whose main interest is problem solving, once they have the solution, quality seems like irksome details to them.

If you fall in the latter kind (as I do, I am not proud to admit), you must try to fight and overcome this tendency. Of course sometimes perfect can be enemy of good too.

Update: Now why are some programmers perfectionists and other analytical. I believe the answer to that lies in psychology and genetics. Investigating that is both outside the limit of this answer and my knowledge as well. That said, I will note following

  1. Although these are not necessarily mutually exclusive, really good programmers are more comfortable with problem solving than quality, as I believe programming at its core is about problem solving.

    1. doesn't however mean that if you are good at problem solving you are necessarily a good programmer. To use mathematical terms problem solving is a "necessary" condition whereas aspiring for quality is a "sufficient" one.
share|improve this answer
    
I prefer that you explain me why –  user2567 Dec 5 '10 at 11:03
    
@Pierre Updated the answer for that. –  Gaurav Dec 5 '10 at 15:01
add comment

The quality of what I worked on is of the utmost importance to me - sometimes to my detriment (failed deadlines mostly). As long as I can take pride in what I've done on the project, then that's what really matters to me.

Quality of the product as a whole, is mostly a bonus.

Consider that I'm coming from a viewpoint where, as an employee, the software I've made has always been for someone else, so I've never really had any emotional ownership for the product; just the code inside it.

share|improve this answer
1  
+1 -- It irritates me when I can't go in an make sure my code is good for the next person who sees it. I forgot who said this, but you aren't done until you've rewritten your code 3 times. –  Jeremy Heiler Dec 5 '10 at 15:12
1  
Quality of the product being just a bonus makes me sad. –  Tim Williscroft Dec 6 '10 at 2:53
    
@Tim Williscroft: Consider a situation where you've been tasked with making software that you disagree with. I can't picture myself saying "I'm going to make the best spamming software ever." - but my code will be as good as it can be, I'll tell you that. –  Steve Evers Dec 6 '10 at 3:10
1  
I think I'd rather just not work there. This limits my job choices sometimes, but at least I'm doing stuff I believe in. (I work in very morally challenging spaces sometimes, to I'm not arguing from the position of a guy who does websites for pet stores) Ironically now playing Cracker "I've got nothing to believe in" –  Tim Williscroft Dec 6 '10 at 3:17
    
@Tim Williscroft: Fair enough. +1. In my case, I haven't always had that luxury in the past so this opinion was formed when I was in heavy debt and the market wasn't looking for developers. –  Steve Evers Dec 6 '10 at 3:34
add comment

My grandfather designed river dams to last for centuries. For something to hold up for any decent amount of time, it has to be good: even software.

My non-programming work (most of my work, actually) is similar: we have to keep referring to what we've studied and written, often on short notice, years later, under pressure (frequently, preparing for depositions or trials). It has to be done well, the first time, or it is often not worth doing.

share|improve this answer
1  
And my grandfather designed bridges. They're still standing. –  Tim Williscroft Dec 6 '10 at 2:52
add comment

Quality in my terms means the following: usability (less bugs, more features); simplicity;

I'm able to make the quality higher - this means I'm a good developer. I'm able to get paid higher, it is easy to find a good job.

Finally, I'm paid (bonuses) for high-quality software I produce.

share|improve this answer
add comment

Programming is my craft, and I care about my craft. Code done poorly is an insult.

share|improve this answer
add comment

Zen and the Art of Motorcycle Maintenance - Best book on Quality and the search for it in life...seriously, every dev should have a copy (and read it)

share|improve this answer
add comment

I like to write quality software, simply because it helps me being more efficient: when code is well designed, I find it easier to add new features to the program and to maintain it. So, quality code means quality programming time.

On top of that, being the most efficient possible is a nice intellectual challenge!

share|improve this answer
add comment

Actually, Peopleware chapter 4 discusses this. People put their pride into things that they build. The authors argue that it is important to let builders create things up to their standards of excellence even if the market will allow for less quality. The reason being that forcing people to put out a product that's below their standard of quality undermines their motivation, which ultimately has a bigger impact on their ability to work quickly than anything else.

share|improve this answer
add comment

There are some programmers who take professional pride in the work they deliver. Who take personal responsibility to ensure that they test and validate their code, and want to leave a legacy for other programmers to follow in their footsteps.

The fact that their code is clear, well tested, easily extendible and used by paying customers is a key part to their sense of satisfaction of a job well done.

share|improve this answer
add comment

This depends on the programmer. I have met plenty of sloppy ones, who get sexual release from "getting it done". There are many ways to look at this. Sometimes you do want to write a throw-away Python script. Sometimes you dig a huge hole by doing wrong things. If you work for NASA or other mission-critical places, then quality is inversely proportional to the number of people that will die. Sometimes revenue generation is key to the survival of a start-up. http://www.codinghorror.com/blog/2009/02/paying-down-your-technical-debt.html Jeff Attwoods and Joel Spolsky see refactoring differently.

share|improve this answer
add comment

quality code is a kindness to your future self

share|improve this answer
add comment

I do the simplest thing that will work for the client on the client's budget. Anything extra is time I'm stealing from playing playmobil and lego with my 5 year old son.

If things change and the client wants a modification, I do that and charge for it.

I do not look at long-term "potential" issues unless the client is paying for that, and they invariably aren't.

Ultimately, simple one-page scripts with no fancy algos and no bleeding-edge dependencies mean that any changes is trivial, even 1 year down the road.

share|improve this answer
    
I don't think that looking at potential issues necessarily equates to writing quality code. I think code that 1) performs the task and 2) is easy to maintain and 3) is bug free would be what I consider a quality job. Unless the requirement stated it needed to consider all potential issues (in which case I'd require more specific requirements about what "all potential issues" were.) –  Wayne Werner Feb 23 '12 at 12:01
    
I think looking at potential issues include things like: What if the customer number includes alphanumerics? What if the customer name includes unicode that isn't also ASCII? You have to be careful about those. But that's part of "the code works" and that's why I charge substantially more than $8.25 an hour to write the "simple scripts". –  Christopher Mahan Feb 23 '12 at 18:22
add comment

If you work on something just to earn money, it's meaningless to discuss about quality, maintenance or design patterns...

But no one want to work on the fields they don't like. We are all developers. And good developers take good quality, delivery time and easy maintenance as his happiness. It's not the problem about money & customers anymore, it's professional pride.

share|improve this answer
add comment