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.

Someone told me that if the software product meets clients expectations, it is good quality. But I've worked with Interaction Designers (the same kind of people who made Gmail's interface and usability so cool!), and I've loved working with them because even though they came up with hundreds of changes in requirements, and emphasised on many many subtle details, when the software was complete, I could look at the product and say WOW!

Sometimes, in a company, the only thing that matters is completing the project on time. As long as it works and as long as the client says it's ok, nobody bothers to improve it.

I'm not talking about gold-plating, but I believe that for a programmer to enjoy his (well, maybe her too ;) ) job, they should be able to proudly say that "Hey, I made that software" and that comes only when the product is of good quality.

Apart from your opinions on this, I'd also like to know which fields (Eg. Aerospace, Finance etc.) could I find companies (or you could mention the company name) where the quality of a product is as important (and encouraged by the management) as completing the project on time?

share|improve this question
    
Trust me, finance is not it ... 95% of the places anyway :) I have some inside knowledge. You might enjoy working for a small company, for a credit union perhaps ... –  Job Dec 29 '10 at 14:51
3  
Don't count on fields. I have worked in some, and have had friends in others, and seen things, and heard stories from people I personally trust. Look for individual companies interested in quality. –  David Thornley Dec 29 '10 at 15:23
    
Intriguing to know your opinions. From the perspective of individual companies then...would the right approach be to look at the top leadership (if the boss doesn't care, no other manager cares, and neither will the developers. If the boss cares, everyone does) and to choose a company where bidding is not top priority for the business to succeed? –  Nav Dec 30 '10 at 4:45
1  
You might be interested in Joel's article on the five different worlds of software development. Also, "user experience" might be a better phrase than quality. –  MarkJ Aug 10 '12 at 5:56
    
In your example, basically Interaction Designers was the client and their expectations were high. Often clients don't know what they want: try to steer their expectations to high quality. –  Pieter B Aug 10 '12 at 7:01
add comment

5 Answers

up vote 6 down vote accepted

I don't think a product that meets clients expectations is automagically good quality.

It only meets client's expectations. If client expectations is low price and low quality, it's OK. But it's not high quality.

Delivering more than expected is always a good commercial strategy, if we can name it like that.

Now about quality in general, I think it should be a part of the company culture.

Your people are not be happy and productive in their job if you ask them to build shit.

share|improve this answer
3  
Practical issue - if you always deliver more than expected with no extra charge, you can't charge for it later. You may be devaluing your work. Note - I didn't say "will", only "may". A lot depends on whether you have a chance to build customer loyalty, or whether your customers will jump ship the first time they see a lower price tag or longer bullet-list of gimmicks irrespective of real value. Based on that, Navs question seems significant. –  Steve314 Dec 29 '10 at 13:05
    
@Steve314: Interesting comment. I think customers will appreciate and increase their perceived value of your company if you deliver more. –  user2567 Dec 29 '10 at 13:06
    
@Pierre - often I agree, and I'd certainly rather work in a build-for-quality environment, but it probably depends a lot on what kind of market you're in. At one extreme, if you're competing on a site like www.guru.com, my impression is that competing on quality may be unrealistic. –  Steve314 Dec 29 '10 at 13:17
    
@Steve314: yes it depends on the market/industry. I don't like market where bidders fight on price. Yes it is the sad reality. And that reality is full of depressed programmers and unhappy customers. –  user2567 Dec 29 '10 at 13:45
1  
@Pierre 303: Bingo! Remember Jason Statham's dialogue in Transporter?...that he quit the special forces coz he didn't like to see his best efforts being put to waste by the same people who ordered him to do it. Would the video-game industry be more appealing to conscientious programmers? –  Nav Dec 30 '10 at 5:03
show 4 more comments

You already mentioned - Aerospace. As I know in US they made unit tests for EVERY change in code. Because it is more cheaper, than single failed shuttle and rocket.

If higher quality reduces maintenance (insurance, extensibility, etc) by N amount of money, and these changes cost less than N amount of money, then it obvious to do them. E.g. spending 200 hours in increasing nuclear reactor stability from 99,9999% to 99,99999% usually wort it. But spending 200 hours in increasing mail application stability for small company (e.g. 20 employees) from 99,9999% to 99,99999% usually not worth.

Same goes for usability, will you spend 20 hours to increase quality, or to deliver 2 new features? If quality is so bad, that application almost not usable, then new feature won't make any sense. But if usability as good as gmail, people will be more glad with new features.

share|improve this answer
    
@kusoksna: True for aerospace, but I've heard that they hire only people from top-notch universities. Any field where a person from a humble university (but has the passion for programming) can get into (or a way to get into aerospace :) )? –  Nav Dec 29 '10 at 14:00
4  
It's a myth. At least according to my experience in the aerospace industry. –  user2567 Dec 29 '10 at 14:06
1  
It is a myth. I went to a small school and several of my classmates are in the aerospace industry now. –  Michael K Dec 29 '10 at 14:18
    
Finance is a total myth as well :) I think that Google and Microsoft and ITA software are quite serious about testing these days ... –  Job Dec 29 '10 at 14:54
    
