Welcome!

Java IoT Authors: Jnan Dash, Elizabeth White, Pat Romanski, Bob Gourley, Gerardo A Dada

Related Topics: Java IoT

Java IoT: Article

Software Engineers Aren't Doing Enough To Really Create Error-Free Software

The problem with defects is that while they occur, the cost of finding and preventing them has a diminishing return

London, the capital of my home country England, has a beautiful gothic style lifting bridge built by the Victorians in 1894 that magnificently spans the river Thames. It allows tall ships to access the river upstream by lifting its center sections, which for the first 82 years of its life was powered by huge steam engines.

Steam has since given way to electricity and in 1998 a $3M overhaul was done to upgrade the kit and make it ready for the 21st century. On June 3, 2005, however, everything did not go according to plan and the bridge was stuck open. For 10 hours it remained jammed open while police diverted angry motorists to alternative crossings and the engineers worked against the clock to figure out what had cause the historic monument to malfunction. The reason given when she finally came down was that a software error had caused the problem http://news.bbc.co.uk/1/hi/england/london/4605743.stm. This problem is not an isolated one and was the fourth to occur in three months.

Two thousand years ago the Romans employed an interesting motivational technique: once engineers had finished building a bridge they had to stand under it while the first legion of soldiers marched across. I wonder if the Tower Bridge IT manager wished he'd have done similarly with his programmers when he got hauled before his superiors to answer why one of the main thoroughfares from South to North London was out of action.

One of my very first IT managers used to ban us from using the word "bug" and had us the noun "defect" instead. His wisdom was that the word "bug" was used by a programmer as a way of shirking responsibility, that the problem was of his or her own making and poor workmanship had caused it to occur. The origin of the term is reputed to have arisen from a moth found between the relay terminals of a calculating machine; it's sobering that despite all of the advances in software engineering that have occurred since, problems still occur and, worse than that, are expected and even planned for.

Bugs are expensive to fix, and in Keynesian Economics the value of anything is determined as being the cost of the alternative. What is the cost of errors in code?

In 1996 the European Space Agency rocket Ariane 5 exploded 40 seconds after launch at a cost of $7B due to a straightforward software defect. A data conversion from 64-bit floating point to 16-bit integer threw an exception when the floating point became too large.

The Mars Climate Orbiter in 1998 was destroyed when instead of entering the atmosphere at 90 miles above the surface, it dropped in at around 40 and subsequently burned up. The reason was that some data on the ground was calculated in imperial pounds and reported to the navigation team who thought it was metric newtons.

More recently on January 21, 2004, the NASA Mars Spirit Rover on Mars stopped communicating with Earth. The problem was the file management software that wrote to the rover's flash memory was unable to deal with the volume of data that was occurring at the time and threw an exception fault that crippled the whole unit. Fortunately this was corrected, although by a wing and a prayer - the fix would use the rover's RAM instead of the flash memory, delete a set of in-flight data files no longer needed to reclaim space, reformat the memory and, after three weeks, the Spirit was up and running again.

Crashing rockets is a very visible and costly failure, but it doesn't have to be such a stellar failure when shipping defective code. Is there any such thing as an inexpensive bug, given that any defective piece of software represents bad function?

The problem with defects is that while they occur, the cost of finding and preventing them has a diminishing return, so the approach often taken is that once no more serious defects can be found in a test pass, all that remains must be minor and the programming is complete. The whole act of testing is an odd part of the software engineering process, because the expectation is that bugs will be found and then fixed before the next round of testing occurs. Edsger Dijkstra, one of the grandfathers of modern computing, once wrote: "Testing can only prove the presence of bugs, not their absence."

Testing therefore is not the verification that a program works, but a search for whatever bugs can be found within the time and scope constraints of its execution. In an odd way the whole process of testing sort of vindicates the fact that programming creates malfunctioning code that needs checking and rechecking before it can be shipped.

What troubles me is that we, as software engineers, aren't doing enough to really create error-free software. Does software have to be buggy because of its size and complexity, or do we use that as an excuse to throw more code at an application when we know its existing code base is flawed? Why is a successful test pass measured as one that finds lots of bugs, and not one that gives the program a clean bill of health? Another of Edsger's words of wisdom summarize eloquently; "If debugging is the process of removing bugs, then programming must be the process of putting them in."

