Your browser does not support JavaScript! Skip to main content
Free 30-day trial DO-178C Handbook RapiCoupling Preview DO-178C Multicore Training Multicore Resources
Rapita Systems
 

Industry leading verification tools & services

Rapita Verification Suite (RVS)

  RapiTest - Unit/system testing  RapiCover - Structural coverage analysis  RapiTime - Timing analysis (inc. WCET)  RapiTask - Scheduling visualization  RapiCoverZero - Zero footprint coverage analysis  RapiTimeZero - Zero footprint timing analysis  RapiTaskZero - Zero footprint scheduling analysis  RapiCouplingPreview - DCCC analysis

Multicore Verification

  MACH178  MACH178 Foundations  Multicore Timing Solution  RapiDaemons

Engineering Services

  V&V Services  Data Coupling & Control Coupling  Object code verification  Qualification  Training  Consultancy  Tool Integration  Support

Industries

  Civil Aviation (DO-178C)   Automotive (ISO 26262)   Military & Defense   Space

Other

RTBx Mx-Suite Software licensing Product life cycle policy RVS Assurance issue policy RVS development roadmap

Latest from Rapita HQ

Latest news

SAIF Autonomy to use RVS to verify their groundbreaking AI platform
RVS 3.22 Launched
Hybrid electric pioneers, Ascendance, join Rapita Systems Trailblazer Partnership Program
Magline joins Rapita Trailblazer Partnership Program to support DO-178 Certification
View News

Latest from the Rapita blog

Multicore timing analysis: to instrument or not to instrument
How to certify multicore processors - what is everyone asking?
Data Coupling Basics in DO-178C
Control Coupling Basics in DO-178C
View Blog

Latest discovery pages

control_tower DO-278A Guidance: Introduction to RTCA DO-278 approval
Picture of a car ISO 26262
DCCC Image Data Coupling & Control Coupling
Additional Coe verification thumb Verifying additional code for DO-178C
View Discovery pages

Upcoming events

DASC 2025
2025-09-14
DO-178C Multicore In-person Training (Fort Worth, TX)
2025-10-01
DO-178C Multicore In-person Training (Toulouse)
2025-11-04
HISC 2025
2025-11-13
View Events

Technical resources for industry professionals

Latest White papers

Mitigation of interference in multicore processors for A(M)C 20-193
Sysgo WP
Developing DO-178C and ED-12C-certifiable multicore software
DO178C Handbook
Efficient Verification Through the DO-178C Life Cycle
View White papers

Latest Videos

Rapita Systems - Safety Through Quality
Simulation for the Motorola 68020 microprocessor with Sim68020
AI-driven Requirements Traceability for Faster Testing and Certification
Multicore software verification with RVS 3.22
View Videos

Latest Case studies

GMV case study front cover
GMV verify ISO26262 automotive software with RVS
Kappa: Verifying Airborne Video Systems for Air-to-Air Refueling using RVS
Supporting DanLaw with unit testing and code coverage analysis for automotive software
View Case studies

Other Resources

 Webinars

 Brochures

 Product briefs

 Technical notes

 Research projects

 Multicore resources

Discover Rapita

Who we are

The company menu

  • About us
  • Customers
  • Distributors
  • Locations
  • Partners
  • Research projects
  • Contact us

US office

+1 248-957-9801
info@rapitasystems.com
Rapita Systems, Inc.
41131 Vincenti Ct.
Novi
MI 48375
USA

UK office

+44 (0)1904 413945
info@rapitasystems.com
Rapita Systems Ltd.
Atlas House
Osbaldwick Link Road
York, YO10 3JB
UK

Spain office

+34 93 351 02 05
info@rapitasystems.com
Rapita Systems S.L.
Parc UPC, Edificio K2M
c/ Jordi Girona, 1-3
Barcelona 08034
Spain

Working at Rapita

Careers

Careers menu

  • Current opportunities & application process
  • Working at Rapita
Back to Top Contact Us

Top 5 “When Good Software Goes Bad” blog posts

Breadcrumb

  1. Home
2013-04-16

Type “When Good Software Goes Bad” into a search engine and you will find quite a few entries of varying quality and relevance to the actual subject. I know this because a colleague who received an online WGSGB article forwarded by me typed in the exact same phrase and gleefully alerted me to the results. Being a caring sharing kind of guy, I thought you might want a flavour of the results too.

At this point you are more than welcome to jump straight to the Top 5 if you wish. For those of you who like a story, in the interests of context I should explain what drove me to delve into the murky world of WGSGB articles in the first place. I’m a recent convert to the notion of “content curation”, the latest marketing idea designed to help busy people collect digital content relevant to their work and interests from a variety of online sources. Having signed up to Trapit, the best of a mixed bunch which also includes the spectacularly hit and miss service on offer from Google® Alerts, I opened my first Daily Digest from the Palo Alto people.

Trapit uses a three-block format, each block being a self-contained piece of digital content. Each block comes complete with a snappy headline and a colourful image. The overall effect is eye-catching but not overpowering, which meant a trouble-free scan for the content I wanted. It didn’t take long before I found it.

Having read and forwarded the article, I moved on to my other jobs for the day. Meanwhile my colleague had conceived a plan. What if, he wondered, what if this WGSGB article isn’t a one-off and there are more out there lying around on the floor of the Internet like discarded toenail clippings waiting to be swept up by an enterprising writer (OK, that metaphor didn’t last very long; let’s move on).

The rest, as they say, is History: the original article came back to me, followed swiftly by the suggestion that the notion of WGSGB has been around for far longer than we suspected. Sure enough, WGSGB material tumbled out of the Internet and the “Top 5 When Good Software Goes Bad blog posts” blog was born.

