In this blog, I am sharing my thoughts based on my experience & research on this subject area.
In this blog, focus is on improving the structural quality of software, which eventually impacts functional quality aspects as well.
How do we define Structural Quality?
"the degree to which non-functional attributes of a software product such as maintainability, modularity, robustness, etc. satisfy stated & implied needs for the software product"
Some structural quality attributes such as performance & security can be measured using static/dynamic code-metrics tool, whereas few attributes like modularity & maintainability might require manual review process.
Often, we are reactive as opposed to being proactive in addressing quality. Quality starts early & hence process needs to be established across all phases of SDLC:
- UI Development (considering increasing focus on user experience, this is a must to consider it as a SDLC phase)
- Templates – Aims to make sure agreed skeleton for artifacts
- Standards & Guidelines – Aims to make sure actions are predictable, detailed & repeatable
- Checklist – Aims to make sure there is consistency in completeness
- Tools – Aims to support & bring efficiency in process and also bring consistency in usage across
What are the metrics & tools to measure Software Quality?
How do we provide governance to keep check on Software Quality?
- Governance needs to be very simple & effective. A very complicated structure & complicated process does not go well with team and often people tend to deviate from it.
- A periodic checkpoint with team as part of governance model is must and needs to be informal to assess actual health of the software system.
- Finally, a simplistic viewpoint (either using any tool) or even manual dashboard can bring transparency & visibility to the system (clearly defined KPIs to track quality parameters)
- Moving from Subjective Development Quality towards Measurable Development Quality is very important. If we don't know how to measure quality, then it can't be measured against any internal/external benchmark.
- Quality Governance Model is often ignore and not well established or not followed. Having Architecture Review Board, Design Review Board & Quality Review Board (on periodic basis) is a big plus and needs to be supported by Senior Leadership.
- Automation is the key to meet aggressive timelines challenge & usually it is less prone to errors. Whether it is code generation, build generation or quality reports automation, it holds key to success.
- Having Uniform & Consistent Methods to apply during SDLC phases ensures success with certitude.
- Finally, establish benchmarks in your organization to compare quality score of each project. Without knowing where you stand, it's impossible to achieve the targeted goal.
All data and information provided on this site is for informational purposes only. This site makes no representations as to accuracy, completeness, correctness, suitability, or validity of any information on this site and will not be liable for any errors, omissions, or delays in this information or any losses, injuries, or damages arising from its display or use. All information is provided on an as-is basis.This is a personal weblog. The opinions expressed here represent my own and not those of my employer or any other organization.