Welcome!

Java IoT Authors: Liz McMillan, Elizabeth White, Yeshim Deniz, Pat Romanski, Chris Schwarz

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
DX World EXPO, LLC., a Lighthouse Point, Florida-based startup trade show producer and the creator of "DXWorldEXPO® - Digital Transformation Conference & Expo" has announced its executive management team. The team is headed by Levent Selamoglu, who has been named CEO. "Now is the time for a truly global DX event, to bring together the leading minds from the technology world in a conversation about Digital Transformation," he said in making the announcement.
Internet of @ThingsExpo, taking place October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 21st Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The Internet of Things (IoT) is the most profound change in personal and enterprise IT since the creation of the Worldwide Web more than 20 years ago. All major researchers estimate there will be tens of billions devic...
Everything run by electricity will eventually be connected to the Internet. Get ahead of the Internet of Things revolution and join Akvelon expert and IoT industry leader, Sergey Grebnov, in his session at @ThingsExpo, for an educational dive into the world of managing your home, workplace and all the devices they contain with the power of machine-based AI and intelligent Bot services for a completely streamlined experience.
"The Striim platform is a full end-to-end streaming integration and analytics platform that is middleware that covers a lot of different use cases," explained Steve Wilkes, Founder and CTO at Striim, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
With tough new regulations coming to Europe on data privacy in May 2018, Calligo will explain why in reality the effect is global and transforms how you consider critical data. EU GDPR fundamentally rewrites the rules for cloud, Big Data and IoT. In his session at 21st Cloud Expo, Adam Ryan, Vice President and General Manager EMEA at Calligo, will examine the regulations and provide insight on how it affects technology, challenges the established rules and will usher in new levels of diligence...
SYS-CON Events announced today that Calligo, an innovative cloud service provider offering mid-sized companies the highest levels of data privacy and security, has been named "Bronze Sponsor" of SYS-CON's 21st International Cloud Expo ®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Calligo offers unparalleled application performance guarantees, commercial flexibility and a personalised support service from its globally located cloud plat...
What sort of WebRTC based applications can we expect to see over the next year and beyond? One way to predict development trends is to see what sorts of applications startups are building. In his session at @ThingsExpo, Arin Sime, founder of WebRTC.ventures, discussed the current and likely future trends in WebRTC application development based on real requests for custom applications from real customers, as well as other public sources of information.
SYS-CON Events announced today that DXWorldExpo has been named “Global Sponsor” of SYS-CON's 21st International Cloud Expo, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Digital Transformation is the key issue driving the global enterprise IT business. Digital Transformation is most prominent among Global 2000 enterprises and government institutions.
SYS-CON Events announced today that Datera, that offers a radically new data management architecture, has been named "Exhibitor" of SYS-CON's 21st International Cloud Expo ®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Datera is transforming the traditional datacenter model through modern cloud simplicity. The technology industry is at another major inflection point. The rise of mobile, the Internet of Things, data storage and Big...
While the focus and objectives of IoT initiatives are many and diverse, they all share a few common attributes, and one of those is the network. Commonly, that network includes the Internet, over which there isn't any real control for performance and availability. Or is there? The current state of the art for Big Data analytics, as applied to network telemetry, offers new opportunities for improving and assuring operational integrity. In his session at @ThingsExpo, Jim Frey, Vice President of S...
"We provide IoT solutions. We provide the most compatible solutions for many applications. Our solutions are industry agnostic and also protocol agnostic," explained Richard Han, Head of Sales and Marketing and Engineering at Systena America, in this SYS-CON.tv interview at @ThingsExpo, held June 6-8, 2017, at the Javits Center in New York City, NY.
"We are focused on SAP running in the clouds, to make this super easy because we believe in the tremendous value of those powerful worlds - SAP and the cloud," explained Frank Stienhans, CTO of Ocean9, Inc., in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
"DX encompasses the continuing technology revolution, and is addressing society's most important issues throughout the entire $78 trillion 21st-century global economy," said Roger Strukhoff, Conference Chair. "DX World Expo has organized these issues along 10 tracks with more than 150 of the world's top speakers coming to Istanbul to help change the world."
"We've been engaging with a lot of customers including Panasonic, we've been involved with Cisco and now we're working with the U.S. government - the Department of Homeland Security," explained Peter Jung, Chief Product Officer at Pulzze Systems, in this SYS-CON.tv interview at @ThingsExpo, held June 6-8, 2017, at the Javits Center in New York City, NY.
The financial services market is one of the most data-driven industries in the world, yet it’s bogged down by legacy CPU technologies that simply can’t keep up with the task of querying and visualizing billions of records. In his session at 20th Cloud Expo, Karthik Lalithraj, a Principal Solutions Architect at Kinetica, discussed how the advent of advanced in-database analytics on the GPU makes it possible to run sophisticated data science workloads on the same database that is housing the rich...
SYS-CON Events announced today that Massive Networks will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Massive Networks mission is simple. To help your business operate seamlessly with fast, reliable, and secure internet and network solutions. Improve your customer's experience with outstanding connections to your cloud.
"MobiDev is a Ukraine-based software development company. We do mobile development, and we're specialists in that. But we do full stack software development for entrepreneurs, for emerging companies, and for enterprise ventures," explained Alan Winters, U.S. Head of Business Development at MobiDev, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
SYS-CON Events announced today that DXWorldExpo has been named “Global Sponsor” of SYS-CON's 21st International Cloud Expo, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Digital Transformation is the key issue driving the global enterprise IT business. Digital Transformation is most prominent among Global 2000 enterprises and government institutions.
In his opening keynote at 20th Cloud Expo, Michael Maximilien, Research Scientist, Architect, and Engineer at IBM, discussed the full potential of the cloud and social data requires artificial intelligence. By mixing Cloud Foundry and the rich set of Watson services, IBM's Bluemix is the best cloud operating system for enterprises today, providing rapid development and deployment of applications that can take advantage of the rich catalog of Watson services to help drive insights from the vast t...
SYS-CON Events announced today that EnterpriseTech has been named “Media Sponsor” of SYS-CON's 21st International Cloud Expo, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. EnterpriseTech is a professional resource for news and intelligence covering the migration of high-end technologies into the enterprise and business-IT industry, with a special focus on high-tech solutions in new product development, workload management, increased effic...