Photo by Anne Nygård on Unsplash
Quality: A Result of Careful Planning
A short guide about how I approach Quality
Ensuring quality isn’t just a priority for me, It’s the very foundation of everything I do. From the first line of code to the final product, quality and excellence drives every decision. This is the best way to ensure a reliable, secure, and scalable outcome. In this blog, I share about how I left shift quality so that the outcome is something people love.
Focus on Quality starts very early
Whether its a new feature being developed, or an experimental idea, the first step towards quality starts by clearly defining what is expected.
Consider Jira. When creating a ticket, I usually follow a very specific format and encourage everyone around me. Here is a glimpse of what goes into every Jira ticket I create.
Brief description of What needs to be done.
Background
Why/Value Add
Detailed description of What needs to be done.
Acceptance Criteria
Roles Impacted
Security/regulatory inputs
Additional Notes
Meticulously detailing everything surely takes a lot of my time. But in the end, It’s worth it.
Every point mentioned above helps developers, code reviewers, QA & everyone else in the team to totally understand what is needed. Of course, this is followed with planning and estimation meeting, where we go over the details of the ticket, tweak the description to make it more concise when needed, add implementation comments if necessary.
Right after Planning and Estimation, The QA starts working towards Test Cases and designer starts working towards UX.
Clearly stating what needs to be done is an Art and when this is done well, quality is just “doing the needful”.
Isn’t it fun ?
Design
Depending on the feature being built, we may need a Figma design, The design process goes through multiple iterations including understanding the need, brainstorming, ideating, low/high fidelity and then coming up with at least two iterations of the possible solution.
Post internal review (Me and the designer), I share the designs with our QA as well.
Why ? so that:
QA would know the design change that are about to come soon &
Mainly think provide feedback about how the user may feel of this change.
- If needed, tweak the designs & sign off for development.
Thus “Left shifting” Quality before even a single line of code is written.
Build
A lot of people think Coding is where all quality issues occur. While “Technically“ its, true (Bugs arise from code itself) - There could be a lot more but developers get the blame/finger pointing.
Show some love❣️ for Developers, It’s not that easy we do.
Coding
I will probably have to write another blog about how I approach coding. For now, we will stick to the topic at hand - Quality.
After coding it out, I follow up with:
Adding/Improving tests (Frontend + Backend)
Unit
Integration
Postman tests
End to End Tests (Automation with Playwright)
Add to this, other secure development practices I follow:
Linters
Prettier / Code Styles / Editor Configs
Static code analysis tools (SonarQube)
and more.
Does it take time, 100%. Is it worth it ? 200%. Quality cannot happen without enough time investment.
Code Reviews
You can read more about how I perform code reviews in my other blog. In case you are not doing code review, I request you give this a read.
Git Hooks
I love Git Hooks, They just make few things simple.
Worried about bad code going to the repo?
Worried about secrets being pushed?
Worried about build errors during reviewing PRs?
Worried about failing tests?
All of these and more of my problems are solved by Git Hooks. This along with SonarQube and other tools enabled me and my team to develop applications securely. ( Yes, the hooks can be bypassed, but its built that way for a reason).
Focusing on quality well before we start the Quality Phase" actually begins, is the best approach towards high quality outcome.
CICD Pipelines & Testing
The focus on Quality continues to the CICD pipelines. We do all the checks
Build
Tests
Secret Detection and more.
Every time the code moves to different environments/servers, these quality checks are in place.
Post code deployment, QA will continue to take care of the Quality.
Manual Testing.
Automated Postman Testing.
End to End Tests (Playwright)
Load Testing.
Penetration Testing.
Yes, we do all of this today.
Closure
In this blog, I wrote only about how I focus on Quality during application development. In upcoming blogs, I intend to share about how I add Quality when it comes to
Infrastructure As Code
Documentation
Lean Processes
Guardrails/Gates to ensure processes are followed with Automation.
Writing amazing Tests and more.
Having been in the industry for about 18 years now, quality is something that has been the foremost thing I care about.
Thank You
If you have reached so far, congratulations. Please feel free to share your thoughts via the comments.
Let's Connect
Feel free to connect with me on LinkedIn and Twitter if you have any questions.
Until Next time!