Get rid of manual quality control
March 29, 2010 – 17:55After reading recent Eric Ries piece in HBR, one thought was bouncing my head…
What are such rules for software development service companies, like mine 42 Coffee Cups, that does Python, Django web development?
Some things in Eric’s article resonate quite closely to me. For example, when a stupid bug creeps into the code we deliver to our customers for review, at least half of time I’m being asked – aren’t your QC people watching it?
I had difficult time answering this, because my gut feeling from 20yr of software development is that dedicated QC slows things down while hardly compensating with increased quality.
You know, if debugging is the process that removes bugs from a code, then programming must be an activity that implants the bugs there..
In my reality, when this bug is drilled down to find the cause, it’s almost always something like
- the particular piece of code wasn’t covered by unit tests
- whoever integrated the code didn’t run the tests before shipping (yup, it happens occasionally – we’re all humans)
- whoever integrated, hasn’t bothered to eye-check the result and html, being clean, gives awful UI experience
- there was a deadly misunderstanding between customer and developer
Each and every item on the list could be fixed by either
- automating more work
- adding more automated checks, like running CI tests on every checkin or measuring the test coverage
- delivering to customer faster and ask for his feedback
During early stages or if done wrong, this gives awful results – a customer has to spend a day just listing defects
Yet…
Isn’t a reliably shorter round-trip time (time from a feature request submitted and the code shipped to you) and solid process of “making errors only once” much better than have to wait an additional day (on average) for QC review, pay for its costs and still have errors shipped sometimes?
42 Coffee Cups still have a long way to walk to achieve the ideal sanity, yet I believe this is a way to go
What do you think?