What is “wear out”?
Before we learn about why software does not “wear out”, lets learn about the state “wear out”. When something is no longer of any use, it reaches the “wear out” state. That is, it can not perform the function it was built for. For example, a printer reaches “wear out” state it can’t print anymore. This doesn’t include the recycling options. One make use of a dead printer to do anything else but printing.
Software engineering is different not only from hardware engineering but also from any other form of engineering. Software is developed and not manufactured. Software doesn’t wear out like hardware. Below we discuss how hardware can wear out but not software.
Why & how hardware “wear out”?
When manufacturers build hardware, it tends show errors or faults. Therefore it goes through many trials and errors step to remove the defects in it. As a result, the final product becomes ready to release and use in production.
But then, when in use, there can be certain number of causes that might decrease the performance of the hardware. For example, excessive temperature, dust, vibration, improper use and so on. All these effects causes the hardware start showing failure rate again. With time, the failure rate keeps on rising. And at one point, the hardware just stop functioning. One can then do whatever they want to do with the piece of hardware, but just can’t make it work again. Let’s not consider, repairing here. Repairing can make the hardware perform again, but still with time, the same effects will make not functioning again.
In the following given figure, we can see how a hardware, with time, wear out. This is often called the “bathtub curve”. It indicates everything just discussed earlier. At the beginning there can be faults, which then gets corrected and reaches the steady state. And then after certain period of service, the hardware starts to show errors again and at one time it wear out.
Software Doesn’t Wear Out
On the other hand, software does not wear out. Like hardware, software also shows high failure rate at its infant state. Then it gets modifications and the defects get corrections and thus it comes to the idealized state. This idealized state continues.
However, a software in steady or idealized state, may need modifications as user’s demand from the software can change, the platform on which runs can have updates which might not allow the software to perform etc. A software can get updates easily, unlike hardware, which requires physical interaction. However, after fulfilling one demand, another one might rise. And in this way, alternative software with implementation of current user demands can replace a software. Though, not having a recent feature is not a defect, users tend to use the latest alternatives. If we consider this as failure for the software then the failure rate increases with time. This will make the software deteriorated due to change, but still the software can perform it’s operation as it was performing in the beginning.
That is why a software doesn’t wear out.
In the following given figure, the idealized curve for software has been shown. Also the change to failure rate due to users demand and the rise of the minimum failure rate has been shown on the actual curve.
In conclusion, we can say that, with time a software can lose it’s usefulness as user’s demand from the software can change, but still it doesn’t wear out, as it can continue performing it’s operation.