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.'"
The major failing of Linux, the dearth of professional QA.
Twenty minutes later, each of the men awoke in a cell. An antidote to the truth drug had been given to each of them before David had left and locked their cell. Mac's powerful body jerked as his consciousness returned suddenly. The world spun crazily around his for a second, the cold over head lights making his head hurt. He choked and gagged almost vomiting for a moment. As the world slowed and the light became barable. He noticed the clear bell shaped plastic tube that now held his huge swollen cock captive. It surged and sucked pumping and teasing his very aroused organ.
Long thin dribbles of clear pre cum ran from his cock into the clear hose, it was already wet. And Mac realized that he must had orgasmed once already! The machine was used to collect sperm samples from the animorph specimens. He knew he'd seen it begin used by Norcott, his hands were bound tightly behind his back. Mac twisted and strained, his huge powerful arms bulging against his bonds. His wrist's ached an blood dripped down his hands. But the plastic restraints slowly began to stretch! A second load of hot thick man milk had sprayed down the hose, an a third was building. Before he at last was able to pull his hands out of the restraints. With his hands free he instantly began scratching..as he itched all over! Unstrapping the milker from his groin, he pulled the vacum tube off his throbbing member. His big low swinging testicles tingled, as his third load shot from his freed cock.
"What the shit?" Mac grunted as his cock began dribbling pre cum again almost at once. Powerful lusts flooded through his body and desire for release overcame him. Mac felt a warmth spreading from his guts, as he jacked his long hard cock quickly. Memories flooded back to him then as his third orgasm slattered cum on the cell wall. Rothman dildoing his ass, pumping the badger mans cum into him! "Rothman!" He snarled savagely. Glancing around quickly he idenified where he was. Holding cell block J5... of course Rothman couldn't move them far by himself! These holding cell's had a weakness...and the big security chief knew it...very well!
Mac Blocker didn't have time for what was happening to him, but he couldn't stop it either. He needed to escape, but his orgasm was beginning to build again. He was security chief of this damned place, did Rothman really think he could stop him by locking him up.
He looked down, something was happening to his cock, it was changing shape. His balls had already become huge and hung low and had a fuzzy grey covering of fur. Fur was growing all over his body, he watched, half fascinated and half horrified as his red human hair began to disappear beneath the tan and grey fur on his chest and belly. He rubbed and scratched his abdomen. He was growing carpet of badger fur on his chest and felt it growing on his back. He felt his face and realized that it was happening there too. If he could have seen himself in a mirror, he would see the beginnings of the distinctive black and white stripes on his face and his nose and lips beginning to darken. The backs of his arms were growing dark with fur.
He was brought out of his musings about his growing furriness by his aching cock. He watched it finish changing into the proper shape for a badger, not that he had ever noticed an animal's cock before, but he guessed this was the right shape, given what was happening. His cock was growing huge and it demanded attention. His mind became simpler in thought as he began to stroke himself with a clawed hand that rivaled that of the ursine animorphs. Lustfully, he began to lick and suck on his own cock. Inside of his mind 'Mac the Man', the extremely heterosexual human male, was disgusted by what was happening, but 'Blocker the Badger' was in complete bliss. He was reliving his swollen balls of he last vestiges of Mac's human genetics. Blocker the Badger kneaded and fondled his balls with one growing clawed hand and pumped the elongated shaft with the other. If Mac had, had a cell mate, male or female, he would be releas
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.
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.
QA != Testing
Doh! I had this in high school software development course.
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.
Let me guess. You see Windows as being top noth.
My father gave a talk at a Quality Assurance Institute conference last year entitled "Testing - The Anti Quality Process". You can pick it up here.
He also has a fairly imposing web page which unfortunately only works properly in IE.
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?
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
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...
"buisiness"!?
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
..Slashdot editors could apply QA to the spelling in posted stories?
It's "business", not "buisiness".
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
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.
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.
Evolution or ID?
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!!
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
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.
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.
Evolution or ID?
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.
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.
Evolution or ID?
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.
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.
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.
Evolution or ID?
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.
Evolution or ID?
Quality Assurance = "do the buttons all do what it says on them?"
I like muppets.
You only get two:
If design is flawed, what should QA do?
...And more, see F. Brooks' "Mythical Man-Month" for example, or Alen Holub's "Rope Long Enough to Shoot Your Leg".
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 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
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.
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'.
come on, most of us are using microsoft. we dont know nuthin bout no qa. what a foreign idea.
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?
The same quality concepts can work for both. It just depends on how you implement them.
Evolution or ID?
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.
I must admit to never having any 'buisiness goals'
Replace the "QA" references with "security" and see a trend in application development...
/*Dave
Comment removed based on user account deletion
QA vs. Business vs. PHB
Been there done that.
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.
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
When they are testing one build, we are already working on the next one. Considering that I am a fresher with relatively lot less experience, this helps me to sort out the problems early on so that I don't build up my whole work on some faulty code.
... and I shall strike upon thee with great vegeance, furious anger and a slightly positive karma.
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.
You can't handle the truth.
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.
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
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.
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
Earn a free iRiver
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.
QA is not equivalent to 'testing'
... at least in my experience ;)
No 5h1t, QA is production
"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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
... 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.
/. We need some more comments from people in the industry, whose job titles actually include the phrase "Quality Assurance" or "Software Testing" or something.
;D
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"
I was disappointed to enter this thread and see stabs at Microsoft testing and other mindless drivel I'm used to seeing at
Of course going AC here, lest my co-workers lynch me.
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
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.
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)
Get your Unix fortune now!
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*
www.HearMySoulSpeak.com
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!
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.
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.
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
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").
QA Testers don't break software; it's broken when we get it.
Half of writing history is hiding the truth.
the reason that "testing must take up the slack" could be because of lack of reasonable deadlines/gates in the earlier development stages?
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.
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.
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?
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)
If only you could adapt the same algorithm to software...
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.
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.
- Use Validators and Load Generators to Test Your Web Applications
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.
Right?
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.
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.
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
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.
Original author of Make and IBM Researcher, Stu Feldman
make = pain. So now I at least know who to blame.
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.
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.
Wow, someone else on Slashdot who knows what Quality is and understands it!! I think that makes like 4 of us.
"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.
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.
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.
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
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.
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
I'm a QA Analyst for a large software firm creating a Point of Sale program. It is complete crap.
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.
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&
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.
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.
[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
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.
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.
"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.
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.
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?