Skip to main content

Reduce Your App Development Costs by More than 50% by "Simply Preventing Bugs"!

Reduce your app development costs by more than 50% by simply preventing bugs

"Be a yardstick of quality. Some people aren’t used to an environment where excellence is expected.”— Steve Jobs

Everybody loves to avoid a disaster, but there is a “proactive” effort to do activities that can prevent a disaster from happening. Most of the executives do not want to “get involved” in such “proactive” efforts, simply due to the love of fixing urgencies Or having a mindset that it’s not important.  

I remember, when once I was working with the Quality Assurance team on a product. The development team simply refused to spend efforts on the most essential “unit testing” for their developed components! The intent was to release the software to the QA team as soon as possible and focus more on so-called “core development”.

Over the years, looking at multitude of projects failing in-spite of highly experienced resources, reasonable time and the intent, I have uncovered that, prevention is the “Most Important” and “Ignored” part of software development.

Why should we focus on Prevention? 

As already stated in the above example, the development team didn’t intentionally not want to do “unit testing”. They wanted to avoid this activity to quickly move to next feature. This is where, the management’s role is paramount to enforce good-practices and create a culture, where quality is considered core for achieving “excellence”. A top-down approach always ensures, that the team doesn’t take the most important procedures for-granted and surpass these for their own personal benefits.

What is Prevention in SDLC (Software Development Life-Cycle)? 

Prevention…, also an important part of the “Verification Phase”, involves activities or procedures, that can help a software team prevent (and fix) issues / defects well before doing development (or coding).

These issues or defects, that can be prevented could be in –

  1. Requirements (or Scope)
  2. Architectural Design
  3. Module Design and
  4. Coding (or core development)

When should we do prevention activities? 

Prevention activities are done before the testing phase starts (i.e. before developed code is “unit tested”), during…

  1. Requirements gathering and elicitation
  2. Designing the right frameworks / architecture
  3. Designing modules for features
  4. Coding (or Core Development)

How do we do prevention activities? 

Some of the examples of prevention or verification activities are –

  1. Requirements gather and elicitation – Performing requirement reviews (or Ambiguity Analysis) and using requirement elicitation checklists
  2. Architectural design – Performing design reviews
  3. Module design – Performing design reviews
  4. Coding (or core development) – Perform static code reviews, code walkthroughs and using industry best practices of using reusable tested components

Who should be involved to do these? 

All project stakeholders should be part of prevention activities with the requisite owners of every phase of development.

Lastly, prevention is easier, but fixing defects at a later stage (or applying a cure) takes high-amount of efforts and adds a lot of risk for the project.

- Written by Anand Nanavati (SupraDigit Solutions)


Comments

Popular posts from this blog

The Top 4-Ways to Build the Right Test Strategy

A Test Strategy is created to guide all teams on steps to achieve software quality objectives. With software companies adopting agile practices in a big way, an effective Test Strategy becomes even more important with iterative / sprint-based application development. A test strategy being a live document, should ideally plan to integrate the business, development, testing, and management teams, define the quality objectives for the intended application and chart-out a path on how all the teams can help achieve these. The test owner and the team can build an effective test strategy with these 4 best-practices: A)   Focus on Prevention – Helps avoid major issues and rework on projects. ü Prioritize requirements and business rules. ü   Communicate changes in priorities immediately and effectively to important project stakeholders. ü Strictly review and implement common require

What is Software Quality?

“Why do we never have the time to do it right the first time, but always have time to do it over and over after the first time?” – Anonymous  Quality is something that happens at every stage of Software Development! When I talk about Software Quality, almost everyone in the Information Technology world thinks about “Software Testing”. Unfortunately, this is a myopic view of Quality as a specific team effort and not as something, that should be embedded and part of the complete Software Development Life Cycle! Quality can be defined and need not be an “ambiguous term” for an organization. For any software, quality is more aptly seen from a view of what the customers considers as ‘Quality’. Although, this is not the only way to consider ‘Quality’. Quality must be seen from the viewpoint of ALL stakeholders involved with the product. Apart from this, ‘Quality’ should be considered as everybody’s res