Defining and Documenting Your Software Requirements

Part Three in the Series: Software Development Guide for Business Leaders

Software Requirements Checklist

What is the life expectancy of your final product?
Have you assigned a Project Manager?
Have you set realistic project goals, budgets and timelines?
Have you done an assessment of your in-house resources?
Does the project rely on proprietary tools?
Have you assigned a Project Manager?
Is your outsourced partner large enough to roll with a contingency?
Do you have a software update plan?

As a business leader, you may be considering developing a web application for your team, your company or customer use. Congrats! Let’s get your project off to a good start with a clear and concise Software Requirements Document.

As the leader, (aka project sponsor), your contribution will be paramount in defining the software expectations and your input required throughout the project lifecycle.

Throughout this series of Software Development Guide for Business Leaders, we will help you to understand the elements of success in a software development project. That success may be as simple as “the project expectations were achieved by the due date and within the budget.”

Or your success may be, “the solution was highly adopted and client retention increased by 25%”. The success statement depends on the goals of the project.

Develop target metrics at the beginning of the project. These should be measurable and achievable. Use the SMART Goal Process to clearly define your project’s objectives.

What is a Software Requirement?

Project Managers break software requirements into functional and non-functional components.

Functional requirements are simple documents that outline the inputs, the behavior of the software and the outputs. The non-functional requirements include details such as performance requirements, security, or reliability.

Developing Software Requirements

There were two studies performed in the 1990’s that help us to create better software today. A study by the ESPI in 1995 found that 40–60% of all defects discovered in a software project traced back to errors made during the requirements stage. An earlier study in 1994 by the Standish Group helped us understand that 13.1% projects fail due to the incomplete requirements and 8.8% projects fail due to the rapidity of changes in the requirements (Girase, 2012).

With the establishment of the Agile Manifesto in February of 2001 and the subsequent documentation of the Agile Software Development Model, many of the problems associated with incomplete or error filled requirements were resolved. Traditional project management models still require documentation of a requirement BEFORE the coding and testing starts while Agile is iterative.

When discussing the software requirement with your project manager, you need to stress the importance of a requirement gathering process. Your project manager may use many techniques to develop the requirement including: surveys, interviews, team meetings, and brainstorming sessions.

We have found the website MindTools.com and Nick Martin’s WorkshopBank.com to be especially useful. Each has tools for facilitating meetings and brainstorming sessions.

To create a requirement is not a single step process. In today’s modern agile world, requirement development is an ongoing process done before the beginning of each sprint.