Quality: A Result of Careful Planning
Sandeep Gokhale
< 1
October 25th, 2024
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.
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.