Quality
“Anything that can go wrong will go wrong.” – Murphy's law
Murphy's Law is a reminder that challenges can and do pop up. As seasoned engineers, sometimes we get a gut feeling that something isn't quite right with what we've developed. When that happens, it's crucial to pay attention. That feeling is often our experience alerting us to potential problems. By listening to these hunches, we can catch issues early and stay true to our goal of top-notch quality.
Design for Quality from Day One
We believe in embedding quality right from the start of any project, rather than leaving it to the end. It's not just about testing; it's about designing with precision, intention, and a deep understanding of the end-user's needs.
Use Realistic Data for Testing
While testing functionalities, avoid random or irrelevant data. The key is to simulate real-world scenarios as closely as possible. Tools like Faker are recommended for generating data that aligns with genuine use cases. This ensures that our software not only works but thrives in real-world applications.
Purposeful Testing
When diving into the testing phase, be goal-oriented. Instead of generic testing, focus on specific scenarios, expected outcomes, and potential pitfalls. Always remember: testing without a clear objective is like navigating without a compass.
Unwavering Commitment to Quality
In every circumstance, we are committed to delivering top-tier software. We hold ourselves to the highest standards, valuing robust, reliable, and effective software over rushed or subpar outputs. If we ever face a choice between quality and speed, remember: it's always better to wait than to compromise our reputation by delivering something below our standards.
Test
Example Case:
Let’s say you need to develop a blog from scratch. There are posts, and users can make comments on those posts.
First, talk with the stakeholder and ask questions about the usage metrics like;
?? How many posts are we expecting in an hour/day/year?
?? How many comments are we expecting in an hour/day/year?
?? How many people will see these posts and comments in a second/hour/day?
?? Are we expecting sudden spikes, or will we have regular usage?
?? Determine the performance test standards below by using similar questions above.
?? Then run these tests with the given performance standards.
Do not deliver software without making these tests and preparing a test report.
Daily Checks
We must maintain what we develop to ensure the quality stays constant. We utilize daily check sheets to ensure the system is within the nominal limits. One person from each team goes over the daily checklist. This process usually takes half an hour. If an abnormal situation is found, the team is informed. The following can exemplify what constitute as daily checks:
?? Server resources such as RAM, CPU, and disk space
?? All worker services, whether they are running or not
?? Queued message sizes and counts
?? Graylog warning and error logs
?? Graylog processed message count
?? Database connection counts, slow queries, lock times
?? Redis key counts, space on memory
?? 4xx and 5xx responses from API
?? API 95p response times
?? Project related checks such as payments, windows services, ETLs, etc.
?? Join Us
Stay tuned with Product Development Playbook where we share insights and knowledge from our journey in product innovation.