More Stories By Joe Winchester

Joe Winchester, Editor-in-Chief of Java Developer's Journal, was formerly JDJ's longtime Desktop Technologies Editor and is a software developer working on development tools for IBM in Hursley, UK.

Comments (2) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
rjx 07/21/05 09:04:43 AM EDT

simple. get a team to write software without requirements, no specification, no research, in a time-frame as tight as possible (or worse). put on top whining managers and salesman and then count the bugs (defects). or, instead of that, look at microsoft, which made it ok to have bugs in software.
btw, how the heck did those people calculate something in pounds???? probable the transformation leagues - meters failed too...

Java Developer's Journal 07/18/05 12:54:37 PM EDT

Software Engineers Aren't Doing Enough To Really Create Error-Free Software. The problem with defects is that while they occur, the cost of finding and preventing them has a diminishing return, so the approach often taken is that once no more serious defects can be found in a test pass, all that remains must be minor and the programming is complete. The whole act of testing is an odd part of the software engineering process, because the expectation is that bugs will be found and then fixed before the next round of testing occurs.

@ThingsExpo Stories
Internet of @ThingsExpo has announced today that Chris Matthieu has been named tech chair of Internet of @ThingsExpo 2017 New York The 7th Internet of @ThingsExpo will take place on June 6-8, 2017, at the Javits Center in New York City, New York. Chris Matthieu is the co-founder and CTO of Octoblu, a revolutionary real-time IoT platform recently acquired by Citrix. Octoblu connects things, systems, people and clouds to a global mesh network allowing users to automate and control design flo...
In addition to all the benefits, IoT is also bringing new kind of customer experience challenges - cars that unlock themselves, thermostats turning houses into saunas and baby video monitors broadcasting over the internet. This list can only increase because while IoT services should be intuitive and simple to use, the delivery ecosystem is a myriad of potential problems as IoT explodes complexity. So finding a performance issue is like finding the proverbial needle in the haystack.
Data is the fuel that drives the machine learning algorithmic engines and ultimately provides the business value. In his session at 20th Cloud Expo, Ed Featherston, director/senior enterprise architect at Collaborative Consulting, will discuss the key considerations around quality, volume, timeliness, and pedigree that must be dealt with in order to properly fuel that engine.
According to Forrester Research, every business will become either a digital predator or digital prey by 2020. To avoid demise, organizations must rapidly create new sources of value in their end-to-end customer experiences. True digital predators also must break down information and process silos and extend digital transformation initiatives to empower employees with the digital resources needed to win, serve, and retain customers.
The WebRTC Summit New York, to be held June 6-8, 2017, at the Javits Center in New York City, NY, announces that its Call for Papers is now open. Topics include all aspects of improving IT delivery by eliminating waste through automated business models leveraging cloud technologies. WebRTC Summit is co-located with 20th International Cloud Expo and @ThingsExpo. WebRTC is the future of browser-to-browser communications, and continues to make inroads into the traditional, difficult, plug-in web co...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
The Internet of Things (IoT) promises to simplify and streamline our lives by automating routine tasks that distract us from our goals. This promise is based on the ubiquitous deployment of smart, connected devices that link everything from industrial control systems to automobiles to refrigerators. Unfortunately, comparatively few of the devices currently deployed have been developed with an eye toward security, and as the DDoS attacks of late October 2016 have demonstrated, this oversight can ...
What happens when the different parts of a vehicle become smarter than the vehicle itself? As we move toward the era of smart everything, hundreds of entities in a vehicle that communicate with each other, the vehicle and external systems create a need for identity orchestration so that all entities work as a conglomerate. Much like an orchestra without a conductor, without the ability to secure, control, and connect the link between a vehicle’s head unit, devices, and systems and to manage the ...
"Once customers get a year into their IoT deployments, they start to realize that they may have been shortsighted in the ways they built out their deployment and the key thing I see a lot of people looking at is - how can I take equipment data, pull it back in an IoT solution and show it in a dashboard," stated Dave McCarthy, Director of Products at Bsquare Corporation, in this SYS-CON.tv interview at @ThingsExpo, held November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA.
Unsecured IoT devices were used to launch crippling DDOS attacks in October 2016, targeting services such as Twitter, Spotify, and GitHub. Subsequent testimony to Congress about potential attacks on office buildings, schools, and hospitals raised the possibility for the IoT to harm and even kill people. What should be done? Does the government need to intervene? This panel at @ThingExpo New York brings together leading IoT and security experts to discuss this very serious topic.
We are always online. We access our data, our finances, work, and various services on the Internet. But we live in a congested world of information in which the roads were built two decades ago. The quest for better, faster Internet routing has been around for a decade, but nobody solved this problem. We’ve seen band-aid approaches like CDNs that attack a niche's slice of static content part of the Internet, but that’s it. It does not address the dynamic services-based Internet of today. It does...
Data is the fuel that drives the machine learning algorithmic engines and ultimately provides the business value. In his session at Cloud Expo, Ed Featherston, a director and senior enterprise architect at Collaborative Consulting, discussed the key considerations around quality, volume, timeliness, and pedigree that must be dealt with in order to properly fuel that engine.
As data explodes in quantity, importance and from new sources, the need for managing and protecting data residing across physical, virtual, and cloud environments grow with it. Managing data includes protecting it, indexing and classifying it for true, long-term management, compliance and E-Discovery. Commvault can ensure this with a single pane of glass solution – whether in a private cloud, a Service Provider delivered public cloud or a hybrid cloud environment – across the heterogeneous enter...
An IoT product’s log files speak volumes about what’s happening with your products in the field, pinpointing current and potential issues, and enabling you to predict failures and save millions of dollars in inventory. But until recently, no one knew how to listen. In his session at @ThingsExpo, Dan Gettens, Chief Research Officer at OnProcess, discussed recent research by Massachusetts Institute of Technology and OnProcess Technology, where MIT created a new, breakthrough analytics model for ...
More and more brands have jumped on the IoT bandwagon. We have an excess of wearables – activity trackers, smartwatches, smart glasses and sneakers, and more that track seemingly endless datapoints. However, most consumers have no idea what “IoT” means. Creating more wearables that track data shouldn't be the aim of brands; delivering meaningful, tangible relevance to their users should be. We're in a period in which the IoT pendulum is still swinging. Initially, it swung toward "smart for smar...
Everyone knows that truly innovative companies learn as they go along, pushing boundaries in response to market changes and demands. What's more of a mystery is how to balance innovation on a fresh platform built from scratch with the legacy tech stack, product suite and customers that continue to serve as the business' foundation. In his General Session at 19th Cloud Expo, Michael Chambliss, Head of Engineering at ReadyTalk, discussed why and how ReadyTalk diverted from healthy revenue and mor...
SYS-CON Events has announced today that Roger Strukhoff has been named conference chair of Cloud Expo and @ThingsExpo 2017 New York. The 20th Cloud Expo and 7th @ThingsExpo will take place on June 6-8, 2017, at the Javits Center in New York City, NY. "The Internet of Things brings trillions of dollars of opportunity to developers and enterprise IT, no matter how you measure it," stated Roger Strukhoff. "More importantly, it leverages the power of devices and the Internet to enable us all to im...
Information technology is an industry that has always experienced change, and the dramatic change sweeping across the industry today could not be truthfully described as the first time we've seen such widespread change impacting customer investments. However, the rate of the change, and the potential outcomes from today's digital transformation has the distinct potential to separate the industry into two camps: Organizations that see the change coming, embrace it, and successful leverage it; and...
The 20th International Cloud Expo has announced that its Call for Papers is open. Cloud Expo, to be held June 6-8, 2017, at the Javits Center in New York City, brings together Cloud Computing, Big Data, Internet of Things, DevOps, Containers, Microservices and WebRTC to one location. With cloud computing driving a higher percentage of enterprise IT budgets every year, it becomes increasingly important to plant your flag in this fast-expanding business opportunity. Submit your speaking proposal ...
20th Cloud Expo, taking place June 6-8, 2017, at the Javits Center in New York City, NY, will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud strategy.