Software Requirements Management

Between 40% and 60% of software failures and defects are the result of poor software management and requirements definition. In plain English, this means that about half of the problems encountered could have been avoided by making it clear, from the very beginning, what the customer expected from the respective project. This is to say that the programming was fine and the developers did their job well – only they did a different job from what they were supposed to.

The definition of a successful program is that it is 100% compliant with its initial requirements. But it those requirements contain mistakes, are unclear or poorly defined, then there is very little one can do to correct the problem later in the process. So, a bit of advance planning simply doubles the success changes of any software project.

The persons in charge with writing the requirements should be the project managers and the team in charge with software engineering, all the stakeholders, the clients and the end-users. Writing good requirements takes time and practice, and, even with all the new tools designed to help you, it will not happen overnight. You need a good, clear, organized mind, good programming knowledge (because you'll need to know exactly what your team of developers can do, and you need to make sure that you speak the same language with them) and, to a certain extent, good people skills. You will need to get in touch with the clients during this period, and to find out exactly what they want and how they want it. Some of them are not capable of explaining what they need, others don't have the time to meet you and look over the drafts, other thinks they know better and they give you all the wrong ideas, and others will simply be very happy to approve your specifications without having a second look at them. You need to persuade all of them about the importance of this step, hold long, boring meeting, and then "translate" their needs for the programmers and developers. If customers or end-users are not available, despite your best efforts, you can use "surrogates" to simulate the actual users.

Make sure you remain in close contact with the client for the entire duration of the process. Their needs may change, or they may find out about something they forgot to tell you in the beginning – so inform them that you will always be available to meet with them and look at all the options again.

Also, the quality testing department needs to be informed about the requirements from the very beginning, because they will design their tests accordingly, and also they may have some details about what can go wrong in some cases.

One of the biggest issues is the time you have available for writing the requirements. Sometimes, when the deadline is very tight, the developers may start working before you completed the requirements, and this can cause a lot of problems later on.

The process of requirement management ends when the final product is shipped, and the customer is fully satisfied by it. However, the fewer modifications your requirements will suffer, the better for everybody. You should be able to trace your requirements all the time, and we'll have a look, later on, at the tools that enable you to do this.

In some cases, when a client comes up with an additional issue, it may be too late to change a requirement or ad a new one – the workload and the costs are simply too big to make it worth it. This remains subject to negotiation between you and the client – but your task is to know exactly what would be the effect of implementing new requirements, and to translate it into the language of the client (meaning that the client may not be receptive when he sees how many code lines need to be changed, but he may understand when you tell him how much this will cost).

Tracing requirements also involves additional tests, performed from time to time, to insure that the process runs smoothly and errors are identified and corrected early on. When faced with a big project, you may have different sets of requirements, some that apply to the entire project, and some for parts of it. When a certain design is implemented for a certain requirements, make a note about the effects and the alternatives – it may be useful for future projects (or even for the same project, if the client is not satisfied with the result).

So far, we've seen what software requirements are. In the following sections, we'll show some tips and tools about what good software requirements are. If this section is your responsibility, the wisest thing you can do is to get the IEEE Software Engineering Standards Collection. At 400 dollars, it may be somewhat expensive, but it will give you a lot of useful details about terminology, processes, the quality assurance and the user documentation needed. Also, the standards are conveniently given for each separate unit of the process – the specific part about software requirements specification is IEEE STD 830-1998, which describes the content of good requirements specifications and provides some useful samples. The guide is designed for in-house software, but it can be used for commercial software as well, with minor changes. Another useful reference is the "Standards Guidelines and Examples of System and Software Requirements Engineering" by M. Dorfman and R. Thayer, a compilation covering all the major standards (IEEE, ANSI, NASA and US Military). These are all flexible instruments, and should be used as such.

  • Mitch Hayes
    Great article, thanks. We develop both hardware and software, and we've always struggled to find a tool that meets both group's needs. We'd rather not have two systems.

    For us, our hardware guys do a lot of analysis work with VOC market data, hazard assessments, FMEA and a lot of what's called Critical Parameter Management (CPM). DFSS and other stuff has been required (and good) for us but was a real pain to try to manage that externally in Excel, etc. We kept looking for an RM system that did both textual (pass/fail) requirements as well as "numeric" requirements that could be assessed analytically for Cpk, as well etc.

    Anyway, good article, thanks. We did find Cognition Cockpit and it's working great. http://www.cognition.us
  • There is a completely free web-based requirement management platform (http://www.requirementone.com) available that allow business analyst to easily electronically funnel inputs from the stakeholders throughout the elicitation phase and map these ideas in to the formal requirements. There are lots of traceability options and also the ability to define various best-practice structures (IEEE, ANSI etc.) to be reused as templates in future projects. It is quite a broad value proposition you can make use of all the various phases of your project.
  • Arunkumar
    Hi,
    Am ArunKumar Sr.S.E, from Bangalore. There is an Business opportunity from my Ex-Client member more over my close relation who is working as deputy team leader for EC (European commission) as he is the world 5th costliest consultant from India who is appointed for managing the financial cries of an country in Europe. Where 73 million euro should be used for the development of the major 3 ports of an European country. (Name can be disclosed after the proper agreement and contract).
    As per the suggestion of the lead, DTL, that the port can be integrated and computerized in order to provide more efficiency, now the MoTC (Ministry of Transport and Communication) has agreed to utilize some of these funds for making the port fully automated and computerized. Where the project modules consist of,
    • Integration (Of the port and its community)
    • Computerization (Of information and flow)
    • Management (Of port efficiency and resource)
    The project configurations are,
     Software development
     Hardware installation
     Networking and automation
     Testing and Commissioning
     Training human resource
    The project is going to be officially approved very soon, it’s now he is the decision authority to select a contractor for this project. As he cannot officially do the back business in order to win the project, am representing behalf of him and making my move according to his suggestion.
    Now am forming a consortium in order to win the project, as there is 99% chance of winning the project. To be a consortium partner the company should have 3 pre requirements,
    1. Should have similar project experience in ports
    2. Should have an office in Europe
    3. Ready to take care the interest
    The initial step should be the done by the willing company is to assist two project consultant (only for this project), where their roles and responsibility will be,
    a. Play the role of being a facilitator of relevant information flows, organizing, and setting up and participating in all relevant meetings.
    b. Provide required assistance in the formation of consortium and subsequent bidding for the proposed business opportunity

    c. Actively get involved in preparing the expression of interest and the technical proposal
    d. Contribute in discussions and meetings with the technical experts and visit the project office daily.
    e. Communicating with Lead on daily basic or weekly basic through conference.

    R.R (Regarding Remuneration of project consultants)

    There will be contract agreement for the Assistance of project consultant to win the project (may be 4-6 months) with the Remuneration, where the remuneration may kindly be fixed based on scale of business opportunity, contribution that expected of. As you are aware it is not only time that is being spent but also others whom we represent...

    In case if the company doesn’t meet with the requirements , if the company is ready to assist the project consultants, then they can assist the company whom they represents to full fill the requirement as per the lead suggestion. The project will be floated in online by end of aug 2009 or start of sept 2009, before that the technical proposal should be delivered to the lead as the system architecture will be provided by the lead. With the Tech. Propos the RFP will be prepared.

    In worst case if we fad to win the project, the product can be developed with a help of JV with European Commission port company, where the requirement, marketing, system architecture of the project will be completely assisted by the lead and the project consultants.

    The project consultants will be from reputed university of India holding a engineering degree with vast business experience and software development experience specially in Ports.

    Any Software service and product development company can contact over the below mentioned mail or over an call is very much appreciated. If interested and ok with the above mentioned thing we can have a F2F Discussion, where the MOU and contract agreement can be signed..

    Time is very short do respond very soon …..

    IT Top managment peoples are welcomed..

    Regards,
    Arunkumar
    +91-9790156299
    Pj.arunkumar@yahoo.com
  • dvansant
    There are volumes of research reports online that support your assertion that poor requirements are the most frequent cause of project failures. Collaboration among stakeholders is key to delivering good requirements. You also touch on requirements traceability. Far too often requirements are written in a text document that sits on an island, separated from other project artifacts. Tracing these requirements through the application life cycle becomes a manual and error prone process. Getting requirements right is a good start, but is insufficient if you can’t trace them to make sure, for example, that all requirements have been successfully tested.

    A good tool is a worthy investment to help with the collaboration, documentation, version control, and traceability issues that plague text documents. I certainly understand the lure of a text document when faced with the alternative of a five or six figure requirements management solution, but today there are several good web-based options that can deliver a lot of value for free or a small price.

    To deliver real-time automated traceability, we’ve taken the approach of delivering requirements management in the context of the entire application life cycle. Requirements can be linked to any other project artifact and then traced at any moment by running a report. Our solution, Lighthouse, is free for 5 users.

    http://www.artifactsoftware.com/products/Requir...

    Whether you choose our tool or not, I would urge readers to move beyond text documents and seek something that meets their needs. Requirements are so important to a project’s success and should be managed accordingly.

    Thanks to SoftwareProjects for the Software Requirements section!

    -Derek
  • jeff
    A useful white paper I found recently titled "7 tips for better requirements management", available at http://www.accompa.com/wp.html

    It is written by a requirements software company, but I found the tips generally applicable (except the last one) - I was able to use the tips without buying their software! :)
  • Mi
    Please give me your suggestion about some metrics analysed in this stage
  • readers of this article might be interested in the state of requirements management report. can download the .pdf here: http://www.jamasoftware.com/requirements_manage...
  • Naveen BT
    you can also download BABOK - standard for Business Analysis from IIBA.
blog comments powered by Disqus