Main Reasons For The Failure Of Software Development Projects

1124 Words5 Pages
Issues in gathering non-functional requirements Introduction One of the main reasons for the failure of software development projects is the poor specification of requirements. As well as the specification of Functional Requirements, non functional requirement also need to be considered. Non functional requirement are the requirements that affect how the system performs not what the system does. They are often overlooked when requirements are being gathered because the sponsors are mainly concerned with the functional requirements. Non functional requirements may not always be understood by those with a non technical background. NFR’s are often viewed as technical requirements [8], quality attributes or system constraints. There are a number of issues to consider with non functional requirements. E.G: Elicitation, prioritization and validation. Keywords: FR (Functional Requirements), NFR (Non Functional Requirements) Identifying Non Functional Requirements The list of non-functional requirements includes but is not limited to the following: performance, scalability, security, maintainability, usability, legal and regulatory requirements, reliability, extensibility, portability, interoperability. If not considered at the beginning of a project non-functional requirement can be very difficult and costly to implement late in the project. Sometime they are not identified until the system is complete and up and running. Even though, the system does what it was designed to do it could be useless if it does not do it fast enough or if it does not allow for increased numbers of users. Wiegers and Beatty, characterize NFR’s are External and Internal quality attributes where external are those which ultimately impact the end user wh... ... middle of paper ... ...nal requirements are never considered until the developer starts working on the project and is mindful of how efficient their code will run, should it be multithreaded, how should the system be deployed, how often a database needs to be read or updated, how often does the system interact with the file system, is memory that is being allocated being released, does the system have to run 24/7. All of these things mean that more careful consideration has to be given to the design of the system and if the NFRs are not stated then the software engineer may interpret that as they are not important and so may ignore these considerations. It cannot be taken for granted that software developers will automatically develop to meet unstated NFRs. Where there is past experience within an organization of specifying NFRs, templates could be produced to gather these requirements.

More about Main Reasons For The Failure Of Software Development Projects

Open Document