Paper presentation for my MSc @ UOM
Paper : "Agile Requirements
Engineering Practices:
An Empirical Study" on 2008
Lan Cao, Old Dominion University
Balasubramaniam Ramesh, Georgia State University
2. Index…
Motivation for Agile RE
What is Agile RE
Survey
Seven Agile RE Practices
Conclusion
2
3. Motivation for Agile RE
The requirements tend to evolve quickly
• Requirements to become obsolete even before project completion
Quick time to market
• Implementation should start immediately, competitive business
challenge, changing the development technologies soon
Quick response time of the product
• Product with basic functionalities should be ready
Quick identification of the product
feasibility
• Once start the development a lot of limitations are identified
3
4. What is Agile RE?
Many agile methods advocate the
development of code without waiting for
formal requirements analysis and design phases
Agile takes an iterative requirement analysis
approach
Requirement, Design and Development phases
not separated in the traditional manner
4
5. The Survey
Target to find answers for two questions
What RE practices do agile developers follow?
What benefits and challenges do these practices present?
Analysis of data from 16 software development organizations that
employ agile approaches
Using a qualitative study
Collected data through
Semi structured interviews
Participant observations
Documentation review
Interviewed a variety of stakeholders, including top
management, product managers, quality assurance personnel,
software developers, senior architects, and project managers
5
6. Agile RE Practices (1/7)
Face-to-face communication over written specifications
Simple techniques such as user stories to define high-level requirements
Developers discuss requirements in detail with the customers before and/or during
development
6
Benefits Challenges
Customers can steer the project in unanticipated
directions
Intensive interaction between customers and
developers
Informal communication obviates the need for
time-consuming documentation and approval
processes, which are perceived as unnecessary
The development team must spend extra effort to
integrate the requirements through negotiations
with each group.
Requirements are clearer and more
understandable to developers as direct
communication happen
Customers sometimes find it difficult to
understand or trust the agile RE process.
7. Agile RE Practices (2/7)
Iterative requirements engineering
The requirements aren’t predefined; instead, they emerge during
development
Most organizations, agile RE continue at each development cycle
7
Benefits Challenges
Creates a more satisfactory relationship with the
customer
Cost and schedule estimation is difficult
Requirements are become more clear to the
developers
Minimal documentation
Neglect of nonfunctional requirements
8. Agile RE Practices (3/7)
Requirement prioritization goes extreme
Agile development implements the highest priority features early
Prioritization often happens during the planning meetings at the beginning
of each cycle
8
Benefits Challenges
Clear understanding of the customer’s priorities
helps the development team better meet
customer needs
How each reprioritization is effecting of the
system architecture
Frequent reprioritization of requirements Leads to some instability of the system
9. Agile RE Practices (4/7)
Managing requirements change through constant
planning
Accommodating requirements changes during development is a way of tuning
the system to better satisfy customer needs
9
Benefits Challenges
Largely minimizes the need for major changes Redesign of the architecture added significantly
to project cost
Customers are misbehave and requesting more
fancy requirement more often
10. Agile RE Practices (5/7)
Prototyping
Develop a prioritized list of features to settle requirements
specification quickly
10
Benefits Challenges
Regularly use prototypes to obtain quick
customer feedback on requirements.
Quick deployment of prototypes in the early
stages has created unrealistic expectations among
customers.
11. Agile RE Practices (6/7)
Test-driven development
An evolutionary approach in which developers create tests before
writing new functional code
11
Benefits Challenges
Change impacts are quickly identified at the
development phase it self
Developers aren’t familiar to writing tests before
coding, it demands a lot of discipline
More quality is assured
12. Agile RE Practices (7/7)
Use review meetings and acceptance tests
Frequent review meetings for requirements validation
12
Benefits Challenges
Identify problems early during development Focuses more on requirements validation than
traditional approaches
Increasing customer trust
14. Conclusion
Organizations didn’t explicitly follow any specific
“brand” of agile methods, they followed RE practices
that were similar to those suggested by agile methods
such as Extreme Programming (XP) and Scrum.
14