Paper Reading: Software's Chronic Crisis

NOTE: This is a Paper Reading for Advanced Software Engineering. The original paper can be found here.

How does this work move the research forward?

What were the primary contributions of the paper as the author sees it?

The author identifies software's chronic crisis and how it is exacerbated by current trends in software engineering.

The vast majority of code is handcrafted by artisans using techniques they neither measure nor are able to repeat consistently. The software industry remains short of the mature engineering discipline needed to meet the demands of an information-age society, including getting software right the first time in embedded environments, distributed systems and systems integration, rapid increasing system sizes, and systems becoming so complex that no manager can comprehend the entirety.

Later, the author analyzes proposed remedies to the aforementioned problems and points out directions for future work.

Remedies:

  • Capability Maturity Model, which quantifies a developer's software engineering and management excellence.
  • Consistent and quantitative measurement of development.
  • Strategies to avoid bugs or attack them early.
    • Recognizing changing requirements
    • Growing software from rapid prototypes and customer feedback
    • Formal verification when necessary
    • Clean-room process
    • Cautious approach to technological innovations such as object-oriented analysis and programming

Directions for Future Work:

  • An experimental branch of computer science to separate the general results from the accidental
  • Standard unit of measurement of developer productivity
  • Codified proven solutions for novices
  • Academic-industrial collaboration to gather data and try things
  • Generalized, reusable software components
  • Certifying software engineers
  • Outsourcing
  • More software development-oriented computer science curricula

What were the main contributions of the paper as you (the reader) see it? How could this research be applied in practice?

Aside for the primary contributions of the paper as the author sees it, in my opinion, a major contribution of the paper in a practical sense are revelations for improving the culture within software developing organizations. For example,

  • Focus on interchangeability.
  • Follow best practices.
  • Fix not just the bug but also the flaw in the testing process that allowed it to slip through.
  • Value verification in addition to innovation.
  • Pay attention to the difference in competence between employees.

Furthermore, as a historical paper, many of its proposals have already materialized. For example, the open-source revolution and collaboration platforms such as GitHub have greatly facilitated gathering data and trying things for research, and has provided a wealth of generalized, reusable software components.

How could this research be extended?

Implementing and assessing the proposed directions for future work represents a natural extension of this research.

How was the work validated?

The authors validate their arguments on software's chronic crisis and base their proposals for remedies and future work by analyzing real cases in software engineering, as well as compiling the opinions of experts in the field, including university professors and corporate managers.

How does the work apply to you?

  1. From a theoretical perspective, as a milestone paper in the domain of software engineering, this paper provides a model research methodology for practical problems within software engineering - analyzing real cases and compiling the opinions of experts.
  2. From a practical perspective, this paper identifies core values and skills that us, as practitioners of software engineering, should firmly grasp.

Paper Reading: Software's Chronic Crisis
https://abbaswu.github.io/2022/09/12/Paper-Reading-Software-s-Chronic-Crisis/
Author
Jifeng Wu
Posted on
September 12, 2022
Licensed under