Content area
Full Text
Abstract- Most of practiced agile methodologies focus on delivering the functional requirements with higher priority and delivery push, lead up to a lot of instability and architectural severe non-compliances and variations. This will be very costly to change in the future phases or sprints and it will be too late to consider addressing main NFR's required.
This research paper aims to provide architectural refactoring framework and techniques for achieving required levels of NFR's through formalizing Spikes and DoD's within Scrum practices. In addition, it aims to develop a framework for handling different types of technical debts within Scrum managed software products and projects development. Scope covers addressing NFR's within software development through DoD's and techniques for identifying them. Furthermore, finding the best tactics for implementing the NFR's within the Scrum methodology through spikes and refactoring with usage of constraints and rules mainly within DoD's [1, p. 1]. It has been concluded that incorporation of non-functional requirements should be explicitly defined by including them in the Definition of Done. In addition, adopting the engineering practices such as TDD, CI, refactoring for maximizing the gained value from Scrum.
A data exported from Jira agile management tool covering nine software products with more than 7000 defined user stories developed using Scrum methodology has been analyzed using data mining techniques.
Keywords: Non-Functional Requirements (NFRs), Definition of Done (DoD), Software Architecture, Quality Attributes (QAs), Scrum Methodology, Data Mining (DM), Spikes, Refactoring, Continues Integration (CI), Test Driven Development (TDD)
1 INTRODUCTION
True agility can be achieved through the ability to apply changes into the product in an easy, fast, and flexible way. Within that sense, the organizational agility is constrained by technical agility [2]. That is best reached by knowing more about systems unknowns. As known "unknowns" are better than unknown "unknowns", the architecture play main role over revealing those unknowns, unplanned, and usually implicitly assumed non-functional requirements. Practiced agile methodologies and specially Scrum mandate quite push towards delivering the functional requirements without real considerations for the NFR's. Consequently, architectural constraints and design rules could not be well addressed at least in early stages. The higher priority given to functional specifications leads up to a lot of instability and architectural severe loss of alignment, non-conformances and variations. This is...