How do you keep users happy with your production code?
Users are happy when your code works, so your team (rightly) focuses on quality. Best practices are followed and many hands are involved in ensuring quality software makes it to production. Surely, conventional thinking dictates, we can avoid production bugs if enough people pitch in to help.
Except you can’t avoid production bugs. You can, however, delay software deployment and disappoint your users. User experience, at its core, is about handling the complicated bits behind the scenes, so your users can simply use your software (or use your software simply). Your users don’t care about your quality control processes or compliance policies. Your users care about using your software. In production.
So, the question becomes: How can you deliver quality software faster?
I’ll assume, for the purposes of this article, that you’ve already implemented the common sense development practices of Test-Driven Development, Peer Reviews and Quality Assurance testing of all sorts. Those are table-stakes for this game. Unfortunately, along the way you’ve likely also implemented rigorous change control processes, complete with checks, balances and hoops through which you must jump before you can make go from development to production. Are you ready for the three-step recipe to delighting your users?
- List the people, processes and technologies that stand between development and production.
- Eliminate everything that is not required by law.
- Automate the rest.
All software has bugs and all production systems have corner cases that can’t be tested in QA. Start with that realization. Continue with a passion for excellence/quality. Arrive at a decision to take a leap of faith.
We aren’t shipping diskettes with each new production version (if you are, I’ll accept your scornful comments). We’re capable of making changes at Internet speed. Write your tests first. Develop software with healthy paranoia. Engage deeply in consistent code reviews with your expert peers. Execute a clear QA plan. Communicate changes with stakeholders. Then… Push. The. Button.
The best defense is a good offense.
- Question the necessity of every step between development and production.
- Attack the status quo with a vengeance. There is no fear in this dojo.
- Automate everything that slows you down. Computers love well-defined, repetitive tasks.
- Ship it. Again and again. Just keep making your software better.
Your users are counting on you responding to their needs. They are going to deal with bugs. They just might not deal with a delayed response. Show them you care, and ship it.