Now, having worked my way through the material, it’s time to reveal the Top 5 in reverse order. Cue drum roll:

5. Poor planning might mean having to cut a hole in your roof, or something

Software developers – don’t blame anybody but yourself if your software goes bad. According to the TM Blog “It’s your fault that you’re in this scenario, because you weren’t thinking of where the plumbing was going to end up in order to service the ceiling-sink.”

Full article: When Good Software Goes Bad (Archive)

4. Software has some of the properties of a living thing

So says John Gordon (a pseudonym) in an interesting article which includes thought-provoking comments about the ecosystems which support software but inevitably require new features which could prompt the software to buckle under the weight of expectations. Sadly he spoiled this analysis by banging on about problems he had with some Windows software and I lost interest.

Full article: When Good Software Goes Bad.

3. No leaves on the track this time

In 2011 Jonathan Bloom reported on a software malfunction which knocked out the signalling system on the East Coast Main Line between London and Edinburgh. According to James, “software that should have instructed the backup signalling system to kick in failed to function, causing all signals on the line to default to ‘Red’, halting trains where they stood. The failure left more than 3,000 rail passengers stranded or delayed for more than five hours on a Saturday afternoon.” James’ solution: automated analysis and measurement, which since it’s at the core of what we do, we won’t disagree with.

Full article: When Good Software Goes Bad.

2. Cheerleading for Ada

Scott Kirwin of The Razor spotted an article back in 2008 and he was off. The article (“Crashing Software Poses Flight Danger”, New Scientist, Feb 11, 2008 by Paul Marks) focused on avionics software and went on to talk about Ada, two subjects which are close to our collective heart at Rapita. The thrust of Kirwin’s review and his own article is this: software bugs are too common because programmers are using the wrong programming languages.

Kirwin quotes a “systems engineering consultant in the UK” who reckoned he had the solution: “change the way software is written starting with the languages used. He suggests using computer languages that force the programmer to write unambiguous code such as B-Method and SPARK, instead of more commonly used C and its variants that allow programmers to write vague code that can lead to bugs”.

Commonly known as “strongly typed”, “These languages and their compilers make it difficult for programmers to write ambiguous code by mathematically verifying the code as it is written.” One, of course, is Ada, a language Kirwin believes is unnecessarily restricted to safety-critical situations. Why? Because while C and C++ “may be prone to bugs, it is much cheaper to patch the code than it is to replace it with code that is more robust”.

Full article: When Software Goes Bad.

1. When Good Software Goes Bad: 5 Infamous Incidents

And finally, the granddaddy of WGSGB articles and also the one which kicked off this blog in the first place. Five real world examples of good software going awfully awry in real world companies, including Apple, Intel, Amazon and NASA. There is also a section dedicated to the guy who demonstrated the inadequacies of security measures on early computer networks by creating the first worm. If I were him I would have changed my name by now. Instead, he became a tenured professor in the department of Electrical Engineering and Computer Science at MIT. Under his real name. I suppose there is something to that poacher turned gamekeeper analogy after all.

Full article: http://www.business.com/blog/when-good-software-goes-bad-5-infamous-incidents/

The rest (in no obvious order of merit):

http://vsbabu.org/mt/archives/2002/03/12/when_good_software_goes_bad.html

http://bitsandpieces.us/2011/11/22/when-good-software-goes-bad/

http://edition.cnn.com/2003/TECH/ptech/08/07/software.glitches/

http://www.tmprod.com/blog/2010/when-good-software-goes-bad/

Google® is the trade mark of Google LLC.

DO-178C webinars

DO178C webinars

White papers

Mitigation of interference in multicore processors for A(M)C 20-193
Sysgo WP Developing DO-178C and ED-12C-certifiable multicore software
DO178C Handbook Efficient Verification Through the DO-178C Life Cycle
A Commercial Solution for Safety-Critical Multicore Timing Analysis

Related blog posts

Evolving language support in RVS: Libadalang

.
2020-04-09

Test your Ada skills with our puzzle

.
2019-06-18

Highlights from Ada-Europe 2018

.
2018-07-03

Highlights from Ada Europe 2016

.
2016-07-06

Pagination

  • Current page 1
  • Page 2
  • Page 3
  • Page 4
  • Page 5
  • Next page Next ›
  • Last page Last »
  • Solutions
    • Rapita Verification Suite
    • RapiTest
    • RapiCover
    • RapiTime
    • RapiTask
    • MACH178

    • Verification and Validation Services
    • Qualification
    • Training
    • Integration
  • Latest
  • Latest menu

    • News
    • Blog
    • Events
    • Videos
  • Downloads
  • Downloads menu

    • Brochures
    • Webinars
    • White Papers
    • Case Studies
    • Product briefs
    • Technical notes
    • Software licensing
  • Company
  • Company menu

    • About Rapita
    • Careers
    • Customers
    • Distributors
    • Industries
    • Locations
    • Partners
    • Research projects
    • Contact
  • Discover
    • Multicore Timing Analysis
    • Embedded Software Testing Tools
    • Worst Case Execution Time
    • WCET Tools
    • Code coverage for Ada, C & C++
    • MC/DC Coverage
    • Verifying additional code for DO-178C
    • Timing analysis (WCET) & Code coverage for MATLAB® Simulink®
    • Data Coupling & Control Coupling
    • Aerospace Software Testing
    • Automotive Software Testing
    • Certifying eVTOL
    • DO-178C
    • AC 20-193 and AMC 20-193
    • ISO 26262
    • What is CAST-32A?

All materials © Rapita Systems Ltd. 2025 - All rights reserved | Privacy information | Trademark notice Subscribe to our newsletter