Working in software is hard.
It’s a reality and you know it and I know it. In a field where everything seems to change and move so fast, it’s hard to keep track of what’s going on, what the new cool tools are and what the competition is doing and why is it working so well. All that on top of actually doing a great job, ‘cause one little mistake and it’s all gone, and you don’t want to be the one that caused a drawback and is costing a lot to the team.
Don’t worry - we get it and understand how important it is to do good job and to ensure that we are delivering a quality product. Whether we are working on a stand-up bot for Stride or Slack or in any other of our products, we look forward to delivering tools that make Agile practices easier for remote teams. So why not delve into that for a moment? Let’s talk about product quality.
If you walk down a busy street and start asking random people what do they think the word “quality” means you’ll probably get lots of different answers: some might talk about performance, others about price and some others about the way something is created. And none of them would be wrong. The word ‘quality’ is so broad that to tie it down to one universal definition would be a mistake, as all the meanings we used as an example are valid. “Quality” in each case could be something that covers their expectations and requirements, whether stated or not.
And how do we actually ensure we will deliver a great product?
Bugs in software will always be there, no matter if you’re a small startup in the middle of Taiwan or if you’re Google, but that doesn’t mean it’s something we should just settle with. Improving quality isn’t something that should be saved for last as an afterthought but should be an integral part of the software development life cycle from the beginning, since that is what will guarantee that the end product meets the needed requirements and delivers a satisfying user experience.
Because of this, it’s vital to establish practices that can go a long way with helping improving software quality when they are implemented into our software development life cycle. We’ve realized that for us, something as simple as running a stand-up meeting on Stride helps a lot, and that’s what led us to create a bot to run them asynchronously at a specific time everyday. Similar to this, there’s other actions that help as well, like the seven pragmatic practices according to the Forrester report:
- Your definition on Quality should match your needs
You must recognize that your apps do not need to be perfect but you need to be able to lessen the risks. So the definition on quality may vary depending on the product. Ask the right questions and get the right roles involved at the start of a new project. This will help you not feel like you’re pursuing something unrealistic and specifies the time, resources and budget you have.
- Have simple quality metrics at hand
Make sure that the metrics are easy to consult and understand how they are measured, they can be as simple as a total number of defects or severity of defects by phase. By doing this, you ensure to have quality at the top of mind and will help reduce mistakes.
- Fine-Tune Goals to include quality
Create goals that are easy to introduce incrementally until you reach the level of achievement you desire and have incentives for them.
- Get the requirements right
If you keep changing requirements on the go, rework and poor changes might result in unstable code delivery. By knowing the needs from the get go, you will achieve satisfaction easily.
- Test smarter to test less
Focusing on testing the most crucial areas ensures that any bugs that slip through are likely to appear on less important features.
- Design Apps to lessen risk of bugs
By having stronger design principles such as frameworks and design patterns, you can reduce the likelihood of bugs and have a simple and clear code that is easier to test.
- Optimize the testing tools
This is particularly useful for Agile teams because they’re apt to test more often. Automating test scripts can increase how many times an even repeats itself and frees resources to focus on having stronger manual involvement.
The road to quality products is a teamwork task and should be a priority to every member to improve user satisfaction. It must be something that is measurable and incentives everybody to improve it :)