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

Change the World by Keeping Your Inner Fire Ignited

A decade back, when I was working on a huge enterprise program (with multiple projects) along with a big team (of close to 300 people), we were a group of managers who were evaluated and pushed by the senior management to “proactively” deal with issues and to work on finding new solutions. I used to think of how - we can become “proactive”, when we were already focusing our efforts on fighting our daily “fires” or urgencies of our project work. When I delved deeper into our daily work habits, it struck me that till the time we are not excited about “getting things done”, the willingness to explore more out of our comfort zone just doesn’t happen. The innate human behaviour is to follow a routine and establish a comfort zone over a period. The 1st factor – “an external stimulus” can upset us and force us to think or act out of our comfort zone.  The 2nd factor that can make us “move” out of our comfort zones is about having an excitement of a future or coming up with a vision th

The Confusion Between Software “Metrics” Vs “Matrix”

When I was studying in class 10 th , I asked my English teacher a very basic question about why two words in English sound the same but mean different. That time, we never had a separate subject on “phonetics” and I was quite unaware of this part of the English subject then. She smiled and very smartly told me that – “English is a ‘funny’ language” and went away! I was amused by her answer the whole time. Only later I learnt that in English there are so many words with a spelling, that are used “as per the context” to mean different than their similar sounding words with a different spelling. In quality assurance and in general in project management, many testers and project managers make the same mistake with a misunderstanding and confusing these 2 words – “Metrics” and “Matrix”. They use them interchangeably! Metrics in the quality management context means “to measure” (check its meaning here - https://www.dictionary.com/browse/metric) and … Matrix has different meanings based o