Prioritisation of Functional Requirements and Non-functional Requirements in Agile Software Development
Agile software development (ASD) has become a common practice that is used by many software development teams. However, due to the nature of being user centric and having a delivery oriented nature, teams often focus on fulfilling the functional requirements of a system and often neglect non-functional requirements. With common non-functional requirements such as performance, maintainability and security often overlooked, software systems quickly build up technical debt. With this tradeoff of having to balance the need to address non-functional requirements to prevent the overly quick build up of technical debt and the need to push out functional software requirements in a timely manner, we explore the question of prioritisation when it comes to functional requirements and non-functional requirements in ASD. Modelling the ASD process using NK fitness landscapes, we explore the differences in ASD project outcomes when placing varying levels of priority on non-functional requirements, alongside studying when would be the best point in the ASD cycle to introduce this focus on non-functional requirements.
Presentation Slides: https://docs.google.com/presentation/d/e/2PACX-1vQMc2UD_r6PmwWA2Egffkey9e2ClIwPzqxuxVVpabExSJMTA2KQem4Z5HwfxWVBOWHdqv1MuAu3vpgS/pub?start=false&loop=false&delayms=3000
Final Report: