Prairie Trail Logo

Views from the Prairie

August 19

Software – Expensive or Not

Software can be inexpensive or very expensive. The most expensive software is that which gives the wrong answer. The next most expensive is that software paid for that does not work. Software that give new insight into business operations can be very cost effective. All this requires good management of the software, its development process, and how it is used.

Software does not always give the right answer. We see this most clearly when trying to do a search. The many "wrong" responses show how wrong the search software can be. It may take several attempts to get a list of items we want to look at.

In business, we rely on the software giving the correct answer. Unfortunately, if the software has not been built, managed, and fed correctly, it may give good answers most of the time but give bad answers in certain circumstances.

There are many different reasons why a piece of software gave a bad answer. Reasons range from misuse of the software, programmer errors, bad data, viruses on the machine, to hardware breakdowns or even the rare gamma ray switching a bit. It is almost impossible to prevent all forces that cause software mistakes.

Software can be misused. Just like someone can use a wrench to pound in a nail instead of a hammer, a piece of software can be used in an environment that it was not designed for and not give correct answers in that environment.

If you run into software algorithm errors, that is generally are due to improper management of the software development. All software has bugs. Software developers don't always understand what is being asked of them. The software development management that has the responsibility to manage the development process so that it delivers the quality that the users need. The process needs to catch bugs as soon as possible.

With much software, the real reason that it gives bad answers is because it was fed bad data. Those in the computer field have a saying "Garbage In, Garbage Out" due to how many times the problem isn't the algorithm, but the data that was fed into it.

Bad data can occur in many different ways. There can be data improperly formatted, whole files can be sent to the wrong program, files can be missing data in fields or whole lines, data that has been converted into strange characters, or data put into the wrong column. Programs can be very picky about what data they can accept or loosely attempting to figure out what the data should be and modifying it according to some preset criteria. It is generally better to be picky about what data is acceptable rather than silently changing the given data and thus, deliver a false view.

Developing quality software takes time and resources. But done well, the effort generates a high return on the investment.

Building Software Quality

A lot of people think that you get quality software by testing it. It is not possible to test one's way to quality software, it has to be designed that way from the start. Software quality is an elusive target, it varies all over based on what the software is used for. The quality of a piece of software is always determined by the user, not the developer. But appropriate quality can be designed into the development process so that you get the quality of software you want.

Software management is complex and depends on where the software is in the process. There are many different techniques for managing software. It is important to match the management technique to both the software and to the business needs.

It is management's responsibility to ensure that the developer understands what the real need is, has the tools, the time, and the process to develop to the need. It is this management of the software development process that adds so much cost to any development that has been outsourced overseas.

Over the years, there have been many different management techniques, computer languages, and automated tools developed to improve software quality. There are the hard specifications needed by NASA, the Waterfall method, and now the Agile methods. Tools such as source code analyzers are used by a number of corporations to manage all changes.

The management technique needs to match the needs of where the software will be used. For example, the management techniques used by NASA to develop the programs for the Space Shuttle would be vast overkill for building a sales demo. Likewise, a lot of sales demos need better management when moved from demo to production.

Risky World

A lot of the surveillance cameras are using an AI program to tell if something is in view that would need attention. Shirts and dresses are available with license plates printed on them which confuse the AI program to think this is a car instead of a person walking in front of the camera.


This newsletter is posted here as well as sent via mail and email. If you wish to receive updates, please sign up above.