ISSEC 2013 Book of Abstracts (Sept. 2013) | Page 14

Tuesday 17 September, 2013 15:50 – 16:20 An Approach to manage NFRs in Agile methodology: Expanding Product Roadmap to include NFR Features based on holistic view of product quality Priyanka Kumari TATA Consultancy Services Research Analyst The importance of non-functional requirements (NFR) is growing more and more with the failure of big systems and the large cost associated with those failures. There are numerous examples where the system failures have cost the businesses and society in terms of insecurity, threat, loss etc. One of the key reasons for these failures is related to non-functional requirements and its handling at different stage of development. As per research data on software defects, 30-40% of defects can be traced to non-functional (also referred as structural defects) related problems such as security, performance, usability, reliability etc. The challenge currently being faced in eliciting non-functional requirements is that they are generally not stated explicitly and are not as clear in stakeholders’ minds as functional requirements. If the product quality requirements are not clearly stated, it will be very difficult to ensure they are achieved in design and development. There is lot of subjectivity and ambiguity when it comes to elicitation of non-functional requirements which potentially can impact the success of overall programs in a significant manner. Many software programs today are adopting agile development methodology in current environment because of its focus on customer interaction and understanding of changing needs with each subsequent stage of development. This brings customer and developers together to understand product, identify requirement and are expressed through User Stories and product backlog. A limitation in this approach can be that users don’t necessarily detail nonfunctional requirements and developers don’t enquire to understand what quality characteristics the software should satisfy. Frauke, Armin and Frank have also clearly says that Customers or users talking about what they want the system to do normally do not think about resources, maintainability, portability, safety or performance. Agile methods are not explicitly designed to include non-functional requirements for important interactions till design. If we look at a typical product roadmap or product backlog of any software system being ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????()}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|?}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|?}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|?}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|?}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|?}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|?}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|?}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|?}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|?}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|?}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|((??+ ?%MM ????((0