@Nav, i think that education is not that much matter as experience and projects. Yes, i could be wrong about aerospace in US. But for sure they do good quality software, as there were not much fails (compared e.g. to Russia or India). –  Konstantin Petrukhnov Dec 29 '10 at 17:46
show 1 more comment

Industrial automation: this is a field, where you need to meet some very strict quality requirements. Bugs in software controlling expensive/heavy duty/dangerous machinery cost a lot. You're lucky if your program stops operation for a few hours. You're in trouble when the machine is damaged because of your failure. You're busted, if your error caused someone to get hurt or killed.

Of course as always it's a question of relative costs. Sometimes striving to achieve one more 9 after decimal point is just not worth it.

share|improve this answer
1  
And you don't necessarily get quality there, either, although killing people is definitely discouraged. Sometimes keeping improving the process fast is worth some errors on the expensive machines. –  David Thornley Dec 29 '10 at 15:22
    
David: agreed on that. My point was that because the costs associated with the risk of failure is much higher than say a cost associated with say a spreadsheet application that randomly closes once in a week, the quality control is usually at a higher level. I've seen (and sadly also created) some really sloppy automation software, so it does exist out there, but in general I would say it is a field where one more iteration of testing process is cheaper than one bug not found in it. –  Mchl Dec 29 '10 at 15:37
    
If people made sloppy/buggy software and got away with it, it's definitely not a good idea to work in such a company :) The people at Google actually have fun with what they create...you can see it when they put up options on a page like "Make Google do your laundry" :) That's the kind of job I'm hinting at - where you enjoy what you do because it's fun and you know you've given it your best! –  Nav Dec 30 '10 at 5:46
add comment

I think Software Companies are a good example. These companies make a living by selling quality software that is easy to use and solves a problem for its customers. Think Apple or Microsoft, but also smaller companies that focus on a niche product.

In your question, you hint at user experience as a factor in quality. I work for an e-commerce company and we're constantly obsessing over the user experience. We need to make all user interactions simple and beautiful. The better our site looks and feels, the happier our customers are. We are constantly improving the experience of our search and checkout processes.

On the other side of quality, is reliable software. I think both software companies and e-commerce companies fit into this category as well as finance, healthcare and other industries were reliability is absolutely imperative. I included software companies, because no one will buy software that crashes all the time. E-commerce is included because every crash could cost you a sale and the same goes for Finance. Healthcare is included, because people's lives are at stake.

Lastly, there are lots of companies where reliability and user experience are important factors. Just have to find one that interests you personally.

share|improve this answer
1  
I assure you, there's bad commercial software out there, and not every field you might think needs quality software demands or rewards it. –  David Thornley Dec 29 '10 at 15:20
    
I think you're right on the dot. Like 'Pierre 303' mentioned, it's when the company has to bid, that the bidding becomes more important to the management than the software. So Google is a happier place to work for, because they don't have to bid to sell their software. They push the technology through every known limit and that's what programmers like me love doing! –  Nav Dec 30 '10 at 4:40
add comment

"Delivering more than expected is always a good commercial strategy, if we can name it like that".

Define exactly what you man by more than expected. Do you mean more features outside of the specified requirements or something like really high quality code with more than adequate documentation. You have to be careful here if you mean features outside of the requirements because that could easily backfire on you.

However, I did experience one project where this actually work out well for us. We were contracted as consultants and as part of our design we build in a fairly elaborate test bed to validate the solution. We would have done this anyway to make our lives easier, but the customer was blown away and has thanked us on numerous occasions since. Apparently, we inadvertently made his life easier by making it much less painful to validate changes and extensions to solution we provided.

Honestly, I believe time crunches most likely happen when a none-technical person is involved or solely responsible for project planning. The potential for this scenario increases as the development team and or company gets bigger. If you want to avoid this try to find a job at small company. Chance are the development team will have most of the say in major project decision.

share|improve this answer
    
I agree that a small company is a good option. Problem is that small companies are more likely to go out of business and it's more likely that the key management people could die in a single plane crash :P But seriously, I asked the question because I've worked in a small company and I loved it (The work only. Coz the management did exploit us with the Rich Dad Poor Dad strategy). –  Nav Dec 30 '10 at 4:52
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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