Slashdot Mirror


On Getting Management Interested in Improving Quality?

npoole asks: "Like many of the Slashdot readers, I am a programmer and have been pushing out repetitive database content for about a year. The work simply doesn't stop and the more we get it seems the less we ensure quality work. I have been debating telling my boss that either we take less clients, less money, more quality work or I am leaving. Is this a smart thing to do? I'm making very good money doing quick hacks to push out websites, but it's not very project oriented as much as it's become 'throw in pre-written, pre-used functions'. Any advice on how to ensure quality in our work without telling my boss it's either my way or the highway?" Of course, improved quality in any product affects the bottom line, and it's the bottom line that managers are paid to keep up. How can a developer communicate to managers (both open and closed) the value of better quality in development, and how long should one try before giving up?

15 of 270 comments (clear)

  1. well by gkuchta · · Score: 1, Interesting

    You could tell him that all of the quick-hack programming will probably come back to bite him in the butt, and unless he gives the programmers more time, your company's reputation will probably suffer in the long-run.

    --
    when salmon are outlawed, only outlaws will have salmon
    1. Re:well by Twylite · · Score: 4, Interesting

      In my experience, the company's reputation does not suffer. I speak mainly of web development shops in this matter, but all to often there is oversell by the salesdroids, and there is no reasonable (sometimes even technilogically feasable) was to meet the targets.



      But the company has this nice fineprint in the contract: "Quote is an estimate only; billing for actual hours worked will apply", or something to that effect. Basically everything is cool until the deadline, then the client starts jumping up and down demanding their software, which they get 100% late for twice the bill.



      They bitch, moan and complain, but still come back to the company because of lock-in; not contractually, but because everyone else they talk to admits that to modify (update, maintain) the application will be difficult and costly for them without the original company's knowledge, design docs, etc (which, incidently, aren't part of the software and not purchased in the contract - bummer).



      I know this goes for the UK and South Africa, and I'm sure there is at least some incidence of it in the US. "Churn it out fast 'n ugly, 'cause then they will pay more to maintain it" is the general rule. One day companies will catch on to this extortion, but they aren't at the point yet.



      I know a number of damn good programmers who are simply not allowed to produce good code, because the company feels it is a waste of time. Sadly, the companys where they have produced good code have gone under in the dotcom slump ... why? Because they took longer to do the job, and (sometimes) quoted higher in the first place. The perception is that anyone who can quote can do the job properly, so you go with the lowest bidder or the most established.



      /end_rant.


      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
    2. Re:well by Anonymous Coward · · Score: 3, Interesting

      If you have to threaten to resign over quality, you're working for the wrong organization, period. Don't quit in a huff, just find another job. You're working for an organization where non-technical people are calling the shots on how software is developed, and they aren't accountable for when there's problems with the code. Since when is buggy code the manager's fault? If you push unreasonable deadlines and get buggy code as a result, you can always whip the programmers because it's their mistakes that caused this problem.

      As a rule, I will *never* work for any organization where project management is in the hands of people who are not technically current. They are a non-entity at best, at worst, they can ruin the lives of their employees. I've interviewed enough of these "manager-managers" that I find their attitude towards managing the software development personally offensive. Mostly it's focused on perserving their authority and cracking the whip over their staff. "Beat the rock harder, beat it faster, more guys with sticks! Oops, wrong rock! Beat that rock over there!" No wonder so much software sucks out there. It's even worse that in most projects, the requirements are pulled out of management's hat, and have little to do with actual customers desires. How many of you have had to re-work a piece of software because of poor RA?

      Now that I've ended the rant, enlightened management is always concerned about quality, and at the very least, is running the software on a regular basis to keep their thumb on the pulse of the software, and they have a good feel for what the customer experience will be. Customers don't reject products because they're short on features, they reject them because of crashes.

      I strongly recommend Tom Gilb's "Principles of Software Management", which describes phased delivery of software, and rigorous requirements analysis. It's a forerunner of "XP" which is the latest trendy book, but it seems that some managers use "XP" as an excuse for "open-plan" offices, and more shouting, and kinda forget the automated testing and refactoring parts...

  2. they won't do it by deanj · · Score: 1, Interesting
    In my experience, they don't care about quality. They just want to get it out the door. Any time I've ever brought quality up, they've said "we'll do it the next rev" (Yeah right).


    It could be worse...they might get a consultant to try and impose "quality" or "six sigma" or some other BS. That's all happy flap for managers to feel better, and to feel like they're doing something to improve quality in products. The deadlines never change...or if they do, they get shorter.

  3. It's the Company's and the Customer's Decisision by Henry+V+.009 · · Score: 3, Interesting

    They decide how much money they put into developing quality. The customer decides whether to buy the product or to go with a better product. All you get to do is find someplace cool to work. If you have fun where you work, stay. If not, don't. Maybe there are moral issues about programming hack jobs, but that's up to your conscience.

    The best thing you could do would be to start up your own company if you think you could make more money doing things your way.

  4. Learn from Microsoft (believe it or not) by pHaze · · Score: 3, Interesting

    You might want to consider getting some QA in place (if you dont have one already). Also, there is a series of books published by Microsoft Press (Yes Mickey$oft!) called Software Development Classics that can probably help. The books are: 'Debugging the development process', 'Dynamics of software development' and 'Software Project survival guide'. The most useful being the second mentioned by Jim McCarthy who has plenty of sagelike advice, some of which will certainly be useful in your conversations with this project manager you mention.

  5. TQM by Anonymous Coward · · Score: 1, Interesting

    Tell the manager to take a first year engineering course called "ENGR 107" , in this he will learn about Total Quality Management...

    These days, management can't afford to be idiots. Us programmers and engineers are slowly taking up the ranks in management.

    Or if you dont want to do managment, go into consulting, they'l listen to what you say and pay you for saying it..

  6. Re-orient the problem by ansible · · Score: 4, Interesting

    First a word of advice: If you're getting paid, and the company you're working for isn't about to go out of business, then strongly consider staying where you are.

    Perhaps you can approach the problem a different way. You could try talking to your boss about the issues you're dealing with; it seems the worst one is repetitious nature of the code you're working on.

    Anytime you're doing something repetitive with a computer it's usually boring, and it's a sign that you're doing something wrong.

    Perhaps you can work with your company to develop a more abstract toolkit for your application area. If your programming lanugage/library doesn't support abstraction very well, perhaps you can come up with a code generator.

    It may be easy for you to push out quick hacks. But how easy is it to write a program that can do the same? That could be a good challenge, and it would benefit the company because they could complete projects quicker. You might also get to use some new techniques or tools.

    An employee who's constantly eliminating his own job is highly valued by good managers. Not that really good managers are all that common either...

  7. This is the way the world works.... by 3ryon · · Score: 2, Interesting

    As someone whose primary job it making things work more efficiently, I have to tell you that sloppy code is the way the world works. Get it done, get it out there, fix it later if there is a problem.

    Maybe in acedemia programers have the time to achieve loftier goals, but in the business world elegance isn't very valuable.

    I'm sure that there are places you could go where you'd be able to write programs the way you like, but I'd make damned positive that you'd found one before you leave your current job for what is admittedly a "philosphical difference".

  8. Bad idea by SnapperHead · · Score: 1, Interesting
    Thats a pretty bad idea for a few reasons:
    • Your paid to program, your not QA.
    • Companys generally don't like that. You can bring up your concerians, but thats it. You can't tell them how to run there business.
    • Look at the economy, its pretty bad. Your lucky to be a well paid programer. There are tons of people out there who can fill your shoes.
    • Do you think they *really* care ? There making money and people keep coming back. Thats the M$ theory.


    All in all, bring it up, say that you would like to see better quality work get done and your willing to do it. There is a very good chance they will tell you to get the hell out of there office and get back to work ...

    --
    until (succeed) try { again(); }
  9. Make quality your special niche, not features. by MongooseCN · · Score: 3, Interesting

    Let software quality make your products stand out from others, not features. There are many "elitist" companies in every industry that use this tactic. Take the Leica camera company for example (I'm into photography). They make some of the simplest featureless cameras in the market, yet they are the most expensive cameras in the market. Why? Because people don't buy their cameras for features, they buy them because of quality.

    You can do the same thing with software. Make it nice and simple, but make it stable and fast. Take the basic and most important features that people use all the time, and make them work the best they can. With a good solid base system, minor features can easily be compensated for or even forgotten.

  10. Quality Programs cut first in hard times... by Colz+Grigor · · Score: 3, Interesting
    All I can provide is anecdotal evidence, but I learned early that difficult times and quality are mutually exclusive.

    Since the mid-60s, my father has been a huge proponent of Quality Assurance and Total Quality Management, having followed the teachings of W. Edward Deming long before even General Motors had taken a liking to him (Deming, not my father). Since I was very young, I knew that my father's job was to make companies make better products. Sometimes he'd cost a company a few hundred thousand dollars in new quality programs that would, in several years, pay the company back millions of dollars in decreased support or re-work costs.

    I also knew that when the United States fell on hard times (relatively so, like in the 70s, early 80s, mid 90s, and now), my father would inevitably spend several months looking for a new job because the companies he worked for could no longer afford the overhead that a Quality Assurance program introduces. There was never any question of a Return on Investment in quality, but there was always the question of how much cash the Quality Programs required. What's worse, Quality Assurance is a cost center: cash flows in but revenue never comes out. Most improved processes in all parts of the company can no be directly tied to an increase in revenue or a decrease in costs, so even though people understand that Quality Assurance is something beneficial, they don't know how to quantify how beneficial it is.

    Because of this, when a company needs to tighten its belt, Quality Assurance staff are the first out the door.

    It's a great thing to get management interested in improving quality. There are many people who truly believe the principles that were taught by W. Edward Deming, that are awarded by Malcolm Baldridge, and that are supported by the ISO 9000 certification process, but given today's economic situation, now is probably not the right time to be bringing this up with your management.

    Oh, and if anyone knows of any upper-management positions for a long-time Quality Assurance guru with an impressive track record and who's been through the ISO-9000 process many times, send me e-mail. My father is, yet again, looking for a new job in the Los Angeles/Orange County/San Diego County area.

    ::Colz Grigor

    --

  11. Welcome to the REAL WORLD by zentec · · Score: 2, Interesting


    The is called the REAL WORLD boys and girls. It's a world where the corporate mentality is MORE is MORE and you'll produce or hit the highway.

    They don't care if you leave, the down tech sector has produced starving database programmers who are willing to take your place and readily dispense with the "quality" tripe.

    I was a contractor at a major automotive plant, when hourly workers complained that the transmissions don't fit into the prescribed holes, the plant managers said "Hit it with a rubber mallet until it does line up, and do it quick so you don't fall behind".

    Gotta love the corporate work quality mentality. Either quit, or sell your soul.

    Hope this helps.

  12. In my experience they do care about quality ... by flufffy · · Score: 3, Interesting
    ... up to a certain point, that point being where to provide yet more quality will start to cost more than dealing with the negative outcomes of not pursuing quality.

    managers (including the poster's) evaluate the costs and benefits of QA. the benefits of not pursuing quality include lower dev costs, and a shorter turnaround on investment. the costs of not pursuing quailty include customer churn, bad image, tech support costs. balancing these costs and benefits and their attendant corporate politics is probably quite tricky, so the manager therefore probably won't be that interested in being told how to do his job by someone who doesn't know how the company works (unless it's a blindingly obvious way to reduce costs - such as reusing old code ...).

  13. My Experience by StaticEngine · · Score: 3, Interesting
    Funny that this should come up. Just the other week, I was working on a Saturday during my mandatory six day work week, and was pouring through someone else's code, trying to figure out what they were doing so I could get my job done correctly. Needless to say, I got very frustrated because I didn't find the other code to be very neat, well organized, well written, and there was no documentation. So I temporarily flipped out, and fired off an email to the head of my department complaining about standards, quality, and documentation.

    That was a huge mistake. I was "talked to" by several people above me, and my superiors wondered if I was "on crack." When I tried to explain my standpoint, and how quality would improve and six-day workweeks would be unnecessary if we could produce more quality work on a consistant level across the development teams, here's what I was told:

    • Many people on this team are Senior Level programmers (even though they're not Senior in title) and Code Reviews would just insult them.
    • Things change too quickly to document, so there's really no reason to. We just like to shout down the hall how things work.
    • Our project is super accelerated because of a Holiday Deadline, so that's why we're working so hard.
    • All those studies that show quality improvement with standardized methodologies only improve productivity by 12%, but if you keep teams together from project to project, you get a 500% improvement in productivity

    So what it comes down to is that the profit margin is the bottom line, always, and the beauty of the insides of the machine you're building take a backseat to doing things the way they've always been done, as long as everything gets done on time.

    Is it crappy? You bet. Am I comfortable working this way? Not at all. But like everyone else, I have bills to pay, and I'm looking forward to a future where I can start my own small company, and run things in a manner that I'm comfortable with. It's a sucky situation, but the more I learn about anything, the more I learn that the bottom line is always the trump card in every situation.

    It's also true that the market does suck, but smart people will always be needed, and if you're smart enough, you can find a way out that both benefits your career and improves your workstyle. It may not be this week or the next, but it will happen.