Requirements
The first step generally entails helping define the requirements. Though a client has an expectation of what they need, oftentimes their wishlist needs to be formalized into a requirements specification.
Problem Definition
The first step of the Requirements Specification process is to define the problem that we are solving in terms that all parties understand and agree on. We touch upon this during the discovery process, but here we are formalizing the problem as an actual written definition. The intent is to start with a discussion, a review of the existing hardware and documentation, perhaps a tour, a drawing of a block diagram(s) or whatever it takes to convey the problem we are attempting to solve. This is also a good time to name the actual project and identify any unique terms that are related to the project.
Hard vs Soft Requirements
We find that there are different classifications of requirements – which we refer to as ‘Hard’ and ‘Soft’.
Hard requirements are those that must absolutely be met for the project to succeed – no more, no less! In other words, the minimal set of true requirements. It’s important to identify just the bare-bones, necessary requirements to help prevent “feature creep” from clouding the design. If there is more then one individual involved in the discussion, the features beyond those that are absolutely essential to the success of the project must be identified, agreed upon by all vested individuals and listed separately as ‘soft’, additional features.
Soft requirements (or preferably just features or goals) are all the “wish list” features that the various parties feel are important, but realize are truly required. This is not to say that these features are not important and shouldn’t be included in the design requirements, but it’s instructive to identify them separately, prioritize them in order of importance to allow us to address them as we can when we generate a number of System Architectures in the first design phase of the project.
Sometimes, these additional features are easily accommodated as a result of meeting the hard requirements, but other times they can add significantly to the schedule and budget. We record all of this information so that we can make informed recommendations as we move forward.
Identify the Major Challenges
With most projects, there are normally a number of aspects of the design that are difficult – rarely is a design simple and straightforward. Here we identify the technical challenges that could potentially delay or even derail a project. The idea is to investigate and address these issues early in the design process to allow time to make changes as required.
Author the Requirements Specification Document
The outcome of this process is a document detailing all of the requirements – both ‘hard’ and ‘soft’, along with a list of the major design challenges. This document not only drives the various phases of the design process, but also defines the test and acceptance criteria at the end of the project. The major challenges help define some important milestones and opportunities to schedule design reviews.