The Department of Defense (DoD) has a graveyard of software tools. Why? Software cannot always solve new socio-technical problems, yet contract software shops often repurpose old software for new problems. In some cases, the software product works, but for complex problems, it often fails. Problem definition is the lynchpin of software development success. Viable software requirements—those that actually produce a tool that addresses the problem—arise from a detailed problem definition that reflects the complexity of the circumstances. If a complex problem is documented generically, the requirements are usually generic as well. Consequently, the aperture of software solutions widens such that almost any tool could fix the problem. Generic problem definitions are often the failure point, and the users suffer the consequences. However, the process of defining problems is not well documented and is challenging to execute in operations so we offer the audience a method. Poorly suited software reduces human work efficiency, inflates error rates, disrupts the process of work within an organization, lowers user adoption rates, and ultimately leads to software obsolescence. Further, poor design exposes an array of exploitable human vulnerabilities in cyber network defense. Talented usability professionals can reverse most of these problems; however, the DoD is slow to request usability assistance. For different reasons, usability is generally an afterthought in the cybersecurity tool development process. In this webinar, we teach the audience the value of defining the problem and how this impacts the software quality outcomes.
Michael J. Szegedy