Paying for Mistakes: The Cost to Fix a Software Defect and How to Avoid It
In 2002, a study by NIST reported the U.S. Economy spent $59.5 billion annually fixing software defects. Less than a decade later, Cambridge University found the cost to have risen (in 2007 to 2011) to a global cost of $312 billion per year. With technology becoming an ever-growing presence in our society- from smart phones to smart cars- the pressure to build infallible software is at the forefront of companies' minds. A software defect, which can be caused by omitting even one character in pages of code, can have far reaching repercussions.
These kind of non-conformance expenditures spent repairing software defects impact your Cost of Quality, costing your company profit and maybe even your professional reputation. Customer satisfaction fuels the reputation of businesses, and even a small software defect can translate into billions of dollars in lost revenue when people become frustrated over non-functional or mis-operating products.
"To err is human." So, how do we reduce software defects caused by user error?
With the Atlassian product suite, you have security with well-documented, well-reviewed process capabilities- You just have to begin with the end in mind. This should be the mantra for any software development effort. To start, gathering clear requirements in Confluence will allow a team to have a single point of truth when in the early stages. Developers, QA, Stakeholders, Product Owners, Scrum Masters- everyone should be involved in the process. Before kicking off a new project, ask yourself:
- What are we trying to create? (e.g. a new feature, an enhancement to an existing product or offering, a cleaner UI)
- Why are we doing this and why is this a need?
- Who are the end-users and how will they be using the product?
- Where in the application will this sit? (e.g. Is it middleware? Is it database transactions? )
- When can we release this?
These 5 questions can get ideas flowing. Recommendations regarding this phase include creating user profiles to help determine acceptance criteria. In Agile, the creation of user stories helps here too. By beginning with the end in mind and leveraging Confluence, there is no question as to what the expected function of the product is and what is considered done.
Once the requirements have been reviewed and agreed upon, now is where we start tasking. Within Confluence, selecting text and creating Jira tickets is easy once the applications are linked. These issues should be created with the mindset that after an iteration, the issue is complete and potentially shippable.
Fail fast... then fix it!
These checkpoints in the SDLC process have the opportunity to make or break a deliverable's release, reducing extra costs to the company. Depending on the phase in which the defect is introduced, and how long it takes to catch, the losses can quickly add up. Finding an architecture issue in the construction phase will cost 10 times as much than if it were caught in its starting phase. A requirements issue found in post-release can cost up to 100 times as much to fix than if identified from the beginning. How can you ensure you're shipping a defect-free product that won't cost your company profit or credibility?
Take a moment to think about what potentially shippable means. These items have been developed, tested, re-tested, merged, and are ready to meet the outside world. With a click of a button in Stash, these items can be merged with the Master Branch and are now available for use. But to get to this point, the Scrum Team must have had some way to develop and test and merge and flag issues without affecting the Master Branch or Production System. Here's where integrating Jira, Bamboo, and Stash come in handy. You can create a feature branch, develop against it, and merge it with everyone else's branches to ensure there are no defects. Bamboo will see the new branch and build. Fail Fast. Within a short period of time, the team can see what they did (or didn't do) to make sure the units are potentially shippable- troubleshoot, fix, then merge again. When a build fails or a branch doesn't merge, defects can be filed in Jira and added into the Sprint.
Accidents will happen.
Even with multiple checkpoints in place for accuracy, a user may spot a defect. In this case, leveraging Jira Service Desk can provide immediate feedback to customer service regarding the problem. By providing a way for customers to communicate their issue immediately, you are able to respond to their complaint- preserving the reputation of your business and gaining important information on what went wrong (so you can avoid it next time). Everybody makes mistakes- it's how (and how fast) you fix them that leaves a lasting impression with customers.
Limit Defects, Avoid Loss, Increase Productivity
With the Atlassian product suite, user errors that create defects in software are identified and weeded out before your deliverable ships, allowing you to continually increase profit and get solid results. Best practices in robust tools like Jira, Confluence, and Stash help your organization achieve traceability and thorough documentation through continuous integration. Leveraging administrative and reporting functions, including permission setting and customized workflows, you can track project development and identify blockers in real time to mitigate profit loss. Atlassian further stacked their product line to increase visibility and keep deliverables on time and defect-free with their new offering, Jira Portfolio.
Million dollar profit or million dollar loss? The omission in a single character in one line of code can be catastrophic to your deliverable, so early detection is paramount. Atlassian helps you catch those bugs before they turn into an infestation and with our extensive knowledge of best practices and process optimization around the product suite can maximize your defect defense. Learn more about how Praecipio Consulting can help you avoid those costly errors. With the money you save, you can treat your team to an Atlassian training course!