Intended Audience: New to software development.

If you are new to software engineering, or the IT world, there will be many unfamiliar terms. This article focuses on “requirements” and where they fit within software engineering.

Typically before a system or app even exists, the users of the system will have some expectations of what a system needs to do to make their life easier. These expectations need to be coaxed out of users and articulated to the software team so that they can make these expectations a reality. This is the purpose “requirements” serve - they help users express what they want, for the people who will build the system.

What is a requirement?

We express what a system should do as “requirements” and they are simply things that are needed or wanted by the end user of a system.

There are many different ways that requirements can be expressed. The format is less important than making sure that users and software/data engineers have a shared understanding of the need, therefore it is good practice to document and discuss these together to gain that common understanding and iron out any inconsistencies.

Some common ways requirements are expressed:

A requirement expresses what’s needed, not how to implement the change.

There are lots of types of requirements but broadly they fall into two main types: