Personal Experience
Many people have the experience of dealing with software failures during their lifetime. In my situation, I dealt with a bug in an application that broke the program’s routine of updating and deleted all files connected to this software. This was a digital distribution platform that allowed one to download and install games. This program needed to be regularly updated. Once the update would be finished, the program ran smoothly. However, during one of the latest updates, something went wrong. A bug caused a failure of the updating process, and the platform deleted all internal files connected to the program from the computer. I had to download an older version of the program and reinstall everything again. Later, the platform’s creators revealed that multiple users experienced similar problems with the newest update and that the vulnerability of the platform was being fixed. It was reported that the bug caused the program to incorrectly interpret given commands in some cases, which led to it deleting all files.
Patterns and Typical Failures
Many failures are similar as they are often caused by computer systems being unable to interpret the provided data correctly. In this case, the same pattern of actions could be seen as the computers with the downloaded update were failing to change only the required files. Instead, they wiped out all data related to the platform. According to Merkow and Raghavan (2010), some patterns also include having various weaknesses in new and untested versions of the software. Thus, the integrity of this software can be easily compromised. Moreover, such weak spots in new programs can be used by users to incorporate malware and further complicate the situation. The software failure that I encountered was dealt with within a short amount of time. However, some users reported having additional problems due to their computer lacking any type of malware protection. Thus, weaknesses in the new version of the software that the developers did not notice on time were used by other people, which is typical for many known failures.
Arena of Personal Failure
This particular software failure is found in the field of both functional and non-functional requirements. According to Eckhardt, Vogelsang, and Fernández (2016), the non-functional requirement of security of this program was not met by the new update. Thus, this issue led to further problems. Nonfunctional requirements deal with software resilience and reliability, which were compromised in this situation as well. Moreover, it is possible that the process of installation of this software was also flawed, which deals with the functional side of the program. Its result of operations did not align with the intended goals of the developers. Functional requirements that detailed the program’s actions possibly were unspecific or incorrect.
Overarching Processes
Most of the failures, described by Jones could be prevented and averted with several processes. Khan et al. (2014) argue that most failures in the software occur due to the lack of testing and skills needed from creators to implement necessary changes. For instance, Jones (2012) describes some incidents such as vulnerable CDs from Sony or the bug of Patriot missiles, where companies ignored some aspects of programs that could bring more complications to the users and the business itself. Thus, different testing and monitoring methods should be incorporated into the process of development to prevent these problems from happening. Employee training can also avert most difficulties connected to software failure as many workers mentioned by Jones did not have the necessary qualifications to detect or prevent the arising problems.
References
Eckhardt, J., Vogelsang, A., & Fernández, D. M. (2016). Are “non-functional” requirements really non-functional? An investigation of non-functional requirements in practice. In Software Engineering (ICSE), 2016 IEEE/ACM 38th International Conference (pp. 832-842). New York, NY: IEEE.
Jones, A. (2012). 10 seriously epic computer software bugs. Web.
Khan, K., Qadri, S., Ahmad, S., Siddique, A. B., Ayoub, A., & Saeed, S. (2014). Evaluation of PMI’s risk management framework and major causes of software development failure in software industry. International Journal of Scientific & Technology Research, 3(11), 120-124.
Merkow, M. S., & Raghavan, L. (2010). Secure and resilient software development. Boca Raton, FL: CRC Press.