Software quality expert Capers Jones is working on a software product that will help project managers and developers get a handle on the amount of risk associated with a particular software development project.
Jones’ working title for the tool is “Software Risk Master,” with access to be granted to developers and software project managers in the near future. He said the tool shows quality results for all types of standard development methodologies, and gives recommendations for successful methodologies based on development projects that have already been created.
“The Software Risk Master can size applications in a few minutes and analyze how many lines of code you have to develop, the size of the application, and the amount of use-case points needed,” Jones said, adding that the metrics for use-case points are not always needed, but the tool can provide them if necessary.
Risks in software development, Jones said, are directly proportional to a project’s size. For example, a code project with more than 150,000 function points is cancelled approximately 50% of the time and runs over the allotted schedule approximately 90% of the time. These projects are also the ones that release bugs to end users on a more consistent basis because of the fact that developers don’t always deal with quality, as Jones explained in his recent interview with SD Times.
He added that requirements also change by more than 2% per calendar month, which is something project managers do not account for at the beginning, further contributing to the risk that the project will run over the allotted time limit.
The risks associated with code development are also related to the types of methodologies used and the code languages used. The complexity of the code also matters, Jones said, adding that the Software Risk Master tool can predict a probable Cyclomatic Complexity number ahead of time.
Cyclomatic Complexity is a code metric developed by Thomas J. McCabe Sr. in 1976 to determine the complexity of a software program. It measures modules and branches, Jones said, adding that if you have straight code with no branches, the Cyclomatic Complexity is 1. But, as you add on calls to other programs, servers or databases, the complexity increases.
Average complexity ranges between 12 and 15, according to Jones. Risk increases with any program that has a complexity of 10 and above, which is what contributes to issues with larger programs.
Jones recommends using modern languages, static analysis and code inspections to reduce the amount of bugs released with complex programs, which is something he also provides in detail in reports generated by the Software Risk Master.
The tool also provides a general prediction of bugs; provides ratings at which requirements will change; and shows the developer what is most commonly used to develop a software project of that size and type.