Wednesday, June 18, 2014

The Importance of Software Requirement Specification in Software Development

Due to the high cost involved, it is common to outsource software development to an external developer. The cost of hiring programmers is really high in high-cost economies and this they control through outsourcing from abroad to countries like India, where highly qualified and competent people can produce software at cheap prices. 
 
Though on the face of it, outsourcing may appear to be simple, facts are otherwise. Companies at both ends – buyer and vendor, need a lot to do before software is successfully implemented and run. It begins with the customer identifying a need and finally ending in successful implementation. The key to satisfying a customer is in understanding all their needs and the vendor defining the requirements. 
 
Once a preliminary understanding has been reached, the development process commences in earnest after an agreement has been reached. However, the complexity of the game begins when software requirement specification (SRS) is written. Without an agreement between the vendor and customer, the chances of a project going bad are high. SRS is therefore an inevitable process. It lays the foundation for redressing grievances during the currency of an outsource application development.

The Principal Components of an SRS


Here are some of the main components of SRS.
  1. Definition of functional requirements of the application
  2. Definition of performance requirements of the application
  3. Definition of human interface design
  4. Operational requirements
  5. Resource requirements in case third-part software is involved
  6. Verification process to check the different performance parameters
  7. Acceptable performance levels
  8. Testing requirements in specified environmental situations
  9. Documentation requirements for the project
  10. Fixing quality specifications for the project
  11. Fixing safety and security issues
  12. Reliability specifications and controls
  13. Maintenance requirements for the applications
In writing the SRS, both parties to an agreement should ensure that the agreement is complete in all respect, wordings in the agreement are consistent, problem areas are traceable, the agreement is unambiguous in all respect and every performance parameter is verifiable. The agreement should necessarily provide for an arbitration process as well to avoid costly litigation. 
 
Potential Areas of Conflict

Here are some potential areas of conflict when the agreement is not consistent –
  1. Multiple descriptors – multiple descriptors are potentially very damaging to the SRS. So ensure that the same word is used in every instance or situation.
  2. Ambiguous use of words – this must be avoided as far as possible. If it is practical, each and every technical term used must be defined in the definition part of the specification itself. Another way to ease the situation is accept a well documented procedure as the basis for future use.
  3. Keep notations as transparent as possible – this is particularly important for the vendor. It is also a good idea to define what each notation means exactly as it is visible on the human interface of the application. If not properly documented, notations can cause heartburn to the users and lead to implementation failures.
  4. As far as possible vendors and customers must adopt standards prescribed by software development regulators. The advantage is, they are easy to interpret and inferences can be adopted from past decisions.
It is also important to predefine how the vendor will use information that customers provide for application development. Data security should be ensured when they are critical to developing an application. Another often ignored aspect in SRS is the human safety issue. That too should receive due attention.

If the customer is not forthcoming on SRS, it is the avowed duty of the vendor to stress its importance in their own interest. Repeated complaints from customers can result in the vendor acquiring a bad reputation. 

About TechTrendsIT

TechTrendsIT is a growing technology and strategic outsourcing company consisting of more than 1000 engineers providing reliable solutions on Business Intelligence, Big Data, Cloud Mobility, Independent Testing, Application Lifecycle Management, UX Design, Research and Social Return on Investment, thereby developing a strategic technology for its clients.

TechTrendsIT combines platforms, solutions, accelerator and enablers with research and custom development to offer innovative solutions to its clients and provides a strategic advantage which helps them to stay ahead of its competitors.


No comments:

Post a Comment