Slashdot Mirror


Should Developers Do All Their Own QA? (itnews.com.au)

An anonymous reader quotes IT News: Fashion retailer The Iconic is no longer running quality assurance as a separate function within its software development process, having shifted QA responsibilities directly onto developers... "We decided: we've got all these [developers] who are [coding] every day, and they're testing their own work -- we don't need a second layer of advice on it," head of development Oliver Brennan told the New Relic FutureStack conference in Sydney last week. "It just makes people lazy..."

Such a move has the obvious potential to create problems should a developer drop the ball; to make sure the impact of any unforeseen issues is minimised for customers, The Iconic introduced feature toggles -- allowing developers to turn off troublesome functionality without having to deploy new code. Every new feature that goes into production must now sit behind one of these toggles, which dictates whether a user is served the new or old version of the feature in question. The error rates between the new and old versions are then monitored for any discrepancies... While Brennan is no fan of "people breaking things", he argues moving fast is more beneficial for customers.

"If our site is down now, people will generally come back later," Brennan adds, and the company has now moved all of its QA workers into engineering roles.

299 comments

  1. Fuck no by Anonymous Coward · · Score: 5, Insightful

    We're lazy as shit.

    1. Re:Fuck no by Decker-Mage · · Score: 5, Insightful

      More like using their customers for beta-testing, just as with every other shop it seems these days.

      --
      "[I]t is a wise man who admits the limits of his knowledge or skill, and that pretending either causes harm." --Terry Go
    2. Re:Fuck no by Bite+The+Pillow · · Score: 1

      Fuck you, a competent developer already does qa, or we wouldn't release it to qa.

      Wait, is it possible that QA didn't write the code, doesn't know its limits, and can put user testing on top of functional testing?

      YES you fucking idiots.

    3. Re: Fuck no by dougdonovan · · Score: 1

      only if you want to keep your job. you have to look both ways before crossing the street. smart phones are more important than pedestrians. they will run you over and keep driving.

    4. Re:Fuck no by serbanp · · Score: 1

      You have a lot of anger, why?

      If you would understand the power of good design specifications, you would see that useful QA (or DV for hardware design etc) does not start from the implementation but from these specs, the same as the designer.

      It is obvious that you have no idea about how QA should work. There is a lot of very good information in this discussion thread about the subject (and some not so good), spend some time educating yourself.

    5. Re:Fuck no by Mr0bvious · · Score: 1

      What do you mean? QA write their tests against the same SRS, they need not know what the code does, they only need to know what requirements it needs to fulfil.

      --
      Never happened. True story.
    6. Re:Fuck no by thsths · · Score: 1

      Exactly.

      It is fine that every developer should be testing. But nobody should be testing their own code - it is just not effective.

    7. Re: Fuck no by PoopJuggler · · Score: 1

      And there are issues with confirmation bias when testing your own stuff.

    8. Re: Fuck no by Anonymous Coward · · Score: 0

      Haha... my code ALWAYS works... I always know exactly what to click and on what order. So if I can just get the users to use the stuff I make it the way I use it. And in those cases where I leave something out, I can give them logins to make work-arounds too.

    9. Re:Fuck no by Hal_Porter · · Score: 1

      You remind me of this

      http://gradha.sdf-eu.org/texto...

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    10. Re: Fuck no by Anonymous Coward · · Score: 0

      The other side of that is that knowing there's no safety net makes people more cautious.

      Or at least the people that shouldn't have been fired already.

    11. Re: Fuck no by CAOgdin · · Score: 1

      Ah, but you can't know the extent and scope of what you don't already know!

    12. Re:Fuck no by tepples · · Score: 1

      In an organization with the budget for no more than one programmer, and a part-time one at that, who should be doing the testing?

    13. Re:Fuck no by Altrag · · Score: 2

      Its still not really "fine," at least not on any sort of large scale. Programming and QA testing are actually quite different skill sets. Certainly there's some overlap (especially if you want/allow your testers to try and find the problem in the code rather than just reporting it) but they're definitely not the same role.

      Add on to that the fact that programmers generally command higher wages than testers on average, and you end up with paying more for people to do a job they don't want to do and aren't especially good at. You're probably better off hiring a tester that can moonlight in another role (maybe even as a junior programmer if you have a second such person and avoid self-testing) than having the programmers moonlight as testers.

    14. Re:Fuck no by Anonymous Coward · · Score: 0

      SRS? I wish. That is a relic of the past; we are AGILE baby! The code *is* the spec.

    15. Re: Fuck no by Anonymous Coward · · Score: 0

      The programmer does QA. And the sales people should be cleaning the office and manning reception, and the CEO should be getting everyone coffees and running your daily standups. And everyone does poorly at these extra tasks, and at best only have 30% of their day available to perform their actual role, because that's how startups/small businesses work.

    16. Re: Fuck no by kenh · · Score: 1

      That is the 'I drive better when I'm a bit drunk' argument - no one believes that, except drunks.

      --
      Ken
    17. Re:Fuck no by Oligonicella · · Score: 1

      Of course they do -- to a degree. They (and you are included in that 'they') just don't test (or even see) the entire spectrum of testing that should be done and hence, don't do it.

      Oh, FYI: that was humor on his part. Untwist your panties.

    18. Re:Fuck no by Anonymous Coward · · Score: 0

      Exactly.

      It is fine that every developer should be testing. But nobody should be testing their own code - it is just not effective.

      The short answer is of course no. They can do some initial work and setup tests and such, but you need others if you want the best results.

      Equally importantly, the testers can tell you more than whether your code technically works. They can give you valuable feedback on what to improve.

      Now if you really want to get an update out the door as fast as possible you can try to merge the dev and tester position, but the odds of critical and devastating bugs slipping through is much higher.

      Personally, if I was going to work as fast as possible I'd rather just have a couple of junior programmers helping, but sadly the fortune 500 I work for doesn't pay for that. The others could help with testing, programming, and documentation. Since multiple people are involved it would probably be okay, but still not as good as adding black box testing to whatever the devs came up with. That being said, if I have to choose between having enough time for carefully designed white box testing and just doing black box, I'll probably take the white box testing. Generally I barely have enough time for basic white box, so that is all that gets done.

    19. Re: Fuck no by Anonymous Coward · · Score: 0

      No need to be a programmer to test. Lusers are actually better, they do more stupid things. So you get reports like: crash when I write my street address in the email field.
      A programmer would never do that, so lusers discover such oddities.

    20. Re: Fuck no by Anonymous Coward · · Score: 0

      Maybe if programmers defined how their code should work, there wouldn't be unhandled corner cases. Never trust input from sources that you don't control, even then, probably still shouldn't trust. Unfortunately, most programmers don't know how their code should work, just how it seems to currently work with their arbitrary code.

      The biggest issue with programmers is the lack of focus on correctness of code. They just pump out code and test it, hopefully, to see if seemingly works. False positives and selection biases abound with this failed mentality. Focus on writing correct code, and tests are almost pointless.

    21. Re: Fuck no by Anonymous Coward · · Score: 0

      If you are me the code doesn't need to be tested at all by anybody.

      The problem is that you are not me and there is only one me.

    22. Re:Fuck no by Marxist+Hacker+42 · · Score: 1

      Nobody has bigger blind spots in user interface work than the person who developed the user interface. This is a recipe for disaster.

      --
      SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
    23. Re: Fuck no by Reverend+Green · · Score: 1

      Agile - as actually practiced at almost all "agile" companies - is just cowboy coding with corporate death march work conditions tacked on.

  2. QA sucks and developers do pass the buck by datavirtue · · Score: 2

    "It just makes people lazy..."

    Totally agree. I have lobbied for developers to build integration tests against their code. I started by lobbying for QA to do this but they weren't technical enough and couldn't handle it. The run-of-the-mill QA process is a fluffy user acceptance test. I have proof. We continue to find the real problems in production.

    --
    I object to power without constructive purpose. --Spock
    1. Re: QA sucks and developers do pass the buck by Monster_user · · Score: 1

      How often do developers actually use their own code in a production environment?

      The user can and will find some obscure or previously unexpected way to break the application.

      Bugs will continue to be found in production.

      That said, I do extensive QA on any of my code that users will come into contact with. Lot of pokemon error handling. Though there are still bugs which crop up from time to time in product.

    2. Re:QA sucks and developers do pass the buck by WarJolt · · Score: 1

      Good QA teams are what crappy Engineers lean on to explain why their shitty code is taking so long to release.

    3. Re:QA sucks and developers do pass the buck by Darinbob · · Score: 3, Informative

      You need a series of gates and software/firmware/hardware has to pass through all those gates. The later a bug is found the more expensive it is to fix it. When the customer finds a bug it can be catastrophic; as in layoffs are going to happen because of loss of revenue. So find the bugs early, and make sure you've got all the gates set up.

      - Developer must unit test the code - developer must to the basic test of flipping it on, making sure that something happens and that it does what the developer thinks it does. Finding and fixing a bug here is very cheap.
      - Other developers must code review the changes; spread out the knowledge to more than one person, have other sets of eyes looking at the code, let someone point out where the clever change is breaking the design or violating preconditions from elsewhere in the project.
      - QA must then test the feature; positive and negative tests. Run it for long periods, try to break it, compare it one by one to each requirement and specification. This can happen before all features are complete.
      - QA then tests the integration; not just one feature but all of the features, so it's done once there's a code freeze for the release. Maybe it repeats some of the earlier tests, but it should run through a full regression, use it like a customer would use it.
      - If it's applicable, do a full system test. End to end, from hardware board to back end server. Test different combinations. Finding a bug here is expensive; but it's still less expansive than having the customers find the bug.

      If you still find bugs after that, then review how the bug slipped past, fix the gates, and do better next time.

    4. Re:QA sucks and developers do pass the buck by Anonymous Coward · · Score: 0

      Amen, but :

      "If our site is down now, people will generally come back later,"

      Some places put the cost of customer facing outages near zero cost, so .... ...

      maybe the lesson here is "if you care about the quality of your work, then don't work there?"

    5. Re:QA sucks and developers do pass the buck by Anonymous Coward · · Score: 1

      In a very prescribed waterfall environment, that can work but is also expensive. The ever-decreasing gaps you are expecting from "fixing the gates and do better..." however usually comes from the design - not set up correctly, developers incapable of thinking in terms of a systemic interface target, developers too lazy (or not quite as good as they need to be) to think through the foreseeable and so on.

      The cheapest way to fix it is with developers who have very high quality standards, and a small but extremely focussed and aggressive QA department.

    6. Re:QA sucks and developers do pass the buck by Njorthbiatr · · Score: 1

      Joel has already written extensively about this. But this is just a BS article where some cost cutting executive thinks he can save tons of money by chopping off an entire department.

      1) Developers are bad testers.
      2) QA often has a high burn out rate.
      3) Develops are 3-4x the price of a QA guy.

      So if you enjoy a higher turnover rate for developers, paying more money to have someone do something someone could do for 1/4 the price, and still released buggy software, then sure.

    7. Re: QA sucks and developers do pass the buck by Anonymous Coward · · Score: 0

      How often do developers actually use their own code in a production environment?

      I run a large multinational bank in my spare time at home, so I actually DO use the mainframe-based mortgage processing server I made.

    8. Re:QA sucks and developers do pass the buck by dinfinity · · Score: 1

      Finding and fixing a bug here is very cheap.

      Not always, though. Developers are way more expensive than QAers.

    9. Re:QA sucks and developers do pass the buck by Darinbob · · Score: 1

      A bug has to be fixed. It can take the dev 5 minutes to fix it after running their own test. No one else's time has been involved yet. Only a really terrible dev is going to checkin code the moment it compiles and then wait for QA to find the bugs. Any dev like that won't be very expensive, they'll be at the bottom pay tier. A good dev will be creating higher quality results, and will know it's higher quality by doing smoke tests and unit tests up front.

    10. Re:QA sucks and developers do pass the buck by dinfinity · · Score: 1

      I agree with you to some extent, but my point was that devs are more expensive than QAers and that finding a bug by a developer is not 'very cheap'. If a developer is doing extensive rote testing that could easily be done by people costing a fifth of what he costs, he is wasting company money.

    11. Re: QA sucks and developers do pass the buck by Anonymous Coward · · Score: 0

      Feeling cranky, sugar tits?

  3. Should accountants audit their own bookkeeping? by peterofoz · · Score: 5, Insightful

    QA done right can add value to a project by rooting our ambiguous requirements and holding developers accountable. Developers are worried about a lot of issues like function, aesthetics, security, performance, scalability. Having QA work from the same specs to derive the functional tests from a different perspective can provide a huge value to developers. But you have to involve QA early in the game.

    1. Re:Should accountants audit their own bookkeeping? by redmasq · · Score: 1
      If I did not already comment, I would mod this up.

      But you have to involve QA early in the game.

      Particularly that part, not all developers are QA minded, so having them give feedback early in the game, particularly when designing tests, can improve the overall quality. I also have found that while it doesn't quite affect quality directly, having the QA team send a member or two to actually join meetings such as "daily standup" and code review creates a better working relationship: the QA team isn't viewed as an "unknown enemy just waiting to spring an ambush" but instead as "someone who has your back and keeps you from making a fool of yourself."

  4. Developers tend to work in teams by williamyf · · Score: 0

    As in, two or more people. Let's call them Bob and Margareth.

    So, as a proactive workers they are, Bob and Margareth do their modules, and do a first bit of QA on their modules themselves, and then Bob reaches out to one of his teamates (let's say, for the sake of argument, Margareth) and say:

    If you do second level QA for my module, I'll do second level QA for your module...

    Heck, a wise manager (Let's call him Bill), may catch wind of this technique and make it official and standard procedure inside his group. And maybe, you know, present it to the company, so that it becomes standard procedure company-wide.

    So? Separate QA department? I'll vote no.

    --
    *** Suerte a todos y Feliz dia!
    1. Re:Developers tend to work in teams by Anonymous Coward · · Score: 0

      Let say Bob and Margareth are close friends.....Now here is the quizz: Try to guess exactly when Bob would report bad algorithm produced by Margareth, and vice versa?

    2. Re:Developers tend to work in teams by Anonymous Coward · · Score: 0

      Let say Bob and Margareth are close friends.....Now here is the quizz: Try to guess exactly when Bob would report bad algorithm produced by Margareth, and vice versa?

      This is the internet. Try to guess when Margareth bends over the desk and Bob goes full Ron Jeremy on her.

    3. Re:Developers tend to work in teams by ShanghaiBill · · Score: 1

      Where I work, developers get paid a lot more than QA, so it would be silly to use developers as QA. Also, it is a different skillset. A good car mechanic isn't always a good driver.

    4. Re:Developers tend to work in teams by Anonymous Coward · · Score: 0

      Testing is long and boring, something developers don't like. It's also not very difficult -- feed inputs and collect outputs that should match pre-calculated outputs.

      So? Separate QA department? I'll vote no.

      So if you want to waste developer salary on simple stuff, go ahead and waste your company money.

      This is where Microsoft got it right. Instead of a QA department, they have a QA programmer pair. That is, for each programmer, there is a tester guy who writes and executes test code. By pairing a tester with the developer, the programmer can explain how his/her code works and the tester can use that knowledge to write tests and try to break that code.

      If the developer just hands over the code to the QA dept., they won't know how the code works and therefore won't know how to test it effectively.

    5. Re:Developers tend to work in teams by Darinbob · · Score: 1

      In my experience, QA may get paid less, but they work harder than the developers.

    6. Re:Developers tend to work in teams by Anonymous Coward · · Score: 0

      Uh, I would tell friends at work when they have bugs in their code, probably along the lines of, "Hey Bob, you should fix this because you don't want to get in trouble for creating a critical bug" or even, "Hey, here is a small bug I saw, so you don't have to waste time trying to find it when via symptoms at a later time." You would only sugar coat and hide bugs if you don't like the person and want them to risk having more work and blame down the line.

    7. Re:Developers tend to work in teams by Anonymous Coward · · Score: 0

      I've seen both that work their asses off and ones that are lazy for surprisingly long times without getting in trouble. However, much more often than not, I see developers get told, "Make this work by Monday, even if you have to stay late or work the weekend." While QA more often get, "You got two hours to go through this checklist to test this new interface, then you need to move on to another project."

    8. Re:Developers tend to work in teams by goose-incarnated · · Score: 2

      In my experience, QA may get paid less, but they work harder than the developers.

      In my experience, Bricklayers may get paid less, but they work harder than the QA.

      IOW, you don't have a point. We don't pay people more for working harder. We pay them for the value they bring.

      The more high-quality devs you have, the lower the value of the QA as there's fewer issues to be found and reported.

      A place with shitty copy-paste devs needs better QA to stop unsuitable product from leaving the company, so the QA there is more valuable.

      --
      I'm a minority race. Save your vitriol for white people.
    9. Re:Developers tend to work in teams by Antique+Geekmeister · · Score: 2

      When does Bob start writing horrible code, knowing that Margareth will find the bugs and clean it up for him? And when does Bob get the promotion because his code shipped faster, and Margareth's slower developed code fails to be presented early? So Bob gets to go to luch with the boss, go tot the company picnics, and gets invited to design review meetings because "they ship faster"?

      I've seen this happen. It's been done to me, as "Margareth" in the story. I eventually had to talk with my manager, from quite a long time ago, and warn that manager what was going to happen to Bob's workflow and code quality when I went on vacation.

    10. Re:Developers tend to work in teams by Oligonicella · · Score: 1

      You would only sugar coat and hide bugs if you don't like the person ...

      So, you see the problem.

  5. Sure! by Anonymous Coward · · Score: 0

    As long as the company wants to pay for developer time instead of QA time. Because you know, developers and QA are paid exactly the same salary.

    Then there's the whole: writing automated tests suites, who does the QA for that code, the developers as well?

    1. Re:Sure! by HiThere · · Score: 3, Insightful

      Not for their own code. Developers are lousy at testing their own code, because they handle the errors that they think of, and won't make the ones they don't.

      I suspect that developers are even poor choices for testing other developers code, because they're less likely to make ID10T errors.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    2. Re:Sure! by Anonymous Coward · · Score: 0

      >because they handle the errors that they think of

      What are you talking about? Which errors? If this is the error returned by function calls, the rule is very simple: you handle every single potentially error producing call immediately and locally -- you don't group the handling, no big try {} catch around. If your programmers don't do that, they are bad programmers, that's all.

      If you are talking about unit test and so on, you don't test for errors, you take inputs and outputs to verify they agree with the expected result: you check that it behave as expected, you don't check for errors. Every function should have at least a test (even the stupidest), the inputs have to be selected according to two principles for every functions: the general case and the special cases (boundary conditions).

      If ever somebody find a bug not covered by your tests, you just add a test for that every single time. And you call that a regression test but it is just a test like every other tests. Regression, unit and integration tests are just tests, they have all to be in the same place and they have to be fully automated. The only conceptually different tests are the business/client tests BUT they must feed your automated tests.

      When I read all this shit on /., I really am comforted in my choice of leaving IT/ICT "industry". There is a freaking lack of discipline, programming is hard because you have to creative AND very very disciplined at the same time.

    3. Re:Sure! by Anonymous Coward · · Score: 0

      I suspect that developers are even poor choices for testing other developers code, because they're less likely to make ID10T errors.

      In my experience you need both.
      You need some inexperience user to test the software to find the bugs that happens when someone does something really unexpected, but you also need a programmer/power user to test the code to see what happens when you try to do a bit more with the software than was anticipated by the programmer.
      Having the one who wrote the program test it typically won't give any results since those tests will be biased towards testing very specific changes that the same programmer had problems with and already tested dozens of times while writing it.

      On top of that, haven't there been like a gazillion reports showing that people with autism makes for great QA testers because they don't mind doing the same tests over and over for every iteration of the program to test for regression bugs?
      They also tend to go apeshit whenever something isn't the way it is supposed to be rather than letting it slide as "it was probably nothing."

      So the program should be tested by three people.
      1) A programmer or power user that have intimate knowledge of the program and wants to use it to the fullest.
      2) A complete beginner, this one is hard since every nitwit will be experience after a couple of iterations.
      3) A person (Autistic, german or possibly just very boring.) specialized in QA that goes through the same tests every time to make sure that features aren't lost. Possibly following tutorials and documentation written for the program to make sure that they are synced up.

    4. Re:Sure! by Anonymous Coward · · Score: 0

      I suspect that developers are even poor choices for testing other developers code, because they're less likely to make ID10T errors.

      Not only that, but they'll waste resources on obscure bugs that real users won't hit or won't consider bugs if they do.

    5. Re:Sure! by Anonymous Coward · · Score: 0

      >because they handle the errors that they think of

      What are you talking about? Which errors?

      Edge-case integration errors.

      As an example I have actually encountered (in a piece of software I didn't write, thankfully), let's talk about a bug where an authentication system allows control characters in user names when they are created and when they log in, but which hides any users with control characters from the admin console and which disallows removing users with control characters.

      I would happily bet money that none of the requirements documents (assuming they even exist) mention anything about control characters. Quiz: which piece has the bug? The user creation tool that allows control characters and the login which allows them or the admin console which disallows them and won't show users with them? Does your opinion change if I mention the admin tool was expected to be the only tool used to create user accounts and the only way to insert the control characters is to hook into the user admin system via API?

    6. Re: Sure! by Zero__Kelvin · · Score: 1

      There is no ambiguity here. The software that allows control characters or any other non-alphanumeric characters is the software with the bug, since by your own admission the spec never explicitly states they should be allowed. For extra extra credit, if the spec said they were allowed then it would be the spec that has the bug in it.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    7. Re:Sure! by HornWumpus · · Score: 1

      You are a bad coder!

      The big try catch is so you log the unexpected errors. Not to trap the ones you know how to handle and recover from.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  6. no by cascadingstylesheet · · Score: 4, Insightful

    No, for the same reason professional writers need an editor. Someone else will see things that you didn't. Yes, they will.

    1. Re:no by Maxo-Texas · · Score: 3, Interesting

      Exactly. Some people are good at writing code. Some people are good at finding errors.

      Modern writing has gone to hell compared to even cheap books written when I was young. As long as the word is correctly spelled it gets thru to being published. You read the atrocious error, get jarred out of the book, then resume reading.

      In development, the atrocious error is a loss of all data on the screen, or the program hangs, or you can't update an amount if you come at the screen from one particular set of commands.

      Heck- the system IBM wrote for us years ago literally dumped an entire order if any error occurred. A half an hour of work lost. Because they treated it the same as ordering one item from amazon instead of ordering 130 items each with different quantities.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    2. Re:no by Anonymous Coward · · Score: 0

      One good way to force yourself to read something more carefully is to force yourself to read it out loud, next best is text-to-speech reading. One thing I do is set my screen reader to read punctuation (except space) out loud and set it to read "==" as "is equal to" and "=" as "is set to." I've caught so many errors in both writing docs and code doing that technique. Now other people in the office have started doing the same.

    3. Re:no by thereitis · · Score: 1

      "Some people are good at writing code. Some people are good at finding errors."

      And what drives people is different. Some people get a thrill out of trying to break someone else's code or driving it to its performance limits. Other people like implementing new features. Or maintaining a codebase.

      While I agree QA shouldn't be done exclusively by Devs, QA and Dev really need to work together and Dev needs to avoid a "throw it over the wall" culture. Help guide QA to write tests that provide optimal coverage of the feature.

    4. Re:no by king+neckbeard · · Score: 3, Insightful

      Dev and QA actually have a synergistic relationship, the problem is a PHB wanting to lower the head count, so they can get that money as a bonus. QA doesn't make any money, so they make sense as a place to cut costs.

      --
      This is my signature. There are many like it, but this one is mine.
    5. Re:no by Maxo-Texas · · Score: 1

      Another trick is to put it away 6 weeks and then approach it fresh. I don't think that works as well for coding as it does for writing.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    6. Re:no by Calydor · · Score: 1

      The entire problem is that you remember what it is SUPPOSED to say, and so won't notice if 'tricks' is spelled 'ticks'.

      --
      -=This sig has nothing to do with my comment. Move along now=-
    7. Re:no by Anonymous Coward · · Score: 0

      QA doesn't make any money, so they make sense as a place to cut costs.

      Same thing with dev. Just look at Ericsson, R&D doesn't make money so the PHB got rid of it
      Problem is that a couple of years later they don't have new stuff, so for some odd reason sales stops making money too, who could have guessed that?

      So they got rid of the retard CEO and brought in a new one that starts reducing everything not R&D and hiring back engineers.

      It's the same thing with QA really. You can save some money short term by getting rid of it.
      Then as soon as the bugs start seeping through to the end users you will pay through you nose, especially if you deal with hardware.
      Having to send out service technicians to bumfuck nowhere for a firmware upgrade because you didn't want to pay for QA is expensive. But hey, you got a better profit last quarter.

    8. Re:no by Chris+Mattern · · Score: 1

      Exactly. Some people are good at writing code. Some people are good at finding errors.

      That's really a small part of it. Mostly, it's that a fresh set of eyes will see things you didn't, even if they aren't as good at finding errors as you are.

    9. Re:no by Anonymous Coward · · Score: 1

      One thing I do is set my screen reader to read punctuation (except space) out loud and set it to read "==" as "is equal to" and "=" as "is set to."

      One thing I do is use a language where coding == in place of = or vice versa is a compilation error.

    10. Re:no by Oligonicella · · Score: 1

      That technique works great if you have that option. If not, not so much. The real world usually *tells* you which language to use.

  7. Some should, some not at all. by Anonymous Coward · · Score: 0

    See subject line.

  8. Microsoft by JBMcB · · Score: 3, Insightful

    Didn't Microsoft move to this model just before the Windows 10 upgrade, uh, issues?

    https://www.windowscentral.com...

    I've done development and QA work, and QA approaches testing from from a whole different perspective. The problem is context switching. It's difficult for a developer to approach a piece of functionality from the user's perspective (especially if they don't necessarily know all the parameters for how the functionality is going to be used) It takes time to switch out of that mode, and, in an effort to make the code perfect, you can come short of ever making the code good to begin with.

    A QA engineer is going into testing with the mindset of an end user. What are they going to expect to have happen? What are they likely to do? What corner cases aren't worth exploring? It's useful for developers to have some experience in this, but I don't think it's reasonable to expect them to be experts.

    In general, you want developers to spend time and cognitive effort making sure the code is functional and maintainable. Heaping on the cognitive load of completely switching gears and thinking like an end user isn't always the best use of their resources.

    --
    My Other Computer Is A Data General Nova III.
    1. Re:Microsoft by Anonymous Coward · · Score: 0

      I have YET to see such a QA. Damn, if you find one, double his salary and don't let him go...

    2. Re:Microsoft by techno-vampire · · Score: 1

      I've done development and QA work, and QA approaches testing from from a whole different perspective.

      So does proofreading. Have you ever done any?

      --
      Good, inexpensive web hosting
    3. Re:Microsoft by Anonymous Coward · · Score: 0

      A QA engineer is going into testing with the mindset of an end user. What are they going to expect to have happen? What are they likely to do? What corner cases aren't worth exploring? It's useful for developers to have some experience in this, but I don't think it's reasonable to expect them to be experts.

      Experts at being end users is an oxymoron. End users are idiots not experts.

      If developers are so clueless as to not be able to understand needs of users from the users perspective how the hell do you expect them to produce anything useful in the first place?

    4. Re:Microsoft by Anonymous Coward · · Score: 0

      So does proofreading. Have you ever done any?

      Have you ever tried not being so anal and belittling? Your grammar fetish is your own, and it's rude to inflict it on other people. It detracts from good conversation. It would be better for you to keep such useless observations to yourself.

    5. Re:Microsoft by redmasq · · Score: 1

      I've met two myself, at the same employer (my previous job). I'm still wondering how they got so lucky.

    6. Re:Microsoft by JBMcB · · Score: 1

      End users are idiots not experts. If developers are so clueless as to not be able to understand needs of users from the users perspective how the hell do you expect them to produce anything useful in the first place?

      Do you expect the development team for Microsoft Word to understand what professional authors need a word processor to do? Do you expect the Excel team to understand how accounting works? Do you think that the person who works on the ANOVA plugin for Excel knows how it's used in statistical process control? Or analyzing cell growth patterns?

      --
      My Other Computer Is A Data General Nova III.
    7. Re:Microsoft by Anonymous Coward · · Score: 0

      They didn't so much move to a new model, but threw out their old one without lining up the new one in advance. All the older windows QA guys in the western US got fired, and all windows update QA got shifted to the Shanghai offices just before the release of windows 10. I think collectively, most people would probably agree that more bugs are leaking into the wild from microsoft compared to previously.

    8. Re:Microsoft by HornWumpus · · Score: 1

      I remember my first job where I had engineers as end users.

      It's better in many ways, but damn they want everything.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    9. Re:Microsoft by FrozenGeek · · Score: 1

      As a developer, I've worked with 3 QA testers who were worth their weight in gold (well, at least silver). They did things that I would never have dreamed of doing and helped me make my code much better than it would otherwise have been. Developers need to write unit tests. We need to automate them so they run every blessed time we compile our code. QA tests at a higher level than we do. They don't test the same things we do. Having developers do QA work is a bean-counter move. If the bean-counters are running the projects, I'll be updating my resume and looking to jump ship.

      --
      linquendum tondere
  9. Short version: No. by RyanFenton · · Score: 3, Insightful

    Longer version: NOOOOOOOOOOOOOOOOOOO.

    I've been at places where managers get a variation on this lovely idea: Hey, maybe you would be more careful coders if you had to do your own testing. You're all so sloppy!

    Oddly enough, this is mostly from non-coders, or folks without technical acumen.

    Here's the deal: There ARE coders that claim to not make mistakes, and create bug-free code. Those are known as inexperienced or self-deluded coders, or folks only making one-off projects negotiating exact terms that make it not REALLY programming so much as configuring.

    Even just from a simple level as just writing down words, if you've ever written a work longer than a couple of paragraphs, you'll virtually always reach a point where there's some subtle or stupid mistake you make without noticing it. Even VERY experienced journalists and writers need proofreaders on any serious project.

    It's not a matter of taking your work seriously, or being unable to face responsibility - you're always going to be blind to the flaws in your own code, and although testing crews ARE expensive - they exist for many, MANY important reasons. They're cheaper than the same churn without a proper quality process. Sure, some of that effort may be being duplicated, or used badly - but few possibilities would be worse than expecting everyone to 'man up' and expect bug count to go down.

    In other words - certainly, I can test my own code if you'd like, but I'm a VERY expensive testing staff member, and my perspective is going to cause me to overlook a lot of things - since it already 'makes sense' to me and I won't spot the inconsistencies a percent of the time.

    Ryan Fenton

    1. Re:Short version: No. by Hairy1 · · Score: 2

      Coders should be responsible for the quality of their work, but the environment should support them. That means they should be given the time to write unit tests and perform code reviews. Code reviews are not just about reviewing implementation but reviewing the requirements to ensure the developer understood the requirements and implemented what was required. Code review is about ensuring that the unit tests for the code properly test the code. It is never a case of throwing new code over the wall to let testers work this out. These things are true whether you have a separate test team or not.

      And if you do have a separate test test they are there to validate, not catch your mistakes. Quality is baked in by developers, it can never be tested in. A robust software development life cycle involves taking ownership of quality on an individual developer basis as well as organisational practices which reinforce and support developers.

    2. Re:Short version: No. by Anonymous Coward · · Score: 0

      I've been at places where managers get a variation on this lovely idea: Hey, maybe you would be more careful coders if you had to do your own testing. You're all so sloppy!

      The response to such a line of discussion should be: "Hey, maybe you would be more productive coders if you were doing your job and didn't rely upon us managers to manage you. We really don't need managers here." Perhaps if they thought about it from that perspective, they'd understand the point? Or, you know, they could get rid of the needless managers. Either way, it's a win-win.

    3. Re: Short version: No. by Anonymous Coward · · Score: 0

      To be fair, if managers are managing coders rather than projects and deliverables then they need to get better coders.

    4. Re: Short version: No. by Anonymous Coward · · Score: 0

      need to get better managers

      ftfy

    5. Re:Short version: No. by Anonymous Coward · · Score: 0

      > There ARE coders that claim to not make mistakes, and create bug-free code. Those are known as inexperienced or self-deluded coders, or folks only making one-off projects negotiating exact terms that make it not REALLY programming so much as configuring.

      There really are people who create very solid work that rarely breaks, and incorporates stuff other developers didn't think of. But they are rare and it's possible you have never worked with one. They also tend to be extremely in favor of more testing, as long as it is proportionate and not just catching avoidable mistakes made by incompetent developers.

    6. Re:Short version: No. by stephanruby · · Score: 2

      I've been at places where managers get a variation on this lovely idea: Hey, maybe you would be more careful coders if you had to do your own testing. You're all so sloppy!

      But most likely, that's not even how it went down. What most likely happened was that they created toggles for every new piece of functionality. Then they wrote a script that would switch to the old version of the functionality as soon as an error with of the new functionality was detected. In other words, they wrote a safe-mode to relaunch their application under, every time an unrecoverable error or a runtime exception were detected.

      And by itself, this is actually not a bad idea. It's one more way to protect your company from disastrous consequences. Imagine, it's Friday afternoon, a developer fixes a small typo and doesn't bother to test it before uploading the new version to production. At first, everything seems to still work, so the developer goes home for the weekend, but over the weekend the application is basically unusable and stops generating revenue during the entire three-day weekend.

      And this type of functionality solves that problem at least.

      But then management sees that and says to themselves, we actually don't need QA anymore, if there is a problem now, the app can just go into safe-mode. We'll just reassign QA and pat ourselves on the back for saving so much money.

      Unfortunately, they overlooked a few things:

      1. If the developers were "lazy" before because of QA, they're probably going to be "lazy" again now because of safe-mode. After all, if a bug is introduced into production, it's no longer the end of the World anymore. Also, I'm putting the word "lazy" in quotes because I am not convinced that his developers were lazy to begin with. Talking about being lazy, the manager doesn't back up his claim with any kind of data whatsoever about his developers' velocity or his application's number of bugs, either before or after the change (not that the total number of bugs after the change can be trusted either since not all the bugs will appear in the logs or be found right away).

      2. Applications using this type of safe-mode recovery don't usually tell the user what's happening. Don't ask me why. It's just a trend I have noticed. Windows did it, but applications for some reason do not. And so the user has no idea why the UI for his application changes from day to day, or hour to hour, either adding new functionality or removing functionality. And as a user myself, I can tell you that this is not a good feeling to have about an application. Now, I can understand new functionality being added, but when I see that the application is acting weird, or that the application is removing some of its earlier functionality it had just introduced. I can tell you that I consider the application flaky and buggy (even when it didn't hit me over the head with an error message or with a crash). And if I have a competing product/site I can choose to use, I might just switch to that other product/site instead.

      3. Not all errors are going to throw an exception and not all errors are going to crash the server. For instance, let's say I have a shopping cart and I confused the Mexican Peso with the American dollar. So for every item that my shopping cart sells for $100, it's only charging around $5 instead. Now, my system wouldn't be able to detect and recover from such an error. And my QA people are no longer testing the app, they're too busy doing something else. So that means that a week could easily go by and my company could lose millions of dollars because of such a small mistake. Of course, this problem could be mitigated with unit tests to a small degree, but I really doubt that a manager that gets rid of the QA role would be very supportive of unit-tests either.

      4. So let's say the system works mostly as intended. The majority of errors is getting logged. And the system recovers itself every time. That's all great. But now, that just means that the developers are up

    7. Re:Short version: No. by Anonymous Coward · · Score: 0

      Coders should be responsible for the quality of their work, but the environment should support them. That means they should be given the time to write unit tests and perform code reviews.

      Would be nice but could be problematic when you deal with hardware development.
      The hardware needed to test software in the hardware you developed could easily be more expensive to develop than the product itself.
      There is no way you will get that time. A separate QA department would be cheaper.

    8. Re:Short version: No. by Anonymous Coward · · Score: 0

      While I think you are right, are you sure you are right? https://xkcd.com/1901/

      According to one study, code review is by far the best way to find bugs. It finds something like 90% of bugs, while traditional testing catches 20%. It would be good for someone to do study about this and measure just how good or bad idea it is to let developers do QA.

    9. Re:Short version: No. by jayesel · · Score: 1

      Good thoughts. Your impression though, brought me pause: "but I'm a VERY expensive testing staff member" Testing is expensive, period. As for your individual cost for service your provide, the modern tester who is an SDET or SEiT develops tests using a stack. Be it Java, Python or Ruby, they've got a specialized talent to write programs that test/break programs written by developers. SDET's and SEiT's are often paid on the same scale you are. I will also admit, proudly, I have been in Managerial/Executive level positions advocating for pay parity of technical testers/testers with the cause being technical acumen parity w/ Devs.

  10. no, and not even unit tests by Anonymous Coward · · Score: 0

    If possible, even the unit tests should be a third party.

  11. Obey the testing goat! by Anonymous Coward · · Score: 0

    I thought all programmers did their own testing. Or maybe I'm reading the wrong book? "Test-Driven Development with Python: Obey the Testing Goat: Using Django, Selenium, and JavaScript" by Harry J. W. Percival.

  12. Rotate by sycodon · · Score: 5, Interesting

    EVERYONE on your team should be a developer.

    But QA should come from that pool for one project. Swap them out for the next, etc.

    Developers working at QA know where the mistakes are likely to be.

    Developers testing their own shit subconsciously avoid the shoddy parts.

    This also keeps the team as one.

    It's like a platoon of Marines taking turns burning the shit.

    --
    When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    1. Re:Rotate by Maxo-Texas · · Score: 5, Insightful

      As a manager, my best developers were not my best testers. And my best QA people couldn't have coded their way out of a paper bag.

      Our top QA guy and head of the QA department was an ex marine sergeant. Didn't know how to code. But he was a top notch tester who caught anything that didn't match spec's or that changed from one release to the next.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    2. Re:Rotate by Anonymous Coward · · Score: 4, Interesting

      That's not surprising, the two groups that are best for finding bugs are the power users and the completely incompetent. And the power users are likely not the same type of people that are doing the programming.

      I've personally got a talent for breaking software by doing innocuous things that should have been tested for.

    3. Re:Rotate by ShanghaiBill · · Score: 5, Insightful

      Developers testing their own shit subconsciously avoid the shoddy parts.

      They also tend to have preconceived ideas about how users will use the program that are very wrong.

      The first time I watched a videotape of someone using a GUI that I had coded, I kept screaming "NO, not THAT button!!!!", but it was a recording, so they couldn't hear. It was a traumatic and humbling experience.

    4. Re:Rotate by TechyImmigrant · · Score: 3, Insightful

      Consider the plight of us semiconductor designers. You've got 10 billion transistors, all hooked up in designs by thousands of people and it all has to work together and if you get it wrong, you can't fix it. It has to be right. So hell yes, you test your own stuff before letting others see it. Then other people test it. Then you test their stuff with your stuff. Meanwhile there are teams of people putting it all together in lots of ways to try and break it.

      The value in a design is not the design. It's the level of trust that the thing will work when you put it in a chip.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    5. Re:Rotate by quantaman · · Score: 4, Insightful

      Developers testing their own shit subconsciously avoid the shoddy parts.

      The trouble with developers testing their own code is their objective is to finish the feature and move onto the next issue, not to find bugs.

      A developer who spends 50% longer debugging their code is likely to get a reputation as a slow coder, if a bug shows up 6 months later it might not even get attributed to their change. And even if there is some potential blowback in 6 months time, it's hard to take that into account when your manager is breathing down your neck because the project is behind. I know I've taken heat in performance reviews for not finishing features quicker, I also know I've spent a lot of time fixing other people's bugs.

      The reason for a QA department isn't that they've better at finding bugs in new features, they aren't. Rather the QA department gets to focus on the testing that developers have no incentive to do. QA also tests the features that developers don't work on, because every once in a while changing number of wings on a butterfly triggers a null pointer on the other side of the source tree.

      --
      I stole this Sig
    6. Re:Rotate by Bigbutt · · Score: 1

      Yea, I have a guy at work that I have check things. He always finds something. It’s annoying :)

      [John]

      --
      Shit better not happen!
    7. Re:Rotate by TheFakeTimCook · · Score: 2

      Consider the plight of us semiconductor designers. You've got 10 billion transistors, all hooked up in designs by thousands of people and it all has to work together and if you get it wrong, you can't fix it. It has to be right. So hell yes, you test your own stuff before letting others see it. Then other people test it. Then you test their stuff with your stuff. Meanwhile there are teams of people putting it all together in lots of ways to try and break it.

      The value in a design is not the design. It's the level of trust that the thing will work when you put it in a chip.

      ...and then, after it goes into the field, there are STILL one or more Errata that follow, with nice things things like "Oh, the SPI Enable doesn't work when PD20-23 are configured as SPI2"...

    8. Re:Rotate by superwiz · · Score: 1

      EVERYONE on your team should be a developer.

      Just because QA should automate the test, doesn't mean the same skill set should be used for developing and QAing. Specialize or be bad at everything.

      Developers testing their own shit subconsciously avoid the shoddy parts.

      Which is why QA shouldn't know which parts to test and which not to test. They should make their own assumptions about how things should work based on how the product is described to the outsiders. Which means they need to be external to the project.

      --
      Any guest worker system is indistinguishable from indentured servitude.
    9. Re:Rotate by Darinbob · · Score: 3, Informative

      Sort of. QA does development, but not on the project, they develop automated testing scripts and the like. The skill sets are different. A developer should do basic testing, but the developer is way too close to the code and is very likely to miss things. I see developers who assume no testing is needed, it was an obvious fix, and then it turns out to have bugs. Developers are often not good at integration testing, because they may have troubles seeing the big picture of how all the parts fit together.

      QA can read the product's code certainly, they can be involved in the code reviews, but they shouldn't develop that code either. For a good QA person, testing, creating the test plans from the functional specs, automating the tests, and so forth, is a full time job in itself. In a lot of ways it is harder than development.

      Every time I have seem companies try to merge two groups or departments together it has not turned out well. And this cost saving measure won't turn out well either.

    10. Re:Rotate by vux984 · · Score: 2

      That's not surprising, the two groups that are best for finding bugs are the power users and the completely incompetent.

      I'd say that there are at least 3 groups. Some developers are also really good testers. Some power users are really good testers. And the totally incompetent also are brilliant at finding bugs.

      And you really want your QA to include all 3 types, because they each find different kinds of problems.

    11. Re:Rotate by Darinbob · · Score: 1

      No matter how good the design and the testing, it never survives first contact with a customer.

    12. Re: Rotate by Anonymous Coward · · Score: 0

      the incompetent are good at unintentionally hitting edge cases because they lack the "but no one in their right mind does THAT..." stoppers that most of us have.

      Simple example is users who hit Submit button 100x on order page on your website because "it didnt look like it was working..." (and consequently are torqued when theyre charged 100x...)

    13. Re:Rotate by antdude · · Score: 1

      Is your employering hiring? ;)

      --
      Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
    14. Re:Rotate by king+neckbeard · · Score: 2

      Make something idiot proof, and they'll just invent a better idiot.

      --
      This is my signature. There are many like it, but this one is mine.
    15. Re:Rotate by Anonymous Coward · · Score: 0

      Our top QA guy and head of the QA department was an ex marine sergeant. Didn't know how to code. But he was a top notch tester who caught anything that didn't match spec's or that changed from one release to the next.

      That doesn't surprise me - Marines usually take attention to detail to another level - it's why the uniforms look so nice lol. Can't wait till Nov 10th!!!

    16. Re: Rotate by Anonymous Coward · · Score: 1

      Not sure we agree on who's incompetent in this case.

    17. Re: Rotate by Anonymous Coward · · Score: 0

      Exactly. It's a false economy to think you can save money by ditching the QA team. Developers will never test the edge cases and during their development cycle they'll only test the one case they know works.

    18. Re:Rotate by Anonymous Coward · · Score: 0

      Finding bugs is pretty easy. The hard part is doing t hat cost efficiently. That means test automation. The ideal situation is that you have full set of automated tests that will fail if anything gets broken in the software (including performance issues). With such tests implementing changes is faster and cheaper and developers can make more radical changes without fearing of breaking something.

      It would make a nice project to have 3 teams, one develops the actual software. One team writes test automation and one team releases alternative builds of the software, trying to add bugs that the test automation fails to notice.

    19. Re:Rotate by thsths · · Score: 1

      Yes, and IT always tells me that they cannot fix it. They bounce the bug around between three levels of support, until I give up. :-(

    20. Re: Rotate by CODiNE · · Score: 3, Interesting

      The incompetent person in your example is the developer who let the same order be sent 100x.

      It's normal to refresh or try again when a page hangs. Or do you sit there for several minutes before you try again? At the least they could deactivate the submit button once clicked, the right solution is an order token that is only accepted once.

      I bet you only press the cross-walk button once too. Wouldn't want to break the signal!

      --
      Cwm, fjord-bank glyphs vext quiz
    21. Re:Rotate by Anonymous Coward · · Score: 0

      If you're doing your own proofing, it's not called proofing.

      Their is a reeson that book publesing compaknees use editors, and don just make the authors do it.

    22. Re:Rotate by Xyrus · · Score: 1

      A programmer doing QA:
      *runs code*
      "Oh c'mon, no one would ever do that. I'm doing this instead."
      *marks as tested*

      --
      ~X~
    23. Re: Rotate by Midnight+Thunder · · Score: 1

      Also it isnâ(TM)t immediately obvious that something is wrong, since you have been at it too long or that your interpretation of things wasn't right. Other issues include trying to to prioritise doing code or testing. Usually they end up conflicting.

      At the same time smaller organisations need to be more creative on how to reduce bugs, due to lack of manpower. Sometimes the cost is more bugs, sometimes reduced features or some other compromise must be found.

      One thing I would push for at minimum is continuous integration and linting. Next is unit tests and integration tests.

      --
      Jumpstart the tartan drive.
    24. Re:Rotate by Quarters · · Score: 1

      100% absolutely not. The skill sets of developers and quality assurance personnel very rarely overlap.

    25. Re:Rotate by PPH · · Score: 1

      And my best QA people couldn't have coded their way out of a paper bag.

      Then who wrote your QA test scripts?

      --
      Have gnu, will travel.
    26. Re:Rotate by redmasq · · Score: 1

      I was a team lead (not manager) at my previous employer. I had the pleasure of working with two of the best QA people that I have yet came across. The first one, he could moderately code and made effective automated UI tests and improved the unit tests we had already made as part of the development (including finding bugs in the unit tests themselves). He was also an expert at breaking stuff (it is amazing how easily many things break when fed trash, operated too quickly, suddenly removed of network connection, or given malformed unicode sequences if the developer is not careful; although 80/20 rule should apply). The second one, she could read code, but was overall was unable to write code beyond a simple "Hello World." She probably was the better of the two concerning QA. She could recognize poorly thought out UI design and could look over a set of user stories with minimal data create, anticipate the client's actual acceptance criteria (known to be sometimes vague and she would verify), and create effective test plans. While I am reasonably confident in my ability to do QA, having specialists for the task did reduce both defects and misinterpreted requirements significantly compared to not having one. That said, I still did schedule time for code reviews as a team and did encourage peer review of code whenever there wasn't crunch time, both of which lessened defects and improved overall skill of those teams. When push comes to shove, disciples developers can QA their own and each others' code, but I think there is a tangible benefit to having high quality specialists. On the other hand, I also have met more than my share of ineffective QA personnel. Those individuals usually provide little, if any, benefit over the developers QAing their own code and sometimes acts as an impediment when a few choice people decide use their positions to "gatekeep" in relation to personal grudges.

    27. Re:Rotate by PPH · · Score: 1

      This.

      Having developers do some QA will teach them what pitfalls to watch for. And make them better devs as time goes by. The argument that development and QA have different mindsets is both wrong and harmful. Devs need to code with eliminating bugs as a priority. Not just hope that QA will catch them before product release.

      This is how it is typically done in engineering. A designer will hand their work over to another engineer to be checked. And the roles are swapped, so everyone gets to do both tasks. The person who finds the errors learns not to make them in their own work.

      --
      Have gnu, will travel.
    28. Re:Rotate by PPH · · Score: 2

      their objective is to finish the feature and move onto the next issue

      Your feature isn't finished until it is bug free. If devs don't get credit for completion until the QA is signed off, they will make a better effort to get it right the first time.

      --
      Have gnu, will travel.
    29. Re:Rotate by Anonymous Coward · · Score: 0

      The company I work for has started to push more and more QA on the dev team, and as far as I can tell, test-to-pass is exactly what management is after. Without finding all those bugs to fix they won't have to worry about not meeting their unrealistic schedules, after all.

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

      In terms of bugs, the incompetent are much more likely to do that, but they also will tell you what parts of the UI make sense and which ones don't. Most parts of a program should be so obvious that even the incompetent can figure them out without much effort.

      In most cases a good program should get out of the way to let the user get their stuff done, and incompetent users tend to be talented at identifying when that's not happening.

    31. Re:Rotate by Anonymous Coward · · Score: 0

      More like Internal Affairs in a police department...
      LOL

    32. Re:Rotate by Anonymous Coward · · Score: 0

      A developer who spends 50% longer debugging their code is likely to get a reputation as a slow coder

      This.

      You don't get a reputation as "the dev whose stuff always sails through QA".

    33. Re:Rotate by lrichardson · · Score: 1

      "The reason for a QA department isn't that they've better at finding bugs in new features, they aren't. Rather the QA department gets to focus on the testing that developers have no incentive to do."

      The real reason for a QA department is that developers are rarely allocated enough time to get something working, let alone working bug-free. By having a separate group, whose sole function is testing, then that guarantees - *mostly* - that the testing gets done.

      Yeah, there are issues with developers not being capable of fully testing their own work, especially if they've mis-interpreted some spec. But, hands-down, the two biggest issues always seem to be lack of time for the dev team, and an assumption of intelligence on the end user that is not supported by reality.

    34. Re:Rotate by Wycliffe · · Score: 1

      their objective is to finish the feature and move onto the next issue

      Your feature isn't finished until it is bug free. If devs don't get credit for completion until the QA is signed off, they will make a better effort to get it right the first time.

      Which is exactly what the original post was saying too. If the developer is also the QA, he has an incentive to sign off on the QA as quickly as possible. An independent QA on the other hand is rewarded for the number of bugs they find. The developer is never going to be rewarded for finding bugs in their own code.

    35. Re:Rotate by UnknownSoldier · · Score: 1

      > EVERYONE on your team should be a developer.

      Definitely NOT. They don't have the years of knowing HOW to write good, clean, code. The LAST thing you want is some noob over-engineering a system he doesn't understand.

      > SOME Developers testing their own shit subconsciously avoid the shoddy parts.

      FTFY.

      I intentionally try to break my code.

      I also intentionally try to break other people's code. I give detailed write-ups on where the bug is, and how it got into that state in the first case, so that the original developer can fix it.

      It doesn't matter _who_ wrote it -- things should be stress tested so that customers DON'T have to. Google treats it customers as beta testers -- which is a horrible POV to take. Your _developers_ should be your beta testers, THEN your QA dept.

      The title is wrong. It should be:

      Q. Should Developers Do SOME of Their Own QA?
      A. Yes!

    36. Re:Rotate by CAOgdin · · Score: 1

      Get a new manager!

    37. Re:Rotate by Maxo-Texas · · Score: 1

      Well that's a point, but they were really developed by screen-scraping/recording user actions and not by programming.

      You put the testing package in recording mode, performed the steps and that was a script.

      It also had an associated "ideal" database to compare the test database to after the steps were completed.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    38. Re:Rotate by Anonymous Coward · · Score: 0

      Yes, you do, unless you work for a really shitty company, probably not even a tech company.

    39. Re:Rotate by Altrag · · Score: 2

      Having developers do some QA will teach them what pitfalls to watch for.

      Having developers do some QA as a training exercise is one thing, having them do actual QA for a releasable product is another.

      The argument that development and QA have different mindsets is both wrong and harmful.

      The argument that they have the same mindset is even more wrong because its simply not true, at least in general. Developers tend to need time to ponder a problem and then rapid-fire out lines of code until they have a working solution. A very binge-and-purge style of work. QA on the other hand needs to be methodical and repetitive -- exactly the kind of tasks that programmers typically hate doing.

      Does it help if QA knows how to program? Sure. Does it help if the programmers know how to test? Sure. But mixing the two up is kind of like trying to swap the architect and the foreman on a construction project -- sure there will be the odd person who can do both, and it helps if both knows at least a little about the others' work, but typically they're in two totally separate worlds and arbitrarily trying to cross them over just isn't going to be a great day.

      Devs need to code with eliminating bugs as a priority

      This is almost always more of a management issue than a developer issue. Sure there's always going to be devs with more ego than talent who just commit whatever garbage because hey there's no way they could be wrong, right? But for the most part bad code gets pushed because the devs are under a heavy time crunch or are being shuffled between projects faster than they can gain true understanding of any one of them or other such issues that the dev has little control over.

      This is how it is typically done in engineering. A designer will hand their work over to another engineer to be checked. And the roles are swapped, so everyone gets to do both tasks. The person who finds the errors learns not to make them in their own work.

      Which should be done anyway, really. But you still need a level of QA above that to catch things that no developer familiar with the project would ever think of. If you're developing software that uses say, a debit card reader and you have a bunch of test cards kicking around and so on, developers are likely to just grab one of the test cards and perform the tests. But they're not likely (or not as likely) as a decent tester to see what happens when they try to scan a credit card.. or their library card. Or that card that's almost snapped in half and held together by masking tape. Or the one that got cut and the magstrip is missing a corner but is still kind of readable, etc.

      You can kind of get away with it if you have two dev teams that are working on entirely separate projects with little to no knowledge of what the other team is doing -- then you're at least removing as much bias as possible. You still have the issue that devs typically aren't good testers in general though.

    40. Re: Rotate by Anonymous Coward · · Score: 0

      It's an example for fuck's sake, stop being a douche.

    41. Re: Rotate by zaphirplane · · Score: 1

      If you consider your point, it is close to we have a QA team and they catch interesting bugs, which doesnâ(TM)t provide data points for what would happen if you donâ(TM)t have a QA team. The proponents of no QA say that the coders will do more checks âcause they donâ(TM)t have a QA to catch it

    42. Re: Rotate by vux984 · · Score: 2

      I'd say a good example that the incompetent manage to find where they ran the installer twice in parallel.

      Everyone else who was in testing ran the installer just fine, and started testing the software. Later on it went out to a limited release of customers... next day I had a report of some bizarre installation failures. Some idiot had downloaded the installer, double clicked, and then since the window didn't open up fast enough doubleclicked it again. Then a competent person would have realized the 2nd setup window was because they'd launched it twice... but not this guy... and he went back and forth between the two setup instances making different choices along the way in the two wizards and not realizing it. The end result was some weirdly corrupt configuration settings.

    43. Re:Rotate by Anonymous Coward · · Score: 0

      Writing QA test scripts and coding are not at all the same thing. Why on Earth would you think they are?

    44. Re:Rotate by PPH · · Score: 1

      The developer is never going to be rewarded for finding bugs in their own code.

      Developers shouldn't be examining or testing their own code. Dev A writes module X. Dev B tests X. The, dev B writes module Y, which is tested by dev A. Etc, etc.

      --
      Have gnu, will travel.
    45. Re: Rotate by kenh · · Score: 1

      Turn off 'smart punctuation' on your iPhone please.

      --
      Ken
    46. Re:Rotate by PPH · · Score: 1

      Developers tend to need time to ponder a problem and then rapid-fire out lines of code until they have a working solution. A very binge-and-purge style of work.

      Not really. That's the sign of a coder that's in over their head. Take a problem, break it down into smaller components until each one is easily understood and solvable. The idea that software development is some sort of art that can only be done by some flash of insight often leads to garbage being cranked out on the eve of a deadline.

      --
      Have gnu, will travel.
    47. Re:Rotate by PPH · · Score: 1

      developed by screen-scraping/recording user actions and not by programming.

      That results in very poor test coverage. Unless you begin to approach the infinite number of monkeys playing with an infinite number of keyboards. And it does nothing at the module/unit test level. There, you need to write test stubs.

      --
      Have gnu, will travel.
    48. Re:Rotate by Anonymous Coward · · Score: 0

      This all reminds me of an old Dilbert:
      Wally writes a minivan

    49. Re:Rotate by Anonymous Coward · · Score: 0

      sounds like uControl.com

    50. Re: Rotate by Brockmire · · Score: 1

      So when I reported a bug that was a result of an accidental double click on submit, the developer quickly confirmed it as an accidental double click. So I said, "can you make the button so that once you click it, it's greyed out so that the user knows it happened and the submit isn't engaged twice?". He says, "yeah, easily". So he makes the change, I test it and it works in several browsers and it gets released. 2 hours of time to prevent all kinds of hassle for us and the tens of thousands of customers. That's typical fucking QA. Find and fix problems before the customer sees them. Customers don't have a tolerance for finding bugs. I certainly don't (unless I'm being paid for it and not inconvenienced for something I'm paying for.)

    51. Re: Rotate by Brockmire · · Score: 1

      And you'd be wrong. In a similar situation where a popular computer shopping site gets overwhelmed during sales, it was the underpowered servers that took so long to process orders, duplicate orders were outside of a time check limit intended to prevent it. If the code can't run in any sort of reasonable predictable time frame, the developer is fucked. Fault was on IT for having far below spec servers.

    52. Re:Rotate by Anonymous Coward · · Score: 0

      As a manager, my best developers were not my best testers. And my best QA people couldn't have coded their way out of a paper bag.

      Strictly speaking code, nobody can.

    53. Re: Rotate by Brockmire · · Score: 1

      It really depends on how useful the test is. It was a fucking pain pulling out results from iperf summaries because the software is buggy and shitty. You might get same useful takeaway by looking at a screen shot instead of coding complex parsing so that the spreadsheet results aren't garbage. The screenshots may show the error where the automatic test may need to be ran again manually to find yet another new error not seen before. It really depends on how much effort and benefit you get from either approach. Anything that will be tested for years, spend the time and effort on a proper test harness.

    54. Re: Rotate by Brockmire · · Score: 1

      I worked on a board intended for a future prototype for a new revolutionary wireless widget. Various universities and heavy hitters from major tech company. High 7 digit budget. The chip was DOA because one guy didn't connect (or misconnected) some SPI wires for a control block. Whole program, dead. Game changing technology that would be the future, killed by 3 wire mistake. The designer copped to the mistake. How it was reviewed by NO ONE blows my mind. Full disclosure, I made mistakes that resulted in blue wire ECO's to fix, all in area's I thought were double checked by colleagues that actually wasn't. But they were fixed with some labour and wire...

    55. Re:Rotate by Creepy · · Score: 1

      At my previous job developers were required to unit test their code, but integration testing done by QA nearly always found bugs. That didn't stop them from laying off nearly the entire QA team including some like me that have developer skills and shipping the jobs to China. I'm currently looking for a developer job not a QA, but all my years in QA kind of hamper that, even though half my time was a developer role there (automation, customization, technical configuration, compiling code, cloud installs and VMWare administration, etc).

    56. Re:Rotate by WhoBeDaPlaya · · Score: 1

      That's what metal ECOs are for, and also why I call ECO "Endless Changes Ordered" ;)

    57. Re:Rotate by Maxo-Texas · · Score: 1

      And if you had said that to management, they would have said "perfect is the enemy of good enough" and they would have been correct.

      The main system had over 30 million lines of code. QA didn't enter the picture until the code was 23 years old. They bought a tool and started writing repeatable tests over major functionality. The focus was that major functionality would not be broken from the prior release and that any change in behavior in the tests had to have a known and approved reason.

      Their test database was also too small- less than 1% of production. Couldn't afford another 100 million for a full duplicate of production. that's pretty common tho.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    58. Re:Rotate by TechyImmigrant · · Score: 1

      I've never met a metal ECO I liked.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    59. Re: Rotate by Anonymous Coward · · Score: 0

      Does even need that. I accidentally ordered something twice once because the browser was reloading the success page on my phone. I had switched away from the browser and it reloaded the current page from scratch upon being opened. Turns out the "success" page actually does the ordering too. No warnings either.

      So yeah pretty standard to make requests for payment/orders idempotent.

    60. Re:Rotate by Anonymous Coward · · Score: 0

      This. A thousand times this.

      QA isn't just about who has to do the work or being lazy. It's a totally different mindset than development. And, BOTH are necessary for decent software. It's kinda like yin and yang.

      Unless, of course, you don't care about releasing decent software. Which is a fair point. If good enough is good enough, then by all means devops away. However, understand the trade-off you are making -- you are deliberately choosing speed to market and cost over quality, stability, robustness, etc.

    61. Re:Rotate by Anonymous Coward · · Score: 0

      Q: How many hardware engineers does it take to change a light bulb?
      A: None. "We'll fix it in software."

    62. Re:Rotate by Maxo-Texas · · Score: 1

      Titles are really arbitrary and related to company size.

      I've known "managers" at small companies with 1 direct report.

      Meanwhile, I've also known at large companies someone with 20 direct reports, 10 of them overseas might be a "Team lead". At this companies, manager started at 60-90 people on 3-5 teams.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    63. Re:Rotate by HornWumpus · · Score: 1

      I knew a 'Director of IT' with 3 reports.

      He traded a raise for the title. Thinking he could BS his way into a big cheese job elsewhere based on same.

      It might have worked too, but never for him. Just obviously a poseur.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    64. Re:Rotate by HornWumpus · · Score: 1

      Unit tests should, more or less, be automated and shouldn't require throwing the code over the wall to QA.

      It's not that coders don't test, it's that they don't do final testing.

      Nobody sends every successful compile to QA. First you run you dev case, make sure that works. Then unit tests, make sure you haven't recreated an issue that was already known. Then you get the project to a milestone worthy of release.

      Only then does QA get involved. Perhaps a little earlier if you're trying to compress the schedule, but early tests have to be repeated.

      When QA finds an interesting bug, dev might have to be involved in adding it to the unit tests.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    65. Re:Rotate by Maxo-Texas · · Score: 1

      Just let me say, I hate posting from my phone and I hate slashdot's refusal to allow you to edit posts.

      In close to (over?) 20 years of posting- exactly no one has evrt edited a post in a serious way on any other forum after I responded to it which is the bugbear they are responding to by refusing to allow people to edit.

      I've moved a lot of my posting activities to other forums that let me correct errors like that above.

      So sorry for all the typo's above that make me look like a frikkin idiot. I posted from a small form factor android phone.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    66. Re: Rotate by Maxo-Texas · · Score: 1

      It's okay.. he posted without a QA team so the errors are intentional since he was extra careful and proofread before posting.

      ---

      I *HATE* slashdot's editing system.

      In over 20 years of posting here and elsewhere, I've NEVER had anyone seriously edit/change a post folks had responded to (since there were often multiple people quoting the original). But I have repeatedly posted lame posts with the wrong word and misspellings which I can never correct on slashdot. Especially when posting from my small form factor smart phone.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    67. Re: Rotate by Anonymous Coward · · Score: 0

      Haha, you said "coder". I guess thinking & planning aren't very important for you "coders". For programmers, on the other hand, those things constitute the most important part of the work.

    68. Re:Rotate by redmasq · · Score: 1

      While I type fine on a full sized keyboard, typing on a virtual keyboard is a pain on anything smaller than a tablet. Even on a physical keyboard, it is pretty easy to type homonyms if in a hurry (only a few minutes to post and no time to proofread). I wouldn't worry too much about errors from posts: people expecting perfection in a casual forum are probably either jerks or attempting to make an ad hominem argument (or if among friends they might be trolling each other for fun). That said, I see your point concerning not allowing post edits.

  13. As a retired developer and manager of developers.. by Maxo-Texas · · Score: 5, Insightful

    This is dumb.

    QA people think like QA people. Developers think like developers. And developers can't bring a fresh eye to their own code.
    Heck, most developers can't even develop remotely comprehensive test data.

    There is some evidence in the nuclear and aerospace industries that having things checked twice results in people being lazier (because they think the other person will catch it).

    But for mainstream business developers, I've never seen them able to test as well as QA does.

    --
    She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
  14. Hell No! by jhaygood86 · · Score: 2

    I can say, as a lead developer and architect at several companies over the last 12 years, having a good QA team to catch all the edge cases makes me a much more productive developer. I have worked in many situations where I didn't have Quality Assurance, and the quality for when I did have QA was much much better.

    1. Re:Hell No! by Darinbob · · Score: 1

      The two teams do need to communicate. When quality goes down you can often trace it back to having bad communications. Ie, features aren't documented well, documentation wasn't written up front, and so forth. When you run across a developer who thinks QA is an adversary, then that's a problem that needs fixing.

  15. External testing is necessary. by king+neckbeard · · Score: 2

    External testing is necessary to avoid a number of cognitive biases. Developers should do some degree of testing new builds, especially if the tests can be automated, but at the very least, you at least need roughly the software equivalent of a proofreader. Proofreaders are needed, not because a writer lacks the ability to understand basic grammar and spelling rules, but because the brain suffers from the opposite of NIH syndrome.

    Does that necessarily have to take the form of a QA department? No, but this mostly sounds like trying to cut manpower or get around addressing flaws in the testing process. Another PHB trying to preserve his existence by pulling out pieces of a machine they don't understand.

    --
    This is my signature. There are many like it, but this one is mine.
  16. QA is it's own step in development by Masterwinks · · Score: 2

    I've done QA and I moved to development. The jobs are very different. Devs should check their own work and write unit tests, obviously, but QA really is it's own step and should not be minimized. Sure, you can code regression testing and unit test just about anything in the right environment, but a good QA tester will do things you will never think of and catch a bug before it is found on production.

    1. Re:QA is it's own step in development by Darinbob · · Score: 1

      QA also does things that developers don't have time for. QA is a full time job, and should be done in parallel with development. Ie, one day of coding, one day of unit testing, then QA may be spending a full week just on feature testing after that, then a week of integration testing, and several weeks of regression testing (hopefully automated).
      That's nto counting documentation; ie, dev is writing specs and QA is writing test plans off of those specs and that's in parallel.

      If theupper management thinks the two can be combined, then they're ignorant.

  17. QA your own code? by gwgwgw · · Score: 2

    I code in 3 different languages and write my own QA in each, but only because THERE IS NO QA department. Writing useful QA always takes way longer than initial coding of the script to do its intended purpose.

    Coder's lament: "Why would a user *ever* do that?"

    Because they are a different set of eyes and don't do the same things the coder does.

    2 weeks ago I torpedoed my own QA handling an important script that had been working fine, QA 100% successful (so my report said). A "simple", backwardly compatible enhancement entailed a QA change in order to QA the new feature. For a whole day I was ecstatic that the QA **still** passed 100%.

    Next day .. that sleep I got .. brought me to my senses .. I'm just not THAT good of a coder going back to an older script. A skeptical look revealed that the QA's "simple" change was allowing EVERYTHING to pass!

    QA is /not/ good if it's done by the same person. (And you don't want to wait 6 weeks so that YOU are /not/ the same person you were, and THEN write the QA. Nice try..)

    Everywhere it seems: Gotta have this done last week; call it what you want -- *Lie* to the customer.. they are too naive to complain.. too wet under the ears to blame YOU instead of themselves.)

    Insert your own diatribe vvvvv here vvvvv.

    Yeech.

    --
    That was Zen, this is Tao
  18. QA is needed by ghoul · · Score: 2

    QA is needed. However far too often QA teams are used as dumping grounds for Developers who cannot cut it

    In my perspective the most complicated part in actually figuring out the tests. if you can figure out the tests it means you have nailed down the scope. if you can do that before you start coding the coding part is actually easy. However if you are only doing QA but not doing coding your coding skills will rust.

    The best place I have worked had 2 scrums working on a project - Team Blue and Team Orange. For one release Team Orange was dev and Team Blue was QA. For next release Team Blue was Dev and Team Orange was QA. They kept switching around keeping both their Dev and QA skills updated but at the same time the context switch is easier to do at 6 weeks intervals than continuoisly during the day.

    --
    **Life is too short to be serious**
  19. Yes and No by Anonymous Coward · · Score: 0

    Yes, because they should check their code.

    No, because they shouldn't be the only ones to do so.

  20. Depends on the context by Cerlyn · · Score: 2

    "Test is dead" was the keynote presentation of a Google Test Automation Conference six years ago.

    My personal view is that if you are doing web development where your company rapidly & repeatedly deploys releases on behalf of customers, you might be able to get away with not having much of a QA department so long as the impact is low. If a problem arises it can be quickly fixed without much of a financial loss.

    But if you are in a regulated industry, failure of your software will result in significant lost revenue while its being fixed, or your software is deployed only every few weeks or months by customers who do their own acceptance and integration testing, then you probably need to do more QA work & dedicated QA work upfront. In such scenarios the software producer and their customers may encounter significant losses and/or inconvenience because something faulty snuck through.

    1. Re:Depends on the context by MtHuurne · · Score: 1

      There is no ultimate process that is best for everyone. They might be right that when selling fashion, being able to make quick changes is more important to their customers than reliability. On the other hand, they do handle money and personal data, so discovering problems in production can have lasting consequences.

      I think reactive QA is the real story here, not whether QA is a role handled by developers or by dedicated testers.

  21. Stupid is as stupid does by mveloso · · Score: 1

    I suppose if you donâ(TM)t care if your site and backend stop working one day then having devs do QA is fine. It all depends on your requirements and expectations. Oh, and who checks to see that toggle a doesnâ(TM)t affect code path c? End-users, of course.

  22. it's okay to be white by Anonymous Coward · · Score: 0

    it's okay to be white

  23. most productive team I've ever worked in ... by Anonymous Coward · · Score: 0

    The most productive team I've ever worked in had a simple policy.

    1. You wrote your code.
    2. You documented the developer's to your left's code.
    3. You tested the developer to your right's code.

    Harsh, but it worked really well.

    1. Re:most productive team I've ever worked in ... by TechyImmigrant · · Score: 1

      The most productive team I've ever worked in had a simple policy.

      1. You wrote your code.
      2. You documented the developer's to your left's code.
      3. You tested the developer to your right's code.

      Harsh, but it worked really well.

      But the developer to my left is an analog circuit designer and the developer to my right is a design automation expert. I do cryptography in the middle. I don't see this working out.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    2. Re:most productive team I've ever worked in ... by Anonymous Coward · · Score: 0

      Well, yeah, in those kind of contexts it would be a problem. Or, alternatively, an opportunity to learn new stuff :)

      The specific context was where everyone in the room was working on different parts of the same system in the same language and using the same infrastructure. There, it works really well.

  24. Who needs QA? by www.sorehands.com · · Score: 1

    Why? All my code compiles and runs perfectly the first time.

    But seriously, the first level of QA should be the developer. Before it leaves the developer, the code should work reasonably well or at leave pass some sanity checks. Not, "it compiles and links, so I'm done."

  25. Yes by Anonymous Coward · · Score: 0

    Yes.

  26. Developer gods by umdesch4 · · Score: 1

    This is the problem I see: Developers are inherently held to a higher standard than everyone in a dev shop. Their code must pass the parser, the compiler, and execute properly. This means not a single typo. No errant semicolons or brackets. Every character must me right. Nobody else has that harsh or a standard. I've seen high level PR and corporate releases that have typos in the first sentence. Cringe-worthy stuff. Even the New York Times and Washington Post issue articles with typos in the headlines, daily. The world has become so sloppy, it's unforgivable. But developers can't get away with this, or the compiler craps out. So by inference, it's assumed that their flawless, meticulous attention to detail is universal, and not subject to question. Hence it falls further and further upon them to do their own internal code reviews, correction of flawed requirements, QA, documentation, and everything else around the code they write. Of course, because everyone else is too lazy and sloppy to produce the same level of results. I'm in a dev shop now where the dev coders are on the hook for everything from requirements to post-deployment support, and everything in between. It just happened because they're they only people with any attention to detail, and pride in what they do, and any thought beyond putting in 8 hours a day of work and collecting a paycheck. Welcome to the brave new world.

    1. Re:Developer gods by umdesch4 · · Score: 1

      Of course, I failed as a dev. My comment doesn't compile. Alas, I can't edit it properly. The fixes for the compiler are:
      "that harsh of a standard" and
      "Every character must be right."

      Maybe I've been working too much this weekend, and drinking the whole time. Who knows?

    2. Re:Developer gods by swilver · · Score: 1

      Yeah... I said no when they asked me to be on call 24/7 (for a pittance). I stand behind the product, but I won't be exploited.

      Our shop did their own QA (although with dedicated testers as apart of the team), our own loadtests, had solid unit test coverage (all code was reviewed, including tests), and integration tests. It was rare something would go live uncaught, and if it did, we could rollback to the previous setup at a touch of a button.

  27. Yes/No. by Narcocide · · Score: 2

    Developers should be required to QA all their own code, but there still needs to be a second QA pass done by someone who did not write it. Basic human psychology causes natural blind spots in one's own logical thought processes. It's impossible to be completely unbiased about stuff you wrote yourself. So, while a developer is the best person to QA their own work, they're also usually inherently incapable of completing the task with reasonable accuracy in a reasonable time frame. Therefore, 2 people at minimum should evaluate every bit of code, but yes, one of them should be the primary maintainer of the code and the other one should be someone from a different team.

    1. Re: Yes/No. by Anonymous Coward · · Score: 0

      Yes, let's double costs instead of bidding on two projects and being profitable in the short term.

    2. Re: Yes/No. by Narcocide · · Score: 1

      If you do twice as many projects that suck twice as much you don't get much repeat business. Great plan if you don't have to worry about next month.

  28. At Blizzard Entertainment QA is "mined" for talent by Anonymous Coward · · Score: 0

    QA is needed. However far too often QA teams are used as dumping grounds for Developers who cannot cut it

    At Blizzard Entertainment QA is an entry point for aspiring developers, artists, designers, producers, etc. More senior positions may be hired through a normal job posting but entry level positions may be filled by an aspirational person in the QA department. The QA manager knows who the aspirating programmers, artists, etc are. Programming, art, etc teams may have smaller assignments that they make the QA manager aware of, if possible he/she loans a person with appropriate aspirations. Various current senior programmers, artists, producers, etc started out this way.

    Also QA is very professionally and seriously run. New testers are often shocked to discover its not just sitting around playing games with each other all day. That it is a very methodical and professional job. QA is taken serious at Blizzard and is considered is considered an important internal asset, and it is staffed and funded with that in mind.

  29. For the most part: No by Anonymous Coward · · Score: 0

    Most developers are way too incompetent to do adequate QA, but the majority of obvious issues should be rectified before the deployment goes to QA.

  30. Depends... by skelly33 · · Score: 1

    If you run a shop without continuous integration/deployment, full testing automation, A/B deployment, constant feedback loops, etc... then you had better have a second pair of eyes (without the bias of a software developer) to purely represent the customer stakeholder. With those functions mentioned being in place however, it is entirely possible that the role of QA shifts strictly to that of test automation and monitoring of A/B deployment results. The majority of development houses only dream of such organizational maturity/sophistication - pie in the sky type stuff. By all means, keep reaching, but don't shoot yourself in the foot along the way...

    1. Re:Depends... by goose-incarnated · · Score: 1

      If you run a shop without continuous integration/deployment, full testing automation, A/B deployment, constant feedback loops,

      Then you're not doing web development. Seriously, 'Software development" is not a different way of saying "Doing web-dev".

      --
      I'm a minority race. Save your vitriol for white people.
  31. Developers testing? by Anonymous Coward · · Score: 2, Insightful

    This has to be the absolute worst idea I've heard in a long time. Decent developers generally don't make good testers. Developers don't test their own code well -- I suspect because they know the workflow and don't try enough out of the box things. I'm not suggesting that the developers should be absolved from testing, they should write unit tests, end to end tests and everything in the middle. I am suggesting that a second tier of testers is a huge improvement.

    A corollary, if you ever have a good or great test person on staff, keep them. Sure, they'll piss off some of the developers but they are worth their weight in saffron.

  32. As a Product Manager : NO!!! by Anonymous Coward · · Score: 0

    No person should verify their own work. That violates any semblance of trust there can be in the quality of that work. Two sets of eyes are needed at minimum. So while the engineering managers want to get away with removing QA, the developers can test the code of other developers, not their own.

    1. Re:As a Product Manager : NO!!! by Anonymous Coward · · Score: 0

      > No person should verify their own work.
      If you meant that "no person should be the sole verifier of their own work" then say that.
      If you can't even verify what you are trying to say, just get out of the industry and don't bother sharing your lack of wisdom and experience.

  33. This by Anonymous Coward · · Score: 0

    You made a set of assumptions during development, you'll apply those SAME assumptions during testing. Bad assumptions included.

    Also don't permit cross testing, where developers tests each other work, because they go easy on the testing in order for their own work to be easily tested.

    QA is a role and is necessary.

    1. Re:This by Anonymous Coward · · Score: 0

      Also don't permit cross testing, where developers tests each other work, because they go easy on the testing in order for their own work to be easily tested.

      Even if the developers are cross-testing in good faith, there's likely a large overlap in the set of assumptions each brings -- the intersect of both sets is the gap in testing you will ultimately have... at least until users get their hands on it.

  34. ideal vs reality by m3ntos · · Score: 1

    Best results so far, embed the QA tester in the dev team.

  35. Re:As a retired developer and manager of developer by Anonymous Coward · · Score: 0

    There is some evidence in the nuclear and aerospace industries that having things checked twice results in people being lazier (because they think the other person will catch it).

    As I recall the point, it wasn't merely about things being checked twice. It was about there being many layers deep of inspectors of components where at each level, inspectors were all supposed to be checking for the same defect. In such a scenario, yes, it's very likely that such a situation does cause people to become lazy. Of course, outside of the nuclear and aerospace industries, most things that are checked multiple levels deep are often being checked in addition to being handled and processed. Ie, the act of checking interferes with productivity and will often by be bypassed precisely because further down the line the same checks will be made by someone, probably QA, that has much more relatively time to handle each part for defects.

    So, in a long-winded way of saying it, this is just another example of dumping more work on people that already don't have the time and makes products works by inherently causing defects to go unnoticed.

  36. Work harder, slave! by Anonymous Coward · · Score: 0

    The money a company saves to not hire you another dev/QA person is going into some executive's pocket.

    Yes, it's possible to QA your code 100%. Yes, it takes forever, and is not as effective as someone who QA's for a living. Yes, it will likely cause you to leave the company when your chewed out in a meeting because you didn't account for some edge case...after being told to QA your own work and still having to meet the same deadlines as before.

    1. Re:Work harder, slave! by superwiz · · Score: 1

      edge cases, schmedge cases. Not doing integration testing when everyone bleeds for their code and is personally invested in thinking that their code can't have a mistake because it's been tested. Oh, that's where the real fun begins.

      --
      Any guest worker system is indistinguishable from indentured servitude.
  37. Re:As a retired developer and manager of developer by Anonymous Coward · · Score: 0

    Developers are GANs and QA are aversarys to the GANs which copy stack overflow a billion times a day. If you can have your developer do solid checking on yout code, then you are lucky. You don't have stack overflow GAN robot AIs as employees.... you have real team contributors.

  38. Once upon an "Agile" training course... by Anonymous Coward · · Score: 0

    I asked how you were meant to strictly move tasks from "development" to "testing" to "done", when testing could find defects. The immediate response was was that I should be writing unit tests to prevent defects getting to testing.

    People want everything to be the job of developers, and no-one in any kind of project management (hipster or otherwise) wants to admit the cyclic nature of development.

    1. Re:Once upon an "Agile" training course... by Anonymous Coward · · Score: 0

      In agile, it's all about the unit tests! Your units pass, ship it to Production!

  39. aka by superwiz · · Score: 1

    Also known as "why do we need testers if we already have customers?"

    --
    Any guest worker system is indistinguishable from indentured servitude.
  40. Those who can, program by Anonymous Coward · · Score: 0

    those who can't, well, yes, get dumped in QC/QA/Test. Microsoft no longer see the usefulness of testers so they let them all go.

  41. QA not worth the cost... not that it's needed by Anonymous Coward · · Score: 0

    What they're saying is that it's cheaper and the customers are satisfied without QA since they can turn the new buggy code off and use the last version. So basically they're using the end user as testers. Yes, it might make a few of them angry, but not enough of them angry to hire separate QA.

  42. money quote by Dog-Cow · · Score: 1

    "If our site is down now, people will generally come back later," Brennan adds

    In other words: we've conditioned our users to accept being shat upon.

    1. Re:money quote by Anonymous Coward · · Score: 0

      Rather "we've outsourced QA to our users". It's not that they don't have QA anymore, it's that they force the users to do it. And users do accept it, unfortunately.

  43. Not just see, but think of other things by SuperKendall · · Score: 1

    A good QA person is going to use the system in ways you never thought of, thus never coded for. Your code might handle some of those un-thought of scenarios, and that is nice, but sometimes they will not...

    If nothing else QA is the last line of defense also against shipping something that does not make sense to how users work. In development it's too easy to get into tasing a few small paths because the are mostly representative of all the possible ways someone may use your software, but in reality for the way real customers work, your workflow may be terrible. A QA person will know this (or should know this) and may have access to real production data they can run through.

    I don't think QA has to be a huge role for a team, but I absolutely think there needs to be some QA person whose only job is QA, maybe a few light bug fixes and should probably understand code - but again it should be someone who is not a developer and who can think QA all the time.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  44. Oh sweet holy hell NO. by SvnLyrBrto · · Score: 3, Informative

    I've been a software engineer, a QA engineer, traditional IT SysAdmin, and have now found my niche in SysOps/DevOps/SRE/whatever-we're-calling-it-this-week. And good lords of Kobol, QA is absolutely necessary. The usual reasons definitely apply. A separate pair of eyes will find things you've been blind to because you're too close to your own work. Building things and breaking things are different skillsets and different mindsets. There will be edge cases that even the spec didn't anticipate. Blah blah blah.

    But try being on the operations front line some time, and you'll REALLY appreciate a good QA team. Right now, I'm responsible for multiple products from teams that, due to acquisitions and re-orgs and different companies doing things differently, some have dedicated QA and some let the developers test their own code. I see the errors and failures before anyone else. And the QA'd stuff invariably causes me less grief than the "we trust the developers" stuff. Hell, if I had my way, we'd have QA vet ops changes and updates too; because I'm under no illusions of infallibility myself.

    --
    Imagine all the people...
  45. Developers are too deep into the code by James+McGuigan · · Score: 3, Insightful

    As a developer solo-managing a legacy codebase, it is still important to have various rounds of external QA.

    The first issue is that the developer can be so far into the code that they can completely miss what is obvious or un-intuitive to a non-technical user. This may also involve legacy bugs or interactions with code they havn't written themselves.

    The second issue is that the the spec itself may not have been fully defined, or what you have is the developer's interpretation of the spec, and this may require clarification or feedback once someone has seen the end result.

    The third issue is that a developer will focus their attention on the things they consider most important. Sometimes the best way to achieve this is to just give a developer a list of minor bugs/features, which is a great way of focusing attention by clarifying the spec and letting a developer speed though a bunch of quick fixes which have a predefined spec (defining the spec is half the mental effort).

    So in general a developer should be capable of doing a first round of internal QA on their own code, but a second pair of eyes is still occasionally needed, as the developer has a very peculiar set of perception filters.

    1. Re:Developers are too deep into the code by JASegler · · Score: 1

      Exactly right IMO.

      We developers get tunnel vision. We "know" how the system works. How it is supposed to work. So we don't do the stupid things users do.
      Even if the QA person is just another developer tasked with QA it's better than just the single pair of eyes on it.

      QA departments are usually separate because they pay QA less than full developers. That is the real business reason they are separate.
      We are paying X/hr for these guys to test this crap? Can't we get some people at 60% of that to test while they work on the next feature?

      However you could easily treat QA like any other project. Team X does feature A. Team Y does QA for feature A. Next cycle teams swap roles for the next feature.

  46. Full Circle by Anonymous Coward · · Score: 0

    We tried this years ago. We then realized the devs weren't able to do this well -- especially when they were pressed for time by scheduling.

    The industry is at this awkward point where we're taking methods and processes from years ago, and trying to spin them anew as if it's some amazing new discovery. I see this in the design of a lot of new applications, and it's also the reason so many have so many problems. It's difficult to do good research on a tight timeline, which is why we hire people with decades of experience.

  47. Displaying this story is disingenuous by Anonymous Coward · · Score: 0

    Non-software-development shop has stupid software-development practices. Who would have thunk it?

  48. Yes and No by Anonymous Coward · · Score: 0

    Yes, developers should be ultimately responsible for the quality of their code. If they write a half-assed implementation and throw it onto QA to find what's wrong they are being assholes.

    No, it is sometimes not a reasonable expectation or efficient use of resources for developers to check all different platforms, modes and interactions with other components officially supported by the company.

    "This bug should have been found by QA" is a valid response by a QA person and developers should generally accept such a response with some humility.

  49. QA can be a political friend by EmperorOfCanada · · Score: 3, Informative

    Developers should absolutely have unit and integration tests and only deliver a product to QA that they think will be immediately passed onto the customer. But within many organizations this just doesn't make people happy, and unhappy people make bad decisions. QA can give a seal of approval that gets better buy in within the company. This should not be the way it is but that's life.

    Lastly, a good QA will look to see that what was produced is what was actually asked for and promised. This is no small thing, because many programming teams can lose sight of what the contract actually says. "But it's better" is something that should be negotiated, not just delivered.

    But that said, QA can be a major road block. It is not uncommon that you throw things over the fence only to find that QA has hyper focused on something that isn't a requirement. For instance you might have some system that does echo location to find the distance to a wall. Your requirements call for one successful echo location every 10 seconds. You fire out 10 per second and around 50% fail. The reality is that you are getting roughly 5 ranges per second and never will you miss your target of one every 10 seconds. Yet QA gets all wound up about the 50% failure rate and reports that the product has a 50% failure rate. This is where you begin convincing the accountants that the QA department needs a head count reduction.

  50. Well I do. by Anonymous Coward · · Score: 0

    Admitted that's probably because I'm borderline paranoid and really where would we find someone more capable ? :)

    Reality is the developer SHOULD be doing most of the functional testing anyway, if they don't they have no other way to prove that the task was completed.

    Second tier testing by someone else is fine, but if the first pass is good enough that'll seldom find anything and that tends to happen over time once the devs catch on.

    Truth is though most dev's think they are that good even with clear evidence they aren't and get quite resentful if you expect them to do their own testing.

  51. I have had both job and i am qualified for both by Anonymous Coward · · Score: 0

    Qualified as in : i went through the "school" and exams to have an official qualification for both, and I worked in both for long period of times.

    TL;DR Answer : No. This is dumb.

    As a developer you will most probably have an idea of what your code looks like, should look likes, and what test cases you developed it for. The problem is , you will NOT know what you missed from the requirement, otherwise you would not have missed it in the first place. You will also have a tendency to go for the white box testing , or miss what an user would catch and most probably you will underestimate wildly how much time it takes to properly test, FFS I saw my last project people estimate 10% test vs coding time... LOL. The result was pathetic, I warned that at least 30/40% would be more realistic, but whatever. OTOH a good tester will have a good doc, a good preparation of the tests cases from the requirement, have spent as much time as the dev reading them and understanding them from the user POV, will have a tendency to do *some* type of black box testing, and will not be code-aware so will follow path the dev might not have thought of. There is also some "adversial" effect where you WANT to find the error from the program, kick the program around until it cries uncle. Now some of what you may have found may simply never be corrected (you correct bug only until it reaches a certain acceptable level - you don't correct everything and anything), but this is definitively a process where when I develop,or I test, I definitively see how a developer could consciously or unconsciously miss something a tester might not, or follow pattern which will/may be missing a major flaw.

    having coder test lead in my experience to bad thing : dev underestimating test time, not knowing the proper test processes, or trusting the UAT from the clients. And having banana software : ripes by the clients.

  52. Re:As a retired developer and manager of developer by Anonymous Coward · · Score: 0

    On top of this I have been using this list for interview questions. https://www.joelonsoftware.com...

    It is amazing how it weeds out environments where the devs have 0 clue what they are doing.

    In this case step 10 is missing. You can have a few missing. But in my book missing #10 would be a big red flag of a dysfunctional environment and my follow up question would be how do you mitigate new bugs and ongoing bugs. Because they would not be managed. With #10 missing #4 and #5 would quickly go out the window.

    QA takes a particular mindset and ability. Not all developers have that in addition to their primary skillset. Some of the best testers I have worked with could never write any code. They just had a knack for finding bugs though.

  53. From this, all that follows by Anonymous Coward · · Score: 0

    It just makes people lazy.

    We can't have employees slacking on the job: Developers should write their own paychecks and calculate their holiday-time accrued. After all, that manager doesn't need a second layer of advice.

  54. Dead giveaway by Anonymous Coward · · Score: 0

    "..the QA people have been moved into development positions.." Management speak for his team being unable to meet schedule, so he wants to add manpower to a late project. The talk about "lazy" is another indication that they don't want anything useless like quality to get in the way of shipping.

    Test-driven-development helps to a certain extent, but in practice project management can usually call for changes faster than a complete test set can be written. There is a point of diminishing returns on the developer effort.

    It really, truly helps to have an independent QA review before shipping, even though it always takes some time.

  55. Oh...we almost forgot by hyades1 · · Score: 2

    It's cheaper. Did we mention that? It's 'way cheaper.

    --
    I've calculated my velocity with such exquisite precision that I have no idea where I am.
    1. Re:Oh...we almost forgot by Anonymous Coward · · Score: 0

      How much cheaper is it if you take into account price and quality of the results?

    2. Re:Oh...we almost forgot by hyades1 · · Score: 1

      Good question. One they've answered to their own satisfaction, I guess.

      --
      I've calculated my velocity with such exquisite precision that I have no idea where I am.
    3. Re:Oh...we almost forgot by Anonymous Coward · · Score: 0

      Only in the (very) short term.

  56. future headline... by Anonymous Coward · · Score: 0

    "Massive data breech hits fashion retailer The Iconic, as hackers make away with their entire customer database, including: customer names, addresses, telephone numbers, email addresses, passwords, and credit card numbers. Passwords were stored in plain text, and credit card expiry dates and verification codes were also included in the leaked data; contradicting best practices on data storage and retention of payment details. Security experts say this incident could have been avoided had the retailer employed software testers to test their custom in-house code."

  57. independent review by Speare · · Score: 3, Informative

    In aerospace, independent verification and validation is a critical part of the regulatory process. Every change has a reason, every reason is documented, and every change is reviewed by someone else.

    --
    [ .sig file not found ]
  58. Re: As a retired developer and manager of develope by Anonymous Coward · · Score: 0

    Another good Joel article : https://www.joelonsoftware.com/2000/04/30/top-five-wrong-reasons-you-dont-have-testers/

  59. Testing is overrated by Anonymous Coward · · Score: 0

    The essence of development is managing complexity. When you get to the point where more "sets of eyes" helps or where you have to write elaborate test plans to make sure nothing gets thru - this is the time where a competent "developer" recognizes they suck ass and they have already failed at their job.

    The need for human initiated test flows entirely from upstream failure to properly manage complexity.

    The more you test, the more elaborate your testing regime the more legion the associated failures.

    State of the art with respect to quality is advanced not by focusing on code quality, being extra extra extra careful or QA. It's advanced by creation of structures preventing mistakes from even being possible in the first place.

  60. Re: Fuck YES by Anonymous Coward · · Score: 0

    All Developers should always check their product by themselves in order to assure at least a basic level of quality. Of course not all QA measures should be done by developers. A considerable amount of checks needs to be performed by qualified personnel in order get a product to higher levels.

  61. Bad Idea by DougReed · · Score: 1

    The problem with this is that the programmer knows too much about the code. If there is a form involved, the developer knows what goes where, and if the field name is nonsense, he will still enter the right thing. If the field says 'Name', and the average joe enters his name here, and the developer wants the guys Userid... The developer won't catch this... the Q/A guy will enter hist name, not his userid, and the test will fail. There are tons of examples where the look and feel is wrong, or the error checking is nonsense, and the developer will often fail to catch these, because ... well it he thought of it, he would have fixed it or checked for it!

    Q/A needs to be done by people that are not familiar with the product... This is a problem for even normal Q/A departments, because the guy doing the Q/A is probably the guy that did it for the last version, and now HE is too familiar with it too!

    As for the customer doing the Q/A this is what betas are for. Real end use Q/A will always be done by customers no matter how much we wish it wasn't because of the problems above.

  62. Good thing this is from a fashion retailer ... by Ihlosi · · Score: 2

    ... and not from a company that makes stuff that kills people when it malfunctions. Airplanes, autonomous vehicles, medical devices, etc.

  63. ever notice how every new process by Anonymous Coward · · Score: 0

    is explained as devs are lazy and they should do X too? Who needs managers planning stuff lets have self organizing teams have scrum planning meetings. Why have managers interact with employees to make sure they have what they need? Lets have standups. Who needs both client and server devs lets make devs learn both. Heck why have a QA team let the devs do the testing. Somehow senior devs magically end up doing 3 people's jobs for the same pay.

    1. Re:ever notice how every new process by Anonymous Coward · · Score: 0

      Agreed! Devs are lazy. That's why they need Agile/Scrum to whip them into shape!

  64. For the trivial, maybe by luis_a_espinal · · Score: 3, Informative

    Should Developers Do All Their Own QA?

    If you can do that without deleterious consequences, then your work is trivial and/or not overtly complex.

    Otherwise, such a thing is insane, specially if you work in developing actual products (shrink-wrapped software or software bundled in hardware), or complex services. ) And let us not even mention software related to avionics, weapons or medical devices (where QA is done by a separate organization to remove bias.)

    The primary concern is always bias, bias that come from first-hand knowledge of a thing (or assumptions about a thing.)

    It is a lot easier and effective to have a 3rd party dedicated to methodical black box and end-to-end integration/UA testing than to get a developer to test his own creation to the breaking point.

    There is a reason why organization hire external teams to perform penetration testing of their infrastructure. He who knows nothing of the internals a-priori is the perfect person to black-box test the shit out of something with nothing but specs.

  65. Re:As a retired developer and manager of developer by Anonymous Coward · · Score: 0

    QA also tends to be a place were their is a better ratio of male/female in my experience (I mean still not great but better).I know guys I got a great idea lets fire the 3 women on the team and hire another guy dev to help speed things up.

  66. Re:As a retired developer and manager of developer by StormReaver · · Score: 1

    But for mainstream business developers, I've never seen them able to test as well as QA does.

    I've been developing complex software systems for about 30 years now, and I couldn't agree with you more. We developers are the absolutely worst people in the world to QA our own projects, as we develop tunnel vision towards how the software is used; and we develop an unconscious aversion towards doing things that will cause problems for our systems.

    I test my code extensively during development, but am still absolutely amazed at how quickly my customers find errors that didn't occur during my testing. My workplace can't afford QA staff, so we developers must perform development and QA work. It works for us solely due to our customer structure, but it would be a nightmare in most other contexts.

  67. QA is a cost center by Hadlock · · Score: 1

    QA is a cost center, management is always looking to cut or make more efficent cost centers (and at the same time maximize profit centers)
     
    It's no wonder every manager under the sun thinks they're the genius who can "solve the QA problem" and return 1-6 people's worth of payroll to the bottom line for that big annual bonus. The problem is that while YES you can get away with no QA in a very high functioning development team, on certain products,
     
    A) most teams are not high enough functioning, even if they think they are to get away with no QA for 6+ months before quality fades
    B) usually only a few developers actually have contact with the customer and in particular, for enterprise-level apps (i.e. the software that drives people's business) these things are super complex and probably your customer depends on a particular feature working a particular way as a critical part of their workflow, and if you change that both of you are screwed
     
    So yeah, your company functions ok doing facebook for dogs, snapchat for cats, or XYZ consumer web/mobile app? Cool. Your product is a button that has some business logic attached to it, yes you can totally QA a single function app. Enterprise apps that people actually use and depend on to function the same from release to release generally need dedicated QA that understands all the niche use cases that makes the product so popular in the first place.

    --
    moox. for a new generation.
  68. Most assumptions come back to bite you by ggendel · · Score: 2

    This is really a lame-brain position. As a long time developer I have two mottos:
    * If it isn't tested, it doesn't work.
    * A developer make assumptions all the time.

    I can guarantee that, if I was responsible for QA on my own code, things would be broken in subtle ways.

    Many years ago I did QA consulting for AT&T. We set up a system where the human factors engineering group would document an application in a specification. One copy went to the developers and one copy went to the QA personnel. The QA staff designed a test plan from this spec and then implemented it against the product sent from the developers. I can't tell you how many things the developers missed because of assumptions they made that were caught by the test plans.

    1. Re:Most assumptions come back to bite you by Anonymous Coward · · Score: 1

      Oooo. A spec. How rare. (oh wait, you said "many years ago")

      And this is the worse problem.... nobody writes up a formal spec any more.

      If you don't have a formal spec, then the code is the spec.
      And of course the code conforms to itself, so why even bother testing it?

      Or you could take the position that the spec lives inside someone's head.
      (hint: data storage in meat space is less reliable/available than in silicon)

      The laziness starts in management (sadly, it doesn't end there)

      I'll add another maxim to the two you already provided.

      * If you can't describe it, you can't deliver it.

  69. "DevSecOps" by Anonymous Coward · · Score: 0

    Srsly, I saw that in a hiring req recently and almost did a literal LOL.

    Both developers and operations people are notoriously bad at understanding security and now some penny-pincher PHB wants to officially put Security 100% in the hands of the same person who is juggling development and operations? And pay the usual peanuts?

    That's a good recipe for another Equifax.

  70. non-programmer testers by FlaSheridn · · Score: 1

    Yes, as it's become fashionable to get rid of non-programmer testers, software has gotten worse for non-programmers. (Disclaimer: I'm a programmer/tester.)
    The Iconic's idea is hardly new. Yahoo tried it during the Mayer era (https://slashdot.org/comments.pl?sid=8469165&cid=51105569); how'd that work out?

  71. Always need another set of eyes by enjar · · Score: 1

    QA/QE/whatever you care to call it is critical when doing anything important. They provide an independent analysis that the job was done right. Not only in code, but in pretty much any industry. Creators fall in love with whatever they are creating, and think it's perfect. QA should provide a more objective view. Just this week, I was editing some code. I'd tested it and my tests were fine. Send it for review, one reviewer says "why did you change this". Turns out, I'd changed something in an area I didn't mean to. It would have been caught when it went into production, but then a giant flaw would have made it into production.

  72. It depends by aglider · · Score: 1

    On who's going to do QA.
    If she's a QA professional, then it's ok.
    Otherwise do it yourself to save resources.

    --
    Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
  73. Software is a broad industry... by Junta · · Score: 1

    If you are standing up some trivial web application and call it your 'software project', then maybe you are overthinking it to have a lot of people in different roles. Of course if your web application is more involved or more severe, then you need testing from a separate perspective.

    If you are writing some particularly custom software for a particular market, then you should probably have a pool of testers that may not know how to program, but they are probably more in tune with your target userbase. I once worked in a copmany doing CAD/CAM software, and the software developers roughly knew what to do, but we hired mechanical engineers to do testing because they would call us on UI BS or make suggestions that are relevant to users.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  74. Developers should QA, but not be the only QA by Chrisq · · Score: 1

    Developers can add assertions and write unit tests that can test conditions that should never reach a particular module. That should be responsible for producing unit tests and running all tests as a regression suite. The best team I worked for had a policy that when a bug was reported you wrote a unit test to reproduce it at the lowest level, then fix it. This test was added to the test site and solid to every future version. However this is not sufficient, a QA team needs to test the resultant project. It's possible that the developers are not looking at the big picture, or even have misunderstood the requirements and written excellent coffee to do the wrong thing. It's also possible that other chances may interact in unexpected ways, so a whole release needs QA testing.

  75. Peer review is great. It's not QA. Users are stupi by raymorris · · Score: 2

    Peer review is great. I introduced it at my company. It's not QA.

    Users do stupid shit, shit no programmer in their right mind would ever think of doing. As an extremely simplistic example, at my job we have a script that calls nap with various arguments, including a list of IPs provided by user. The programmer tested it with some IPs. The peer could test it with some other IPs. The programmers made sure it works. Users will pass it 0.0.0.0/0, and fa70:638:363:7363::76. QA does the same, because QA is trying to break it. Programmers ensure it works, QA figures out how it can be broken (and are therefore an important part of security).

    Aside from that difference, excellent programmers (10% of programmers) will PRODUCE quality. QA will ASSURE quality. With programmers testing, you can hope the quality is good. With QA testing, you can know the quality is good.

  76. Absolutely not: but they should do some by pdxtabs · · Score: 1

    I've been on both sides of the Dev/QA divide. I'm strongly in the camp that developers should be responsible for writing automated (possibly unit) tests of their own code. However, before the code is shipped to the customer QA should have a go. It is way too easy for a lazy or even well meaning developer to ship something out of spec. Having the developer do all their own QA is like letting the prosecutor also be your defense attorney. It's patently and obviously wrong.

  77. Stupid by Anonymous Coward · · Score: 0

    Code correctness is only one aspect? What about suitability to the domain? Did the code solve the business domain problem properly? Are you going to expect developers to be tax attorneys, or medical records experts, etc?

  78. This quote says it all... by QuietLagoon · · Score: 1

    "If our site is down now, people will generally come back later,"

    They don't care about quality and how it affects their customers. They think their customers have all sorts of extra time to do double work because of software errors. I have to wonder if they company takes the same lackadaisical approach to the quality of their products? ~It's OK if our products are bad, because the customers will just buy another...~

    1. Re:This quote says it all... by Anonymous Coward · · Score: 0

      ~It's OK if our products are bad, because the customers will just buy another.

      It's more like 'It's OK if our products are bad, as long as they're not quite as big a pile of shit as our competitors'

  79. Skin in the game by Anonymous Coward · · Score: 0

    They don't need to do QA necessarily, but they must be involved in support, whether it's being on-call for that code, or answering help desk calls. That's the only motivation to make things work right. Support=Skin in the game!

  80. People will come back later ... by Anonymous Coward · · Score: 0

    "If our site is down now, people will generally come back later," ... no they won't .... ...they will look elsewhere find something they like and buy that instead ...

  81. Here is a certification program for your new plan by wafflemonger · · Score: 1

    This is the quality of QA you get when you have your dev team do all the testing.
    https://blog.codinghorror.com/...

  82. Empirical QA by Anonymous Coward · · Score: 0

    Quality assurance is an impractical meta concept best seen implemented in software porting or some other rigorous self test applied to the code base that can be quantified.

  83. Pay difference by wonkavader · · Score: 1

    You pay QA people less than you pay devs and it's a different skillset.

    So this guy is wasting money and getting a worse product. So win/win.

  84. No, they should not by chuckugly · · Score: 1

    Developers should be responsible for making sure their code is run through static analysis, that it has adequate unit tests (that pass), that automated integration testing is in place and passing, that peers have reviewed the code, and similar 'best practice' sort of things. They should also be engaged in using the product and so on, and if management wishes to spend their time this way, testing OTHER developers code.

    A developer testing their own code outside developing and maintaining automated tests is a monumental waste of time.

  85. Not one mention of DevOps? by ErichTheRed · · Score: 1

    (OK, I found one occurrence.) But seriously, this is what's being sold in management consulting "corporate DevOps transformation" packages. The first rule is almost always, "Go fire your QA department and make your developers write automated tests." This is exactly what the executives paying the management consulting firm for their "digital transformation strategy" want to hear, and that's magnified by a bunch of Google "visionaries" touting the same. Not every business is Google, and IMO DevOps works only when you can swap out everything, not just pieces.

    If QA is just mindlessly pushing buttons and seeing what breaks, maybe that makes a little sense. But, I do systems integration work, meaning our team gets to figure out how hundreds of different modules from various dodgy offshore contractors fit together. I'm of the opinion that devs doing their own testing works well when there's little component interaction and the consqeuence of failure is a 400-series or 500-series HTTP response. When you're talking about a system made up of tons of components, no matter how microservice-y you make ti, there are still plenty of opportunities to introduce issues, and someone needs to be able to catch them.

  86. Well this should go well... by AmazingRuss · · Score: 1

    " the company has now moved all of its QA workers into engineering roles."

    So inexperience engineers are going to be releasing code with no QA.

    You can't make this stuff up.

  87. Other problems too. by Anonymous Coward · · Score: 0

    Coders understand the features from a specific perspective, and they test it that way. QA people understand the features from a different perspective, and as such they create different test cases. When they both test the code, the code gets much greater coverage.

    In my experience, coders don't mind doing "dev testing," where they engage the basic features of the code, as they understand them, to prove it works. Once they are asked to do "QA testing" from a business-focused perspective, or also regression testing, not only do they do a poor job of it, they HATE doing it. It isn't what they signed on for. So they won't do a good job of it.

    Lastly, if your environment requires coders do to lots of QA/Regression testing, you are going to have to pay them more in order to retain talent, since doing that makes the job unpleasant for a coder.

  88. sure, if your QA people don't find bugs by Anonymous Coward · · Score: 0

    otherwise, you're just deciding to have a lower quality product.

  89. Where I work, that's standard by Anonymous Coward · · Score: 0

    Every new feature that we add to our software needs to have an automated test that verifies that every aspect of the feature works as designed on the data it is designed to operate on, and produces sane results on input of any user data that it was not. Every bug fix also requires an automated regression test. I admit to not being entirely sure what the QA department does beyond maintaining the automated testing system.

  90. Cannot edit oneself effectively by Anonymous Coward · · Score: 0

    As a person who worked for the Naval Underwater Systems Laboratory in Software QA, you absolutely need a different person to QA code. Just as in writing, the author is blinded by familiarity.

  91. I have always tested my own work by MpVpRb · · Score: 1

    My projects were always small. I was usually the only developer. Sometimes there were one or two others

    I always wanted independent testing, in fact, one of my favorite rants was.. "the worst possible tester is the person who wrote it"

    But, independent testing never happened, so I did my best. I started writing automated test tools long before they were popular

  92. Some yes (of course) but NOT all... apk by Anonymous Coward · · Score: 0

    See subject: You can't spot all possible "use (or misuse) cases" = why + YOU DESIGNED IT (& you use it correctly most likely, users may not & try a "different way" exposing potential bugs).

    * It's THAT simple & has always tended to work to 'shake out the bugs'...

    APK

    P.S.=> Part of WHY I posted my program here when it applies to fix things? To get 'naysayers' who stalk/harass me to FIND BUGS in APK Hosts File Engine 9.0++ SR-7 32/64-bit https://www.google.com/search?hl=en&source=hp&biw=&bih=&q=%22APK+Hosts+File+Engine%22+and+%22start64%22&btnG=Google+Search&gbv=1/ (none to date 2012 public release to present near 2018 though but MANY testers, often complimenting it saying it's WELL-WRITTEN, FUNCTIONAL, & WORKS)... apk

  93. Proof's in THIS pudding... apk by Anonymous Coward · · Score: 0

    I'm going to continue using the Host File Engine. Your software is well written, functional. The Host File Engine performs exactly as promised by mmell

    his hosts program is actually pretty good by xenotransplant

    his hosts tool is actually useful for those cases in which one does indeed want to locally block stuff outright while consuming minimum system resources by alexgieg

    (APK's) work, I've flat out said it's good by BronsCon

    I've tried his hosts file generating software. It works by bmo

    APK your posts on this & the hosts file posts, and more, have never been in error &/or bad advice by BlueStrat

    Your premise that hostfiles are a good way to deal with advertising & malvertising is quite valid by JazzLad

    I like your host file system by Karmashock

    (NEED MORE? Ask!)

    * It's recommended/hosted by Malwarebytes' hpHosts!

    APK

    P.S.=> China imitated me http://www.theregister.co.uk/2017/04/26/boffins_supercharge_the_hosts_file_to_save_users_plagued_by_dns_outages/ ... apk

  94. Absolutely not. by w3woody · · Score: 1

    Of course developers should test their own code by running it in the debugger and making sure they're not checking in obvious garbage.

    And of course developers should do unit testing modules to verify the correctness of certain libraries and submodules of their code. This correctness helps to make sure submodules behave correctly.

    But you need a separate QA team. And you need two types of testing: directed testing (with specific testing instructions to test components of the software) that are put together by a QA manager. And you need undirected testing--basically QA folks just screwing around with the software.

    There are several advantages of having a separate QA team. First, QA testers do not have to have the same level of experience as software developers, and so you can hire testers with less experience and for a lower salary. (If you have a QA manager who writes good test instructions, you can pretty much hire damned near anyone to test the software. I mean, presumably if your software is used by any random person off the street, you should be able to hire any random person off the street to test, right?)

    Second, developers often wind up concentrating on a few modules when adding features or fixing problems, and so often fail to do adequate integration testing across the product, looking for unexpected side effects. (In essence, the biggest problem are those "unknown unknowns" which cannot be found unless someone just farts around with the software.)

    (And don't tell me all this should be automated. That sort of automation is basically front-loading all the possible testing you may want to do--and completely ignores the institutional knowledge of your product gained by QA testers playing with the product. In the past when I've gone to work for companies with a well staffed QA team, I first go to the QA team, not to the development team, to understand how to use a product.)

    In general I'm a big believer in the model of software developer as a Knight surrounded by support staff. Your developer is probably the most expensive person on your payroll--so why waste an expensive resource on stuff that can be offloaded to people who can probably do various support jobs more efficiently for a lower salary? I know that sounds a bit brutal, but there is definitely an efficiency argument for software developers not writing business requirements, manning customer support lines, or doing customer sales--so why the hell do we expect developers to take over testing?

  95. QA != Testing. Fire that guy now. by Anonymous Coward · · Score: 0

    What. A. Fucking. Naive. Ignoramus.

    QA encompasses much more that just testing code. This is a case where the head of development is so ignorant that he doesn't even know just how little he knows.

  96. We've done that. The results were expectable by Anonymous Coward · · Score: 0

    Our company done that 2 years ago, we switched to the complete self-QA process.
    Advantages: the costs significantly lowered, AND the speed of releases increased. More features were coded. The administrative overhead decreased.
    Disadvantages: The quality of the code was significantly lowered. Our customers started complaining that they have beta-version of our software. A few customers left. Bugreports are increased in the amount, and the bugs are more vague, more difficult to track.
    As management was pleased with $$ earned that way, we still use this new process, although the cost was decreased quality of the product.

  97. Not a good idfea by leed_25 · · Score: 1

    > Fashion retailer The Iconic is no longer running quality assurance as a separate function within its software development process,
    You'll be sooorrrrreeee.

  98. Sure, that will work well. by Anonymous Coward · · Score: 0

    Sure, because no developer ever overlooked some seemingly "obvious" (to others and even to the developer when it's pointed out) condition in coding and also overlooked that same thing in testing. That's never happened.

    However, maybe it works for a web site where the philosophy is "Oh well, if the site doesn't work, the potential customer might come back later - our potential customers are so eager to buy our product they will eagerly delay their purchases until our site is eventually back up rather than going to another vendor and never again visiting us.".

    Sadly, too many of what we used to consider "enterprise" systems are leaning towards this same attitude. Sometimes, just masking an error and failing a request is considered a fine permanent solution in systems now. The net result of course is software rot at a level not seen before. Some (not all) of the well known open source systems are visible examples of this.

  99. Any Programmer... by CAOgdin · · Score: 1

    ...who tests his own code as the final authority is a fool, claiming omnipotence that is quite common to the breed.

    To be sure, I now--in retirement--only write code for my own needs. But, when I was programming as a profession, I accepted the fact that I am not omnipotent. I have "blind spots" in my knowledge, I have unknown things about which I've never thought before. Just because the language is as simple as BASIC doesn't mean that the writer of that code doesn't have blind spots in logic or comprehension...or even understanding of the customers' needs.

    Bypassing a) The writing (and vetting) of a formal specification, and b) independent testing...may lower the cost of programming, but it has the hazard of completely overlooking something that is obvious ONLY after you've triggered the defect....as Equifax recently found out, to their financial peril.

    When I program for somebody else, I require they understand the costs in both time and money of a) Writing a comprehensible specification, and b) Independent testing to ensure compliance with that specification. The extensive of each of these is dependent upon the risks at stake. If it's a personal novelty or utility, I can let these rules lapse, because I'm "evolving" code. But one cannot "evolve" code by subjecting it to test by the end-customer. That way lies frustration and ultimate dissatisfaction.

    In my experience, the best programs written are developed by teams made up of members with (intentionally) different viewpoints and experiences, who respect--yet challenge--each other. I can recall, in the early 60's (IBM 709 and 1401 days, for you ole timers) when I was part of a team developing one of the first "shareware" packages for the 1401: We critiqued, debated, evolved and distributed a robust program that was a platform for quick application development. It was a delight, and when I happened to be in Australia, eight years leter, tripped across a team using our shareware as the basis for other application programs...and they'd never experienced a failure because the package (and the documentation) had been vetted by so many experienced (yet divergent) people.

    If you debug all your own code, and are the sole party declaring it "Good and Finished," you are deluding yourself. None of us are quite that perfect, especially in anticipating situations or environments which we've never imagined or experienced.

  100. Do writers edit their own copy? by lpq · · Score: 1

    Someone who wrote something will overlook many errors that they wrote.

    As for writing tests -- you write tests for the edge/corner cases that you know of in such code. You don't write tests for the bugs you don't know about.

    Some testing can and should be done by authors, but no more than a minority of it. Of course, who tests for "usability" or "user friendliness"? Can't ever have a SW engineer testing those things -- hard enough to get them to fix the problems, let alone call them problems in the first place.

  101. Nope.. by SuperDre · · Score: 1

    Ofcourse coders should test their own work (it amazes me how many coders don't even do a simple check on changes when checkin their code in), but there should always be a tester who tests the working of the changes, ALWAYS..

  102. You need stupid to find bugs by CptLoRes · · Score: 1

    Developers are by definition expert users of the software they write. This leads to a usage pattern that tend to leave certain bugs unexposed. Typically bugs related weird usage patterns etc. To find such bugs you need a certain level of stupid that only real users can supply.

  103. Maybe.... by JustNiz · · Score: 1

    Part of me thinks It shows a remarkable lack of understanding, and part of me thinks it could be very insightful.
    My first thought was that its already very well understood to be a terrible idea to have only the same person who wrote the code production test it too (because they make all the same assumptions in testing that they also used to write it, so miss many test cases). Also that company is now putting high-cost developers on testing that could be performed by cheaper employees. But then.... maybe developers will actually self-improve quicker and even self-select if they now have to be personally responsible for writing bad code and don't have a QA department to hide behind.

  104. When I was principal engineer by woboyle · · Score: 1

    We were a big company. Every developer was responsible for unit testing of their software. It would only go to QA for system-level testing. If it failed, it went back to the developer to be fixed. We had a VERY low failure rate as a result! FWIW, I was the one who instituted this process.

    --
    Sometimes, real fast is almost as good as real-time.
  105. Simple answer, "No" by kenh · · Score: 1

    Longer answer, the developer is given requirements, then they code to their understanding of the requirement, and if tested by the same developer they will only confirm the software meets their understanding of the requirement.

    Having a separate QA/Test/Validation that reads the same requirements, forms their own understanding of the requirements, and tests to that understanding... if there is a difference, the tester an developer will refund their joint understanding and produce the desired product.

    Granted, selling fashion is not a life or death proposition, but they should want the code to match the specifications, and having the developer test the code themselves is far from optimal - they have a bias regarding the software.

    I tested software in clinical drug trials, and we would never just 'take the developer's word' that the code was correct, and neither would our clients or the FDA.

    --
    Ken
  106. Huge mistake by Anonymous Coward · · Score: 0

    Huge mistake, programmers fundamentally want things to work and it effects how they test software, testers want to break things and suggest impossible features

  107. Re:As a retired developer and manager of developer by Anonymous Coward · · Score: 0

    So, here we are.

    Sysops were too far from development so we made the devs into Devops.
    QA were too far from development so we made the devs into QAops.

    If we have the devs doing much else we won't be able to pronounce the name: QASysDevOpsJanitorTeaboyInfraCEO.

    Fuck, let's just have the devs do everything, including setting up PCs and hauling out the garbage.

  108. How people reacts differently to the word "Bug" by Paul+Fernhout · · Score: 1

    https://biblipole.com/Funny-St...

    That's a humorous image, but when you think about it, it shows how the psychology and rewards for testers are different than for developers.

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
  109. Not good by cwsumner · · Score: 1

    Customers charge a hell of a lot more to do QA testing than the regular QA people do! Think about it! ;-)

    "If Engineers built buildings the way Programmers write programs, the first woodpecker that came along would destroy civilization!"

  110. Why advertise how stupid your thinking is? by Brockmire · · Score: 1

    I'm always amazed how stupid and naive these people are that believe this. Developers need to QA the things a separate, dedicated QA tester can't easily. The QA guy needs to test from a customer perspective, finding new and imaginative ways to be stupid. My takeaway is that your developers are cheap and shitty. Fuck, just testing on a full blown, high-core, high memory PC will often hide bugs found on cheap office PC's not running SSD's and shit. Full disclosure, I primarily work in QA, and routinely complimented on my ability to find bugs and break things in ways the developer couldn't.

  111. Yes! by Anonymous Coward · · Score: 0

    Using automation for baseline and full coverage unit tests running continuously.

  112. Part of it by Anonymous Coward · · Score: 0

    Developers should do most of the QA, eventually all of it, if the project is small enough.
    All the BS about being too deep in the code, not having the same point of view as QA, being too lazy, is pure BS.
    QA usually do the test and validation according to users point of view. If, as a developer, you are too far from your users point of view, you are probably doing bad software. I mean, if you need somebody to tell you that your code doesn't work as expected, how good is your work ?
    In my opinion, QA should be done 99% by developers on there own code. And most of it should be automatic tests. If you can't achieve this kind of automation in QA, you are probably doing bad software. I mean being lazy is having things done automatically. How good is your work if you need an army of QA to check that it works correctly ?

  113. Seriously? by Anonymous Coward · · Score: 0

    What person at the top decided this was a good idea? Programmers stand a much lower chance of finding bugs in their own code, because they don't use their code like an end user. The vast majority do not test their software properly either...they're inherently lazy in how they test their code. They also generally do not have more than one skillset, so asking them to be able to automate QA is likely to end in disaster because they barely have time to write the code that they were hired to write, never mind code to automate testing of their code to reveal flaws in their code (which they don't want to admit exist). They also get accustomed to running their software in a certain way and never think to try running it another way.

    There's enough software out there as it is that doesn't appear to have gone through a decent QA process...this is just asking for the masses to abandon software created by whatever company decided it was a good idea to get rid of the QA team.

  114. Terrible Idea by Lord+Kano · · Score: 1

    You can't trust the same eyes that made the mistake to catch it.

    It's not even a matter of being ethical or scrupulous, it's a limitation of awareness. A developer who coded a logical mistake could be situationally blind to it.

    Let someone else do it.

    LK

    --
    "Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
  115. QA is a team responsibility by Anonymous Coward · · Score: 0

    The developer is ultimately responsible for the quality of their work. They should not be testing their own changes but there should be a whole system in place to try and catch issues early on which involve code reviews as well as team testing or bringing in third parties to test. The developers doing the work should be responsible for determining the amount of risk due to the change and the amount and type of testing needed to mitigate that risk.

    One of the main reasons to have developers involved in the testing is to make sure they actually understand the problem domain they're working in. Arguing that they can't test because they don't know how a user actually uses the software is just an argument to train your developers better since they're not going to design the software well if they don't understand how it'll actually be used.

    A team can decide that some members are better at testing and make it a permanent internal role or that they'll take turns but the key is to make it a team level responsibility to recognize risk and come up with plans and methods to mitigate it.

  116. Pointless by Anonymous Coward · · Score: 0

    Every developer tests their code. Ok, there are a few that think that it's fine as long as the code compiles, but they won't last long.

    The problem is, they test that the code does what they think they wrote the code to do. If it doesn't, there is a mistake, and they fix it. So when you get the code from the developer, it works exactly like they wrote it.

    That's not the job of QA. Their job is to take the program that works exactly as the developer wrote it, and find all the things that the developer didn't think about. Having developers do the job of QA isn't going to work, because they are never going to find the things they didn't think about. That's the whole definition of not thinking about something.

    You can get some of the advantages of a dedicated QA person by switching teams around. Team A tests team Bs code and vice versa. But as others have mentioned, a good QA department needs both a power user and a moron, because they are good at breaking things in different ways. A developer may stand in for the power user, but if your developers are morons, you are doing it wrong.

    On top of that, well tested code is tested for as long time as it took to write.Or more. A one line change that took five minutes to write in a hundred million line code base can break things all over the place.

    So if you want developers to do the testing, you'll just end up having to hire twice as many developers, as they will only be spending half their time developing. And while a good QA person might be just as expensive as a developer, the morons can be pretty cheap. So hire one good QA person, and make that person the head of the QA department, and then hire a bunch of cheap morons.

  117. Isn't this what all those test tools are for? by r2rknot · · Score: 1

    I hear about test driven development, and all the tools being put out to allow unit tests and easier integration and regression testing. I suppose it didn't make sense to have another lay in the development cycle?

    --
    "...whenever any Form of Government becomes destructive...it is the Right of the People to alter or to abolish it..."
  118. No, but we should cross-pollinize by damaki · · Score: 1

    Development and testing are sure as f*ck two different tasks. But well made code should already have a well rounded set of tests, to ensure absence of regressions and to prove that new features do work as intended. A damn huge part of coding is ensuring that your new pretty pile of code does work.
    So as a software engineer who has worked for 3 years in a team with an integrated tester, I can tell you that we can learn hugely from QA people, how to make your code robust, testable, provable. And QA can learn from devs too; QA should not be mayhem monkeys, they should spend time carefully crafting new edge tests and not do this robotic process of testing that is boring to death. Death by manual regression tests could be a kind of capital punishment in some high tech countries.
    Software Engineers out there, you should try and spend some time with your nearest tester and pair-test (yeah, just like pair-programming) with him. You will learn soooo much, that is guaranteed.

    --
    Stupidity is the root of all evil.
  119. Yes and No. by DarthVain · · Score: 1

    Yes your developers should be during QA. No you should not be stopping QA outside of developers, that is just stupid. You need both.

    Recently we've forced developers to start doing some additional QA. The reason? Lack of code accountability.

    I've gotten to test and QA code so bad, that it barely runs, or doesn't even load, or is so riddled with problems one has to wonder how it was they even did the coding in the first place successfully without having to run into so many problems that it would prevent them from coding other parts of the application. We would spend so much time correcting obvious errors, and just getting the application to "work", that there is little time in the project for more detailed QA in regards to if it is meeting actual business requirements, or subtle specific case conflicts etc... When at the end of it and you are running out of project time, and you start pushing back at the developers, they push right back saying it is all the fault of a lack of QA. The solution is that they are forced to QA themselves, and to demo proving that what they have accomplished at least on the surface is a working product without any obvious problems *before* any other QA type work is done by anyone else. As mentioned I've seen stuff that is so bad that I'm like "did anyone look at this at all ever? How did then even code it with at least running the application at least once? Did they actually compile and test their code at all, or just write it all free hand and cut and paste the code in, wiping their hands and exclaiming, DONE!"...

    At any rate, only having developers is crazy, and I foresee lots of problems. Typically developers might have a vague understanding of the business, but they are usually just given the requirements documents and their marching orders. The should be able to catch obvious coding mistakes, and some process stuff, but realistically they are not going to know enough to do all the QA themselves unaided.

  120. Depends by Anonymous Coward · · Score: 0

    It depends on how you define QA.

    If you define QA as your neighbor's kids (who you are paying $15/hour under the table) hunting and pecking around looking for bugs then, yes, the developers probably would make for better testers.

    However, if you are talking about software development engineers in test (what MS used to call testers before they fired them all) then, no, developers should not be doing the testing. SDETs develop test plans. They create entire QA systems that asses testing coverage, allow them to automate, etc. They maintain test environments that are mirrors of prod (including full datasets, similar hardware, similar network, etc.). They do full end-to-end testing rather than just unit testing. They have the mindset of a destructor -- never assuming anything, always looking for the edge case -- whereas developers have the mindset of a creator -- always hoping it'll just work.

    So, it depends on what kinda shop you are running. As with most issues like this that come up in tech, there is no one-size-fits-all answer.

  121. Only loosely by Anonymous Coward · · Score: 0

    In a general case, where possible developers should be able to test as much as possible, as quickly as possible and as close to the production environment as possible. In testing, developers should perform a QA role but they should not be seen as fully responsible for QA. Developers test what they need to in the course of development where as QA tests thoroughly with some different sets of concerns. Developer testing is primarily for functionality, gaining understanding, etc. The developer is responsible usually for making sure their software actually works. Along the way though they pick a lot up and it is important for developers, the first ones to see something working normally to throw crap back up the chain. In an ideal world a developer would be able to get designs and specifications that make sense if the developer wants to stick to development. In the real world, I've seen so much junk get passed down to developers, designs that simply don't make sense, specifications with gaping holes and complete ignorance of what to do at any given stage if there is a failure, etc. I've seen a lot of developers either try to fix this themselves, creating a lot of extra work for themselves or passing it all the way down to the customer creating extra work for everyone. Developers should also have an understanding of the specifications and requirements where possible and if things don't make sense toss it back up. I tend to be in the category of tossing it back up or fixing it myself. The earlier in a supply chain things are fixed the better. You would be amazed how much can end up being lumped on someone closer to the front lines. You can have developers over loaded doing half the world several people higher up in the supply chain should be doing which creates a bottleneck.

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

    First, let's get the subject clear. QC == Testing and QA != Testing.

    QA is the design, implementation, and monitoring of policies and procedures which will mitigate risk of defects.

    Should developers do their own QA is like asking should developers do their own PM, or should developers do their own SME. In some cases, and in particular on smaller teams, sure. However we created different jobs for a reason. That is the overall experience of focusing on the desires of the SME to create a system that delivers a better product in less time.

  123. I've Done Both by coolmoose25 · · Score: 1

    I've been the programmer and the engineer and the QA tester. And this all boils down to the quality of each. I remember when I was the programmer/engineer on a long standing application. Management brought in a QA person, who was basically an intern who was tasked with finding bugs (probably because someone complained the app was "buggy" when it was really just overloaded and being used outside of its design parameters.) This guy comes to me with a laundry list of bugs, and the biggest one was where the application crashed when they were not on a specific tab, and the user clicked a certain button. He thought he had found the holy grail of bugs. He was very excited. His excitement turned to dismay when he asked when I would be fixing this bug. I told him "never". He was incredulous. Why? Don't you see how bad this is? I asked him how many times the bug had been reported. He said that it had NEVER been reported. HE had found it! And I explained that a user would never push that button without being on the tab it was associated with, because they would want to see the quote that was being sent out and it's amount before submitting it. So it was a VERY low priority and I wouldn't be doing anything about it anytime soon. OTOH, I was a QA tester for a medical product at one point. I developed the test cases and executed unbelievably complex test scenarios (largely because I suffered from a disease this product was used to help manage) and so had a complete "user" mindset. My documentation on it was formidable as it all had to be made available to the FDA. So this was some very high stakes testing, and I was able to uncover many bugs that would have sunk the product had I not been as thorough as I was. The company that engaged me on this project was overwhelmed with just how detailed I had been, and turned to me again when they came out with another similar product. I declined that engagement as I had moved onto a full time gig instead of consulting, but I probably could have made a good living with just them as my only client had I chosen to. Bottom line on all of this is that it depends on the people. Quality people, regardless of role, is what will make or break Quality Assurance in products and software. If you have slipshod, lazy programmers, no amount of QA will fix that. If you have slipshod, lazy QA engineers, no amount of QA will fix that either. Where the problem lay in this case is hard to determine. But my guess is that this org has a problem in both areas, which is a reflection of their management more than anything else.

    --
    Brawndo: It's what plants crave!
  124. Only if you want very poorly done QA by rhyous · · Score: 1

    We should do our own Unit Tests.

    Someone else should monitor code coverage, cylcomatic complexity, etc., and push us for more and better tests.
    Someone else should do QA.
    Someone else should write system integration tests (where you test the installed system, not an isolated piece of code)

  125. develop according to ideas by Anonymous Coward · · Score: 0

    I think it is very important that the systems developer, must have in mind the quality of their products since according to it they are increasing the prices of their own systems, I think that each developer is adjusted to the needs of the customer and that helps to improve in a standard error test.
    I have developed web systems with my own standards and I am doing very well http://zonaviajes.mx/

  126. Sure!! by Anonymous Coward · · Score: 0

    I think it is very important that the systems developer, must have in mind the quality of their products since according to it they are increasing the prices of their own systems, I think that each developer is adjusted to the needs of the customer and that helps to improve in a standard error test.

    I have developed web systems with my own standards and I am doing very well Zona viajes

  127. Sure!!! by danielgarciasosa · · Score: 1

    I think it's good that the developers start taking initiative and thus be able to add the type of quality that the client needs, in my case I develop websites with a standard that I was doing depending on what the client wanted. for example my website Zona viajes

  128. Was it Fred Pohl who said ... by eric_harris_76 · · Score: 1

    It may have been Fred Pohl who said "The problem with being your own editor is you have no editor."

    --
    There's no time like the present. Well, the past used to be.