Slashdot Mirror


QA != Testing

gManZboy writes "Original author of Make and IBM Researcher, Stu Feldman has written an overview of what should be (but is sadly perhaps not) familiar ground to many Slashdotters: Quality Assurance. He argues that QA is not equivalent to 'testing', and also addresses the oft-experienced (apparent) conflict between QA-advocates and 'buisiness goals.'"

342 comments

  1. Requirements? by bigtallmofo · · Score: 3, Interesting

    From TFA:

    QA is described as making sure a project is "measurably meeting expectations and conforming to requirements"

    At my job, requirements are often one-sentence requests with no needed detail whatsoever. If it then doesn't go to a business analyst in the IT department, that's what the programmers work from. When the QA process starts, it makes it easy to say that you've complied with all details of the requirements.

    --
    I'm a big tall mofo.
    1. Re:Requirements? by PepeGSay · · Score: 5, Insightful

      This is a sign that there was no quality assurance during the requirement gathering. Which probably means you were not actually starting your "QA process" , but were actually starting "testing".

    2. Re:Requirements? by chimpo13 · · Score: 1

      QA at a few of my last jobs were: "If we don't get complaints, you're doing great". Which is probably why one has almost gone under for years. A few months of walking up and thinking, "Well, there's cars in the parking lot" and "alright, the doors not padlocked shut". Any day now, we'd say, but I'm glad they're still in business even if I don't work for them.

    3. Re:Requirements? by ColdGrits · · Score: 3, Informative

      "When the QA process starts,"

      The QA process should start right at the beginning of the project, when you are developing the requirements (i.e. before the specification is created).

      You are not using QA at your company. If you were, then you would have a proper, detailed specification and list of requirements, which benefits everyone (the customer, the designers, the testers - everyone).

      --
      People should not be afraid of their governments - Governments should be afraid of their people.
    4. Re:Requirements? by Twylite · · Score: 4, Informative

      There are two parts to quality. The second part of the IEEE definition is "The degree to which a system, component, or process meets customer or user needs or expectations".

      Although Feldman leaves out the second part (I believe it comes from another standard), he alludes to its importance in his discussion of how stringent QA must be, indicating that software for different purposes will have different quality requirements according to the needs of its users.

      Quality Assurance is not possible in the absence of requirements and specifications. Although we (the company I work for) often receive requirements with minimal detail, we have addressed the quality problem by writing a (relatively) detailed specification up front, and presenting it to the customer. Effectively we're saying "this is what you're going to get for your money, okay?". It's just prudent practice, but it gives us a goal and a way to achieve quality (by both definitions).

      You can find more on the combining the technical and business approaches to quality in my essay The Quality Gap.

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
    5. Re:Requirements? by drgonzo59 · · Score: 2, Informative

      I worked for a company that designed a major CAD product and the code was millions and millions of lines. Anyway, there was a scripting language built into it and a mode to run the application in batch mode. So all the user input could be scripted. Then we had a hefty team of QA/QC people who were in charge of mentaining a ton of testcases that consisted of input, the some script that operated on it and an ouput to compare the result with. All the testcases took days or even weeks to run, initially it worked fairly well. When new features were added to the program it was a pain in the arse to go and change all those testcases that now were supposed to look different. The problem was even worse because they had co-ops(interns) doing it, who had no experience and had no idea what was going on. After years, many testcases became un-usable after so many changes and features added and it the QA became a mess. The release cycles got longer and it was harder and harder to keep track of bugs. I don't know what happened then because I left just about then...

    6. Re:Requirements? by Eric+Giguere · · Score: 5, Interesting

      For good reading on the design/requirements problem, I recommend Alan Cooper's The Inmates Are Running the Asylum. Talks a lot about how products can meet all their requirements and yet still fail because the requirements weren't right to begin with.

    7. Re:Requirements? by Unnngh! · · Score: 2, Insightful
      I've found a number of ways to work around a lack of requirements. A good specification is one, but if you are so inclined a static prototype can often achieve as much if not more from the customer's perspective. A couple hours of use case gathering with management and the customer can also achieve amazing results, without the need for lengthy documentation or weeks and months of back-and-forth.

      Then you just have to convince everyone to stick to what they've agreed to when they ask you to change everything halfway through coding!

    8. Re:Requirements? by dpilot · · Score: 1

      On the other hand, I've seen cases where so much time and effort and especially politicking goes into the requirments document, that by the time it gets delivered to software design and coding, the whole request is obsolete.

      Code is delivered that meets the requirements document, but does nothing whatsoever for the users.

      --
      The living have better things to do than to continue hating the dead.
    9. Re:Requirements? by Flyboy+Connor · · Score: 1, Funny
      At my job, requirements are often one-sentence requests with no needed detail whatsoever.

      Reminds me of my first programming job. For five years I worked for a boss, who only drew screenshots and then said: "Program this".

    10. Re:Requirements? by Twylite · · Score: 1

      I've found prototypes are more useful in a JAD context. They're at least as effective as use cases at gathering requirements for applications that are mostly interactive.

      Currently I use specifications because we're working with non-interactive software than integrates with a number of other systems, and needs its processing behaviour to be very precisely understood.

      That's a fairly specialised environment, but for more general contexts I have found use cases to be particularly effective. Of course, I could a use case plus the documentation you need to understand it as part of a requirements specification ;)

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
    11. Re:Requirements? by kerskine · · Score: 1
      Yikes!
      At my job, requirements are often one-sentence requests with no needed detail whatsoever

      It's your job as a developer to let the person writing the requirements know that you need more information. A good requirement has 3 properties:
      1. It's finite and measurable. You have a goal that when completed, can be demonstrated and/or documented
      2. It's clear - you understand what's being asked of you. If you don't, say so
      3. It asks what needs to be done, not how to do it (that's your job).
      --
      ****

      "I'd never want to join a club that would have me as a member" - G. Marx
    12. Re:Requirements? by Tony+Hoyle · · Score: 2, Informative

      Reminds me of *every* programming job I've ever had... apart from one where they got into this 'QA' nonsense (which seemed to be mostly about putting 'quality' posters all over the office and making the shareholders feel fuzzy). Then we spent 90% of the time filling in stupid forms (specifications for *every* bug fix, 10 page essays for *every* enhancement, 2 hour meetings *every* day where we read out these forms and ticked them off an endlessly growing list) and never got any programming done.. the company went bust.

    13. Re:Requirements? by ColdGrits · · Score: 2, Insightful

      "A good specification is one, but if you are so inclined a static prototype can often achieve as much if not more from the customer's perspective."

      In that case you have a specification! In the form of your static prototype.

      Nowehere does it say that a specification HAS to be solely a written document...

      --
      People should not be afraid of their governments - Governments should be afraid of their people.
    14. Re:Requirements? by pohl · · Score: 2, Interesting

      I haven't read the book, but someone at work used to have a copy on their desk, and it used to annoy me. The environment here is that the only clueful people are those who are writing the code, and this manifests itself as a broken QA environment, starting from totally broken functional specs. This had the side effect of putting a lot of decision making power into the hands of the programmers, which the owner of this book did not like. In my circles this book was jokingly called The Cooks Are Running the Kitchen. I hope the content of the book isn't as offensive as the title.

      --

      The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

    15. Re:Requirements? by FuzzyDustBall · · Score: 1

      I am a contractor for the government and things usualy play out like this:

      Governemt contact "I want a system that can do (insert wild fantasy here)"
      (this is called the requirements phase)
      Contractor "I have written a full specification to provide you your dream"
      Government contact weighs specification on a scale.
      Governemt contact "looks good"
      2 weeks before delivery Governemt contact "It doesn't have a CD-ROM drive in it does it?"
      Contractor "yes the entire system boots from CD-ROM"
      Governemt contact "No good, people could play music on this critical system"
      Contractor "But it doesnt have speakers!"
      Governemt contact "NO CD-ROM"

      Contractor scambles to reove the CD-ROM from the design
      so the specification thing doesn't help.

    16. Re:Requirements? by Anonymous Coward · · Score: 0

      it's your job as a developer to...

      And it is the job of 9 other departments, your boss, their bosses to let you know that "running the business" is not you job. Come on, I have only seen the sentence situation or the other end of the spectrum and that is what you have in mid/large companies:
      Project Management Dept.
      SOX Compliance and Audit Committee (this has now become/will become the most powerful, "you will obey without question" department in sizable businesses.)
      IT Operations
      IT "Engineering" and "Architecture"
      IT Business Analysts to interface with the Business Dept
      3 different sub departments within the Business Unit you work for
      Finance
      Telecomm and Networking
      Marketing and Branding
      Graphic and UI Design (sometimes under Marketing sometimes under IT)
      Business Operations and Facilities
      SEC/FDA/DoD/whatever Compliance
      Manufacturing (if you actually make something)
      and on and on...

      So you can pick your poison, either a one sentence design/requirements "doc" that you can try to work from or spend the rest of your life on conference calls with 7 high paid vampires from EDS, 5 projects managers from departments motivated to prevent your project from moving forward unless they are paid homage/internal funny money/subservience from you, 4 business unit people who don't know why they are on all the calls, 3 managers from your department who put their foot in their mouth every time they open it and the 2 other poor bastards who are going to have to implement this farce with 5 weeks left out of an 18 month project lifetime.

    17. Re:Requirements? by Anonymous Coward · · Score: 0

      No, that's validation. Making sure something conforms to the requirements is called validation.

    18. Re:Requirements? by Anonymous Coward · · Score: 0

      I'm a co-op in a similiar situation. Fortunately, I have been given extensive training in validation and testing methodology by my employer before being given the assignments though. I don't want to think of what might happen if the untrained were doing ECU validation. To put it another way, imagine a group of small monkeys banging on a keyboard. This will likely produce better test cases than an untrained person attempting to generate test cases.

      If you have never thought about how the auto industry could be worse, there you go.

    19. Re:Requirements? by pete-classic · · Score: 2, Funny

      A specification must be an MS Word document. You must have missed the memo on that.

      -Peter

    20. Re:Requirements? by Anonymous Coward · · Score: 0

      Isn't it funny how programmers always think they're the only ones that have a clue?

    21. Re:Requirements? by Paul+Brown · · Score: 1

      In this case the specification does help for the next part of the conversation, where the contractor points out this is a change request and hence requires more cash/time/whatever. Admittedly in most circumstances the contractor will just buckle under any sort of pressure from the customer, but without a specification you've not even got a starting point as to why the customer's shouldn't expect you to do this for free.

    22. Re:Requirements? by B3ryllium · · Score: 1

      Government contact weighs specification on a scale.

      Hhahahahahaahh :) I bet that's exactly what happens, too. Especially here in Canada :)

    23. Re:Requirements? by mbolton · · Score: 2, Funny

      I'm always astonished at people's admonitions that you can't test or have quality assurance (or quality products, for that matter) without great requirements documents. Yet in 15 years in this silly business, I've never heard anyone say "We are very proud of our requirements documents. They serve our purposes perfectly, and we would do nothing to change them." Not once. ---Michael B.

    24. Re:Requirements? by vinn01 · · Score: 1

      Thanks for your paper.

      This is golden: "Customers don't distinguish between conformance to specification and conformance to expectation."

      It's almost not funny, but to a lot of corporations Ferrari is not a high quality car. They define quality as having minimal variation from the design. Corporations think that they are getting high quality when they outsource to Asia because every part comes out identical (according to the specifications). But a hand made car like a Ferrari has all kinds of variation.

      Corporations would rather get consistant crap than inconsistant, but better stuff (according to the customer expectation). The same thinking is driving software outsourcing to India.

      That's my quality rant for today...

    25. Re:Requirements? by soft_guy · · Score: 2, Interesting

      but if you are so inclined a static prototype can often achieve as much if not more

      Depends on what you are building. On some of my past products, I've used prototypes. We have a project here that has is really heavy on UI and has a massive prototyping effort going back and forth between Human Factors, Product Manager, and Engineering.

      On the other hand, I am currently on a project where a static prototype would not be of any value. The user interface is a tiny part of the project. Also, the requirements are extremely complicated and fluid. We have had to start using a requirements tracking system. (Kind of like bug tracking, but requirements tracking.) We regularly "scrub" requirements in order to remove ambiguity.

      The other great thing about this company is that we have highly qualified QA folks who are involved in projects from the very beginning and are empowered to prevent a product from shipping until it meets the company's quality goals.

      If you are a developer, QA is your best friend whether you know it or not. I highly recommend that you recognize that these folks have a skill set that you probably don't even if they don't know how to program. And tell them you recognize that! QA at a lot of places is underappreciated. (It was at Microsoft when I worked there.)

      --
      Avoid Missing Ball for High Score
    26. Re:Requirements? by bynary · · Score: 1

      It would seem that your company does not believe in QA as a process in tandem with the project itself.

      --
      http://www.bynarystudio.com
    27. Re:Requirements? by Eric+Giguere · · Score: 1

      The theme of the book is that you need people separate from the programmers -- he calls them interaction designers -- to figure out how the user will interact with an application/product because the programmers are too much into the programming to do it properly. But you should read the book and decide yourself. I don't agree with everything he says, but some of it definitely rings true.

    28. Re:Requirements? by Anonymous Coward · · Score: 0

      Amazingly, I work for a dream company. We make specs and requirements at the beginning of each project. I've worked for companies that didn't do this, and the comparison is night and day. My current work is much less stressful, the products are higher quality, more satisfaction everywhere. So I'll tell you it is possible to do.

    29. Re:Requirements? by qwijibo · · Score: 1

      Almost as funny as managers believing that authority == ability.

    30. Re:Requirements? by pohl · · Score: 1

      I tend to assume that cluefulness shows up in your output, regardless of what your role is.

      --

      The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

    31. Re:Requirements? by Anonymous Coward · · Score: 0

      A Ferrari may be a sexy car, it may be a desirable car, it may have burled walnut embedded in the dash and a gold plated cigaratte lighter, it may do 0-60 in 3.9 seconds.

      But a lot of people would define high-quality to mean that it doesn't break. By this measure, would a Toyota be a higher-quality car?

      Hmmm, it is hard to say "Toyotas are higher quality than Ferraris", maybe your analogy sucks?

      Maybe high-quality _when used about software_ doesn't mean "it does a lot and looks cool and increases my testosterone levels 15%" like it does with Ferraris but means, rather, "it works as it should".

    32. Re:Requirements? by Wybaar · · Score: 2, Interesting

      Well, if you're a company like Boeing or Toyota, it's kind of nice to be able to say "The process we're using will produce the same results when applied to this plane/car today as it's done thousands or millions of times in the past." It reassures customers (and government investigators, were something to go wrong) a bit more than "Sure, we're trying a new procedure for this $VERY_EXPENSIVE plane/car you just purchased from us. It should give basically the same results."

      I like the quote you gave from the paper. It doesn't matter if the way the product is working is the way it's documented to work. It doesn't matter if you ship stone tablets you received on Mt. Sinai containing a statement that the product is working as it is documented to work. If it doesn't work the way the customer thinks it should work, then customers will either report the behavior as a bug or will request an enhancement to the product to get it to work the way they think it should.

      --
      Y|
  2. Quality? by ceeam · · Score: 5, Insightful

    IME, Quality = Knowledgeable_Staff_On_Good_Salary + No_Deadlines. Unfortunately, this formula larglely is not compatible with business world. So, in the mean time, customers should be grateful if software has been _somehow_ tested and mostly works.

    1. Re:Quality? by z80x86 · · Score: 3, Insightful

      I do not know if I agree with that strict formula you proposed. I have always felt that approaching software with a clear plan for its future is the best way to ensure a quality final product. While systems may often appear to be growing organically, its evolution must be controlled so that it does not deviate far from what was originally expected of it.

    2. Re:Quality? by patrixx · · Score: 5, Insightful
      Funny, I would say Quality = Knowledgeable_Staff_On_Good_Salary + Deadlines

      BOVE'S THEOREM: The remaining work to finish in order to reach your goal increases as the deadline approaches.

      PARKINSON'S LAW: Work expands to fill the time available for its completion.

    3. Re:Quality? by mbrod · · Score: 1

      I agree but I would say Knowledgeable_Staff_On_Good_Salary at least has to have say and a good amount of pull/power in the deadline.

      So:

      Quality = Knowledgeable_Staff_On_Good_Salary + Knowledgeable_Staff_On_Good_Salary_Influenced_Dead lines

      No matter how hard some business weanie up the food chain wishes not to pay people good, the hard fact is in QA you have to pay people enough to care what they are doing. QA work can be extremely boring and tedious. To get this done right the people need to be compensated and paid enough to give a rat's a**.

    4. Re:Quality? by the+grace+of+R'hllor · · Score: 2, Insightful
      Deadlines focus the development effort. Without the need to ever finish anything, you'll never finish anything because there's *always* something you can add or improve.

      Milestones keep the development on track, and deadlines are used in projectplanning to determine an end state for the development project.

      Besides all this, lots'o'time doesn't give you quality, necessarily. Look at knowledgable modern artists; all the time in the world, and all they produce is a pile of crap.

    5. Re:Quality? by thecardinal · · Score: 3, Informative

      IME what you normally get is :
      a) Knowledgeable staff on average salary + unrealistic deadlines, somehow managing to motivate themselves to do a good job
      and then
      b) Average management using the abilities of said knowledgeable staff, getting all the praise for the projects somehow coming in on time, and getting a huge pay rise for their "efforts".

      I think I may be getting just a little bitter and twisted about my career prospects.

    6. Re:Quality? by dallaylaen · · Score: 1

      IME, Quality = Knowledgeable_Staff_On_Good_Salary + No_Deadlines.

      This would end up designing a spherical horse in vacuum. Or a six-legged elephant... or Emacs. And yes, the result would be bugless -- after infinite time.

      The quality consists of even more factors, then QA -- and one of them is limiting features (yet the other is leaving a way for new features to come in -- like it has finally been done with Firefox).

      --
      WYSIWIG, but what you see might not be what you need
    7. Re:Quality? by Chris+Kamel · · Score: 1

      It should be Quality = Knowledgeable_Staff_On_Good_Salary + Reasonable_Deadlines No deadlines is total chaos, reasonable deadline are another thing.
      Software project estimation is already well established, and you should be able to provide a pretty accurate estimate given some time for investigation.
      The only projects that should have no deadlines are research projects, when you're pushing the computer science limitations. Which is rarely the case.

      --
      The following statement is true
      The preceding statement is false
    8. Re:Quality? by Anonymous Coward · · Score: 0

      Many times, management is after the SILVER BULLET.
      They promise too much, without consultation, and compound the mistake of throwing testers at the last minute, who may have zero prior understanding of the business, which justifies the scapegoat for any screw ups found later.

      There is dumb testing, intelligent testing, exhausive testing. Bang for buck, retaining testers with a corporate memory, without unreasonable deadlines, is the success formula.

      To be really successfull, you admit bugs, log bugs, fix bugs, and ensure the next release is pretty damm good.

      That's a feature, not a bug, is windowspeak.

    9. Re:Quality? by SpaghettiPattern · · Score: 1

      IME, Quality = Knowledgeable_Staff_On_Good_Salary + No_Deadlines.
      That's the typical attitude of a techie: Let me work and you get a result eventually. That's OK if you're in a creative process and milestones are absent.

      Science is (or should be) such a field where creativity is highly appreciated and very valuable. In business typically you want to know exactly what you will be delivering, how much it will cost, how much you can charge and when the payments will arrive. If you take a business approach towards software development you appreciate QA as a means to make accurate forecasts of products you will deliver.

      My definition of quality is the measure of how much an object/subject/process corresponds to a set of defined rules. Is a project administered according to specific standards? Are the designers/programmers trained to do their jobs? etc...

      Quality assurance is making sure the quality you desire is maintained. A feed back loop in your quality object/subject/process makes this happen. Periodic audit rounds provide you with status information and allow you to correct quality where necessary.

      Having said that,... I have been a QA auditor and I think QA processes are very important in any organization. However, I find QA audits a horribly boring activity. I feel like I'm parenting adult people all the time. I don't mind being audited.

      There's also something as a 'personal quality'. In essence, this is a very meaningless term to say "I'm a pro, I will listen to your needs, work to solve your problems and provide you regularly with feedback." Not very exact, conceptually wrong but nevertheless highly effective.

      I am a technical specialist and I earn my money by showing my 'personal quality'. If any form of formal quality assurance is required I can comply as a matter of course. I believe to be in a very privileged position exactly because of my 'personal quality' and because trust has set in which means I'm allowed large amounts of freedom in planning and doing my work.

      My advice to the geek community is to learn about business administration and to use that knowledge to show your professionally to managers by which you will achieve your own goals more easily.


      I know, I sound like an old fart.

      --

      I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
    10. Re:Quality? by platos_beard · · Score: 1

      Hmm, I can't agree with that. I don't care how knowledgable your staff is or how motivated (which I take it is what you're getting at with the salary), if they aren't the staff doesn't include skills covering the whole range of what's needed (particularly QA) or aren't pointed at the right tasks, you will not end up with the product you need.

      If you don't have someone who has been given responsibility for preparing clear requirements for the programming staff (how formal they are doesn't mattter, but they must be clear) and can do it well, you will end up building the wrong thing, then hacking it to pieces to make it do something close to what you should have written in the first place.

      After that, the "easy" part of QA is making sure the result meets the requirements.

      --
      What's a sig?
    11. Re:Quality? by Tony+Hoyle · · Score: 1

      A good developer can work out their own deadlines. Keep them informed of *why* this is needed and let them work out how best to get there.

      Milestones are OK but mandated ones just create shoddy code as everyone chucks everything in to make the artificial deadline.. I've seen it happen.. the 'woo, we made the milestone' feeling, followed by the sinking feeling when you realize that the resultant mess barely compiles.

    12. Re:Quality? by hackstraw · · Score: 4, Interesting

      BOVE'S THEOREM: The remaining work to finish in order to reach your goal increases as the deadline approaches.

      PARKINSON'S LAW: Work expands to fill the time available for its completion.


      This is why I don't believe in deadlines (to a degree).

      _Everything_ is a work in progress, deadlines are rarely met, or if they are the stress and rush is rarely worth the satisfaction of meeting the deadline.

      I would strongly recommend all people to read How to Get Control of Your Time and Your Life. The guy is annoyingly into time management. Its his fulltime job! He sets his watch 3 minutes fast so he's "ahead of the world", and always takes advantage of those 5 or so minute waits to make lists of things to do and whatnot. But here is the best thing I got from the book. Keep in mind that this dude is anally retentive -- bigtime.

      He lets his employees bring pleasure stuff to work with them, and as soon as they finish what they are tasked to do he lets them read, do puzzles, sew, or whatever they want while at work.

      My jaw dropped when I was reading those pages. That did not make any sense to me whatsoever.

      Then he said why. He said that if he gave someone a set time to do something, they would stretch it out to finish exactly at that time. By letting people not have a deadline and do something they want to do when finished with their work, he was actually able to get _more_ work out of them. It was also clear to him without taking any of his time to tell when his employees were done with their work and could be tasked with something else. Completely without any communication.

      A side benefit, is that the employees actually feel more free, and get their work done in a more timely manor than if he gave them a deadline.

    13. Re:Quality? by Sique · · Score: 1

      But he still gives a deadline to them. Otherwise they wouldn't know when to stop playing with their toys. Ok. You could argue that they are playing until the next project runs in, thus the deadline being an extern influence. But then he never can tell his supervisors when they can get the next project scheduled.

      It is similar to the "homework" approach many parents use: "You are free to play whatever you want as soon as your homework is done." (which implicitely sets the deadline to 'until bed time').

      --
      .sig: Sique *sigh*
    14. Re:Quality? by Anonymous Coward · · Score: 0

      I would say
      Quality = Knowledgeable_Staff_On_Good_Salary + Many small deadlines.

    15. Re:Quality? by espressojim · · Score: 1

      What if people are lazy and sloppy, and rush their project out the door so they have more free time to play at work?

      Maybe he only hires 'good' people, or uses this to weed out the lazy people.

    16. Re:Quality? by vinn01 · · Score: 1

      I agree: deadlines reduce quality.

      If there is a deadline, it means that an implicit compromise is being made on quality. Testing to an acceptable level of risk is done on the "risk" scale (decreasing risk as testing proceeds), not the "time" scale (decreasing time as testing proceeds). When a testing deadline is reached, there is a resultant point on the risk scale. The resultant point on the risk scale verses the desired point on the risk scale is the measure of the quality compromise.

      It has always been true in my experience that when the testing deadline is reached, the level of risk has not been reduced to the desired level. But "the business" will release the software anyway just because the deadline has been reached.

    17. Re:Quality? by Phred+T.+Magnificent · · Score: 1

      Close, but not quite: Quality = (Knowledgeable Staff on Good Salary) + (Intelligent and Reasonalble Deadlines).

      Absense of deadlines (often) leads to never shipping a product at all. Unreasonable deadlines, on the other hand, lead either to a bad product that ships on time, or a bad product that ships six months late with no QA at all -- not even a hand-wave at testing. Both extremes == bad.

      --
      Where is the wisdom we have lost in knowledge?
      Where is the knowledge we have lost in information?
    18. Re:Quality? by fupeg · · Score: 1
      Funny, I would say Quality = Knowledgeable_Staff_On_Good_Salary + Deadlines
      I know what you're saying, but it's just not true. The age-old equation of engineering is:

      Quality ~ Money * Time

      If you decrease time, you will decrease quality unless you increase money. The othe classic rule of software engineering is that there are diminishing returns when trying to spend more on more people.
      Of course you could re-write the above equation as:

      Quality = k*Money*Time

      Where is k is some constant. Most would agree that this constant increases over time (tools, training, etc. all improve.) Some would argue that globalization has provided a shortcut for greatly increasing k, allowing for companies to produce the same quality in the same amount of time, but for much less money.
    19. Re:Quality? by DerekLyons · · Score: 2
      _Everything_ is a work in progress, deadlines are rarely met, or if they are the stress and rush is rarely worth the satisfaction of meeting the deadline.
      Um.. Not everything, not by a long shot, and it's rarely about the satisfaction or meeting a deadline. It depends greatly on the kind of software you are writing, and the immediate goals of the larger system the software is part of.

      F'rinstance; the software that drove the missile fire control system I worked with. Sure, overall it was a constant work in progress, with no real 'deadline' for minor fixes and upgrades to a mature and widely deployed system. But...

      We were scheduled to shoot a test bird, carrying a development warhead. The software modifications needed *had* to be completed, tested, and shipped by a certain date. Test launches that the warhead folks could piggyback on only happened a couple of times a year, and late delivery meant potentially wasting the time of the hundreds of people directly involved in the shot - not to mention potentially delaying the return of the launching ship to operational status.

      Nor was it an option to simply wait to schedule the launch until the software was ready. That could mean months of delay for everyone else... And no data for the hardware folks to work with until the launch was actually accomplished.
    20. Re:Quality? by pipingguy · · Score: 1


      He lets his employees bring pleasure stuff to work with them

      You mean like a RealDoll? Mine sits an a spare chair in my cube and acts as my personal secreta...err, administrative assistant.

    21. Re:Quality? by Erik+Hollensbe · · Score: 1

      _Everything_ is a work in progress, deadlines are rarely met, or if they are the stress and rush is rarely worth the satisfaction of meeting the deadline.

      An ever-extending deadline is an excuse to procrastinate. A deadline that encompasses too much is impossible to meet on time.

      Between the lines there's a vast middle ground that works well for companies that know how to exploit it. Microsoft makes software geared around doing just that (and I've experienced personally how properly organizing and knowing your team's strengths and putting them on the right parts of the chain can not only meet your deadlines, but beat them leaving a week to blow what's left on the corp amex on expensive scotch.)

      He sets his watch 3 minutes fast so he's "ahead of the world", and always takes advantage of those 5 or so minute waits to make lists of things to do and whatnot.

      My wife does that with the alarm clock.

      Every morning I see her get up, look at it reading 7:30, say "I've got 7 more minutes", hit the snooze button and go back to bed.

      Oh yeah - check out Larry Wall's description of "Laziness" and see if that's the same "Laziness" you're describing compensating for.

    22. Re:Quality? by Erik+Hollensbe · · Score: 1

      If you decrease time, you will decrease quality unless you increase money.

      While your other points are right on the money, this is such B.S. that there's a whole profession surrounding it (Project Management), and tons of books on the subject. One could read The Cathedral and The Bazaar, The mythical man-month, or Death March and that point would be defeated in the first few paragraphs, with empirical evidence.

    23. Re:Quality? by the+grace+of+R'hllor · · Score: 1

      Good developers can shift deadlines and milestone-dates with arguments to their project manager; you're "misunderestimating" the importance of project *management*.

      If you're having to scramble to make a deadline, you can't plan worth a shit. Good developers should, obviously, have some skill in this area, and should help their project managers determine a sane schedule. The manager, however, should ensure that this schedule is kept.

      You can't have a project be managed competently by someone who has to do the actual work, too. Take a look at construction workers (who *do* seem to be able to complete work on time). The people building the stuff are directed by the higherups, who ensure that everything is built when it has to be.

  3. Re:QA by Anonymous Coward · · Score: 0

    The real problem for linux re; QA is that its now TOO LATE to get decent QA (you need it before coding begins)

  4. QA != Testing by Anonymous Coward · · Score: 0


    QA != Testing

    Doh! I had this in high school software development course.

  5. To sum it up by PepeGSay · · Score: 5, Informative

    Quality assurance is a process that runs through the entire project, testing is a component of that process.

    When building software there is a tendency to lump quality assurance and testing together precipitously at the end of a project. The distinction that is made in this article is an important one, true quality and successful projects are obtained by having quality assurance as a project long process. Then you have quality assurance during requirements, design, development and yes even testing.

    1. Re:To sum it up by Tuffsnake · · Score: 0

      Go here:

      http://www.hyperthot.com/pm_sdm.htm

      and scroll down to the spiral development model for an idea of how testing/qa can be a part of every phase/round/version/whatever of an entire project

  6. Let's say what Linus says about QA by cerberusss · · Score: 5, Funny

    Let me be the first to quote Linus Torvalds: "Testing? What's that? If it compiles, it is good, if it boots up it is perfect."

    --
    8 of 13 people found this answer helpful. Did you?
    1. Re:Let's say what Linus says about QA by confused+one · · Score: 3, Funny

      Hell, from his perspective, if it boots, it's time to pass it off to the willing horde of beta testers...

    2. Re:Let's say what Linus says about QA by Anonymous Coward · · Score: 0

      Hell, from his perspective, if it boots, it's time to pass it off to the willing horde of beta testers...

      Funny, but also a damning indictment of OSS...

    3. Re:Let's say what Linus says about QA by aspx · · Score: 1

      I bet Linus leaves that out of the philosophical discussions about OSS.

    4. Re:Let's say what Linus says about QA by bigpat · · Score: 1

      "Funny, but also a damning indictment of OSS.."

      Except with closed source the testers have no way of knowing what is causing the problem. It is of great benefit that a knowledgeable person who encounters a problem while testing can look at the code and see exactly where in the code the problem is and even submit a change themselves. With a closed source tester you have to rely on your english skills, describing the problem with enough detail that it makes it clear to the person actually responsible for making the fix where the problem might be. Otherwise you have dozens of complaints about the same strange behavior collecting dust in some bug tracking system until someone actually describes the problem methodically with enough detail to recreate the problem in a consistent way.

    5. Re:Let's say what Linus says about QA by ClosedSource · · Score: 1

      "I bet Linus leaves that out of the philosophical discussions about OSS."

      I don't know, perhaps Linux code "wants to be free" to have bugs.

  7. "Buisness" as usual by Laurentiu · · Score: 1

    From TFA: "The quality assurance process is a process for providing adequate assurance that the software products and processes in the product life cycle conform to their specific requirements and adhere to their established plans."

    I think the QA process in the OSS community is more than adequatly covered by the numerous alpha, beta, PR, RC and all the other release mechanisms. The larger your user base, the more chances of a high quality final release (which in turn creates an even larger user base, which is a goldmine for the next release etc etc). That is, imho, one of the biggest advantages that OSS has over proprietary software. No QA department in the world would beat a large enough group of college IT students with too much time on their hands.

    --
    Just /. IT
    1. Re:"Buisness" as usual by rdc_uk · · Score: 3, Insightful

      No.

      What you have described is a large bug-hunting exercise.

      QA is a process by which errors are supposed to be PREVENTED, not FOUND OUT.

      That's why QA != Testing

      Better QA == fewer bugs to find (it assures you are building quality)

      Better Testing == more bugs found (it is, in fact, closer quality verification)

    2. Re:"Buisness" as usual by Anonymous Coward · · Score: 0

      What you are a talking about is ad-hoc testing, which is fine. But there are many times when it pays to have a formal test suite, and in general OSS is terrible any sort of formal methodology.

      The OSS world also seems to have significantly lower quality standards than the commercial software world. Stuff gets put on RedHat CDs that would embarass the average VB Shareware programmer.

      I guess the feeling is that "everyone should participate in QA" and "there will be another release next week" -- but the fact is eventually you have to freeze the stuff and make it as bug-free as possible for the non-apologist end user.

    3. Re:"Buisness" as usual by Anonymous Coward · · Score: 0

      -5 WRONG!

      QA is just what it says. Quality Assurance.

      It is a few basic things like, is the program usable, is the program riddled with bugs, does the program do what it is supposed to do. The biggest QU question though is.....

      Is this what our customer ordered and will they be happy with it?

      Bug hunting is a part of that as is error prevention but QA goes far beyond the coding aspect of any contract.

    4. Re:"Buisness" as usual by Smallpond · · Score: 1
      Imagine a complex program containing many code paths that deal with rare error conditions (a typical device driver). Now imagine you have two methods of verifying the code.

      • Release it to the field and let the users find the bugs.
      • QA spends a day to code a test suite which exercises every code path and checks for the correct response.

    5. Re:"Buisness" as usual by rdc_uk · · Score: 3, Insightful

      " Imagine a complex program containing many code paths"

      Mmmkay.

      "QA spends a day to code a test suite which exercises every code path"

      erm... "QA spends a day"

      Yeah, right.

      You do realise that a FULL code path test suite will, perforce, be LARGER than the source code it tests?

      When doing QA, I used to start writing the test cases for software when the REQUIREMENTS document arrived, so that they were ready for use during the tail end of coding and for the unit testing. Its a BIG job.

      And you design tests from the reqs, not from the code - how will you trap a completely missing boundary case, if you build tests from the source? Or the design?

      Requirements drive source and test design, separately so that the assumptions in the former cannot pollute the latter.

    6. Re:"Buisness" as usual by Anonymous Coward · · Score: 0
      What you have described is a large bug-hunting exercise.
      IT IS DARK. YOU ARE LIKELY TO BE EATEN BY A BUG.
    7. Re:"Buisness" as usual by Kjella · · Score: 1

      In order to create few bugs, you need to have high-quality design, high-quality practise and high-quality code. QA can help with design, but that's usually the least of your problems. The rest, both coding practise and typos, logic errors etc. are left in the hands of the programmer, and he will create bugs. Everybody does.

      From what I've seen of QA, it is testing, just not in the "Testing" phase. It is having well-defined objects, interfaces, input ranges, output ranges, unit tests and so on to make sure that when you assemble everything together, it has few bugs left. Basicly, weeding them out at an earlier point in the process.

      Kjella

      --
      Live today, because you never know what tomorrow brings
    8. Re:"Buisness" as usual by Smallpond · · Score: 1

      I didn't say the test suite was written from looking at the source code. I used to write exerciser/checker pairs for pretty complex functions. Once you've written a few, a day is pretty reasonable, unless you're one of the QA people "with no deadlines" described above. Exercisers are typically a few loops with a call in the middle. Checkers are usuaully a few dozen if-then-else statements. What's so hard?

    9. Re:"Buisness" as usual by rdc_uk · · Score: 4, Insightful

      "From what I've seen of QA, it is testing, just not in the "Testing" phase. It is having well-defined objects, interfaces, input ranges, output ranges, unit tests and so on to make sure that when you assemble everything together, it has few bugs left. Basicly, weeding them out at an earlier point in the process."

      No offense, but you missed out:

      Ensuring that the requirements the SW is built to match are complete / correct in the first place.

      Ensuring that the SW is built in a way that is suitably efficient for the project.

      Ensuring that the SW has at least been thought about in terms of being built for re-use.

      Ensuring that there was at least some thought about "is there something already here that we could re-use or modify?"

      Ensuring that the SW is built in a method that lends itself to maintenance and modification without tearing out of hair.

      Ensuring that some form of profiling or metrication has been performed, in case the project as a whole needs optimisation (being able to look at the metrics for each unit speeds that first "where to optimise" pass SOOOO much)

      Ensuring that throughout all those processes the correct feedback was fedback to the people who actually DID all those things you just ensured...

      ALL of that is part of the QA for software development, very little of it actually involves testing the software does its job right...

    10. Re:"Buisness" as usual by Anonymous Coward · · Score: 0

      Let me guess, you work at Micro$oft?

    11. Re:"Buisness" as usual by Anonymous Coward · · Score: 0

      A former coder I work with -- who now oversees software contracts -- related an incident about Quality Control at his old job. His boss asked him for a quick tutorial on using the debugger, and he replied that he didn't really know how to use it. His boss said "but you've been working here for three years!" and he replied, "but I don't ever use the debugger."

      "Well, then," asked his boss, "how do you get the bugs out of your code?"

      "Easy. I don't put any bugs in my code to begin with."

      Cocky? Yes. But he also had the lowest bugs-per-line of any coder in his division. His boss pulled him off the coding project and asked him to write a guide to reducing bugs-per-line. That's quality.

    12. Re:"Buisness" as usual by rdc_uk · · Score: 1

      I think you and I are working from different concepts of "pretty complex".

      You are thining of a few-dozen if-then-else statements.

      I am remembering trying to assure the corner and border cases for SDH Framer syncing. Its more like a few thousand cases to tie down.

      With cases like, "What if there is clock-wander on the remote end? What about at our end? What about Jitter? What about both Wander and Jitter?"

      Plus those test cases were to be fed to the logic probe and a Xylinx chip, not knocked up in C.

    13. Re:"Buisness" as usual by rdc_uk · · Score: 1

      Oh, it was your comment about "exercising every code path" that told me you were working from the design at best if not the source.

      If writing tests from REQUIREMENTS, how will you know what paths the CODE will have in it, let alone take for any test case?

    14. Re:"Buisness" as usual by Smallpond · · Score: 1

      straw man: a weak or sham argument set up to be easily refuted

      The checkers I wrote were for 64-bit graphics chips. There were millions of cases involving overlapping rectangles, regions with different strides and address boundaries. Thats why its easiest to use for loops that generate every possible case and just burn a lot of CPU cycles.

      We ran production code on the simulations before masking out so we didn't have to feed test cases to hardware. Waiting to test the logic until you've built the hardware sounds pretty inefficient to me.

      By the way, 7 chips, zero bugs.

    15. Re:"Buisness" as usual by Smallpond · · Score: 1

      Because functional design requirements have stated input and output. Applying every input exercises every accessible code path. Note that input includes parameters to a function and any external state which is used by the function. Output includes explicit return values and state changes.

    16. Re:"Buisness" as usual by Anonymous Coward · · Score: 0
      The larger your user base, the more chances of a high quality final release ...


      This is exactly where there is a difference. Quality assurance is about not taking chance with the quality of a product. In quality assurance you use processes which garantee you some MESURABLE quality aspects.

      I do think that testing is important, but if you want to minimise the number of bugs, you have to do quality assurance.

      Think about it this way. When you write in english, you could go about it in two ways.

      The "testing" way would be: I'm gonna write everything up, then I'm going to look for errors afterwards. You will never know how many errors you might have missed since you don't even know how well you write, and you don't know how much error you correction step is going to catch.

      The "assurance quality" way of doing things would have you know how good your english is, then you would know what your correction method can catch and what they don't. Knowing this, you could improve your correction strategies, accordingly. IF there is a need for better english, you could improve your processes, it depends on your needs.

      The problem with assurance quality is the overhead needed, and that the results are not necesarely visible. People are not going to notice that there is fewer bugs, it's too much suggestive. But on your side, it's going to be MUCH more maintenable. The other benifit is that because you mesure certain aspects, you could become accountable for the operation of your softwares and use the metrics and mesures used in the developpement as proof of your program meeting expectations, even in court.

      Anyway... keep testing scripts if you want, but please, don't think about having people accountable for unmesured software.

      Why the hell do you use certains materials when you build a bridge? Because you expect it to have some properties. The same should be tought of software.

    17. Re:"Buisness" as usual by Anonymous Coward · · Score: 0

      Unfortunately, this is the equivalent of waiting for monkeys with typewriters to compose Shakespeare.

      Alpha, Beta, and other sites tend to use only certain functionality of any product, and tend to avoid areas they find problematic. This means your product has not even been examined, let alone tested. And NO QA at all has been done.

      In the best situation the QA engineers are qualified programmers themselves. They participate in design reviews, and the design process. They write extensive suites of white box code to exercise the various modules as they come down the slot. They have input in the design phase, and designs can and should be modified to provide adequate hooks for metrics.

      In reality, in most companies QA is really test. In some cases managers believe that the QA people shouldn't even have an idea of the *boundary* conditions because they should "use it like an end user." Unfortunately, their end users will devote millions of hours to using a product; their supposed "QA Department" will provide only a few thousand hours at most.

      I once worked for a firm where I was ordered to discontinue white box QA projects. The "engineers" were unhappy and believed that the "testers" were "cheating". After all, the manager who bore the news commented "it isn't like real users would know the boundary conditions, the algorithms and so on. How likely is it that a real user would find these problems.?" He didn't accept my statement that it was a certainty that "real users" would find the problems. He wanted "testers" to go in and see if they could "find these problems" with essentially random key strokes.

      Well, the real users did manage to find quite a few of those "hard to find" problems. The product no longer exists; the company has been bought and absorbed by another corporation.

      And I left the field entirely in 2000. Having a BSCS and being told that instead of telling people that their code had a problem - instead one is to ask them "what am I doing wrong?" - did it to me. If White and Asian men insist on confusing their code with their genitalia, this is one woman who hasn't the slightest interest in pandering to their ego problems anymore.

  8. Good QA by rdc_uk · · Score: 2, Informative

    Good QA begins when the Business Case proposing a new project gets reviewed.

    It continues constantly until the Project Post Mortem gets reviewed.

    QA should be involved in every activity regarding the projet in between. (including reviewing the requirements ellicitation process)

    Happily, when I worked in QA (for a telecoms test equipment manufacturer) that was how we did things. We, in QA, were responsible to the QA Director, and the Managing Director, and nobody else - that gets engineering in touch with you early and ofen...

    1. Re:Good QA by Anonymous Coward · · Score: 1, Interesting

      Sadly, most QA people I have known are not capable of being involved in every phase of the project.

      Generally, they are only able to come on to a project after the design is 50% complete and the initial coding may have started. Bringing them earlier than that into a project (as we did) causes them to spin their wheels (usually preparing grandiose QA plans) and lose interest.

      QA may not be "just" testing, but for most QA people, it seems to be _mostly_ testing.

      Worse than that, the sad reality is that most people who call themselves QA are actually closer to black box testers. Many have no coding or scripting skills and couldn't program a testing tool or create a test tool (or even specify the requirements for one). Many know very little about the tools available to their own trade.

      It seems to me that to be a good QA, one should know enough about development to recognize good quality, and to prescribe a treatment for bad quality. Since most (not all) QA are sourced from either non-coders or inexperienced developers, their skills are lacking in the very medium they are supposed to be able to measure and affect.

      I believe this explains why QA has been so ineffective, and why management tends to discount the effects of QA, and equate it to only testing.

      Also unfortunate is the fairly common effect of QA when allowed to roam beyond just testing (usually after being over hyped by a QA evangelist). From a development manager's point of view, it consumes a lot of resources and produces very little measurable effect. To a manager who has gone through that experience, adding more developers is preferable, and more cost effective than involving QA people.

      Unless QA people step up to the plate and learn more about coding and development, (and weed out those who won't) the way forward is rather murky. Unfortunately, it is difficult to get good developers to switch to QA, to fill in the coding skills gap. Most hard core developers view QA as something to be avoided, and many refuse to do QA (one I recall, even quit).

      The need for good QA is huge, which is why we have QA people at all, even though they are generally considered ineffective. I would presume that the thinking is "something is better than nothing", or perhaps "at least they do testing".

      To get beyond that, and improve the QA "experience", I believe QA as a profession still has a long way to go. To paraphrase (from medicine), "QA Practicioner, QA thyself".

  9. Quality by Alvandaar · · Score: 1

    I assure you that quality is the thing we lost,
    while chasing after the deadline and trying to
    meet our budget!

    Hmm wait a sec. - I assured something, I
    mentioned quality, I own a red(5%)-yellow(80%)-
    green(15%) tie - I qualify for CQM
    (Corp. Quality Management).

    JK

  10. Any chance.. by opusman · · Score: 5, Funny

    ..Slashdot editors could apply QA to the spelling in posted stories?

    It's "business", not "buisiness".

    1. Re:Any chance.. by witte · · Score: 0

      You say "tomato", I say "bweezyness".

    2. Re:Any chance.. by dema · · Score: 1

      But if you want to make some serious money, you better spell it buisiness (:

    3. Re:Any chance.. by elronxenu · · Score: 1

      My eyes are still bleeding from the atrocious spelling in the "Dual Core" story.

    4. Re:Any chance.. by aspx · · Score: 1

      I prefer "busyness"

    5. Re:Any chance.. by PsiPsiStar · · Score: 1

      And once they get the spelling correct, they'll be able to produce innumerable perfect dupes, and hardly even have to spellcheck each one.

      Imagine how much time that would save!

      --

      ___
      It's the end of my comment as I know it and I feel fine.
  11. QA != Testing by coolcold · · Score: 5, Insightful

    and clever != good marks in exams
    testing doesn't make the software any better but testing do find bugs which developers missed. Quality assurance is to make sure that the software is of good enough quality before release and testing does confirm the case.

    --
    I am harvesting funny/good quotes. Please help by putting them in your sigs :)
  12. testing? by fizze · · Score: 4, Informative

    testing can only prove the presence of an error, not its absence.

    On another note, QA and QM methodes may sound incredibly dull and based upon "duh - how else should I do this, dumbass?", but are in fact highly sophisticated.
    Not because they are not readical new, but because they are radically in their consistency. Think of something, and its error and faults, then of their causes, and their effects and impacts. Prefferably add fault probabilities, too. Then start over again.

    It is constant feedback throughout the whole design process that is most important.

    --
    Powerful is he who overpowers his temptations.
    1. Re:testing? by johannesg · · Score: 1
      because they are radically in their consistency.

      Last year we had a quality bozo over from HQ. He explained all the new quality processes to us, and then presented us with an explanatory document that we could keep for reference.

      One of his main points had been that all documents must have tracking numbers.

      The reference document did not have a tracking number.

      I do not think this is very consistent. Evidentally quality is something they bestow upon others, without actually taking part in its processes by themselves... Why is that, one wonders?

      On another note, QA and QM methodes may sound incredibly dull and based upon "duh - how else should I do this, dumbass?", but are in fact highly sophisticated.

      Ha, in your dreams! I don't mean to belittle those who have made a carreer of QA, but in the end it comes down to checking that procedures are being followed and nothing more. That's not highly sophisticated or even clever, it is just a constant grind. It is more about persistence than about consistency.

    2. Re:testing? by fizze · · Score: 1

      I don't mean to belittle those who have made a carreer of QA

      It is not my intention to do so, either.
      Maybe consistency was indeed the wrong expression, of course persistency is important too.

      Evidentally quality is something they bestow upon others, without actually taking part in its processes by themselves... Why is that, one wonders?

      Well, if you are reffering to one of them "quality bozos" then, well.... this word speaks for itself, dont you think ?

      Documentation and tracking numbers is a key part in ISO9000:2000, eg (wow how I hate the name), so I dont think you got the whole idea right. Maybe he didnt explain it thoroughly, who knows.

      The point I am trying to make is that, in the end, it does not just come down to check wether procedures are being followed. This is known as Taylorism http://en.wikipedia.org/wiki/Taylorism and was abandoned long ago.
      Get real.

      --
      Powerful is he who overpowers his temptations.
  13. Re:Riiiiiigggghhhhhhttttt by Anonymous Coward · · Score: 1, Insightful

    No, I'm saying that if Linux were to have a QA strategy before the next great project begins, then the product has the potential to be even better.

    Why on this damn website will any criticism, no matter how true/justified be taken as the most vile bile ever spewed?

    And why is any response to criticism met by words to the effect of "And, of course, YOU think that WINBLOW$ is better? Well let me tell you something, you . . . "?

  14. Six Sigma by millahtime · · Score: 3, Interesting

    Six Sigma is one of the many quality processes out there that can apply to everything from design to manufacturing. The idea is to remove variation so that everything you do is always the same. Quite boring but effective.

    This can apply to the way code is written and does in some companies.

    1. Re:Six Sigma by AchilleTalon · · Score: 1
      Hey! That remembers me when IBM tried to implement six sigma standards in marketing. They end up laying-off many workers and continue business as usual. I always wonders if this six sigma was not nothing else then the name of the team responsible to lay-off people.

      --
      Achille Talon
      Hop!
    2. Re:Six Sigma by 6Yankee · · Score: 2, Funny

      The idea is to remove variation so that everything you do is always the same.


      They introduced that in a company I once worked for. (Thankfully I'm out.) They did a big presentation to the whole company, telling us how wonderful it was going to be, and explaining that it wasn't about quality but consistency. A voice piped up from the back... "So if every bill goes out 18 months late, we win!"

    3. Re:Six Sigma by gosand · · Score: 1
      Hey! That remembers me when IBM tried to implement six sigma standards in marketing. They end up laying-off many workers and continue business as usual. I always wonders if this six sigma was not nothing else then the name of the team responsible to lay-off people.


      Six Sigma is about reducing the number of defects. Maybe that is what these people were.

      --

      My beliefs do not require that you agree with them.

    4. Re:Six Sigma by dangermouse · · Score: 1
      A voice piped up from the back... "So if every bill goes out 18 months late, we win!"

      That's funny, but it's true. If you have every bill going out close to 18 months late, you must have well-defined processes that are actually being followed. If you have well-defined processes that are being followed, you can look for and make meaningful improvements.

      Six Sigma isn't directly about quality, it's about process improvement. The first step is to get all your ducks in a row.

    5. Re:Six Sigma by AchilleTalon · · Score: 1
      Well, I guess. But how would you define a defect in marketing? And then, reduce them to this thin number that six sigma represent?

      For example, a bad answer to a customer call or a mispell in document maybe a defect. In a team of about 1000 maketing peoples, how many bad answers or mispells in e-mails can you tolerate? Is marketing ever possible under such considerations?

      In anyway, if you are right, I am pretty sure they haven't hit the six sigma target or even been close to it.

      --
      Achille Talon
      Hop!
    6. Re:Six Sigma by ClosedSource · · Score: 1

      "The idea is to remove variation so that everything you do is always the same."

      If you want to write the same exact lines of code over and over again, this should work great. Obviously writing any new code would add a variation and violate the process.

  15. What is QA Always a Separate Organization? by Black-Man · · Score: 3, Insightful

    Every software company I've worked for, the QA department was always separate from Development. Then the classic mistake was always repeated... bring in QA at the tail end of a project and expect them to certify it and find all the bugs.

    Madness!!

    1. Re:What is QA Always a Separate Organization? by Anonymous Coward · · Score: 0

      Counterpoint:

      I worked in Software Quality Assurance, mandated by Capability Maturity Model, and I was a developer.

      In fact this combination of positions meant I was able to hunt down a lot more issues in the organisation (not just the technology or the people) than anyone had expected. Including me.

      Oh yes, and my SQA-activities ran continuously throughout projects from the very start to the very end. So yes, it does happen in places. And it does work.

      Wikipedia writes a bit about CMM but the SQA part is less focussed. My experience is that proper SQA-work requiers more than tech, also human touch (you have to tell people they are doing something wrong without creating tension) and you have to understad organisational theory (after all much of the issues relate to dysfunctional structures than lazy programmers).

    2. Re:What is QA Always a Separate Organization? by rdc_uk · · Score: 5, Insightful

      I used to work as a QA person.

      In our company QA was a separate organisation, for 3 simple reasons;

      1 - you are auditing and commenting on other people's work, not in a peer review "did you think about doing it like this" way, but in a "That is not acceptable; redo" way. Close colleagues in a department are NOT suitable for that role; you cannot be expected to say that about the person in the next cubicle's work, whereas a department with that as their job will be accepted when they do it.

      2 - Keeping up to date on the quality requirements, combined with performing your live QA duties for the engineering department was a full time job. Or at least, it certainly was if the company wanted to keep its ISO9001 certification.

      3 - Its a case of the buck stopping here. In our company project proposals, requirements and plans HAD to be signed off by QA before the funding got released for the project. At the same time, due to our doing telecoms stuff, we had a legal responsibility to sign off that the EMC conformity, physical safety and electrical safety tests had been conducted properly and passed. (and that meant constantly checking updates of the various national standards to ensure the company standards used the strictest requirements in each case). Random engineer is not good enough. (you have to have passed the right courses to audit each various section, need to be a qualified ISO9001 auditor to do the internal audits for that etc)

      Professional QA is a full and seperate job. (but I did get to play with the 20KV discharge equipment!)

    3. Re:What is QA Always a Separate Organization? by turbosk · · Score: 1

      "Quality" comes from an old word for "virtue", which connotes the highest ideals and aspirations we as humans can strive to attain. When you really believe in "Quality" and provide the resources to achieve it, your company will have a hard time failing.

      The QA/QC folks should be integrated into the process so the left hand knows what the right hand is doing. At the same time, the managers responsible for production should NOT be the same managers responsible for QC/QA. There is a tremendous potential for abuse when the fox is guarding the henhouse.

      I've been in both situations, labs where QC/QA was accountable only to the highest industry standards and best practices. And one where QC/QA was just eyewash headed by the production department. The independent, autonomous QA/QC shop was orders of magnitude better to work in for so many reasons . The "slap-a-QC-approval-tag-on-it-and-ship-it" shop was a hellhole. Hell Hole.

      pax,
      fred

    4. Re:What is QA Always a Separate Organization? by hackstraw · · Score: 1

      Every software company I've worked for, the QA department was always separate from Development. Then the classic mistake was always repeated... bring in QA at the tail end of a project and expect them to certify it and find all the bugs.

      Madness!!


      In my experience, its easier to lay those people off in slow times if they are a separate dept.

      Also, QA people are a different breed, and their gene pool should be kept separate from others.

    5. Re:What is QA Always a Separate Organization? by Anonymous Coward · · Score: 0

      Here's my experience.

      Our software validation team, release engineers, software developers, hardware validation team, other engineers work very close together in a series of labs on the same floor in the same part of the building. We know each other very well, and are many times on different teams on different projects. One project, I may be a programmer, whereas in another I may be a validation engineer.

      The idea is that during validation, you are checking for product conformance to a set of given requirements. You should not look at the code or even be guessing how it is working. This may interefere with judgement when testing for comformance to the requirements. It is a sort of black box testing.

      Unit testing and code review is done by the original programmers and by peer review from those who are not currently doing validation on the project.

      In my industry, as a validation engineer, I have crashed cars, made SUVs lock up, and blown out tires to make sure code functions as is specified.

      Part of this is knowing the requirements for the given hardware/software combination cold. If we spot gaps or problems, we notify the buyer and work with them to resolve the issue, because people will die if we don't.

    6. Re:What is QA Always a Separate Organization? by eric_brissette · · Score: 1

      Yes, Professional QA is a full time separate job, but in my past experience as a QA engineer, we worked right along side with the developers. Attended the same meetings, and for a while even reported to the same person. Having a good relationship with the devs made it easy to discuss things that needed improvement.

      It made the job more enjoyable too. In the job before that one, it always felt like it was Dev vs QA, and it was more of a game of "pass the buck to cover your ass".

      I believe that Black-Man is saying that QA was so far separated, they were somewhat out of the loop, and were expected to sift though unfamiliar changes/fixes/enhancements at the end of the development cycle and find everything that was wrong.

    7. Re:What is QA Always a Separate Organization? by eric_brissette · · Score: 1

      I have worked as a QA guy and reported to the Dev manager..

      I agree that this could be a problem in some companies.. but in our case, we had worked on a single product. Everyone responsible for this product was in a small satellite office of 15 people, who all took pride in knowing we released good software. This was especially true for the development manager.

      In a more sterile corporate environment, I can see how pressure to release on time would compromise the workability of such a situation.

    8. Re:What is QA Always a Separate Organization? by Anonymous Coward · · Score: 0

      QA should be seperate so it doesn't act 'for the team' and skew results. This doesn't mean that the QA folks shouldn't speak to the development team...they should and talk to them often. Bringing in QA at the last moment is a manager's reaction to cost cutting or a mistaken sense of what keeps a project on schedule.

    9. Re:What is QA Always a Separate Organization? by Anonymous Coward · · Score: 0

      "How long will it take you to find all the bugs?" - Development Manager

      "How many bugs did you put in? - QA

  16. If it works it still may not by bblazer · · Score: 3, Insightful

    I think that the real issue here is the difference between code that works, and code that meets the business rules and need. Anyone can make good code, and have it compile and execute. The problem comes when that great code still doesn't fit the need that it was supposed to fill in the first place. This issue has two hurdles if it is to be overcome. First, are coders that have no business knowledge. Second, business pros that have no software development experience. The coders complain that they weren't given the proper details of the project, and the business guys complain that the coders know nothing about business. I think that all biz people need to take a basic programming course, and all coders need to take a business class. The gulf of poor communication between the two camps is quite large without it.

    --
    My .bashrc can beat up your .bashrc!
    1. Re:If it works it still may not by Kjella · · Score: 1

      Anyone can make good code, and have it compile and execute. (...) Second, business pros that have no software development experience.

      Ah, but since making good code is so easy anyone can do it, experience doesn't matter. Just have your business pros write the software. Oh and tell me your company's name, so that I might invest in stock *cough*shorts*cough* and *cough*sell*cough* options.

      Kjella

      --
      Live today, because you never know what tomorrow brings
    2. Re:If it works it still may not by rdc_uk · · Score: 1

      There is a job in the process of turning business rules into software systems.

      It is called "Requirements Ellicitation".

      Someone who is a professional at that bridges the gap, if you can't be bothered to bridge the gap, be prepared to fall into it.

      What you propose would simply result in PHBs telling SW Devs how to code, and SW Devs telling PHBs their business rules are wrong.

      Been there, done that;

      PHB handing looking at his flow chart he had produced as requirements for a stored procedure, asking me "Why have you used so many variables; there aren't any variables on my chart..."

      Seriously.

      He did eat humble pie when I recoded the procedure without caching ANY select results... "why is it so slow now?"

    3. Re:If it works it still may not by marcosdumay · · Score: 1

      A software company businessman who know nothing about programming knows nothing about business also. Generaly, those companyes fail with all requirements (and generaly, bankrupt).

    4. Re:If it works it still may not by StormReaver · · Score: 3, Interesting

      "I think that all biz people need to take a basic programming course, and all coders need to take a business class."

      That's simple, logical, and of no practical use. As part of my CIS degree, I was well over half way (close to three quarters) to a Business Management degree. It is absolutely useless for all of the business software I have to write.

      My current project is to rewrite the entire county tax collection system. There is no business class that would have prepared me for that because each county collector does things differently.

      I knew nothing about tax collection when I started this project, and the county collector knows nothing about software design (his belief that Fox Pro has exposed him to software development, and his need to micromanage notwithstanding).

      He and I frequently meet to discuss the business rules his office currently uses, and the business rules he would like to be able to use. He tells me each feature he wants, and I create all the ends (front, middle, and back) to do it. Then we review the front ends and results from the backend.

      This iterative process continues, on a feature by feature basis, until we are both satisfied that each feature works as it should and the user interface is streamlined for efficiency.

      The bottom line is that detailed business understanding by the developers is both unnecessary and mostly useless. Software design knowledge by business people is also mostly useless (and in fact will likely be very detrimental) and unnecessary.

      The common threads between business people and software developers to ensure success are good communication skill and patience. Without both of those, you may as well not even try.

    5. Re:If it works it still may not by bblazer · · Score: 1

      Communication is absolutely key. However, if one person speaks French and the other Russian, there is no communication. The never ending gripe I hear from coders is "Why do they want that, that's stupid!" and from the biz pros its "Those computer geeks know nothing about business." While introductory courses to business and IT may not prepare them for the intricacies of each other's environment, it at least goes partly to reducing the communication problems. Another solution may be for the business guys to learn how to write cursory use cases. While the coders may be able to build in the functionality outlined in the requirements docs, it is often the implementation that sets off the guys on the other side of the aisle.

      --
      My .bashrc can beat up your .bashrc!
    6. Re:If it works it still may not by russellh · · Score: 1

      The problem comes when that great code still doesn't fit the need that it was supposed to fill in the first place.

      I agree absolutely

      This issue has two hurdles if it is to be overcome. First, are coders that have no business knowledge. Second, business pros that have no software development experience. The coders complain that they weren't given the proper details of the project, and the business guys complain that the coders know nothing about business.

      I think the problem is due to a lack of a true team environment, compounded by a lack of leadership. I wouldn't lay the need to understand business on the coders as much as I'd need the leader to understand the coders themselves. A good leader would know where they really need to go, and make sure the team knows why and how, what the problems will be, what the unknowns are, and how to order the tasks so requirements can be understood at the proper time to minimize course correction.

      It comes down to hiring the right people, I think. No QA process can fix bad hires.

      --
      must... stay... awake...
    7. Re:If it works it still may not by Politburo · · Score: 1

      As part of my CIS degree, I was well over half way (close to three quarters) to a Business Management degree. It is absolutely useless for all of the business software I have to write.

      Umm.. the point wasn't to take a business class so that you can write business software. The point is to take a business class to get an intro to business concepts, so that you might better understand where a manager is coming from. The inverse is the same argument.. management might take an intro to programming class to better understand the nuances of developing software.

      The point here is not to turn the dev into a CEO and vice-versa. The goal is to help foster communication and understanding of the various issues, both business and technical, that are involved with commercial software development.

      Granted, in practice this would probably not occur.. and as you state it may even be detrimental, but I think that the GP's idea has some merit.

    8. Re:If it works it still may not by v01d · · Score: 1

      The point is to take a business class to get an intro to business concepts, so that you might better understand where a manager is coming from.

      I'm rather skeptical. From my experience even pure business types can't communicate across industry lines. Retail-Banking-Manufacturing, the commonalities are so simple as to not require a class.

  17. Revolutionary notion! by BenTels0 · · Score: 3, Interesting

    What a revolutionary point of view/complaint this article gives! In the sense that "revolutionary" means that history goes through a loop and comes back to where it was before...

    It is interesting to see though, how every so many years the same ideas pop up in new guises. Edger Dijkstra for instance said more or less the same thing about Software Engineering and its mantra of process phases and planned testing. And the same argument can (and has) been brought against Kent Beck's Extreme Programming methodology.

    Oh well, just goes to show you: the only lesson ever learned from history is that nobody ever learns from history.

  18. Good Quality Cuts down or out Testing by millahtime · · Score: 3, Insightful

    If you have good quality you can cut down or completely out testing. Think of it like a math equation. Y = f(x). Y is the output and f(x) is the input. If you control the inputs with no variation then the output will always be the same so no need to test it. Honda has done this with engines. They save money because they don't test every engine. Yet, all their engines always work.

    1. Re:Good Quality Cuts down or out Testing by dunerunner · · Score: 1

      You're comparing apples to oranges (or engines to software). With an engine there is eventually an assembly-line that repeats the process of building an engine...a static item. I'm sure that all the bugs have been worked out before flipping the final assembly switch. So, there's little need to really test.

      Software is a continually changing product. Sure, if we were all perfect, we wouldn't need to re-run all of the tests to verify the change that was made down in one of the 1000+ files, in a class that is inherited by hundreds of other classes. But in reality, we're human, we make occasional mistakes that may never be detected unless there are unit tests (among others) designed to catch those low-level problems.

      You can never replace testing by just good quality, because you need 'perfect' quality to be sure.

    2. Re:Good Quality Cuts down or out Testing by Coryoth · · Score: 1

      Think of it like a math equation. Y = f(x). Y is the output and f(x) is the input. If you control the inputs with no variation then the output will always be the same so no need to test it.

      Welcome to Design by Contract. Each function or method has a set a preconditions on inputs, and a set of postconditions guaranteeing peoperties of the output. Each object has a set of invariant conditions that are checked each time a method is run, guaranteeing and object will always conform to certain conditions. Chain all of that together and you have a set of contracts ("I'll provide you with this and this, which I can guarantee will meet your preconditions because of ..., and you give me somethign which can do ... so I can pass this object to the next method." kind of thing) that allow you to prove the possible states your code can take providing you get the right inputs. Better yet, if you've got a bug that causes it not to follow that flow, it's easy to find and correct because it'll through a contract exception when you run the code in testing.

      When people say "Assurance" they really ought to mean assurance, like "I've sat down and done a full proof of this code, and explored all possible states". We ought to be building tools to help us do that, rather than just doing a couple extra days testing on each project.

      Jedidiah.

      Jedidiah.

    3. Re:Good Quality Cuts down or out Testing by vinn01 · · Score: 1

      I disagree.

      Good software requires less testing. The parent comment is correct.

      The only reason that you require complete regression for 1000+ files after one small change is that the software quality indicates that one small change could likely effect 1000+ files.

      High quility software would need a change in a class that is inherited by hundreds of other classes. That would indicate a profound functional change late in development.

    4. Re:Good Quality Cuts down or out Testing by Anonymous Coward · · Score: 0

      Of course you also have processors, one or more caches, compilers, an OS etc. The state of these objects are probably outside your analysis and yet can still effect the outcome.

    5. Re:Good Quality Cuts down or out Testing by Coryoth · · Score: 1

      You assume compiler correctness or else the whole process is pointless. The rest is either the event of hardware failure (processors or caches doing anything other than what you would expect), or a flaw at such a fundamental level (the OS kernel) that again, the whole exercise is pointless. If you OS kernel doesn't do what it should you are going to be having more problems than just this particular program going wrong.

      Jedidiah.

    6. Re:Good Quality Cuts down or out Testing by Anonymous Coward · · Score: 0

      Ummmm.... Honda has a good QA department; all the QA starts at the proposal and design phases. All the "testing" starts before the product is even designed. All along the line sample parts are taken and tested for being in specification.

      Obviously, Honda has an enormous QA Department, employing many graduate engineers, and also does serious "testing" as well - all through the product development and manufacturing cycles.

      Honda, like many other Japanese firms, uses Deming methods.

  19. Timing by ein2many · · Score: 0

    If you take the time to do a good QA, you get complaints that it's taking too long to release the product. If you don't QA the product, you get complaints about problems in your product. It's a no win scenario. You just have to balance both.

  20. Money Rules it All by millahtime · · Score: 2, Insightful

    A way to look at it is, there is a lump sum for a project. The amount of money (time is money) to produce a product. This amount is made up of base price for product plus rework (which is cost of poor quality). If you can minimize the cost of the rework you can either/or increase profits, cut costs (including time to get product out), improve the design as it is higher quality.

  21. Capability Maturity Model by Digital_Quartz · · Score: 3, Interesting

    An excellent example of how anecdotal evidence can lead you to incorrect conclusions.

    The SEI was approached by the military a couple decades ago. The military had a problem; when it contracted out software development work, it would sometimes get back what it was looking for, it would sometimes get it on time. Sometimes it was late, sometimes it didn't work, sometimes it did the wrong thing, and sometimes they got nothing at all.

    The SEI went about polling a large number of contractors, trying to see what was common amongst the ones who delivered. They found there was actually a very strong correllation between a number of processes and practices and high-quality under-budget software. The result is the Capability Maturity Model or CMM for short, which divides companies up into 5 "levels".

    The kind of organization you describe is quite definately a "level 1" company, the kind with the highest risk, and the lowest quality. Most companies, even small ones, should strive to follow the practices of at least level 3, as the benefits are quite tangible; no more late projects, and vastly fewer defects.

    I mentioned it in another post, but my dad has a good web site that deals with quality issues (IE only, unfortunately). And, if you're looking to improve the quality of your software, his current contract is going to expire soon.

    1. Re:Capability Maturity Model by mccalli · · Score: 5, Interesting
      the SEI was approached by the military a couple decades ago. The military had a problem; when it contracted out software development work, it would sometimes get back what it was looking for, it would sometimes get it on time...The SEI went about polling a large number of contractors, trying to see what was common amongst the ones who delivered. They found there was actually a very strong correllation between a number of processes and practices and high-quality under-budget software. The result is the Capability Maturity Model or CMM for short, which divides companies up into 5 "levels".

      Yeah, I use it and am in a certified team. It's vastly overrated, and no substitue at all for people who know what they're doing. It might complement people who know what they're doing, but then such people would have come up with their own valid processes anyway, hence your initial correlation.

      And it's hardly helped the US military come in on time and under-budget, now has it?

      ...but my dad has a good web site that deals with quality issues (IE only, unfortunately).

      !

      Cheers,
      Ian

    2. Re:Capability Maturity Model by StormReaver · · Score: 2, Insightful

      "I mentioned it in another post, but my dad has a good web site that deals with quality issues (IE only, unfortunately)."

      I'm sure the irony of that statement is not lost on anyone. A site, giving advice on good quality, is itself a quality disaster. You'll understand if I don't take his credentials to heart.

    3. Re:Capability Maturity Model by glew · · Score: 5, Insightful

      That sounds very good. In theory.

      Having worked in a CMM 3 company for a couple years, my opinions of the thing are quite different: CMM, and processes in general, are a tool that managers use to offload their work on the engineers.

      We used to spend vast amounts of time peer reviewing all sorts of useless documents, making estimates for project planning, and so on, additionally to the architecture and coding work.

      This didn't do anything at all for quality. Deadlines slipped like always (often more, because of the time lost to irrelevant stuff). Spec documents were just as Ground-Control-To-Major-Tom-like as usual.

      It did, however, give the managers the warm fuzzy feeling that overcomes control freaks everywhere when they're sure they can track, number, file and index everything that goes on around them. Without having to do any actual work. Without even knowing the first thing about the product we were making (without CMM, a prerequisite for anyone attempting to write any sort of project plan).

      One of our line managers admitted all of this quite openly, one of his favourite sayings was "Since we have processes, I can go home at four every day". We didn't. We got to stay till 8.

      In my experience, CMM should be avoided like the plague. It's complete and utter waste of time, and encourages empty hierarchies.

    4. Re:Capability Maturity Model by slashdork.org · · Score: 1

      First, for those that like small tidbits of info, useless for anything but Jeopardy, CMM is old and has been replaced with CMMI [Capability Maturity Model Integration]. This was done mostly to incorporate projects involving things other than systems and their hardware, things like software. CMMI also addressed "legacy" systems, old systems that the old people were used to. CMM didn't account for legacy systems.
      Second, for those who care for my opinion, though I've only worked shortly with CMMI, much of the processes seem inhibitive. This is just an opinion of course. However, to me it seems that this just slaps on another layer of bureaucracy to certain government companies. Sure, this model ensures shit companies do their job, but to a solid company, enforcing this standard only slows things down. Oh yeah, and it's boring as hell to learn all about it.
      So if you're bored and you want to sleep, here ya go. CMMI Intro

      --
      :wq
    5. Re:Capability Maturity Model by Bozdune · · Score: 4, Insightful

      Let's also not forget that the DoD has had a number of programs over the years that attempt to determine whether such methodologies work, and/or attempt to determine what the best methodology might be. Of course, everyone using such a methodology invariably reports that it works fantastically, either because they want the next deal, or because they want their particular methodology to be King of the Hill.

      I worked for a DoD contractor for a while, so I've seen it from the inside -- and, I'd say that using DoD-funded development projects as a measure of anything is ludicrous. Years after my DoD experience, I remember interviewing for a lead hardware engineer. I needed a guy who could build a Z80-based microcontroller board. I had one tech to give him, that's it. And, I needed the board laid out and working in 4 months. I knew this was possible, because I had worked with plenty of hardware engineers who could do this in their sleep, with one layout and no rework. Remember, this is 4mhz, folks. Crosstalk? What crosstalk? Hell, armed with a book and help from the vendor in the form of boilerplate designs, even I could have taken a stab at it, and the last time I hacked hardware was years ago in a college course.

      Anyway, this guy was from a large defense contractor, R******n. Turns out he was PART OF A TEAM that had built a Z80 CPU board over the last 18 months. His particular responsibility had been the DRAM circuit. According to him there were 20 other hardware engineers on the project. Yup, he said TWENTY. That's right. T-W-E-N-T-Y.

      The $64,000 question is, what the heck was this guy doing for those 18 months? I was stunned. So was he, when he realized what was expected of him in the "real" world. I don't care how MIL-spec'd his board had to be, or how much vibration and radiation testing they had to do, or how many $22,000 toilets they had to flush it down to test it, 18 months and 20 people is ridiculous. Period.

      I found someone else for the position. He built the board, delivered it ahead of schedule, and it worked fine. And while he was doing that, in parallel he designed and built another board for an RF hand-held. I guess he wouldn't have fit in at R******n. Nothing against R******n, though. Largest employer in the state. Love you guys. Keep everyone working.

    6. Re:Capability Maturity Model by Digital_Quartz · · Score: 4, Insightful

      The problem is, there are two motives to reach CMM 3;

      a) It looks good to our customers.
      b) It reduces our cost.

      Companies that strive for motive A often will do their best to meet the requirements of CMM to the letter, without actually changing what they do on a day to day basis. "CMM says we need to have a baseline and configuration management for our code, so I want everyone to check their work into this new CVS thing, at least once a month", for example.

      It's easy to "meet the letter" of CMM without at all meeting the intent. At my company, for example, there's a core group who is trying to push "scrum" as a software development methodology, and they make all kinds of bizzare claims that this is somehow consistent with CMM 3, pointing to specific wording within CMM, and making claims that such and such is equivalent to CMM, even if it doesn't quite meet it. Meanwhile, I try to envision a mission critical system like a 767, or a space shuttle, or an ambulance dispatch service produced with scrum, and it makes me afraid to go outdoors.

      Some people are afraid of change.

    7. Re:Capability Maturity Model by John_Sauter · · Score: 0, Offtopic
      I mentioned it in another post, but my dad has a good web site that deals with quality issues (IE only, unfortunately). And, if you're looking to improve the quality of your software, his current contract is going to expire soon.
      With all due respect to your father (my son is also in the computer field), it is hard to take someone's claim to be a product quality expert seriously when his resume is posted to the Web in Microsoft Word format, and his web site only works with Microsoft Internet Explorer.
      John Sauter (J_Sauter@Empire.Net)
    8. Re:Capability Maturity Model by Anonymous Coward · · Score: 0

      I have been subject to the CMMI standards imposed upon my team. While some bits are good (e.g. peer reviews), most of it simply stifles creativity. CMMI is great for generating billable hours and extracting some level of productivity from the medicrity that comprises many huge corporations.

      Small, skilled, motivated, non-overworkd (but will peak for short periods) teams are the ones that create great things.

    9. Re:Capability Maturity Model by Anonymous Coward · · Score: 1, Interesting

      Another point of data from "They Write the Right Stuff", about the group that writes software for NASA - real deadlines that don't move in unless functionality is removed. It's incredibly easy to write code on time and under budget when *ANY* changes to the spec require review, buyoff on all sides, and an adjustment to the schedule based on the impact of the change.

      Commercial software development rarely has the last - schedules never move out, and if you're unluck, move in, while required features always increase.

    10. Re:Capability Maturity Model by QA+Heretic · · Score: 1

      It sounds like the person who's afraid of change here is you. There's nothing inherent in any agile methodology that precludes CMMI compliance. You're just calling Scrum bizarre because you haven't taken the time to understand this new process.

    11. Re:Capability Maturity Model by budgenator · · Score: 1

      I've always been extremely suspious of the statisticaly based studies, primarily because they tend to ignore causality; it one thing to say that good engineers, with a proven track record of outputing quality, on-time, under-budget products use method A, B, and C; it's something else to say that using method A,B, and C will product Quality, on-time under-budget projects, even with good engineers in a different environment.

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
    12. Re:Capability Maturity Model by KontinMonet · · Score: 1

      Where I have implemented Scrum, I have found quite remarkable improvements in overall productivity. It must be done properly, you need to get buy-in from developers. As always, there are always developers who think that their (tried and trusted [and trusted always to be wrong] finger in the air estimates) methods are best.

      And those companies who claim CMM Level 3+ with whom I have worked, have invariably proved to be the worst at delivery. Same for those who claim ISO9002 or whatever, it's usually a joke process.

      --
      Did he inhale?
    13. Re:Capability Maturity Model by Anonymous Coward · · Score: 0

      It is evident your Software Quality Assurance (SQA) resources are clearly not doing their job. At all. I have done SQA-work for some time and much of my efforts are directed at management and their empty non-working hierarchies, useless documents and more.

      In fact all the ills you describe are things your SQA SHOULD deal with, IMMEDIATELY. Otherwise they are not doing it right.

      I used my SQA authority to fix actual problems and I can assure you that management had to stay up late at times to actual do their job thus also offloading developers in the process and also make sure they got the courses and skill updates they needed that management tried to "save" money on not giving them, PHB style.

      In fact the PHBs were my favourite target.

    14. Re:Capability Maturity Model by Anonymous Coward · · Score: 0

      > I've always been extremely suspious of the statisticaly based studies, primarily because they tend to ignore causality

      Umm, did you check out the "root cause action" parts of CMM? It is there. Perhaps the staff didn't want to know about it but that is a very different issue.

    15. Re:Capability Maturity Model by hurtfultater · · Score: 1

      I have to ask - why the asterisks? You might as well mention the large defense contractor and enormous employer, Ra*theon.

    16. Re:Capability Maturity Model by SillyNickName4me · · Score: 1

      > but my dad has a good web site that deals with quality issues (IE only, unfortunately).

      website, IE only, quality? hmmmmmmmmmmmmmmmmmm....

      Ah well, I guess the requirements were not specified correctly there..

    17. Re:Capability Maturity Model by master_p · · Score: 1

      I work for a company that is at CMM3 and works on mil contracts. What you are saying has a dosh of truth, but it is largely false. We have never delayed a project, and we go home at 5 every day, except when on qualification days. What you are describing is the fault of users of CMM, not the fault of CMM itself.

    18. Re:Capability Maturity Model by glew · · Score: 1

      Ok, fair enough. It's good to hear that CMM can actually work.

      I totally agree that the experience I describe above is in large parts down to bad implementation.

      In the special case of CMM I'll still blame the model: its aim is to build stable and predictable processes (that are supposed to help everyone).
      It defines an auditing process and all that.

      If a company can get certified as CMM 3 and is found to comply in every point, when in reality it's a mess, then there's something wrong with the model.

    19. Re:Capability Maturity Model by natoochtoniket · · Score: 3, Insightful
      The major purpose of the CMM is to generate the maximum possible costs. Military contractors are paid on a cost-plus basis. They make money by finding justifiable ways to generate higher costs. They don't make money by selling finished products that are produced efficiently. Similarly, military officers don't get promoted by finishing projects ahead of schedule and under budget. They get promoted by justifying larger budgets and larger staffs, which then require higher-ranking people to run the larger organization. Both sides benefit by finding ways to justify the maximum possible cost for every project.

      Having said that, many of the ideas that are in the CMM are good ideas. Each item has some justification, and can be helpful to generate better software systems. After all, the cost-plus contracts are based on justified costs, not just every cost that the contractor can dream up. There has to be some plausible justification for every cost item.

      So, for non-military purposes, we can use the CMM model and associated literature. We just have to use them intelligently. We cannot blindly implement every detail, because that will make every project over-budget and late. And, we cannot blindly reject every CMM element just because we think the CMM is bloated and inefficient. We should instead consider which management methods and processes are actually appropriate for the current project at hand. The CMM books provide a good inventory of things that we might want to do. We just have to pick the items that are appropriate for the particular project, in the particular company and business environment.

    20. Re:Capability Maturity Model by Digital_Quartz · · Score: 0, Offtopic

      Why? Would you expect the head of process quality of Ford to be able to spin off perfect HTML? And if so, why? It's not even related to his job.

      Believe me, I've encouraged him to redo his site, but he wrote it using some MS product, which generates IE-only HTML (likely a requirement of any MS software :) and he hasn't had time to rework it.

    21. Re:Capability Maturity Model by Digital_Quartz · · Score: 1

      Or, there's something wrong with the certification. Or, the company lies to get certified.

      I've worked in a few ISO 9001 certified shops which really didn't come close to ISO 9001.

    22. Re:Capability Maturity Model by Digital_Quartz · · Score: 2, Interesting

      This is an interesting argument, and it's one I hear a lot here, but let me ask you something;

      What was your improvement in productivity, and how was it measured? What was the reduction in your (delivered defects):(effort expended) ratio? What was the reduction in your (lines of code delivered):(effort) ratio? One or both of these ratios have to go down.

      If you don't have these numbers, you can't really say you've improved productivity, especially with a process like Scrum. Scrum makes it very easy to think you're more productive, because it gives you results every 30 days (in fact, to a lesser degree, every single day with your Scrum meeting). But are you actually more productive? There's a fair rework cost incurred by Scrum, due to the constant introduction of new requirements, which Scrum hides very well.

      I don't have these numbers either, and I'm not sure if anyone has done such a study (although I've encouraged the group here that's pushing Scrum to measure them), so I can't say for sure which process is "better" from this perspective.

      I will agree that Scrum does an excellent job of making developers feel good, which is one of their stated aims, but unfortunately, software exists not to please its developers, but to please its users.

    23. Re:Capability Maturity Model by Anonymous Coward · · Score: 1

      The only reason you knew that it was possible to build it in 4 months, and in fact the reason why it was possible to build it in 4 months is recisely because there were 20 people and 18 months behind the project.

      They had to invent, design, innovate, document, build, test, put quality... and do the 'radiation and vibration' tests to protect people's lifes. You know you probably used your processor in some toy doll but this particular company puts its stuff on missiles.

    24. Re:Capability Maturity Model by Phred+T.+Magnificent · · Score: 1

      CMM has its place, and, used properly, it can be a valuable tool. Unfortunately, it's all too often used improperly, and that's worse than not using it at all.

      Too little process, or none at all, can doom a project and an organization. Too much process, or the wrong process, will doom the project and the organization just as surely, and often kill them of faster (but more expensively and with more personal pain to the employees). CMM level 3 in a small organization is (usually) far too much process. On the other hand, you're right that level 1 is usually too little.

      There are several questions that must be asked when implementing a new process, if the process is to be successful:

      • What problem is this process intended to solve or prevent?
      • Will the process work to solve or prevent that problem?
      • What other problems will be introduced by implementing the process? (If you said "none", try again: there's always something.)
      • Does the net effect (problems solved vs. problems introduced) result in a benefit? I've also seen this phrased as: Does the pain of not using the new process exceed the pain of using it?

      The key is to end up with Just Enough Process, and have it be the right process for your situation. This way lies your best chance of success.

      --
      Where is the wisdom we have lost in knowledge?
      Where is the knowledge we have lost in information?
    25. Re:Capability Maturity Model by javaxman · · Score: 1
      I mentioned it in another post, but my dad has a good web site that deals with quality issues (IE only, unfortunately)

      Very unfortunately, since I'm not likely to take any advice, especially quality-related, from someone who runs an IE-only website.

      You should really talk to your dad about that one.

      I'm not even going to take a jab at the US Military's idea of quality, I can see others have done so already...

    26. Re:Capability Maturity Model by tshak · · Score: 1

      People will perform to the metrics in which you measure them. CMM does a good job ensuring that your teams are good at CMM. That doesn't mean that your people on focusing on quality, or any other factor that has real meaning to the business. It means that they're focusing on how to get a high CMM rating. That's not the focus that I want for my teams.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    27. Re:Capability Maturity Model by Anonymous Coward · · Score: 0
      1. It might complement people who know what they're doing, but then such people would have come up with their own valid processes anyway, hence your initial correlation.

      Either you mispoke or don't actually follow CMM. CMM isn't interested in a specific process of any type. That you have a process and follow it is what matters.

      You can be CMM compliant unintentionally.

    28. Re:Capability Maturity Model by Jibbs · · Score: 1

      I'm trying to figure out whether I had a 'fight club' moment and wrote this.

      I think many of us who exist where the 'rubber meets the road' in the software development process probably feel the same about CMM and the like.

      It did, however, give the managers the warm fuzzy feeling that overcomes control freaks everywhere when they're sure they can track, number, file and index everything that goes on around them.

      Brilliant. I have been looking for a good way to sum up my ideas and you have hit the nail directly on the head.

    29. Re:Capability Maturity Model by Banner · · Score: 1

      It's pretty obvious that your company wasn't a level 3 and wasn't applying CMM properly. If you're spending 'vast amounts of time' in peer review, you have a problem with peer review.

      A CMM Level 3 company will out perform, on cost and schedule a company that is not CMM, every time.

      Yes I know this from personal experience.

    30. Re:Capability Maturity Model by Anonymous Coward · · Score: 0

      One of our line managers admitted all of this quite openly, one of his favourite sayings was "Since we have processes, I can go home at four every day". We didn't. We got to stay till 8.

      You would be better off to understand CMM than to complain about it. At this point you don't even seem to understand it or how it impacts your workplace at all. The fact that you have to stay until 8 has nothing to do with CMM and everything to do with your idiot manager.

      Use the process to your advantage. If overtime is not being effectively measured, make sure it is. If overtime is being measured and your manager still has you working slave hours, then you have to assess the real reason for the chronic crunch: management incompetence, management greed or your own desire to meet objectives.

      The last one raises an important point. Process improvement is only as good as the data it's based on. If you are fudging your timesheets because you think management expects you to do 12 hours work in 8, you will be right! Why? Because if they say "do this in 8 hours" and you say "I did this in 8 hours" then they have no way of knowing different. They will adjust their estimates based on your claims (process measurement drives process optimization).

      If you are reporting 12 hours and they're patting you on the head and giving you an extra juicy bone then you have another, much more difficult problem--either incompetence or greed. Here the process can help you because you have documentation that indicates that not only is this happening, but that your manager is aware of it and is persisting. Bring it to his attention and ask what he specifically intends to do to address it. If he brushes you off, you can take this to one of three people: HR, your manager's superior or the QA champion. HR means you are effectively registering a complaint that your legal rights as an employee are being infringed upon. Typically this would be the last step before looking for work elsewhere (with any luck they'll lay you off you so you can collect EI while you decompress and look). Going to your manager's manager says that you think everything is fundamentally working but process is not being well managed. In this case make sure you've talked to the manager and asked for a remedy first. I can't say this normally works (it depends which manager(s) are the problem) but it is a good step to take before going to HR. Finally there is your underappreciated friend, the QA lead. It should be trivial to bring this to their attention: suggestions for process improvement are more likely to get you bonuses and praise than discipline. All you have to do here is identify the problem: "My team is working overtime all the time. Is there any chance you could you look into why this is happening and get back to me?" As soon as the QA lead is *aware* of the problem, you can bet your booty it will be addressed at some level (trained QA people usually understand the real cost of overtime).

      Processes and SEI CMM are just tools like MS Project. You would not believe the fraction of PMs I have worked with that have asked me how to overschedule a resource yet I have never heard a single developer blame MS Project for making them to work late.

      I honestly believe that it will make you a better developer to understand the basics of CMM and how it applies to your work. Whether or not your company is 100% compliant and to what level is relatively immaterial to understanding what Repeatable, Defined, Measured and Optimized mean in a process context.

    31. Re:Capability Maturity Model by master_p · · Score: 1

      No process is bulletproof. I have seen companies faking ISO 9001/9002-01 for software development, where in reality all work was off-loaded to some guys (or guy!) in the basement... The auditors, no matter how strict, can always be fooled by a competent QA team. It takes a lot of work (because you have to fake all the documentation and that) but it can be done.

      But if the ISO/CMM standards are truly applied, the job gets many times easier, both for the developers and the managers...provided that software managers are truly interested in improving the work of their teams and not just look good to the upper layer of the company.

    32. Re:Capability Maturity Model by Anonymous Coward · · Score: 0

      I don't care how MIL-spec'd his board had to be, or how much vibration and radiation testing they had to do
      And that's the difference between MIL-spec and the outside world. You were probably making some piece of crap consumer shit with a life expectancy of 1 year, provided the consumer treats it like their own newborn baby.

      Whereas the mysterious company that couldn't possibly be Raytheon was presumably making something for the military, that has to fucking never break down, even when it's on a tank going 50 mph over a sheep trail while taking enemy fire.

      I will agree that parts should be engineered to be appropriate to their purpose, but your general sneering and derision of people with more demanding needs than your own is unprofessional and smacks of engineering-envy.

    33. Re:Capability Maturity Model by sjames · · Score: 1

      I will agree that parts should be engineered to be appropriate to their purpose, but your general sneering and derision of people with more demanding needs than your own is unprofessional and smacks of engineering-envy.

      I think that the real point is that MIL-spec DOD projects have requirements so far removed from 90% of the remaining real world that conclusions drawn from the study of successful DoD project methodologies may not apply to the other 90% at all.

      For example, the administrative overhead of CMM5 is just statistical noise in a project that doesn't mind spending $100 on a $0.10 part if it can have 7 or 8 nines on it.

      Often, in the real world, someone will be scraping the bottom of the barrel looking for a $0.09 part if it can be nearly as good as the $0.10 part.

      In that real world, the overhead of CMM5 means "No contract for you!"

      Of course, everyone says they want CMM5, but nobody will actually pay for it. Instead, they'll take the lowest bidder willing to lie about it. That way they get CYA and a price they can afford.

      As far as meeting deadlines goes, it is possable to define them in such a way that they are almost never missed. That process will take up 90% of the total development time and about the same percentage of it's budget. This is because the design phase must be fully completed to achieve that level of confidence. Of course, the timeline for the process of specing the timeline is highly variable and carries a high risk that it's deadlines will be missed. TANSTAAFL!

  22. Not sure I agree with all of the article by lottameez · · Score: 4, Insightful

    The writer talks about separating QA from the Development group. In our organization, this was a large part of the problem. First, there was a tendency for the development group to "throw it over the fence" and expect QA to find problems that the engineers couldn't be bothered to look for.

    The QA staff, on the other hand, rarely had engineers of a sufficient caliber that had the insights to search for and find the most insidious problems. Not only that, they (QA) occupied the no-man's land between business users and development, understanding neither area with any clarity.

    --
    Yeah? Well I think you're overrated too.
    1. Re:Not sure I agree with all of the article by disc0tech · · Score: 1

      You're still talking about QA as a testing function. This is not the case. They key difference is:

      Testing = finding bugs = evaluating the quality, not improving it

      QA = finding process problems, not evaluating the product

      As for teams being seperate - Independence from development is one of the key things that breeds great testing. Not knowing why/how technical decisions were made generates a questioning attitude and picks up the bad ones.

    2. Re:Not sure I agree with all of the article by lottameez · · Score: 1

      Okay fine, you say tomato, I say tomahto. There are three "QA" functions as far as I'm concerned:
      1. Testing/finding implementation bugs.
      2. Ensuring the development and other software management processes work. This is where tools like statistical process control can provide a great deal of insight. Whether or not this is a function of Development or a specialized QA department makes little or no difference.
      3. Ensuring that the result does what was intended (to your point, not necessarily what was designed). This, above all else, is the most critical in my view and should be managed by the product manager.

      --
      Yeah? Well I think you're overrated too.
    3. Re:Not sure I agree with all of the article by cswiii · · Score: 1

      That's at least partially a dev problem then; sounds to me like the stuff was not even unit tested before it was "thrown over the fence" to QA.

      But you're right in one respect - QA engineers are -- or at least should be -- more than test monkeys.

      Can't tell you how many times I worked with people, people on a "Senior" level, who knew very little about systems as a whole, or even the QA process - they just had been there long enough to know how to circumnavigate the idiosyncracies of the systems that were tested... that, and they had learned how to just STFU and take whatever answer dev gave them.

    4. Re:Not sure I agree with all of the article by Alomex · · Score: 1

      In a previous job we had two QA groups. The internal group which wrote tests for component testing and indeed was composed of engineers who were part of the developer group. We also had the end user QA group, which new nothing about the product, and obtained a CD with the product. They had to test everything from installation to the user manual to see if the software could be used by the customers as shipped. In this case the least the QA knows the better as customers (in our case) were not expected to be experts (Linux software developers: there's an idea for you :-)

    5. Re:Not sure I agree with all of the article by fhknack · · Score: 1

      Independence is critical.

      Way back in my tech support days (before support broke down industry-wide, but that's another rant), I was with a software company that had the programmers, testers, and support folks all reporting to the same boss. If a "showstopper" bug was too difficult to fix--that is, if it would delay moving from beta to release--it was usually simply dismissed.

      They spent a lot of money sending me out on site to fix things that never should have seen the light of day.

      Of course, this was a company that (I later heard) had shipped boxes in which they'd "forgotten" to include the distro diskettes so they could claim the revenue.

    6. Re:Not sure I agree with all of the article by Anonymous Coward · · Score: 0

      Independence is not critical. It is important but not the reason for the situation you mentioned. Good management is the solution to the problem you mentioned.

  23. Proof it's a good thing for a company by millahtime · · Score: 1

    The Japanese have been all about quality for many years. Their cars are less expensive yet more reliable. They do things in general at a lower cost, that are more reliable and faster.

    Not a bad biz model. In the car example they eve build the cars on US soil with these methods, so, it is something we can do and doesn't break out backs.

    1. Re:Proof it's a good thing for a company by Ungrounded+Lightning · · Score: 2, Informative

      The Japanese have been all about quality for many years. Their cars are less expensive yet more reliable. They do things in general at a lower cost, that are more reliable and faster.

      And when they started out after WWII their industries were noted for exactly the opposite: mostly cheap stamped metal toys - the first. "Made in Japan" was a synonym for shoddy. (Not their fault particularly - it was the first profitable thing they could do with what was left of their infrastructure after the war.)

      They embarked on a long-term process of upgrading, with great attention to the things where they were behind. Quality was their first lack, achieving it became one of their very first targets, and the means to achieve and maintain it became core to their industries.

      In the car example they eve[n] build the cars on US soil with these methods, so, it is something we can do and doesn't break ou[r] backs.

      They did it with union workers, too. A friend of mine who was a labor union officer put it this way: "The workers give you what you ask for. If you ask for quantity you get quantity. If you ask for quality you get quality. And if you ask for trouble you get trouble." (Implication being that the Japanese had asked for quality while the US companies had been asking for quantity and trouble. B-) )

      Key to the rise of Japanese industry were two US figures: Demming and McCarthy.

      Demming wrote a book that laid out management techniques for achieving quality, quantity, and labor peace. Most of it worked by having management empower the front-line workers and pay attention to their input: These workers have the direct experience with the company's processes and problems, customers and suppliers, so they're your nerve endings. They are NOT dumb, and there are far more of them than management, so they're more potential sources of good ideas. Management's job is not to come up with all the ideas and push them top-down on the workers, but to enable the workers to get the work done, aid them in implementing those good ideas they generate, and reward and encourage behavior that promotes the company's goals.

      This book was introducted to Japan during the reconstruction, and its message was easily grasped. The people in Japanese industry, from management through line workers, became almost cult followers of Demming. His book circulated widely. They implemented his ideas as their core business practices, with excelent results.

      But the US was in the height of the Red Scare (also known as the McCarthy era.) The black-listers and witch-hunters could destroy vitrually anyone they turned their eye to. And listening to workers sounded too much like the ideology of the communists, socialists, and "sieze the means of production" radical labor unionists.

      Though many of the particular claims McCarthy himself made turned out to be true (though it took the opening of the KGB archives after the fall of the Soviet Union to show it), his hearings and the activities of his followers and wanna-bes created a terrorist-style pressure on executives. Anything that even hinted at Communism or Socialism became taboo. Both Demming's work and any communication from labor toward management (outside formal collective barganing sessions) fell into disfavor among US industry. Quality suffered as a result.

      The turnaround for US industry began when Japan's auto industry achieved, first a price, then also a quality advantage over that of the US, displacing its products in the US market.

      This served as a wakeup call to management, which began an expensive, painful, and lengthly process of examining and repairing its own house. (It was triply painful because it occurred simultaneously with an energy crisis resulting from a mideast oil embargo and civil unrest as the boomers were drafted into the Vietnam engagement.)

      --
      Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
    2. Re:Proof it's a good thing for a company by Anonymous Coward · · Score: 0

      You are wrong on all points, my friend. Japanses Accounting and work habits are merely details in a larger story.

      This is the simple answer to Japanese success:
      http://www.geocities.com/tokyo/towers/91 51/hagakur e.htm

      Some quotes:

      Having only wisdom and talent is the lowest tier of usefulness
      It is difficult for a fool's habits to change to selflessness
      A samurai with no group and no horse is not a samurai at all
      A man exists for a generation, but his name lasts to the end of time
      Continue to spur a running horse
      There is surely nothing other than the single purpose of the present moment. A man's whole life is a succession of moment after moment. If one fully understands the present moment, there will be nothing else to do, and nothing left to pursue.
      In all dealings with people, it is essential to have a fresh approach. One should constantly give the impression that he is doing something exceptional. It is said that this is possible with but a little understanding.
      Uesugi Kenshin (a famous daimyo, or feudal lord) said, "I never knew about winning from beginning to end, but only about not being behind in a situation."
      The end is important in all things. (Yamamoto comes back to this point often, using several examples to show that if things end badly, all good that may have come before it will be erased. This reinforces his primary theme that one must stay focused on every present moment, and in this way will never be found negligent.)

  24. Re:Testing - The Anti Quality Process by Ulric · · Score: 1

    The jellybean example is absurd. I know an algorithm which will, by looking at only 100% of the beans, find 100% of the defective ones.

  25. Re:Testing - The Anti Quality Process by Garg · · Score: 1

    ummm... so he's an expert on quality, but can't be bothered to make his Web page conform to standards?

    Good thing he's not a cobbler, or you'd be barefoot.

    Garg

    --
    Garg
    Alumnus, Xavier's School for Gifted Youngsters
  26. Where to add QA to linux by millahtime · · Score: 1, Interesting

    There are 2 places to add QA to linux.

    1) The first is really just a patch, but to QA the current code base and the new incoming code.

    2) To add QA to the process of generating the code so that it is controlled enough the output is garunteded.

    This would take quite a long time to get in place but in the end it would produce a much better and cleaner code base. This also would give ti respect from more professional organizations.

  27. Re:Testing - The Anti Quality Process by carbon116 · · Score: 1

    Was your Dad's site not properly tested?

    --
    I'm too cool for a sig.
  28. Quality Assurance by Turn-X+Alphonse · · Score: 0

    Quality Assurance = "do the buttons all do what it says on them?"

    --
    I like muppets.
    1. Re:Quality Assurance by Anonymous Coward · · Score: 0

      What about "do all the buttons collectively achive the goals of the product?" Surely that question has to be asked by someone. That's the _real_ value of QA. It begs the question, of course, "what are the goals of the product?" As you can see, QA can easily expand to include all phases of development.

  29. Re:Testing - The Anti Quality Process by Rostin · · Score: 1

    Wow, I might enshrine this one in a text file as a great, real-life example of a red herring.

  30. Re:QA by Anonymous Coward · · Score: 0

    You sir are abso-fucking-lutley correct.

    Linux QA comes after the software is released.

    It has much better QA then even the professionals but it makes the software look bad when your userbase is doing QA qithout their express knowledge.

    This is the downfall of Linux. After software is released it is supposed to be polished, with linux the detailing doesn't start until after release.

  31. Pick two by cniemira · · Score: 1

    You only get two:

    • Inexpensive
    • High Quality
    • Fast Turnaround
    1. Re:Pick two by tbone1 · · Score: 1
      We always said "There's cheap, good, and quick. Pick two. Maybe. If you don't overemphasize your first choice."

      --

      The Independent: Reverend Spooner Arrested in Friar Tuck Incident - ISIHAC, Historical Headlines
  32. Even more, QuAlity != QA by dallaylaen · · Score: 4, Insightful

    If design is flawed, what should QA do?

    If docs are porly written, and incomplete, how does one decide what's bug an what's feature?

    If the docs depict the program's behavior, not define it, what can QA do? ...And more, see F. Brooks' "Mythical Man-Month" for example, or Alen Holub's "Rope Long Enough to Shoot Your Leg".

    And yes, if everythign is done right from the beginning, the QA people would have enough time to do something except testing.

    Of course, only third of the two ways to write bugless programs works...

    --
    WYSIWIG, but what you see might not be what you need
    1. Re:Even more, QuAlity != QA by Digital_Quartz · · Score: 1

      All that testing does is prove your program doesn't work.

      Testing DOES find bugs which the developers missed, but it only finds a very small fraction of them (unless you spend an extremely long time testing. I worked this out a couple years ago, but I forget the exact numbers. Something like to remove 90% of the remaining defects in our software, based on historical defect discovery, it would take around 20-30 person years of test effort.

      Testing is the most expensive tool you have to remove defects. When you find a defect in test, you have no idea where that defect is. Someone has to root-cause and fix the problem. When you find the defect in a code-inspection, you have your finger on it; you can fix the defect with a minimum of effort. Also, it is much easier to find defects in a code inspection than by testing (around 2-3 per hour versus about one per 2-3 hours, on our product).

      Even better is in design inspection, since a fault in the design typically leads to multiple faults in the implementation. Even better yet is in requirements inspection.

      So, if your QA plan doesn't cover these phases of your development, your QA plan probably needs some work.

      The whole point of testing is to see how well the rest of your process worked. If you know how much effort you spent testing, and you know the rate of defect discovery, you can estimate the number of defects remaining in your product. If that defect count is too high, though, it is probably faster and cheaper to start over with a new process than it is to "test" the product until it is free of defects.

    2. Re:Even more, QuAlity != QA by CaptKilljoy · · Score: 2, Insightful

      If design is flawed, what should QA do?

      QA prevents that from happening in the first place

      If docs are porly written, and incomplete, how does one decide what's bug an what's feature?

      QA prevents that from happening in the first place

      If the docs depict the program's behavior, not define it, what can QA do?

      QA prevents that from happening in the first place

      And yes, if everythign is done right from the beginning, the QA people would have enough time to do something except testing.

      Sounds like your company needs to develop a real QA process.

    3. Re:Even more, QuAlity != QA by emidln · · Score: 1

      QA doesn't prevent any of this from happening. QA may resolve the issues but it doesn't prevent someone upstream from making a mistake with the requirements or the design document. When it happens, we communicate the problems and clear it up. That's probably why most software people don't do a good job at QA, because they don't understand the process, or at least follow it.

      If the design is flawed, that is none of your business in Quality. That is up to the programmers. You tell the programmers that their program does not meet the requirements, and explain why, and how to get the same results.

      If you don't agree on the requirements, you contact the customer and find out exactly what the customer meant.

      The programmers fix the design if necessary, but the design is based around the requirements and Quality should develop test cases in parallel with the Coding developing a design document.

      And btw, the best docs, in my opinion do depict what the program does. State charts are the best documentation available in most cases, and many times, the only documentation that matters.

    4. Re:Even more, QuAlity != QA by CaptKilljoy · · Score: 1

      >QA may resolve the issues but it doesn't prevent someone upstream from making a mistake with the requirements or the design document.

      That may be the case where you work. Here, QA gets input into the requirements and the design. I've lost count of the times I or my colleagues have pointed out "Hey, it's physically impossible for that to work." or "The product would be greatly improved if we did this...".

      >If the design is flawed, that is none of your business in Quality. That is up to the programmers. You tell the programmers that their program does not meet the requirements, and explain why, and how to get the same results.

      None of my business, huh? If you're happy working on something that meets the docs but you know doesn't meet the actual needs of the project, more power to you. I've got better things to do with my life and another bankruptcy just means that my company gets a bigger slice of the pie. :P

      >If you don't agree on the requirements, you contact the customer and find out exactly what the customer meant.

      >The programmers fix the design if necessary, but the design is based around the requirements and Quality should develop test cases in parallel with the Coding developing a design document.

      >And btw, the best docs, in my opinion do depict what the program does. State charts are the best documentation available in most cases, and many times, the only documentation that matters.


      No argument with that.

    5. Re:Even more, QuAlity != QA by dallaylaen · · Score: 1

      Mod parent up, btw

      Sounds like your company needs to develop a real QA process.

      Fortunately, I don't own one. I imagine it would sink immediately! :-P

      I'm not even working in development, but I hope I will some day...

      What I've found out from your reply is that I completely misunderstood what QA means. I thought it was... err... But that's what the article is about! (and yes, I've read it before posting, but I see it didn't help much)

      --
      WYSIWIG, but what you see might not be what you need
    6. Re:Even more, QuAlity != QA by Stone316 · · Score: 1
      I'm not sure how this works in other companies but from my experience QC/QA only guarantees the process is followed. I have yet to see QC pass back a change because there is a flaw, or it doesn't work properly or whatever.

      Alot of QC/QA people also aren't very technical, so the only benefit i can see is they take some load off of the technical resources by making sure process is followed, the correct approvals are maintained and manage the over all change control.

      What else are they supposed to be doing? I'm not trying to be a troll but i'd like to better understand what their role should be and how it works in other companies.

      --
      "Thanks to the remote control I have the attention span of a gerbil."
    7. Re:Even more, QuAlity != QA by javaxman · · Score: 1
      If design is flawed, what should QA do?

      Force the design to be redone. Note that QA _must_ be given the ability and authority to do so from the beginning of the design process.

      If docs are porly written, and incomplete, how does one decide what's bug an what's feature?

      That's actually part of the design process. If you haven't written a complete specification, you shouldn't even hope to create a quality product. Of course, occasionally, there will be something that is needed and wasn't addressed in the design, but if it's needed, the design should be reconsidered ( not just updated, but fully reconsidered ) with buyoff of all parties, from the project management, development, design, QA, everyone. Such an issue showing up near the end of the development process should be a big red flag to project managers. Even what seem like minor things should be reviewed, at least briefly, by all parties, since what seems like a minor missing feature could point to a greater workflow design error.

      If the docs depict the program's behavior, not define it, what can QA do?

      Make someone define it. Create a specificiations document. If the document in question is supposed to define the product, it should do so, otherwise it's flawed. Your specs must define your implementation of a product, not a general type of product. Of course, there are all sorts of documentation- you shouldn't expect 'user' documentation to act as a specificiation, they're not the same at all.

      Of course, only third of the two ways to write bugless programs works...

      Huh? Good QA doesn't necessarily result in bugless programs, it results in products that fill a need to a defined degree of usability. Few, if any, complex systems are error-free. Most of the time, it's just that the errors are handled, or are not severe enough to be noticed. People who are actually engineers understand that there are such complexities as risks and tolerances.

    8. Re:Even more, QuAlity != QA by Anonymous Coward · · Score: 0
      1. If docs are porly written, and incomplete, how does one decide what's bug an what's feature?

        If the docs depict the program's behavior, not define it, what can QA do?

      It's magic (as in a magical pain in the ass); Derrived requirements.

      You take the spec and add requirements to it, pointing out that for Requirement X to be possible, Requirement X.1 must also be required.

      As for the docs matching behavior not 'thou shalt', you can document behavior and list it as a requirement for future revisions. From there, derrive more requirements.

      This is quite handy in pointing out that the current implementation (and the requirements themselves) are silly...leading to someone actually changing the code.

      Like 'real' magic, though, it doesn't work like the way the magician shows it.

    9. Re:Even more, QuAlity != QA by Anonymous Coward · · Score: 0

      You did hit one point, however, that I'd like to cover. As nice as it is to say, that early involvement of QA assures quality, you also need the buy-in from the development team. It does absolutely no good for QA to be involved if there is no trust in the fact that QA might be pointing out that the emperor has no clothes...

  33. Show me your regression proofs then :) by steve_l · · Score: 1

    I know testing only shows the presence of trouble, but if fully automated, you can first replicate a problem, and secondly show it has gone away,

    Whereas proofs of correctness need to be redone every time you change code.

    Test-centric dev (XP, the Agile methodologies) is standard in Java Dev these days, and there are good Python test tools too. Its a shame that C++ has lagged a bit, though CppUnit works well.

    We have used CppUnit to test code, with CruiseControl (on sourceforge) to check out, rebuild and retest the app *every* time something changes in CVS. This is the future: you know all your tests work, all the time.

  34. Neither necessary nor sufficient by Presence1 · · Score: 3, Informative

    In fact, I've seen "Knowledgeable_Staff_On_Good_Salary + No_Deadlines" produce the worst kind of quality possible -- no working product at all.

    I will agree that ignorant staff will degrade or kill quality, poor pay doesn't help, but tight deadlines can cut either way.

    The real key to quality products of any type is:

    1) deciding what you want to build, and deciding exactly (i.e., good specs);

    2) deciding how you want to build it, and deciding exactly (i.e., good architecture);

    3) ensuring that these two elements are matched to the capabilities of your team and budget (e.g., don't try to cram all the R3 featuers into R1); and

    4) to create feeedback loops throughout the process to check that you are doing what you think you are doing (e.g., peer code review, pair programming, data acquisition and recording in manufacturing processes). Testing should be merely a "double check".

    With these steps, and especially ensuring that the demands are only a bit beyond the capabilities of the team, even a basically competent team on modest pay can produce great things in short times.

    Without adequate planning, deadlines and QA, the most brilliant, high-paid teams with no deadlines will produce crap, if they produce anything at all. As Sun Tsu said: 'every battle is won before it's fought'.

    1. Re:Neither necessary nor sufficient by KontinMonet · · Score: 3, Insightful

      1) deciding what you want to build, and deciding exactly (i.e., good specs);

      Too often, I've stumbled across over-specified systems that, as a result, are delivered incredibly late. And then, because of time constraints, the whole project is de-scoped and bodged work-arounds are built so that functionality can be 'added later'.

      At the design stage, politics often slows things down. I prefer the continuous approach: When you have enough design, start coding.

      --
      Did he inhale?
    2. Re:Neither necessary nor sufficient by Sique · · Score: 2, Interesting

      I prefer the continuous approach: When you have enough design, start coding.

      There was an article at Slashdot quite recently (yesterday) which actually argued, that coding is the real design process. All the other processes would be just tools to help clarify and support the thinking process of the programmer/designer, and not every tool works the same for every programmer/designer.

      He even argued that all the new design approaches (rapid prototyping, extreme programming etc.pp.) were just here to allow the starting of the actual coding as early as possible (and to convince the Design Is All Coding Is Supplemental people without actually forcing them to admit, that design is coding in the software world).

      All discussion boils down to the question, what part of software production is actually design, and what is manufacturing. His answer was: the border line between design and manufacturing is defined as the point when the descriptions and documentations are in a state to allow all further development without any creativity, just as a mechanistic process. So he came to the conclusion that this state is reached when the final product (the software) is translated from the high level programming language into object code by purely mechanic/logic instruments as compiler and linker.

      --
      .sig: Sique *sigh*
    3. Re:Neither necessary nor sufficient by Darren+Winsper · · Score: 1

      In all fairness, I'm in a project that's taking the continuous approach (out of necessety rather than a good reason, though) and it's proving a nightmare. The problem we have is serious feature creep that has left our system in a serious mess because nothing ever gets finished properly.

      The fact that the client is completely and utterly retarded doesn't help, either...

    4. Re:Neither necessary nor sufficient by RevMike · · Score: 1

      1) deciding what you want to build, and deciding exactly (i.e., good specs);

      Too often, I've stumbled across over-specified systems that, as a result, are delivered incredibly late. And then, because of time constraints, the whole project is de-scoped and bodged work-arounds are built so that functionality can be 'added later'.

      At the design stage, politics often slows things down. I prefer the continuous approach: When you have enough design, start coding.

      An effective team is going to wind up doing the same tasks regardless of the methodology chosen. For instance:

      A team practicing XP is going to jump into coding very soon. Then they'll refactor several times and toss away code that just didn't fit the problem. All the time they are showing the customer and getting additional feedback.

      Meanwhile, a team practicing a waterfall methodology is going to build several prototypes during the requirements gathering and architecture stages. They'll do several experiments to insure that they understand key parts of the design. Then they'll agree on a spec and an architecture and finally start coding.

      The difference is semantic. I can say I'm doing a prototype or experimenting with a key feature, then later use key parts or my results to build the actual product. Or I can say I'm working on the actual product and throw away substantial parts of my first iteration.

  35. This hurts by steve_l · · Score: 2, Insightful

    I can see the problems this creates. Dev teams blame QA for being fussy; QA hate the dev team for releasing such junk.

    We have to embrace test-centric development more. JUnit, CppUnit, PyUnit, they make it easy to write tests. But to convince the developers to write good tests, that is another matter. I often find it is harder to write a decent test for something complex than it is to implement the complex thing, but without that test, how do you know it works?

    1. Re:This hurts by mgkimsal2 · · Score: 1

      but without that test, how do you know it works?

      I'd rephrase that a bit.

      "how can you demonstrate it works?" or "how can you demonstrate future changes will impact what you've done?"

      Rethinking in those terms has helped me understand the fundamental need for documented testing practices, over and above 'knowing' something works. I've known things work, as have other people I've worked with. We *know* things work at that moment in time. What we lacked was the ability to demonstrate that things would work with future changes applied.

  36. Apples and Oranges by millahtime · · Score: 1

    The same quality concepts can work for both. It just depends on how you implement them.

  37. Oh god yes by Michalson · · Score: 5, Insightful

    Can someone please forward this to the good old folks at Mozilla. The written QA requirements (on Mozilla) are so cursory that whole features have dropped off the map simply because nobody bothered to check to see if they still worked (i.e. in 1.4 multiobject drag and drop stopped working). Might also help the parsing engine, which continues to have kruft from the Netscape days (like how is interpretted as instead of as a single broken tag to be ignored [and you can use any tags you want, the second one can even contain parameters, allowing you to really annoy people by adding extra HTML that only works in Firefox/Mozilla, not IE/Opera]). Though really as Slashdot has reported before, Mozilla could really use a more robust and systematically tested parser just to avoid potential buffer overrun exploits.

    Bottom line: OSS could get way ahead of commercial software simply by doing proper QA and unit testing (not just the UNIX "it seems to work" test, the "are out of range inputs properly detected or does the program just choke and die") on par with what the best commercial developers have been doing. Just because you have to do all this paperwork and repetive checking when working for "The Man", doesn't mean it's an evil thing that should be thrown out. Sometimes the man actually has some good ideas, even if he spends most of his time shouting about how you didn't dot your i s on that last flowchart.

    1. Re:Oh god yes by hackstraw · · Score: 1

      In my experience with closed source commercial and OS software, QA pretty much means let the (l)users do QA.

      The immediate issues people have had with many OS X updates seem to prove that there were little to no internal QA before releasing them. The same with Windows service packs. Where I work, they just approved XP SP1 or 2 (not a windows guy), but its been many months since the service pack was released, and it took that long for it to be approved for the masses.

      The "release early and often" paradigm seems to be pretty ubiquitous.

      I dinged MS and Apple, because they are big guys that put out updates fairly regularly, but this is not unique to them.

    2. Re:Oh god yes by Anonymous Coward · · Score: 0

      the case it is doing the best thing, displaying as the author intended. you shouldn't use a browser to catch markup errors, you should use the w3 validator for example. the same applies to any markup that IE will render fine, but other browsers won't. do not view your page in a browser and say it is okay, just because that browser renders it okay.

    3. Re:Oh god yes by Anonymous Coward · · Score: 0

      It's probably due to 'quirks' mode. I'd be interested to see if it still does that with a proper, strict doctype.

      And it's the HTML more than anything that I think is b0rked there. It's not an unreasonable guess they're making about what the page's writer intended.

    4. Re:Oh god yes by Anonymous Coward · · Score: 0

      No, it is not doing the best thing. You don't KNOW what the author intended. Even if if you guess correctly what was intended, that doesn't mean the author has a clue. Do you think most people writing HTML have even HEARD of W3?

      I've written HTML professionally and validated _everything_ before releasing it, but most people writing HTML register 0.01 on the HTML cluemeter. Assuming the author knows what they are doing and making a 'best guess' based on that is stupid dumbo.

      You don't get it naturally, you don't have experience, but you are still sharing. Please stop.

  38. 'buisiness goals'? by Anonymous Coward · · Score: 0

    I must admit to never having any 'buisiness goals'

  39. Like security .... by RabidAmerican · · Score: 1

    Replace the "QA" references with "security" and see a trend in application development...

    --
    /*Dave
  40. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  41. Re:QA by marcello_dl · · Score: 1

    QA is made indeed by the users, the policy of "release early" is all about that indeed, but I wouldn't generalize your statement on the entire OSS movement.

    Counterexamples: Debian has a community-driven QA system and takes care that its (long awaited) releases are bug-free. The same can't be said about OSs from Microsoft (what are Service packs made of?) or even Apple (users of OSX prior to 10.2 should remember about that :) ).

    --
    ---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
  42. It's just what I asked for but not what I want. by Anonymous Coward · · Score: 0

    QA vs. Business vs. PHB

    Been there done that.

  43. Quality != Good by Anonymous Coward · · Score: 1, Interesting

    The first thing they drilled into us when our organization switched to a different QA process was that 'quality' did not mean 'good'. Quality just meant that the product or service conformed to certain requirements.

    Where I am now, 'quality' means ISO-900x. It is a bureaucratic process for keeping things from happening. I used to be able to find rules and procedures. We had documents that were clear and easy to find. Now we have a rule that the documents that we need can only exist as one copy so that we don't have different versions circulating. I realize that ISO has all kinds of wonderful ideals but the practice around here is something other than wonderful.

    I realize that people will say that my organization is using the ISO process wrong and I agree but we still pass all the audits. ie. The QA on the QA system itself does not ensure goodness.

    1. Re:Quality != Good by rdc_uk · · Score: 2, Informative

      Do you (personally) understand the actual ISO9001 system?

      A specific example; the standard requires that you have a process in place to ensure that the copies of company documentation in use are up to date and valid.

      The fact that someone at your company wrote in their company standard for that requirement that they would do this by only having one copy (and weren't intelligent enough to make that an ELECTRONIC shared copy) is very far from being a problem of the standard.

      The company could just as easily have pointed to a secretary and stated "Documents are to be taken from XYZ, where the up to date version will be available". Combine this with a procedure for document release that includes "archive old copy, replace in XYZ with new version" and you are done. Make XYZ a network drive which is backed up properly, and you've also filled the document protection and retention requirement.

      ISO9001 is only as hard as you make it for yourself. In some cases, you can fulfill the requirement by stating that you have looked at, and are not addressing, that requirement.

    2. Re:Quality != Good by rdc_uk · · Score: 2, Informative

      External ISO9001 audits ONLY check that you are following your own processes, and that you have addressed the requirements (which may or may not be in a sensible way).

      I think there is a requirement that you review your processes regularly; but having a meeting where the PHB says "we have good processes? Right?" and every drone nods dutifully is fine for that requirement.

      ISO9001 is designed to assure outside entities (customers, investors) that you have taken steps to do things in a way that mitigates against cockups, corruption (rogue projects that do not add value but leech resources) and terminally bad output.

      It is NOT the purpose of the standard to give the company efficient processes (it is assumed that you will begin from something that does what you need, and add quality to it, not bork your processes totally because thats the "quality" way to do it)

      Unfortunately, being an exernally visible marker, ISO9001 is largely treated as a marketting tool by the PHBs of the world.

    3. Re:Quality != Good by thagrol · · Score: 1
      Unfortunately, being an exernally visible marker, ISO9001 is largely treated as a marketting tool by the PHBs of the world.

      Well that's about all it's really good for.

      Having worked for several companies with ISO9001 and the superceeded BS5750, the only thing they all had in common was that my supervisor would come around about a week before the external audit and ensure all missing/incorrect records were "backfilled" so the audit wasn't failed.

      And before anyone asks, no, backfilling wasn't one of the official company procedures.

  44. Linux has just got the other half by dallaylaen · · Score: 1

    Linux has the other half -- while it lacks a pre-defined QA team, the programmers are not angry with testers.

    The core GNU/Linux programs are usually (re)?implementing some well-designed arch/protocol/format/whatever.

    Also the docs are much better (although often require googling) -- no "competitors" to learn your secret tricks and hidden APIs.

    And BTW an encountered bug is usually sQuAshed, not workarounded -- 'cause geeks and major distros will just recompile everything broken by the remedy.

    Some more OSS QA starts when a freshmeater abandons his poorly designed project and joins a better one.

    And yes, best open-source progs have been heavily sponsored to become as consistent as they are. But I don't see it as a "major failing"...

    --
    WYSIWIG, but what you see might not be what you need
  45. what is interesting by roman_mir · · Score: 4, Interesting

    in some (many, most?) cases QA becomes the definitive answer to what the requirements actually are. In some cases the requirements are not very precise, so it is up to the developer to translate them into the code and it is up to the QA to decide whether the developers' interpretation is good enough for the purposes of the system. In reality if you have a QA department, the QA defined test-cases become the guide to how the program behaves under various conditions. These test-cases define the system better than the requirements in some (many, most?) cases.

    1. Re:what is interesting by mbolton · · Score: 1

      QA is the definitive answer to what the requirements actually are? [sarcasm]Thank heavens we're not letting the business and the project managers decide.[/sarcasm] I agree with the OP that QA is not testing--and testing is not QA. I'm a tester. I cannot assure the quality of anyone's work other than my own; I don't have the authority to do it. Nor, unless I am the CEO, should I. ---Michael B.

  46. Re:Testing - The Anti Quality Process by Digital_Quartz · · Score: 1

    One would assume you can get Open Office by way of apt. It came with my distribution, so I'm not sure. The specific application you're looking for in the suite is called "Impress".

  47. Semantics != Rhetoric by hnile_jablko · · Score: 1

    Quality Assurance is merely an assurance. It is not a guarantee. It is some corporate hack who knows that some clients (especially govt) will succumb to the wiles of rhetoric. And will even exploit the vagueries of it in the contract when the client starts pushing back for the results they expected. Quality Assurance; broadening the gap between client satisfaction and liability.

  48. Re:Testing - The Anti Quality Process by Digital_Quartz · · Score: 2, Interesting

    He's an expert on process and software quality, not HTML.

    But, you're right, his site is pretty deplorable. :P He said he wrote it in some Microsoft tool and keeps claiming he's planning on rewriting it. Sadly, my father is very much in the clutches of Microsoft.

  49. Software devel. could learn from Blizzard. by MadcatX · · Score: 2, Interesting

    I find that software Q&A for applications/OS's/etc. for use by the general public is not necessarily the priority it should be due in part to the fact that they can always "patch" something if a bug arrises. But, on some occasions, patches are created after the damage is done. Although I will say that even if QA is a priority, there will always be a few bugs that will slip by the testing, due to the sheer amount of various situations that the software experiences (A plethora of different hardware setups, configurations, etc.)

    However, one company that has stood out in this field is the video game developpers Blizzard Entertainment. Sure, they have a reputation of not being able to adhere to shipping dates, but for good reason: They want to make sure that the product they ship is near perfect. I'm sure we're all willing to wait a bit more if that time is being used to test products.

    --
    - "I reject your reality and substitute it with my own", Adam Savage
    1. Re:Software devel. could learn from Blizzard. by harborpirate · · Score: 1

      Although Blizzard does do extensive in-house testing, the testing phase that makes their products really stand out cannot always be applied to other areas. Specifically, I'm referring to their extensive beta testing program.

      Blizzard has a large advantage because their applications are not mission critical. If you lose your level 35 warrior, no big deal, its a beta and they told you that might happen. Even though they are running in a "production" environment, people can't get too upset because ITS A GAME.

      This is not so in many other areas. You can't say, "please use our new beta financial software to automatically manage your accounts", then have people lose millions. Or, "we're releasing a beta of our new tumor irradiating program, try it out"! Obviously, many applications aren't as critical as these, but my point is that betas the way Blizzard does betas aren't always feasible in other arenas.

      Betas in the business world are tricky, and often not all that effective. If you tell people to use your beta in addition to whatever they're currently doing, you've added to their work load. Since the beta isn't really in production in that scenario, the users don't have any incentive to track what its doing carefully. But if you tell people to switch over and run your beta in production, there will be hell to pay when things go wrong.

      Blizzards beta testing period is what really gives their products the polish and last few critical bug fixes before they roll them out. The unfortunate thing is that not all software products can follow the Blizzard model.

      --
      // harborpirate
      // Slashbots off the starboard bow!
    2. Re:Software devel. could learn from Blizzard. by Blakey+Rat · · Score: 1

      1) Blizzard, Bungie and id are game companies that are all really good at this process and rarely, if ever, produce products that need patches right away. (Although all three companies will patch subtle errors that appear along the way later on, which is exactly what patches are supposed to be used for.) Microsoft Games tends to have, IMO, much better quality control for published games than most companies. (Especially Atari.)

      2) That said, I love Blizzard to death for making a Macintosh port of World of Warcraft from the get-go instead of (like Everquest did) three years late and segregated on their own servers. But, the Macintosh WOW client is buggy as crap... it crashes about once an hour. Even good companies can screw up.

    3. Re:Software devel. could learn from Blizzard. by Anonymous Coward · · Score: 0

      You seem to be the exact person this article is aimed at. You confuse QA with testing and finding BUGS. This is NOT QA.

  50. There are three variables for each project... by ian13550 · · Score: 2, Insightful

    Cost, Time and Quality and you can only have 2 out of the 3.

    For instance, you can have a project done fast and cheap but the quality will be lacking. Or you can have a project done correctly and quickly but it will cost you a fortune!

    QA is part of that "having it done correctly" piece that most companies tend to cut out. Most companies can only grasp the Time and Cost factor and fail at the whole "Quality" component when doing pre-project analysis. I do not have enough fingers to count the projects I've witnessed that have been running behind schedule (which is usually a BS timeframe to begin with) that decide to cut time from the QA process to make the deadline.

    The reasons for "falling behind schedule" and all those other fun things that go into bad project management have been discussed before so I won't even mention it.

    1. Re:There are three variables for each project... by javaxman · · Score: 1
      Cost, Time and Quality and you can only have 2 out of the 3.

      That's a gross oversimplification of a complex problem.

      Each of those variables can have many values; they aren't booleans. You have all 3- actually more. The issue you're probably refering to about usually boils down to the problem of companies trying to minimize cost ( usually by reducing time and quality ).

      If you don't have to care about the quality of your product for whatever reason, say you have a monopoly due to proprietary file formats or a market advantage due to restrictive licensing agreements ( do you like how I didn't mention a specific company there? ), you can get away with having sub-par quality. But unless you have some sort of unfair competetive advantage ( or even if you do ), low quality can result in either loss of business or significantly higher support or maintenance costs. It's generally a bad decision to rush a product just to cut down on short-term costs; it's usually artificial business influences ( i.e. quarterly earnings reports ) that result in poor decisions like rushing a v1.0 product that isn't even functionally complete.

      Oh, and that oversimplification leaves out complexity of the product and resources needed to create it. It's really more like f( Time, Quality, Complexity, Resources ) = Cost.

      So, yea, using "Cost, Time, Quality" like that makes a nice little phrase that sounds neat, but really, it's something a pointy-haired boss might say when he's trying to justify his penny-pinching of crucial project budgets before he gives himself a raise.

  51. Leisuretown by boohiss · · Score: 1, Funny

    If you have read this comic before, you remember "QA Confidential." Funny, funny stuff.

    If you haven't, the site is no longer up, but here's a mirror:

    QA Confidential

  52. Re:Testing - The Anti Quality Process by Garg · · Score: 1

    Sorry if that sounded harsher than I meant.

    But the old saw I alluded to - "the cobbler's son has no shoes" - points out our tendency to focus in on something so much we ignore the obvious. Heck, I've done it... most of us have. But first impressions are important. ("I wouldn't go to that cobbler, his kids have no shoes." ) Something you might want to point out to him.

    So now I will overcome my bias, fire up IE and see what he has to say...

    Garg

    --
    Garg
    Alumnus, Xavier's School for Gifted Youngsters
  53. Re:Testing - The Anti Quality Process by generic-man · · Score: 1

    There are the following two "standards."

    Does it render in Internet Explorer?
    Does it render in Mozilla?

    His site passes both.

    Did you buy your shoes from an ISO 9000 certified shoe manufacturer? Good thing you did, or you'd be barefoot.

    That last paragraph makes about as much sense as your argument.

    --
    For more information, click here.
  54. Re:Testing - The Anti Quality Process by generic-man · · Score: 1
    PowerPoint. Here's how to install it:
    apt-get college-degree
    apt-get job
    make money
    apt-get windows-pc || apt-get mac || apt-get wine # Good luck with this last one
    If three of those commands fail, add ftp://compusa.com to your sources.list.
    --
    For more information, click here.
  55. Re:QA by Anonymous Coward · · Score: 0

    Counterexamples: Debian has a community-driven QA system and takes care that its (long awaited) releases are bug-free. The same can't be said about OSs from Microsoft (what are Service packs made of?) or even Apple (users of OSX prior to 10.2 should remember about that :) ).

    And again, this is polish after the fact.

    The Debian community QA system is not really QA but rather product polish. No large changes are made prior to release. How often does the Debian community completely revamp a release because something could be done more intuitively, or easier, or perhaps possibly because it would just plain provide a better user experience.

    Debian has an operating philosophy and that is fine, they are free to do whatever they want but don't pretend that polishing a product is QA.

    As for the Jab at windows, I will say that while there are a lot of service paks for windows to fix horrible design flaws in the security subsystems, the QA for windows was done semi-properly the first time.

    QA is not a bug hunt, it is a complete picture of how the user and in this case, OS, will interact. I think they did a great job with the UI personally but failed in the security part of QA.

    Also, release in the Linux community rely on other software to become a usable system. How can any distro invest the time, effort, and money into doing QA for every package they install. They can't.

  56. Quality problems by Z00L00K · · Score: 3, Interesting
    I have found out that what really has happened in large organizations talking about Quality is that they actually tends to see Quality as a documentation question. With that I mean that the Quality people are requiring a completely new set of documents that are stating how the work was done, but not really why. On a frequent basis none of the Quality documentation is actually documenting the state of the product itself, but is yet another workspace that actually is there only to produce documents.

    The quality of the product is not in focus. If you try talk about things like Lint and Purify with persons representing Quality you will get an answer that that isn't about quality at all...

    So the whole Quality business is something that is invented to support itself and not the end customer of the product. In the long run the customer is actually more interested in the quality of the product than any provided documentation that states that this product was created with our Superior Methods and Ultimate Skill. That documentation doesn't help at all if the product crashes twice a day...

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  57. Well duh... by Tuffsnake · · Score: 0

    QA is not equivalent to 'testing'

    No 5h1t, QA is production ... at least in my experience ;)

  58. testing?-Deming. by Anonymous Coward · · Score: 0

    "It is constant feedback throughout the whole design process that is most important."

    Well it's more than that. Reading anything by Deming for details.

  59. Re:QA by SillyNickName4me · · Score: 1

    > The Debian community QA system is not really QA but rather product polish. No large changes are made prior to release. How often does the Debian community completely revamp a release because something could be done more intuitively, or easier, or perhaps possibly because it would just plain provide a better user experience.

    You DON'T.

    Its that simple, it is better to have a product that is maybe not ideal for every case now then nothing now but a perfect product in 2 years, especially when having the imperfect product now doesn't preclude fixing what you found to be wrong and enhancing what you found can be enhanced.

    Release often, release early. That may be against the specific idea of QA and releases that you have in your mind, but it seems to work really well from a real world point of view (unlike from a theoretical textbook point of view maybe)

    > Debian has an operating philosophy and that is fine, they are free to do whatever they want but don't pretend that polishing a product is QA. .....

    > As for the Jab at windows, I will say that while there are a lot of service paks for windows to fix horrible design flaws in the security subsystems, the QA for windows was done semi-properly the first time.

    Have you ever seen Windows 1.0 That my friend was the first time they could have done QA, and I am very sure they did no QA there whatsoever. Lets try again, WIndows 2.0? uh....

    Actually, the first real attempt at QA was for Windows 3.0, that is the 3rd major release of that product. How do you mean they got QA the first time around? (not even talkign about proper QA, just an attempt at it)

    > QA is not a bug hunt, it is a complete picture of how the user and in this case, OS, will interact. I think they did a great job with the UI personally but failed in the security part of QA.

    They ripped off the Workplace shell, didn't manage enough QA to manage an anywhere consistent user experience for another 2 or so releases, and are still not close to the quality and user experience of what they started out ripping off. You call that a great job? please..

  60. Testing is not part of QA at all by gosand · · Score: 1
    Quality assurance is a process that runs through the entire project, testing is a component of that process.

    To be technically accurate, testing is NOT a part of Quality Assurance at all. In the strict CMM model, they have nothing to do with each other. SQA (Software Quality Assurace) is all over the board, and I don't even think testing is mentioned much.

    However, this is one of those things where the industry has misued a term, and it has stuck. I just left a company where I was the SQA leader, and I came to a small company where I am the QA manager. Needless to say, my roles are VASTLY different. But there is a reason I left the other company. :-)

    --

    My beliefs do not require that you agree with them.

  61. Re:Testing - The Anti Quality Process by mrkitty · · Score: 1

    If it only works in IE then obviously it wasn't QA'd properly and we shouldn't bother visiting your link since the person can't even get something as simple as a web page tested properly.

    --
    Believe me, if I started murdering people, there would be none of you left.
  62. RTFA - QA != Testing by gosand · · Score: 1
    The writer talks about separating QA from the Development group. In our organization, this was a large part of the problem. First, there was a tendency for the development group to "throw it over the fence" and expect QA to find problems that the engineers couldn't be bothered to look for. The QA staff, on the other hand, rarely had engineers of a sufficient caliber that had the insights to search for and find the most insidious problems. Not only that, they (QA) occupied the no-man's land between business users and development, understanding neither area with any clarity.

    This one has been in my craw for years (as evidenced by my use of the word "craw"). The industry has taken the term QA and changed the meaning. QA (or technically, SQA) has absolutely nothing to do with testing. Testing has nothing to do with SQA. Read the CMM model, testing isn't really even mentioned while SQA is an entire KPA on its own (at level 2) and is peppered throughout the other areas as well. (sorry, KPA is Key Process Area)

    I want to say that I am not necessarily advocating one way over another. But I don't like it when terms are misused. Testing is testing, QA is QA. I am not going to why, except to say that QA applies to the entire development process and deals with adherence and improvement of process.

    I just left a Fortune 25 company in an SQA role to go to a small company where I am the QA manager. That means testing manager. So I am not saying that the CMM is the solution to the world's software problems. But it has its place, and if you are going to use it, then use it as it was supposed to be used. Unfortunately, I am now part of the problem.

    --

    My beliefs do not require that you agree with them.

    1. Re:RTFA - QA != Testing by Anonymous Coward · · Score: 0

      It seems most QA guys have a big chip on their shoulder.

  63. Re:Any chance.. (???) by gosand · · Score: 1
    ..Slashdot editors could apply QA to the spelling in posted stories?

    Perhaps if you read TFA, and understood what QA really is, you would know that your statement doesn't make any sense. Yeah, you were trying to be funny, but it is obvious now why this story is necessary.

    --

    My beliefs do not require that you agree with them.

  64. Prototype != Specification by radtea · · Score: 2, Insightful

    In that case you have a specification! In the form of your static prototype.

    A prototype and a specification do not contain the same information. A prototype consists of a single concrete instance of the thing a specification describes. It contains more information than the specification in some respects (the concrete design choices the implementor has made to fill in the gaps the specification is silent on) but more importantly it is also missing information that is absolutely required in a specification.

    For example: What are the tolerances on particular processes? What are the scaling and responsiveness requirements? And so on.

    Nothing that does not capture this kind of information is a specification, and so far as I know only a document can capture this kind of information.

    Don't get me wrong: prototypes are useful. But they are not specifications, because they do not contain the all of the information that a specification must contain.

    --Tom

    --
    Blasphemy is a human right. Blasphemophobia kills.
  65. Quality is for galley slaves. by gelfling · · Score: 1

    Quality is for people who intend to be dead ended in their jobs. My directors and executives stay in their jobs for about one year at which time their mistakes, lazyness and venal corruption become someone else's problem. Quality is for losers.

  66. Re:QA by Anonymous Coward · · Score: 0

    Have you ever seen Windows 1.0 That my friend was the first time they could have done QA, and I am very sure they did no QA there whatsoever. Lets try again, WIndows 2.0? uh....

    Are you honestly comparing the QA done for the first two releases of windows to what QA would be in the world today.

    Windows 1.0 was fairly progressive for it's time. Not because of what it was but because of the accessibility. You contradict yourself above when you say Its that simple, it is better to have a product that is maybe not ideal for every case now then nothing now but a perfect product in 2 years, especially when having the imperfect product now doesn't preclude fixing what you found to be wrong and enhancing what you found can be enhanced.

    Windows 1 and 2 QA was on par with the QA of that time period.

    They ripped off the Workplace shell, didn't manage enough QA to manage an anywhere consistent user experience for another 2 or so releases, and are still not close to the quality and user experience of what they started out ripping off. You call that a great job? please..

    Consistent with what? With all the other mainstream GUI's out there. Give me a break. How can a 1.0 release of software be consistent. Perhaps a 2.0 release can but with the advances that were happening in computing at such a rapid pace during that time, why be consistent when doing so would mean you are left behind?

    Like it or not Windows, brought computing to the mainstream. That was its goal. I think the market share speaks for itself in showing that QA was a success.

  67. Re:Testing - The Anti Quality Process by Stiletto · · Score: 1


    You should:

    apt-get a life

  68. Re:Testing - The Anti Quality Process by budgenator · · Score: 1
    sorry in Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) Gecko/20041217, the only thing that renders is the word outline, everything else is blank frames, with javascript like
    if( !(IsWin("PPTOtl")||IsWin("PPTNav")||IsWin("PPTOtlN av")) )
    {
    obj = document.all.item("Main-File")
    parent.location.href=obj.href
    }
    I'd say its pretty windows-centric; and doesn't handle unanticipated user input gracefully.
    --
    Apocalypse Cancelled, Sorry, No Ticket Refunds
  69. It is about communication, not skills. by gosand · · Score: 1
    . I think that all biz people need to take a basic programming course, and all coders need to take a business class. The gulf of poor communication between the two camps is quite large without it.

    I completely disagree. That is not the problem. The problem is that business people can't make their requirements clear, and developers need to be able to get out of their developer mindset.

    In my 12 years in software testing and QA, I have found that for the most part developers think like developers and cannot seem to get out of that realm. When translating requirements, it leads to huge miscommunications. Likewise, whoever writes the requirements states them poorly. This leads to misinterpretations by developers and everyone else.

    The business people should be able to state clearly what they need. Someone needs to be able to take those needs, translate them into good requirements, and developers need to be able to code to those requirements.

    IMO, miscommunication causes many more problems than just coding errors.

    --

    My beliefs do not require that you agree with them.

  70. Re:QA != Testing (let's try one more time) by gosand · · Score: 1
    Quality assurance is to make sure that the software is of good enough quality before release and testing does confirm the case.


    Technicallyk, Quality Assurance has nothing to do directly with the quality of the software. It deals directly with the quality of the processes that go into making the software. Software doesn't pass Quality Assurance, the processes are what QA is concerned with.

    --

    My beliefs do not require that you agree with them.

  71. Testing suffers with deadlines by Anonymous Coward · · Score: 0

    Deadlines are good, but when the deadline is set in stone and development slips, it's usually testing that must take up the slack. That means three weeks of testing gets cut to three days and the product gets shipped even if serious problems are found because there is no time in the schedule for development to go back and fix the problems.

  72. Quality is coordination. by Anonymous Coward · · Score: 1, Insightful

    I've been on various QA/Testing (no, they are not the same, but my team performs them both) teams for the better part of three years now.

    The most severe downfalls I've seen are when the marketing teams and development teams do not adequately communicate with the QA team.

    In order for QA to be successful, the QA team must be aware of and in tune with marketing's idea of how the product is envisioned to perform.

    Nothing is more frustrating than logging a bug that is a critical flaw in the operation of a product to get the developer response "spec discrepancy" ... and the defect is thrown to the wind, because marketing refuses to update their first (and apparently final) draft of specs to accomodate the new feature that would make the product much more palletable to a prospective consumer.

    I was disappointed to enter this thread and see stabs at Microsoft testing and other mindless drivel I'm used to seeing at /. We need some more comments from people in the industry, whose job titles actually include the phrase "Quality Assurance" or "Software Testing" or something.

    Of course going AC here, lest my co-workers lynch me. ;D

    1. Re:Quality is coordination. by thagrol · · Score: 3, Insightful
      I've been on various QA/Testing (no, they are not the same, but my team performs them both) teams for the better part of three years now.

      Try 15. (In software and in manufacturing)

      The most severe downfalls I've seen are when the marketing teams and development teams do not adequately communicate with the QA team.

      I have to disagree, the most severe downfalls I've seen are when the ship to customer date isn't allowed to slip but the date for development submitting to test is. Test end up having to do a month's work in a week and there is no time to fix bugs. So it shouldn't be a surprise when the product ships with known, unfixed crtitcal bugs and the customer ends up cancelling the entire contract.

      In my experience what you need to produce some sort of "quality" product is a sales team that doesn't over promise, senior management that are aware that you can't just tack on some testing at the end and it'll be alright, clear specs, and enough time to actually do the job.

      Oh, and a test team that are commited to the role, not a bunch of wannabe programmers who see it as something to do for 3 months just to get a foot in the door.

      Good communication helps, as does a good working relationship between teams but neither is entirely essential.

      Having said the above, it's also my belief that the strongest impediment to producing high quality software is the end user license. As long as software producers can disclaim any and all responsibilities, fitness for purpose etc there is no incentive for them to do it right.

    2. Re:Quality is coordination. by Anonymous Coward · · Score: 0
      It's also frustrating to have a bug filed as "critical" because the QA person is so out of touch with how the product is used that she managed to assemble a set of parameters that could never exist in the wild.

      Not that I'm saying it's not a bug, it's just not critical. When you've got bugs to fix that really are critical, it's not an effective use of resources, especially when the time to fix the bug is all out of proportion to how important it is.

      (AC because our group's so small, anyone who spotted this would know exactly who I'm talking about)

  73. OK... I'm tired of hearing this. by Xiver · · Score: 2, Insightful

    Cost, Time and Quality and you can only have 2 out of the 3.

    Every time I hear this I cringe, because it is complete crap. On a small level or to someone who has no quality assurance practices in place, it appears to be true, but for large projects/products quality assurance is inversely proportional to cost and time precisely because it cuts down on the amount of time required to develop and test a product to its specifications. Quality assurance procedures will help ensure that errors are caught early on in the project lifecycle and develop standard procedures for project development which may have an initial hit on timelines, but in the end save time. The really nice thing about good quality assurance procedures is that they generally get easier as people get familiar with them and time goes on.

    For instance, you can have a project done fast and cheap but the quality will be lacking. Or you can have a project done correctly and quickly but it will cost you a fortune!

    I'm assuming that when you say quickly here you are thinking of thowing more manpower at the solution because, as the time to complete a project increases the cost increases and vice versa. Quality does not mean features and flawless software. It means that your client gets what they ask for on budget and it works like specified.

    Cost is directly proportional to time, quality assurace might add some time to the project, but it has been my experience that the time it adds is usually offset during testing and not having to add features that a client expects during / after internal testing.

    --
    10: PRINT "Everything old is new again."
    20: GOTO 10
  74. You struck a nerve by Anonymous Coward · · Score: 0

    I wrote the parent.

    I pretty much agree with everything you said. When the organization started the ISO process they gave it to an idealistic, hard working guy who tried to do all the 'right' things. He got bogged down in the process and management got impatient because things weren't happening fast enough. They appointed someone who 'just got the job done'. The result was that the 'right' things didn't get done but we got to crow that we were now ISO compliant.

    Your comment about killing rogue projects points to another thing wrong with the process. Skunkworks, back-burner and rogue projects are a major source of innovation. Kill those and you ensure that the company will ossify and die. Peters and Waterman in their book "In Search of Excellence" point out the importance of such projects for such companies as 3M. Clayton Christensen in "The Innovator's Dilemma" points out that most important innovation in companies comes from such projects and that companies that can't cope with disruptive innovation are replaced by companies that can. Ergo, you can use the ISO process to commit slow corporate suicide.

  75. QA, in other industries.... by ImaLamer · · Score: 1

    My grandfather worked in QA for 25 years at Drackett testing products such as Drano, Windex, various Glade cleaning and scent products, mops, cleaning cloths and so forth.

    From what I could gather about their work environment, it was middle-managed, and led to promoting the ones with the most ambition (as opposed to know-how). But then again the company was sold to MeadJohnson and restructured. But products weren't rushed and often "bugs" were discovered before shipments arrived.

    As far as Quality Assurance, it was serious business. A cleaning product that produces it's payload via a spray bottle can run into loads of problems. Incorrect pressure can cause weak or excessive sprays and nozzles made out of the wrong plastics can break down after a few uses. Trust me, we saw a lot of products that did and didn't make it to market (including Nutrament which sadly did, although I hated it). In fact I've later cursed "OrangeClean" because their spray mechanism suffers from a problem I've heard of plenty of times. Every product truely had a story and everything had been thoroughly tested - we all made sure that happened. Before working in QA my gp worked as a chemist so he's pretty smart too. He really had the ability to look at the entire project and seeing possible conflits - a knack he still has.

    My point is that if you call yourself QA you need to have some know-how and you need to truely test everything. Not every software project needs to meet governement software guidlines but QA should be your bug testers, anyone brave enough to run the software in a production (like) environment. Project managers should be heading up things like compliance, if I'm not mistaken. It makes more organizational sense. Teams should be formed around their functions, eliminating management levels and unneeded personnel.

    Let your "QA" team work on things like sending design considerations back to the project managers/leaders and alerting them to potential breakdowns. QA == Testing, it does, it does, it does. I'm sorry but the process includes a lot of testing. They don't have to test the final product, they can test prototypes and then the final product - but they should never make the business decision. (Never)

    1. Re:QA, in other industries.... by RM6f9 · · Score: 1

      QA *Does* equal testing: In order to Assure Quality, someone must use and observe (TEST!) the product in order to ensure that it does what it's supposed to do. The only nit I have to pick is that each and every iteration of a product *must* be tested prior to release to customer, in as many different end-use environments as are probable/possible/financially feasible: The testing department is the *last* chance to save the entire firm's product's reputation, and each member of the testing department should be armed with a very large red pen that has the authority to BLOCK shipment/release until the product meets whatever specifications/standards were previously agreed to before production began. (The business practices reputation is outside the scope of this discussion). Companies that do the above (or used to) usually do much better than those who do not. (The "used to" is directed towards those firms that have cut their testing departments and are coasting on prior earned reputations)

      --
      Take the 90-Day Challenge! http://rwmurker.bodybyvi.com/
  76. How to make the QA guy want to kill you by dmorin · · Score: 1
    Here's a conversation that happens at our shop every week, and it's funny every time:

    Project manager: Here Josh, here's your test plan.

    QA guy: Thank you. *tests* The results I get for #3 are not what you said to expect. Looks like there's an error.

    Engineer: *thinks about it* Oh, ok, yeah. That's not really an error. Ignore that one.

    QA guy: *steam comes out of ears*

    1. Re:How to make the QA guy want to kill you by Anonymous Coward · · Score: 0

      Trust me, it's worse when you as the QA guy design the test cases (as it should be, I might add) and you find a "bug" that isn't because you screwed up your understanding of the requirements. It goes like this:

      You (QA Guy): Engineer, I have the results from the test cases. I ran into a bug with #93. (blah, blah, blah you explain the error here)

      Engineer (fumbling through the requirements): Umm..no. That's not how it goes. Your test case is bad, that's not really a bug.

      You: ... but it failed?

      Engineer: Yeah, but that's not what the requirements say, so it isn't a bug. I'm going to go ahead and close it. You can take it up with the project manager if you want.

      With a QA guy who isn't a stickler for details (the basic requirement for a QA guy), this repeats until the Engineer is steaming from the ears.

    2. Re:How to make the QA guy want to kill you by Anonymous Coward · · Score: 0
      A few points in response to both your and the parent's post:

      1. QA guy should write the test case (as you pointed out).

      2. Engineer should not be using requirements as a defense, since QA guy should be well aware of the requirements, having been involved with them from the start (as QA is more than just testing), and in fact the test case should have been written directly from the requirements.

      3. Engineer should not have the authority to close an issue. That is QA guy's responsibility.

    3. Re:How to make the QA guy want to kill you by Anonymous Coward · · Score: 0

      Dan? I didn't know you posted here. Where are we going for lunch?

      Sorry... I just poked my head over the wall and Dan said he didn't post this. Spooky as that is what happens here.

  77. Those Are Not the Reasons by Black-Man · · Score: 1

    If they are they are illigimate.

    1. Please. We are all professionals. If you need to be in a separate dept so as to not hurt someones feelings... you have the wrong people.
    2. Not saying the entity is NOT a full time job. Developers are not QA.
    3. Most organizations tend to blow off the QA depts - so that excuse doesn't hold water.

    If they were part of the process - from the beginning - there would be less time lost due to software quality. Work with developers within it's own discipline. It can be done!

  78. Sometimes formal QA is needed, sometimes not. by Richard+Steiner · · Score: 3, Interesting

    When I worked in a mainframe group at a major airline writing code for internal use in flight ops, we had a small team of a dozen or so experienced programmer/analysts (perhaps 15 years of experience on average) who each knew their business/application area rather well in addition to being quite competent technically.

    We also tended to work directly with a dedicated set of business analysts who were also quite experienced, being dedicated "end users" from various operational areas, and it was a collaborative effort to design and implement projects large and small.

    After years of working with the same experienced people, the system worked *very* well. We had processes in place to help ensure that proper testing and documentation was done and that no unauthorized production loads were made -- otherwise, we basically trusted people to use their best judgement.

    Since the folks who were writing the code were also supporting the application 24x7 on a rotating basis, they had a vested interest in keeping the system stable.

    I think that demonstrated (at least to me) that sometimes a full-blown separate QA process isn't required. By doing things in a somewhat abbreviated way, however, the group was a lot more agile, and quality fixes could literally be coded and loaded in a matter of hours (in some cases).

    When I worked for Unisys on application development for paying customers, however, we had a much more formalized process. We had dedicated business analysts writing the func specs, programmer/analysts to write code to those specs, and dedicated QA people who designed and helped implement formal test scripts (both manual and automated) before the product was rolled out.

    The size of the group and the nature of the product made that level of QA more important, I think, but it was also implemented knowing that the software development cycle in place was a slow and deliberate process.

    Moral of the story: Maintaining a local system for internal corporate use is sometimes a VERY different process from developing commercial software for external customer use, and the two situations can sometimes differ greatly in approach while still maintaining a very high level of quality.

    I also think it depends quite a bit on the quality of the people you have in place, and also on the level of experience those people have with the product, the technology, and in working with each other. Experienced people can work wonders if you let them.

    --
    Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
    The Theorem Theorem: If If, Then Then.
    1. Re:Sometimes formal QA is needed, sometimes not. by rainman_bc · · Score: 1

      Bingo! Someone with more sense than many IT people.

      Usually, business needs change on a regular basis, and systems need to evolve rapidly to meet those needs.

      Sometimes a formal development cycle can take a menial process and make a spectacle out of it. A 5 minute fix can take days if it's too formalized.

      While in sensitive, high availability applications there is a need for a formal, slow cycle to ensure nothing breaks, there's something to be said about the extreme programming model too.

      --
      09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
    2. Re:Sometimes formal QA is needed, sometimes not. by fred+fleenblat · · Score: 1

      Similar to that sentiment...I tend to anticipate quality needs by the number of customers. A custom app for a single customer on a single platform isn't going to be exposed to tons of variables. Once it's installed and running, it will likely keep running until the underlying hardware craps out, except for dumb things like memory leaks.

      If you have, say, a dozen customers using the software, you'll run into more platforms. The code starts getting a few #ifdefs. Then some thread-safe system call turns out not to be thread safe on some other platform, or a system call has slightly different semantics, or /usr/lib isn't laid out like you thought it was all the time. The installer program becomes spaghetti at a slightly faster rate than the rest of the code.

      Ramp up to a thousands of customers, and while management is now happy because they can do revenue projections and spreadsheets and other MBA stuff, now your life is heck. You have to port to almost every version (in the last 10 years) of 9 different posix-ish platforms, plus win98 and NT. You start getting elevated support calls that boil down to spyware stealing cycles from your app. People install your data files on wacky hardware like USB 1.1 RAID over Samba. User's machines are partitioned oddly and /tmp fills up before your installer even has a chance to check for disk space.

      If you have millions of customers, you're screwed. No matter what you do, almost any code you write or change will get broken somewhere on someone's machine because of some insane impossible-to-debug three way interaction that never, ever, happens in debug mode. Things like java and c# start to sound like good ideas.

  79. Re:QA by timmi · · Score: 2, Insightful

    In reality, Windows rose to dominance because it was an inferior product brought to market at the right time.

    businesses chose to use windows because they wouldn't have to rewrite all their legacy/mainframe/in-house apps, because underneath it all, you still had DOS. and if your app didn't play nice with windows task-switching of DOS apps, you could exit wondows entirely, and have essentially a clean slate for the custom app to use.

  80. Re:QA by SillyNickName4me · · Score: 1

    > Are you honestly comparing the QA done for the first two releases of windows to what QA would be in the world today.

    I am saying that it isn't proper QA to todays standards indeed, answering the claim that it had sortof proper QA from the start.

    > Windows 1 and 2 QA was on par with the QA of that time period.

    Having worked for a company that at the time was involved in the development of Windows (upto and including version 3), I can honestly say it was not on par with QA at that time period. It was an experiment, no more and no less. MS had to have a GUI thing seeing the succes of Apple. Only after 2.1 did they start to consider what their users might want from it, and the difference that made is history.

    > Consistent with what? With all the other mainstream GUI's out there. Give me a break. How can a 1.0 release of software be consistent. Perhaps a 2.0 release can but with the advances that were happening in computing at such a rapid pace during that time, why be consistent when doing so would mean you are left behind?

    Consistent with itself for a start. The 'make action X perform the same thing everywhere' kinda idea.

    They ripped off the Workplace shell for WIndows95 btw, so no 1.0 release here. From that point it took them to XP to make it at least moistly consistent with itself.

    I'm ignoring the 1.x, 2.x and 3.x era there, bt I should have said that at least they tried to think up something there themselves, and managed somewhat with 3.0 and esp. 3.1 after 2 initial attempts that looked and worked like shit. It had to be thrown away mostly (but not completely) for 95.

    So, to conclude, the first incarnation did not have QA, also not to the standards of that time, and definitely not something you could call somewhat proper QA nowadays.

    THe 3rd incarnation had for the time proper QA, and we'd probably recognize it as proper QA still nowadays. The result of which was somewhat dramatic btw.

    The 4th incarnation (WIndows 95, ignoring NT 3 and 4 here for a bit) used an UOI that was a ripoff of an IBM project that MS used to have a share in, a ripoff that didn't manage to be at least consistent with itself for quite some time.

    I'm ignoring NT 3.x and 4.x here because this was about the UI, and both basicly retain the WIndows 3.x UI.

    Also, one can argue that the Windows 9x UI is vastly superior to the one of 3.x and I agree when looking at how it looks and what functionality it offers. That said, the Windows 95 interface has serious quality issues, which is somewhat surprising because there was a very good example out there that MS had access to, and that did get proper QA from the start.

    They copied the look and feel, but not the underlying ideas and design (one of the reasons why shortcuts work as bad as they do once you move or delete the target) and as said, didn't do proper QA there.

  81. OT but Related: Test First Methodology by Anonymous Coward · · Score: 2, Interesting

    My contention is that the requirements and design process is more broken than the rest of the software development process. I believe that this is the actual cause of the rise of "Test driven" or Test First" development process currently being peddled as the silver bullet, here what I believe is a more forthright characterization of the methodology:

    Due to the fact that the requirements creation process for software is irreparably broken, we have devised a way to sidestep it.
    By having programmers/developers/software engineers write tests first, we actually are having them create software encoded and automatically testable requirements documents
    - it has less to do with testing and more to do with recording design, requirements and assumptions.

    Without a functioning requirements process, the development process is hindered, but Testing (commonly known as QA) process is really screwed.

  82. Scrum and CMM by Digital_Quartz · · Score: 1

    I'm not calling Scrum bizzare. Scrum seems like a good way to develop a piece of software where the requirements churn is very high. I have a hard time thinking of such a system off the top of my head. It might be an acceptable way to develop a low-churn system where you want your time-to-market to be next to zero, provided the cost of a failure is very low, and redeployment costs are minimal, and you don't mind burning some cash down the road to get to market first. A web-based email system, for example, might be a good candidate for scrum. I'd also think that you would need a fairly small team size for scrum to work properly, although I don't have data to back that up.

    A mission critical system, though, where the cost of failure is high (say, death), is not really a good candidate for Scrum. If you worked at Boeing and found "777 left wing" in your process backlog, you'd probably want to seek employment elsewhere.

    With any mission critical system, you need a very clear understanding of the requirements before you start design - otherwise there is a high probability that your design will fail to meet one of those requirements, and therefore the system will likely fail. The whole point of scrum is that you basically make up features (and, therefore, requirements) as you go along, and hack them in. Your product backlog is basically just a list of features you want but haven't had time to hack at yet.

    The requirements of a mission critical system do change, as new features do get added (communications gear is a good example of a critical system with low-medium requirement churn), but scrum is still, IMO, inappropriate, as the rate of change is generally far too low.

    Scrum also seems to lead to a lot of rework. If you find a requirement buried in your product backlog which you hadn't previously considered carefully, you may find you have to rewrite a substantial ammount of design to add that requirement. Again, in a system where your requirement churn is high, this is perhaps unavoidable, but in most systems (especially mission critical systems) the majority of your requirements are known ahead of time, so all that rework just becomes waste. The waterfall model would serve you better.

    Finally, Scrum has a few pitfalls. Since your product backlog is generally full of features, it's easy to end up doing things like assigning features to designers instead of subsystems. The "sprint" mentality also seems to make it easy to shirk the responsability of producing correct documenation. You can do (or fail to do) these things with the waterfall method too, of course, it just seems like Scrum almost promotes them.

    As for "There's nothing inherent in any agile methodology that precludes CMMI compliance," I'll point you to the Agile Manifesto. Let's just look at those first two points here;

    1) "Individuals and interactions over process and tools"

    How does this relate to CMM?

    "Success in Level 1 organizations depends on the competence and heroics of the people in the organization and cannot be repeated unless the same competent individuals are assigned to the next project. Thus, at Level 1, capability is a characteristic of the individuals, not of the organization." - http://www.dfas.mil/technology/pal/cmm/lvl1desc.ht m

    So the first point of the Agile Manifesto seems to scream out CMM level 1.

    2) "Working software over comprehensive documentation"

    Even if you had excellent quality software with poor documentation, the software would be difficult to change and maintain, unless you assign tasks to people who are intimately familiar with the existing code base (Sound like CMM 1 again?). If a person moves to a new project, there is a siginifigant learning curve. This is compounded by the unfortunate fact that, at my company, developers are assigned features, rather than subsystems. A new developer must t

    1. Re:Scrum and CMM by glew · · Score: 1
      So the first point of the Agile Manifesto seems to scream out CMM level 1.

      I don't know, valuing people over bureaucracy sounds like an inherently good idea. It screams out many other things too, including "company you can work for without going insane" and "will attract the good coders".

      Come on, one of the cornerstones of our culture is "Mistrust authority, promote decentralisation". It really hurts to see authoritarian systems being promoted like that.

    2. Re:Scrum and CMM by dillon_rinker · · Score: 1

      one of the cornerstones of our culture is "Mistrust authority, promote decentralisation".

      Excellent! Our popular media propaganda plan is working!

      Now, for the next item on the agenda...we must mandate educational reforms at the Federal level that are opposed by leaders at the state level. As a follow-on, we will construct a Federal bureaucracy to administer prescription-drug benefits. To prevent popular uprising, we will mobilize the state militias overseas.

  83. I'll put it simply by Anonymous Coward · · Score: 0

    Testing = finding bugs
    QA = determining which features are required, and whether or not they work as intended for the end-user.

    I'll admit though often there is overlap between the two. If your bug-testing team keeps complaining about a certain feature being counter-intuitive, or whatever, then QA should listen and decide to fix the problem (even if it does not qualify as a "bug").

  84. QA Testers by DesertBlade · · Score: 1, Funny

    QA Testers don't break software; it's broken when we get it.

    --
    Half of writing history is hiding the truth.
  85. Ever considered that by patrixx · · Score: 2, Insightful

    the reason that "testing must take up the slack" could be because of lack of reasonable deadlines/gates in the earlier development stages?

  86. Re:QA by marcello_dl · · Score: 1

    How often does the Debian community completely revamp a release because something could be done more intuitively, or easier, or perhaps possibly because it would just plain provide a better user experience.
    As I understand your comment, it's happening Now

    QA is not a bug hunt, it is a complete picture of how the user and in this case, OS, will interact. I think they did a great job with the UI personally but failed in the security part of QA.

    You are talking about SOFTWARE. QA is a broader subject than bug hunting, but bugs are the most important thing to get rid of, if you talk about quality, IMHO.

    --
    ---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
  87. Pentagon Wars -vs- Inmates Running the Asylum by iamwahoo2 · · Score: 1

    What I do not like from what I have seen of this book is that it seems to place all the blame for increasing featurism on the developer. In my actual experience however this is not the case. Requirements creep is usually caused by users/managers requesting more features. When the developement cost and time increase and the product has decreased stability, reliability, and useability, everyone is left thinking "Where did we go wrong here?" The book is right in the fact that unnecessary/additional requirements cause lots of problems. It just is not always the developers fault. I think the movie "Pentagon Wars" portrays a more accurate picture of how this is in the real world.

    1. Re:Pentagon Wars -vs- Inmates Running the Asylum by chthon · · Score: 1

      I also think that feature creep originates in the fact that someone somehere does not have enough knowledge of the problem domain and/or program, to see where a given feature fits, ie. can it be done with reusing existing features or does it open a new category which has to be carefully added to the original ?

    2. Re:Pentagon Wars -vs- Inmates Running the Asylum by lambwolf · · Score: 1

      What I do not like from what I have seen of this book is that it seems to place all the blame for increasing featurism on the developer. In my actual experience however this is not the case. Requirements creep is usually caused by users/managers requesting more features.

      Actually, I believe Cooper puts heavy blame for feature creep on managers. Managers tend to equate a longer feature list with a better product -- a fallacy that Cooper debunks.

      It's interesting to see how defensive programmers get about the Inmates book. A programmer friend of mine used words similar to some of the comments here -- in particular, feeling "blamed." As a programmer myself, I've seen the phenomena Cooper describes many times, and I agree that I was part of the problem -- as *well* as managers who didn't understand how or why to incorporate a proper design phase into the development process.

  88. Cathedral vs. Bazaar by Digital_Quartz · · Score: 1

    Come on, one of the cornerstones of our culture is "Mistrust authority, promote decentralisation". It really hurts to see authoritarian systems being promoted like that.

    When you start talking about open source, I'd agree. But, when you talk open source, you're talking about a whole different beast. Most OSS projects have no Quality Assurance to speak of, other than the discipline applied by the developer to his own work. There are a lot of different discussions about why OSS succeeds, despite doing most of the things that classical engineering would shun, but regardless of which arguments you buy or don't buy, two things are obvious; OSS works, and the bazaar is nothing like the cathedral.

    Once you start talking about the cathedral, you're no longer talking about our culutre, you're talking business. At the end of the day, I'd rather get my for-work projects done before the deadline with a minimum of fuss, so I can go home and work on more interesting projects. In order to do that, though, I need to the cooperation of the people around me, many of whom are not uber-hackers like you and me, but people who got into computers because that's where the money is, even though they'd really rather be doing something else.

    The cathedral requires a common process which everyone must follow, otherwise we end up working late, past deadline, over-budget, and eventually go under.

    1. Re:Cathedral vs. Bazaar by glew · · Score: 1

      Yes and no. I'd have wholeheartedly agreed to all you say until a couple years ago, as this was very much what I did back then: do some job for the money's sake, and get the real stuff done in my spare time.

      Apart from objections out of principle (I'd rather have more coherence in my life than that now), I can't really do that so much any more: I've got kids now and want to spend time with them as well, so I'd rather have a job that is interesting in and of itself.

      Or to stick with the ESR metaphor: I want at least small spaces of bazaar-like life inside the cathedral -- and yes, I do believe that's doable. We had some semblance of it in a previous team, where we managed to behave more like a startup even though we were part of a large consumer electronics company. We had no hierarchy, little internal documentation, no time tracking, and a pinball machine. That worked in some ways, and failed in others, but we shipped product and had a fairly good time developing it.

      So no, I don't agree that 'cathedral' work (in the sense of making money) needs to be controlled by iron fisted processes. That just turns it into grunt work, and I'll stick by my original claim that CMM is especially good at that. What would be really interesting is a model that helps with some necessary amount of docs and planning but works bottom-up (or even better, just horizontally).

      Ah yeah, and concerning people who got into computers because that's where the money is: I honestly have no patience at all with them.
      Thankfully they seem to be a result of the IT boom a couple years back, and since that has gone away (and with it the idea that there's easy money to be made in coding), there won't be so many new ones. Let's hope the others go away too if we ignore them.

    2. Re:Cathedral vs. Bazaar by sjames · · Score: 1

      When you start talking about open source, I'd agree. But, when you talk open source, you're talking about a whole different beast.

      When it comes to authority, I must disagree. Long before there was a Free Software or Open Source movement, "the management" was a well known term which conjured images of anal-retentiveness and a negative effective I.Q. (That is, people who not only have no apparent intellectual value, but impede those around them from demonstrating their own).

      The entire early history of computing is composed of efforts to decentralize control of computers and to make them available to the masses specifically because strong central authority (the management) was seen as generally harmful.

      None of that is meant to imply that process and procedure is intrinsically bad, just that as a whole, the culture surrounding software development will strongly prefer ad-hoc and flexible over written in stone and will choose decentralized over centralized project management.

  89. Re:Testing - The Anti Quality Process by Paul+Brown · · Score: 1

    You've missed the important bit about the model - you're not looking at all of the beans (or routes through a process to remove the analogy) at once, you're looking at a sample. And each time you pick a sample you see some beans you've seen before. Hence to pick enough samples that you've seen all the beans you needs to pick a vast number of samples.

    Similarly each time you go through a process in a bit of software you're mostly going through the same code over and over again until you get to a new branch you've not seen yet. You can't (by testing the software as a whole) just look at the individual parts.

  90. As an ASP/SQL developer, how can I QA better? by Ride-My-Rocket · · Score: 0, Offtopic

    NOTE: This is a genuine question / request for advice. If you suggestions somehow suggest I can fix all of my problems by ramping up on an alternate skill set (Linux, Apache, PHP, Java, MySQL, PostgreSQL), I've already thought about it. However, I currently spend 4hrs a day commuting and I need to pay my bills, so that's not an option right now.

    I've been creating web apps for 6+ years using ASP, SQL and HTML. I'm fairly attentive to detail, try to make sure my code is legible / portable / documented in-line, etc. However, I'm currently working on a monstrous behemoth of an application and the need exists for some way to automatically test my app out. Can anybody suggest free or trial-based tools/software packages that can help me unit-test my code before I submit it to end users from second-stage testing?

    1. Re:As an ASP/SQL developer, how can I QA better? by javaxman · · Score: 2, Insightful
      I'm currently working on a monstrous behemoth of an application and the need exists for some way to automatically test my app out. Can anybody suggest free or trial-based tools/software packages that can help me unit-test my code before I submit it to end users from second-stage testing?

      The tools you are looking for exist, but they're not cheap and they need someone to create test cases for them and run them. I assume it's a web app you're talking about? Really, you need to hire a professional and give them professional tools. There's no good way to test your app cheaply. What you really need is a copy of Mercury Interactive's Astra or Segue Silk and someone to run it for you.

      If you have to do it cheaply and by yourself, good luck and have fun writing those tests. Do a web search and have fun evaluating tools and writing tests. Here is the first hit I got on google. I've never used it but maybe you could look into ieUnit.

      Oh, and my advice is to find a job closer to home. That commute will literally kill you. No, really, I mean it, you'll die.

    2. Re:As an ASP/SQL developer, how can I QA better? by Ride-My-Rocket · · Score: 1

      There's no good way to test your app cheaply.

      Yeah, that's the answer I've heard pretty much wherever I go. It's not that I don't see the value in spending the money -- it's just that I'm not the one that would be paying for it. Thought it was worth a try, though....

      Oh, and my advice is to find a job closer to home. That commute will literally kill you. No, really, I mean it, you'll die.

      Yeah, I know, I'm working on it. I require a gradually increasing amount of sleep to feel rested for the day ahead -- at first it was 5.5 hours, and 2 years later I now require 6.5 - 7.0 hours just to make it through the next day. Sucks.

  91. quality means conforming to specifications by John_Sauter · · Score: 0, Offtopic

    I would expect the head of process quality at Ford to know that quality means that the product does what it is supposed to do; that is, it conforms to specifications. In addition, I would expect the head of process quality at Ford to know that the World Wide Web is not limited to Microsoft software, but in fact has a set of specifications of its own. Whenever I write or update a web site, I run each page through the W3C markup validation service. I recommend that site to your (and his) attention; it is a good starting point for learning how to write good HTML, and thus quality web sites.
    John Sauter (J_Sauter@Empire.Net)

  92. If only... by Digital_Quartz · · Score: 1

    If only you could adapt the same algorithm to software...

  93. Finally someone else says it by Anonymous Coward · · Score: 0

    I saw this fallacy years ago (>10 years) when I developed software. Tried to change testing procedures. Like trying to fight city hall. I expect his article to change not a thing, sadly.

  94. Oh Shit by Anonymous Coward · · Score: 0

    You should't have said that. Now you'll have every nutty BSD zealot coming out of the woodwork pointing to their dead OS saying that they corner the market on open source QA. Well, it's easy to corner the market on QA when you use OUTDATED software. Sorry, but latest and greatest is where it's at. The latest stuff is usually patched to the gills against new vulnerabilities, where as old code is lacking in features. If you want a feature filled OS, go with Linux or Windows. If you want easy to use and stable, go with MacOS X. If you want archaic, never up to date, backwards, hard to use, insanely complex, unfriendly, bug ridden code, then by all means go with BSD.

  95. Re:Riiiiiigggghhhhhhttttt by smittyoneeach · · Score: 1

    Hmmm...
    s/notch/noth/
    s/nothing/noth/
    Survey says?

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  96. My article on web application quality assurance by MichaelCrawford · · Score: 1
    You may be interested to read my article:

    It's at GoingWare's Bag of Programming Tricks, and is published under the GNU Free Documentation License.

    I was inspired to write it after I got a call in the middle of the night from the CTO of a now-failed dot-com, desperate for help because his eCommerce application fell over under a load of less than fifty users when they deployed it live, just in time for Christmas. This despite the fact that their servers were high-end Sun hardware.

    Despite the best efforts of our valiant hardware engineers to obey Moore's law, careless mistakes by software engineers can and often do reverse hardware performance gains.

    --
    Request your free CD of my piano music.
  97. Re:Testing - The Anti Quality Process by Ulric · · Score: 1

    The algorithm in the Powerpoint document is absurd because nobody tests software like that (for reasons you outline above, among others). Or jellybeans for that matter.

  98. You mean: QA = (!Testing); by kokoloko · · Score: 2, Funny

    Right?

  99. Metrics by Digital_Quartz · · Score: 1

    So what metrics do you use? Do you just tell your team to get their defect/kloc down, without giving them any kind of plan or direction as to how?

    The fact of the matter is, if you have a process, and you follow it on two different projects, you'll get two products of very similar quality at the end. If you don't follow a process, you'll get two products of random quality at the end.

    CMM 1 you get for free. CMM 2 gives you guidelines as to how to establish a process, so you'll be "repeatable". CMM 3 gives you guidelines as to how to make your process better. When you get up into CMM 5, you have a process that makes itself better.

    Again, you have to implement the "intent" of CMM, not the "letter". You don't want to measure your team against CMM, you want to use CMM to reduce your defects/kloc and your effort/kloc.

  100. Nothing new here. Is that good or bad? by javaxman · · Score: 1
    I don't know if I'm happy that there's nothing here that's different from what I learned in my first introduction to Quality Assurance over 10 years ago, or if I'm sad that people still don't understand this stuff.

    Quality isn't something that happens after the fact. Good products are the outcome of good design. Good designs are prototyped, rigorously evaluated, and redesigned as flaws are found. It's not even a software-specific concept.

  101. Re:Testing - The Anti Quality Process by Paul+Brown · · Score: 1

    People do test software like that - web applications and computer games being two examples that spring to mind. If you _only_ test them like that then you're doomed, but conversely if you don't test a product the way the user experiences them then you're equally in trouble.

  102. My experience with QA by Anonymous Coward · · Score: 5, Interesting
    Normally I hate AC, but I have to in this case.

    One of my main Day Jobs up to a few years ago was working in QA for Major Computer and Software Manufacturers.

    The idea of:
    Testing = finding bugs
    QA = determining which features are required, and whether or not they work as intended for the end-user.

    Is fine in theory, but rarely happens in practice. It usually ends up that QA is ignored and conflated into bug testing. And even then, it often doesn't matter.

    Example: I was working on a team that developed an Important Piece of Software That Is Very Popular These Days. We Had No Specification.

    None. After some terrifying meetings with the CEO, we somehow brought it to a 1.0 release. I didn't want to have to go through that little nightmare again, so at the 1.0 post mortem meeting, I asked "So, we built 1.0 without a spec - what exactly are we going to do next? What is the Specification for 2.0?"

    The lead programmer looked right at me and said "The Spec for 2.0 is 1.0."

    We had shipped 1.0 with over 850 bugs, with half a dozen known (if somewhat obscure) crashing bugs, and with several features "turned off" because we couldn't get them to work.

    At that point I knew I had to get the fuck out of there. I wasn't going to spend over 2 hours a day driving just to help this rolling train wreck. I left as we shipped 2.0.

    From there I went to a company That Was Also Extremely Famous (but now defunct) where QA was more of an expensive after thought. they hired a great team, but the engineers were so disjointed that the product kept changing every other month.

    The stress level was so high at that company, of the 120 employees, half a dozen attempted suicide in the 9 months I worked there. At one point, there was such a row in basic engineering philosophy, two of the main programmers got into a fist fight. When the money dried up, we all got laid off.

    We can go on and on about how important QA is, but the fact is, we're in a business that makes products, and when the business is more than a dozen people jammed in a garage or airless office space, the products tend to be driven by marketing droids. Left to their own devices, Engineers will produce complex objects that don't necessarily work or fulfil a worthwhile function, or do it in a way that is elegant and useful. Left to QA, the product never gets out the door, because Software Engineering *ISN'T*. SE is more like knitting or quilt making than an Engineered Science. Bridge Builders use Engineers - they have books full of equations that have been proven over the years and they use these solid tested things in a creative way to solve a problem : how to get from here to there.

    When a bridge fails, or a building collapses, they just look at the evidence and compare it to the known working materials sciences, engineering principles, etc. and figure out how it failed.

    With Software everything is written in a series of codes - at the machine level, we know what they do. But once you get into the meat and potatoes of software development, it all gets very wiggly very quickly. That's why TESTING is needed. And QA should be brought in even before the coding begins - when the UI is being developed, when the notion of the application's purpose and methods are being developed.

    But, as noted above: if QA runs the show: it never ships, as there are always improvements to be made. Always.

    So, you have the maketing droids who have the ear of the business managers who then set arbitrary and insane deadlines. The result? QA can't touch everything, or they conspire with Engineering that some sections are "good enough" and they let it go, so they can focus resources on testing problem areas, in order to meet the absurd deadline.

    The end result is always the same: The public gets buggy software.

    The only question is : How Buggy Is It?

    They flip the crank, they do the late nights, they get the product out. QA and Eng do their littl

    1. Re:My experience with QA by superpulpsicle · · Score: 1

      It's shamed this guy posted as Anonymous Coward. This was absolutely one of the best and HONEST post I have ever come across.

    2. Re:My experience with QA by Anonymous Coward · · Score: 0

      Ironically, this post actually made me feel better about where I work :-)

      I'm doing the AC thing here, too. The company I work for does not even have a QA team and testing is done mostly by project delivery, customer support, and, unfortunately, our customers.

      What caught my eye in the parent post was their tale of developing with no spec. Our story was *exactly* the same. 1.0 was developed with no spec, 2.0's primary spec was "do everything that 1.0 does, add whatever whimsical idea that sales comes up with, and start from scratch because the 1.0 code sucks so badly". Result? 2.0 has *more* bugs that 1.0 and an odd set of new features.

  103. ...until management steps in (on it) by Opus01 · · Score: 1

    Step 1: Receive vague, often times contradictory goals for a new project. Step 2: Drag management, kicking and screaming, into meetings to discuss timelines and project details. Step 3: Some random vice president attends one meeting and kneejerks the entire project into chaos. Step 4: Everyone loses interest. Step 4: Blame IT. Sheesh. Buzz phrases may sound impressive in meetings, but must be backed up by a chnage in management behavior.

  104. Make Author by the+eric+conspiracy · · Score: 0

    Original author of Make and IBM Researcher, Stu Feldman

    make = pain. So now I at least know who to blame.

  105. Well DUH!! by Banner · · Score: 1

    I've been saying this for decades, even here on Slashdot.

    Nice to see this guy has finally gotten it!

    The problem is, the price benefits of Quality are well hidden with today's accounting methods, while the price is glaringly obvious to those Harvard grads who never learned how to program but run the company.

    Last hired, First fired! It's the official slogan of QA departments everywhere.

  106. So you didn't know what you were doing then... by Banner · · Score: 1

    If you follow the CMM, your company will improve it's software and product production. If you are having problems following it, then you really don't understand it.

    Or Software Development either.

    It's not an easy process, you can't instill it overnite, it takes months and years to get up to say Level 3.

    But it works, everytime.

  107. Nice to see someone got it right!! by Banner · · Score: 1

    Wow, someone else on Slashdot who knows what Quality is and understands it!! I think that makes like 4 of us.

  108. Re:QA != Testing (let's try one more time) by ClosedSource · · Score: 1

    "Technicallyk, Quality Assurance has nothing to do directly with the quality of the software."

    QA has nothing to do indirectly with the quality of software either IMHO.

  109. Injecting faults? by Viking+Coder · · Score: 1

    Kind of an off-the-topic question...

    But isn't part of QA in manufacturing to intentionally introduce an error, and to see if it is caught by your process?

    That's a fun thing to contemplate...

    Injecting a requirements error, to see if it is caught. Injecting a design error. Injecting a documentation error. Let alone the act of injecting a coding error - like a crash or a memory leak.

    Wow. The imagination reels, trying to picture those things being caught repeatably.

    --
    Education is the silver bullet.
  110. Re:Testing - The Anti Quality Process by QuartzDaddy · · Score: 1

    I am Quartz's father. I found the replies that were generated by my son's posting are very interesting. My appologies to those who do not have MS Internet Explorer but contrary to what my son claims, I have no intention of changing the page. It just isn't worth the effort to hand craft it in HTML that everyone can read. The objective of the presentation was to show how futile it is to attempt to improve the reliability of a software system of any significant size by backend testing. The impact of any economically feasible test program on the typical defect ridden system is not significant. It then goes on to show how to use some reasonably easy to collect metrics to produce a verification plan that will have a significant impact and that is economical (assuming a reasonable but not exceedingly onorous or rigerous development process which is not changed). One other idea that is very important is the concept of quality as the lack of waste ($)and therefore that quality improvement is the reduction of waste. Waste is not just waste in the development organization. I suspect that Microsoft caused more waste with its operating systems and office tools than they spent on their development. The waste occured through lost productivity on the part of the users. For those who didn't like the analogy built of jelly beans (those blue ones sure taste good!), how about an analogy based on another food group. Mushrooms! (which unlike software defects can be eaten or sold). Consider a wooded park with many trails that fork and rejoin (like the logical paths through a piece of software). On one warm summer morning there are N mushrooms growing in the park. There is a person who walks the same path in the park every morning and who likes muchrooms. On this morning he/she find X mushrooms along the regular path. On a second summer morning there are 2N muchrooms in the park. The person follows the same path and finds 2X muchrooms (the assumption being that the path is representative of the park as a whole). Case 1: Fraction found X/N number left in the park (N-X) Case 2: Fraction found 2X/2N number left in the park (2N-2X) If this analogy holds true, then a given amount of test effort would produce the same fraction of the defects in a software system, regardless of the number present and the more defects a given amount of testing produces, the more defects will be left in the system. The analogy holds not just for software but for blue jellybeans as well. Given that an equal effort will find an equal fraction of the defects, then the analogy can be used to estimate the total defect load at the start of test. If 2E units of test effort were exepended and the first E units found X defects and the second E units found Y defects, then the equation X/N = y/(N-X) should hold true (YX). This can be solved for N. Try it on the JellyBean model examples. It gives much better estimates than the extraplation of the historical data. There is only one way to get a reliable system out of test. That involves putting a reliable system into test. Once the reliability is determined, additional testing is waste. If there are defects, other far more economical methods of finding them exist. Quality is free. But it is not a gift. You have to make an investment and you have to use common sense and maybe a little arithmatic. Testing is intuitively seductive because it looks like it is the right thing to ds. But it doesn't deliver the goods.

  111. Re:Testing - The Anti Quality Process by generic-man · · Score: 1

    Ah, the joys of PowerPoint's "export as HTML" feature.

    --
    For more information, click here.
  112. Stress-testing tool throws java exceptions by MichaelCrawford · · Score: 2, Interesting
    I'm sorry I don't have a link, but once I saw an ad for a stress testing tool that would cause exceptions to be randomly thrown from within a java program. The objective was to test whether you handled them all, most importantly whether you handled them all gracefully, or if your app would just fall over.

    Basically, anywhere within a java program where an exception could legally be thrown, the tool would cause your program to throw one of the allowed exceptions.

    Sure, java has checked exceptions, and you have to either catch and handle them, or propagate them, but requiring this doesn't guarantee you do it correctly. Also there are some exceptions, like running out of memory, that aren't checked or declared in a throws clause, that could happen just about any time.

    Java being an interpreted language makes it possible to do this to a binary, which I don't think would be possible for a C++ executable, but I think some kind of source code preprocessor would allow such testing for C++ programs. Maybe a good open source project for someone with more time on their hands than I.

    --
    Request your free CD of my piano music.
    1. Re:Stress-testing tool throws java exceptions by Viking+Coder · · Score: 1

      Huh. Interesting. I can see how in a critical application space that would be tremendously valuable. Like, if you need guaranteed uptime. You can't test everything, but you can statistically hit a bunch of important stuff, in a semi- or mostly- automated manner.

      I can see how you could do it for C++ - you would need new libraries. Math, memory, file access, networking, etc.

      Cool.

      --
      Education is the silver bullet.
  113. Consistent quality by Ungrounded+Lightning · · Score: 1

    My understanding of the ISO 900x standards is that they strive, not so much for quality, as for repeatability and tracability.

    The drill is not to make the best product. The drill is to not make later products that are worse - or accidentally different in bad ways - than the current product. If that means documenting your mistakes so you can make them over and over again, the same way every time, that's just fine.

    The customer chose your product, warts and all. He built his processes around it (possibly including a wart-removal step). ISO 900x lets him rest assured that he can get more copies without suddenly finding them different in ways that break HIS processes.

    --
    Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
  114. Deming by Anonymous Coward · · Score: 0

    There seems to be a lot of confusion about what Quality is about; people should consider reading Deming, it works for the Japanese.

    Whenever I hear people talk about "new" quality ideas, such as "picking the low hanging fruit" also traditionally known as "chasing fires" my skin crawls.

    Equally enlightening are those who suggest "QA is for Losers" because attitudes - and pay skills - that reflect those attitudes have driven many of the best QA people I know - including myself - from the field - in many cases those of us with BSCS leave the computer industry completely because when we attempt to obtain developer positions the hiring manager assumes we must be idiots because we did QA!

    Few people seem to recognize that design, specification, and paradigm errors are the largest contributors to software problems. Bugs in code are generally the easiest problems to find - and if there are a lot of problems in code, it's a design error. So, we see "black box testing" and shoddy products.

  115. Then you're doing QA wrong. by Ungrounded+Lightning · · Score: 2, Insightful

    if QA runs the show: it never ships, as there are always improvements to be made. Always.

    Then you're doing QA wrong.

    One of the big parts of having a spec and a QA process is to know WHEN TO STOP.

    When you get the function of a part right, and the tests have been run and show it's right, you MOVE ON. You only come back to it if the debugging of a later part reveals a hidden bug that the earlier tests missed (or couldn't test without the availability of the later part).

    When you've moved on from the last part you're DONE.

    --
    Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
    1. Re:Then you're doing QA wrong. by vadim_t · · Score: 1

      That's easy to say.

      To put an example, suppose we take a snapshot of the current kernel source, put a team to work on it, and a QA team of course.

      So, when is it done? When there are no bugs? When all hardware is supported? The kernel is such a huge thing you could keep tweaking it for centuries. Function foo is a bit slower than it should be, function bar could be rewritten as O(1) which would drastically improve performance on 32 CPU machines, etc.

      Then there's the issue that some parts can't be done "right". Some things can be written in ways that are better for one purpose and worse for another.

  116. Re:"Business" as usual by Anonymous Coward · · Score: 0

    I'm a QA Analyst for a large software firm creating a Point of Sale program. It is complete crap.

    It's complete crap because of the reasons you stated above. Our company thinks that QA is a division and not a process. All we are allowed to do is run through some use cases and make sure the thing's still broke. There is no review of requirements (they only write the Use Cases after the module's been built), no code reviews, no Unit Testing, no nothing and the app bearly runs because of it.

    QA is not part of the development process. It's only tacked on after the fact. We often get builds that don't even run only to find out that developers didn't even try to run the app after trying to fix it. They've been getting away with this because the QA department manager reports to the development manager and the QA manager's a real wimp. The developer's excuse is that if they had to test it, it would slow them down. They also use the famous "It's not our job."

    It's been in development for three years and we are currently trying to sell it to customers. One has already dropped us and the two remaining will probably leave soon. We get nightly builds and a weekly build that we are supposed to test each week. It takes at least half a day, sometimes two days, to even get it running.

    It's also so big that it can't all be tested in every release (See this article, also in the Queue last month - http://www.acmqueue.org/modules.php?name=Content&p a=showpage&pid=277) We're way understaffed and they will be more understaffed as every QA person is looking for a new job.

    You're right on with the list you mentioned and we can't get any upper management here to listen to us. The previous poster isn't the only one who's missing out.

    Needless to say, if you are approched to buy "The Next Generation Java POS" and it seems to have more bugs than it should, run as fast as you can. It's worse than you think. They don't call it a POS system for nothing.

  117. For engineering by patrixx · · Score: 1

    or software engineering (whatever that is) this might be true, but software development is different from classic engineering. The money factor is not linear. To put more money into a software project would be more workers since you essentally have no other costs. But this rarely helps quality or schedule (Mythical man month et al).

    "If you decrease time"
    I said nothing about decreasing time, what I meant is that the presence of deadlines or gates in a project is important, because it forces a project to move from reflection to practice. It also helps the team to only do what they beleive is absolutley nessesary, and this promotes simplicity, which I beleive is essential to quality.

    The hard part in project management is to keep the reflection/practice cycle in balance, and to enforce respect of the deadlines, but still be able to push them if nessecary.

  118. QA Is a seperate entity by Anonymous Coward · · Score: 0

    [Perryman]
    Q/A's job is to make sure everything is as it should be. A military example: Switches switch, screws are tight, paperwork is done correctly, no corrosion, no loose parts, etc etc. This applies the same way for this, analogously

  119. Re:QA != Testing (let's try one more time) by gosand · · Score: 1
    QA has nothing to do indirectly with the quality of software either IMHO.


    I am betting one of two things:

    1. You haven't seen it done well.
    2. The effects of QA aren't always obvious.


    I can give you a personal example. At a basic level, part of QA is making sure that you follow the processes that you say you are going to follow. Where I worked before, we said we were going to have a project plan for every release, even if it was a service pack release. It didn't have to be a massive one, as we might have for a full release, but it had to exist. This was to make sure that it didn't affect the schedules of other things that were going on. Well, as part of my QA duties I pointed out that we didn't have a project plan for a rather large service pack, and after discussing it with various managers, one was created.


    Now I can see how you might say "big deal". But having that project plan probably saved a lot of hours of work for some people. If there is a project plan, it gets looked at, it gets updated, it gets watched, it gets a schedule made, and that schedule is worked in with the other schedules. Without all that, it would have been one of those "in our spare time" releases that always seemed to lead to trouble for everyone. Eventually, it would have become a hot issue and impacted all the other projects.


    Not really an obvious or glamorous example, I know. But it definitely affected the quality of our products. Quality isn't just lack of bugs, it is meeting schedules and feature lists.


    But this is also why I don't think that QA is necessary for every project or every company. Some just really don't require it. (and remember, I am not talking about testing here)

    --

    My beliefs do not require that you agree with them.

  120. Re:Testing - The Anti Quality Process by bpettichord · · Score: 1

    An observation. You say that it is not worth the effort to make HTML that everyone can read. And yet you criticize Microsoft for not making software that everyone can use. Aren't both decisions about quality? And in both cases isn't the issue not a matter of knowing enough about to get quality, but simply not always caring about it when the costs are born by others?

  121. The Problem with QA by bpettichord · · Score: 1
    It seems to me that having a separate group responsible for QA can't be the ideal solution. When you have one group responsible for Quality, then what is the other group responsible for? Meeting deadlines? Functionality?

    Quality is a matter of both delivering useful value and a matter of avoiding defects. You need a team/person that is responsible for both. The answer is to make the team responsible for quality, not to attach a QA team to a programming team that isn't doing satisfactory work.

  122. Re:QA != Testing (let's try one more time) by ClosedSource · · Score: 1

    "At a basic level, part of QA is making sure that you follow the processes that you say you are going to follow. Where I worked before, we said we were going to have a project plan for every release, even if it was a service pack release."

    But what if your process didn't include a requirement for a project plan? Then you'd be fully compliant with your process, but you wouldn't have the advantages of the project plan.

    Quality comes from doing the appropriate things for a particular project to make sure a product meets all the requirements. Following a generic or company-wide set of process rules may or may not increase the quality of a product.

  123. How does design assurance differ from Q.A.? by unholyness · · Score: 1
    QA is described as making sure a project is "measurably meeting expectations and conforming to requirements"
    In our company, design assurance is making sure that the design satisfies the specifications drawn up (assuming the requirements were gathered properly). Is Design Assurance a subset of QA?
  124. Re:Testing - The Anti Quality Process by QuartzDaddy · · Score: 1

    I am not sure where you get the idea that I criticized Microsoft for not making universally usable software. The web page I put up is accessable to anyone that uses windows. The same applies to MS Word. Linux users have to use some other word processor.

    My web page was put together to keep me amused and as a resource for looking for work. I don't know what costs might be born by others as a result.

    Quality (or the lack of it) is an economic issue. If someone thought it was worth the cost to buy MS Windows just to read my web page, I would be very flattered but it is not likely to happen. The vast majority of PCs have Windows and MS IE.

    Try to keep a focus on the topic which is the relationship between quality and testing. Its the message that is important, not the package. If it means a lot to you to look at my site, go visit a friend who has windows.

  125. Re:QA != Testing (let's try one more time) by gosand · · Score: 1
    But what if your process didn't include a requirement for a project plan? Then you'd be fully compliant with your process, but you wouldn't have the advantages of the project plan.

    Quality comes from doing the appropriate things for a particular project to make sure a product meets all the requirements. Following a generic or company-wide set of process rules may or may not increase the quality of a product.


    I understand where you are coming from, and I agree. But another part of QA is evaluating the process and improving it. You don't just take a set of processes that you didn't write and maintain and use them blindly. The process didn't require a project plan - but if the project manager didn't have one, it had to be documented why one wasn't necessary. It wasn't, which is why I simply stepped in and asked the question. You are right that you need to do the appropriate things for a particular project, and if that is going to happen it needs to be built into the process.


    Everyone turns their nose up at process, but what is funny is that most people really like it when it is implemented correctly. The problem is that too many companies don't implement processes that work well, and they are too rigid. If they are working, and people just don't like it, then that is an education issue, not a process issue. It sounds all hoity-toity, but in reality all you have to do is create processes that work and that people will use, document them, and revisit them on a periodic basis and tweak them if necessary.

    --

    My beliefs do not require that you agree with them.

  126. Mod parent redundant... by Anonymous Coward · · Score: 0

    Where I am now, 'quality' means ISO-900x. It is a bureaucratic process for keeping things from happening.

    Isn't a bureaucratic process DEFINED as something that keeps things from happening?