Measurement of productivity and defects in any software realm gets to be highly problematic. This is especially true if one wants some degree of scientific rigor. Why? The biggest reason is that in software development, we almost never build the same thing twice under the same conditions. Add to that the fact that there are no accepted standards of measurement for productivity and defects and you see how intractable the problem can be.
Still, a number of studies have been done that provide a significant amount of support to the claim that Ada improves productivity and reduces defects. Your humble narrator was charged with measuring both of these phenomena in a prior job position. We built electronic controls for jet and rocket engines. The team of developers were highly experienced, stable and versed in a variety of programming languages. Ada was introduced as a new language for new projects and the team had to learn & use it for developing embedded systems. Productivity and defect measurement over several years of development indicated that productivity approximately doubled and defects were reduced by a factor of four compared to projects using a variety of other languages.
Unfortunately, this being an internal study and companies often being reluctant to share internal information, nothing from this study was published. However, this was not the only source for productivity data.
Other studies have been done and (presuming the links remain valid) better sources
for study data can be found at:
http://www.stsc.hill.af.mil/crosstalk/2000/aug/mccormick.asp
http://www.tcsigada.org/meeting/feb99mtg.htm
http://www.rational.com/products/whitepapers/337.jsp
The most imortant study in my mind was done by Dr. McCormic in which he had students in several semesters building software to run a model railroad. Some of the classes used C to implement their systems while later classes used Ada. Dr McCormick's studies come about as close to a controlled experiment in software productivity as I've seen. His experience is based on multiple groups building software to satisfy identical requirements under nearly identical circumstances. That, I think, offers a little more weight to his results than might be given to my own internal study. The conclusion was that the use of Ada significantly improved the ability of the teams to complete their projects on time and dramatically reduced the number of errors/defects in the end results. Other companies have had similar experiences (see the Rational white paper) so from available data, one has some significant evidence that Ada is more productive and less error prone when compared to some other languages.
One must always be careful when looking at these sorts of studies and realize that a lot goes into productivity, defects and project success beyond the language of implementation. In other words, your mileage may vary. The benefit of the studies that have been done is that you can see evidence that supports the claim of better productivity and defect rates with Ada. It gives one good reasons to consider Ada for future projects.
(Marin David Condic) |