Published Sep 3, 2019

SE-Radio-Episode-280-Gerald-Weinberg-on-Bugs-Errors-and-Software-Quality

Gerald Weinberg delves into the intricacies of software development, addressing resistance in code reviews, the subjective nature of software errors, and the critical need for change and communication to enhance software quality. His insights highlight the value of accountability, adaptive testing, and user engagement in overcoming programming challenges.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Defining Errors

    highlights the subjective nature of defining errors in software development. He illustrates this with an example where a program that crashes an operating system is seen as an error by one department but as a perfect training tool by another 1. This subjectivity is further complicated by the terminology used, such as bugs, boo-boos, and blunders, which can influence how responsibility is perceived 2. notes, "If you call a thing a bug, it's kind of like, I'm not responsible for this."

    If you call a thing a bug, it's kind of like, I'm not responsible for this.

    ---

    Understanding these nuances is crucial for improving software quality.

       

    Faults vs Failures

    The distinction between faults and failures is vital in software development. explains that failures are what users experience when software doesn't perform as expected, while faults are the underlying issues causing these failures 3. He emphasizes the importance of identifying faults to improve software quality, as merely addressing failures doesn't solve the root problem 4. states, "Failures are not ultimately that important. If you want to improve, you have to know where the faults came from."

    Failures are not ultimately that important. If you want to improve, you have to know where the faults came from.

    ---

    This approach requires a shift in focus from symptoms to causes.

       

    Error-Free Illusion

    The illusion of error-free software can hinder progress and innovation. argues that striving for perfection often delays delivery and creates unnecessary apprehension among developers 5. He suggests that acknowledging errors openly is more beneficial, as it fosters a culture of continuous improvement 6. shares an analogy, "If you don't have this feedback connection with the producers of what you're eating or using as software, then it is not going to get any better."

    If you don't have this feedback connection with the producers of what you're eating or using as software, then it is not going to get any better.

    ---

    This mindset encourages teams to embrace errors as learning opportunities.

Related Episodes