In NASCAR, faster is better, end of story. This same philosophy is seeping into attitudes of continuous integration and continuous deployment. Whether this is a good thing though is up for debate. In an article for AgileConnection, John Tyson highlights the glaring problems that can arise from too much deployment.
No Pit Stops
On one hand, yes, deployment times have skyrocketed compared to the days when waterfall methodology was the only game in town. Even when only looking at reliable deployment rates, it is a vast improvement over using waterfall in isolation. But Tyson sees things going too far in the opposite direction now, having heard of one business that claims to deploy software into production between one and two hundred times per week. One trouble with deployments this excessive is that people do not have a chance to get used to “normal;” the software is always changing in a way that might demand users to reeducate themselves.
A second, greater problem is that some businesses are starting to forego proper software testing conducted by professional testers. Instead, they are adopting an attitude of, “Well, if this push is broken, then we’ll just fix it in the next one,” which is obviously risky. Furthermore, Tyson feels that testers in general are underappreciated, and businesses are too eager to replace them with automated testing. But automation does not catch everything—and for that matter, neither do users. Or to phrase it another way, a majority of users are not going to bother to report bugs even if they find them. If dedicated testers are not present, there could be bugs that exist in software that go unaccounted into perpetuity, some of them potentially serious.
Tyson goes on to say this:
Test automation focuses on testing functionality but has no clue about usability. Who is using your program—another program or a person? If it’s a person, then you will want a professional tester exercising that application with a keen eye on usability. An alternative to having a professional tester do this is having a group of users participate in a formal usability test. This is a good idea, but in all my years of testing, not a single application I’ve tested has ever gone through a formal usability test. I wish more companies would perform usability testing, but it is faster and cheaper to use a knowledgeable tester.
So is it time to pump the breaks on continuous deployment? If you cannot honestly say you have a full grasp on your software quality, then the answer is a hard yes.
For further thoughts, you can view the original article here: https://www.agileconnection.com/article/has-continuous-deployment-become-new-worst-practice