Auditing-Software and Processes
Many companies have custom software in either one of three states:
 

  • About to be delivered from an external source.
  • Currently being developed internally.
  • Developed and adding features.

 

When software development is outsourced, often there is no internal resources to verify that the software being developed is done so with good industry practices. Without a proper software process, the delivered product may be functional but entirely unsustainable by either internal or external maintenance resources. Often, what seems to be a cost effective solution turns into a cash black hole. It's not uncommon to see companies receive and/or developing a product that just is not maintainable no matter what resources are deployed.

 

 

Key Benefits

  • Reduce Cost - research by BELL Laboratories NJ USA indicated that for AT&T software development, the cost ratio of development to maintenance of their software can be as low as 1 to 10 and as high as 1 to 40. This means that a badly planned software product that cost $1 million can cost $40 million to maintain. With a well planned approach up to $30 million dollars is savings could be realized for this example.

 

  • Secure Developed code - throughout time the gravest violations of trust often have come from trusted sources. Specifically, companies need to verify that code delivered by contract or from internal sources has no malicious intent.

 

  • Build Superior Products - Not only is maintenance and feature upgrades important, but the impact of the software systems on the core business units ability to optimally function is critical. How much revenue is lost to errors in software products?

 

  • Better Time to market - Unquestionably, one of the most problematic issues in software development is scheduling. Products are often late or potentially never reach "critical mass" because of unrealistic schedules. Regrettably, this sometimes occurs after millions of dollars have already been spent on an implementation effort. Audits can reduce the need for quick fixes and patch-like redesign by enforcing software process checkpoints that verify progress. This is good for schedule, quality, psychologically for the developers and lastly for the management team that are investing scarce capital resources.