The recent iPhone antenna issue has brought to light a small aspect of computing systems that many people seem to take for granted, and that is the accuracy of the programming involved with their devices. When people look at a system's output they tend to assume what they see is correct, but there are times when that can be far from the case, and it is important to keep the possibility of programmer error in mind when troubleshooting issues.
For the iPhone, it seemed logical that the number of bars on the device was a good indication of signal strength, but there were no real assessments of the device's actual reception. Some people claimed the phone was working just fine, and others claimed they had dropped service, but nothing clearly testing the reception of the device itself. People just assumed that bars meant reception, and therefore few or no bars meant the phone had lost signal.
It is becoming more obvious, along with a description of the problem by Apple, that this is not the case.
While this event happened with the iPhone, there are many other situations where a program or system will not act as it is intended because of oversights by the programmers. In the troubleshooting arena, many people use monitoring utilities that show anything from system temperature, to fan speeds, as well as drive space and file size calculations. In fact, every programmed feature in your system or devices is subject to these errors. While most of the time utilities are quite accurate, there is a possibility that measurements could be wrong.
Sometimes firmware updates or system updates, or even faulty firmware settings (PRAM and SMC) could contribute to hardware monitoring utilities behaving incorrectly.
What this means is even though you may initially see a problem being reported by a utility or device, do not necessarily trust it. I've seen people immediately jump to conclusions about an initial finding, and be concerned about hacking, viruses, trojans, and other "unknown" malware. Instead, get a "second opinion" by using another utility with similar functions, and run it to see if there is a difference. Additionally, try rebooting your system, resetting the PRAM and SMC, and also running it in Safe Mode to see if the utilities still show bizarre readings.
If a particular utility has recently been updated then be more skeptical of the readings, but weigh them against those of other utilities before fully trusting the utility. For instance, if you are using a network monitoring menu extra that reports a steady flow of data being sent from your system, it may be something you would like to know about (which programs are talking to the internet) especially if you are concerned about trojan horses or other malware. However, concluding that this is or "must" be the case overlooks the possibility of the menu extra not loading properly, or perhaps including other data in its network activity calculations (i.e., bluetooth or firewire traffic, versus strictly wifi or ethernet). In this case, checking the network activity with another monitor utility, updating the current monitoring utility, and also checking its settings to ensure it is only including internet traffic would be good ideas before heading down the road to any conclusion.
Overall, when you see a problem that seems to be a hardware issue reported by the system or a utility, keep the programming in mind as one factor. While we have to take for granted that most programming is accurate, if a utility or system component has recently been updated then that alone may be enough reason to doubt the software itself. Despite this, when you have both new software and new hardware (as was the case with the latest iPhone) sometimes assessing which is the contributing factor is tough to tell.