Empirical Research
Requirements Elicitation in Agile Processes
Md. Zabedul Akbar
Email :
[email protected]
Outline Requirements Importance
Challenges With Requirements Agile Requirements Gathering Practices
Customer Roles in XP Project How to Enhance the Effectiveness of the Customer?
Requirements Elicitation in Agile process
2
Beck, K., & Fowler, m. planning Extreme Programming, 2001
Why Requirements are important? ―All the best talent and technology and process in the world will fail when the customer isn’t up to scratch‖(Beck and Fowler 2001, p17)
Requirements elicitation in Agile process
3
Standish Group, CHAOS Report 1994
Inadequate Requirements leads to Project failure According to a study of the Standish Group[17], five of the eight main factors for project failure deal with requirements.
Table: Main Causes of Project Failure
Requirements elicitation in Agile process
4
Sillitti, A.; Ceschi, M.; Russo, B.; Succi, G.; Software Metrics, 2005
Cost of changes in requirements[1] According to 75% of the Agile companies and 63% of the Document-driven firms, requirements vary “often” or “always” over time [12]
Requirements elicitation in Agile process
5
Group Discussions What are the top challenges we face with requirements on a project? What are the most common issues that cause project challenges? • Discuss this with others next to you and prepare some answers to share with all of us.
Requirements elicitation in Agile process
6
Types of Requirements Functional requirements
Nonfunctional requirements Constraints (“Pseudo requirements”)
Requirements elicitation in Agile process
7
Sally Elatta: AgileTransformations.com
The 4 step to Agile Requirements Gathering
Requirements elicitation in Agile process
8
Agile Requirements Engineering (Literature Review)
Requirements elicitation in Agile process
9
Empirical Study on Agile RE Practices • Lan Cao, Balasubramaniam Ramesh: “Agile Requirements Engineering Practices: An Empirical Study”, Software, IEEE Volume: 25 , Issue: 1 Digital Object Identifier: 10.1109/MS.2008.1 Publication Year: 2008 , Page(s): 60 – 67. An analysis of data from 16 software development organizations that employ agile approaches. Data is collected through semi structured interviews, participant observations, and documentation review. What RE practices do agile developers follow? What benefits and challenges do these practices present?
Requirements elicitation in Agile process
10
Glaser & Strauss, 1967
RESEARCH METHOD: GROUNDED THEORY • Grounded theory (GT) is a systematic qualitative research methodology emphasizing generation of theory from data in the process of conducting research [15].
• GT does not aim for the "truth" but to conceptualize what's going on by using empirical data.
Requirements elicitation in Agile process
11
Grounded Theory (Steps..) Data collection (using variety of methods)
Marking key points with a series of codes
Grouping codes into similar concepts
Forming category from these concepts
Generate Theory
Requirements elicitation in Agile process
12
Requirement Engineering Activities [9]
Requirements Engineering Steps
13
F.E. Paetsch, A. Eberlein, and F. Maurer
Requirement Engineering and Agile Software Development [2] Elicitation, analysis and validation phases are present in all agile processes. Agile methods provide a good base for requirements management via index card and product backlog. Handling of Non-functional requirements is ill defined. Development team should ensure that enough documentation is available for future maintenance.
Requirements elicitation in Agile process
14
What RE practices do agile developers follow? [6] Face-to-face communication over written specifications Iterative requirements engineering Requirement prioritization Managing requirements change through constant planning Prototyping Test-driven development User review meetings and acceptance tests Requirements elicitation in Agile process
15
Face-to-face communication over written specifications Benefits Customers can steer the project in unanticipated directions. Obviates the need for time-consuming documentation and approval processes
Requirements elicitation in Agile process
16
Face-to-face communication over written specifications (Challenges) • For projects that can’t achieve high-quality interaction with customers, this approach poses risks. • Achieving onsite customer representation is difficult. • Achieving consensus or compromise among customer groups in the short development cycle is challenging (NetCo). • Customers sometimes find it difficult to understand or trust the agile RE process.
Challenges with Face to Face
17
Iterative requirements engineering (Benefits) More satisfactory relationship with the customer. “I think the difference for me came in the quality of the software [and] the stability of the software. … I think the agile [RE] lent itself to … a very robust rich implementation of features …[for] the first time.” [Customer SecurityInfo]
Requirements are clearer and more understandable [6][16] Facilitates joint discovery of potentially interesting solutions. Iterative Requirements engineering in Agile process
18
Iterative requirements engineering (Challenges) • Obtaining management support for projects could be challenging. (HuCap) Minimal documentation creates problem when communication breakdown occurs. (ServerIT)
Neglect of non-functional requirements [11]. (ServerIT ,TravelAssist and other company) Requirements elicitation in Agile process
19
Requirement prioritization goes extreme Benefits
Helps the development team better meet customer needs. “We are delivering high value every step of the way”
Challenges: • Using business value as the only primary criterion for requirements prioritization might cause major problems. – In FinCo this approach resulted in an architecture that wasn’t scalable. – In Transport, it resulted in a system that couldn’t accommodate requirements (such as security and efficiency) that might initially appear secondary to the customer but that become critical for operational success.
• Continuous reprioritization, when not practiced with caution, leads to instability. Requirements elicitation in Agile process
20
Managing requirements change through constant planning Benefits: •Minimizes the need for major changes. •Cost of addressing a change request decreases Challenges: In several organizations, such as FinCo and AgileConsult, the architecture the development team chose during the early cycles became inadequate as requirements changed.
Redesign of the architecture added significantly to the project cost. Requirements elicitation in Agile process
21
Prototyping • Prototype helps to obtain quick customer feedback on requirements.
• Maintaining or evolving prototypes is difficult. • At TravelAssist, quick deployment of prototypes in the early stages has created unrealistic expectations among customers. Requirements elicitation in Agile process
22
Test Driven Development Agile Consult developer:
―Having those tests allows you to be more adventurous in terms of making changes and trying out ideas. ... You get very quick feedback if it goes wrong. … You write code that talks about what the system’s behavior should be.‖
Requirements elicitation in Agile process
23
TDD (Challenges) • Developers aren’t accustomed to writing tests before coding.
• Most developers don’t consistently follow this practice because it demands a lot of discipline. • TDD requires a thorough understanding of the requirements and extensive collaboration between the developer and the customer.
Requirements elicitation in Agile process
24
User review meetings and acceptance tests Benefits: • Provide progress report to customer and other stakeholders. • Increase customer trust and confidence on the team. • Identify problems early during development. • Very helpful to obtain management support. Challenges: • Implementing Acceptance testing is difficult owing to the difficulty of access to the customers who develop these tests. • Organizations use QA personnel to help customers develop these tests.
Requirements elicitation in Agile process
25
What about the customer?
Requirements elicitation in Agile process
26
Empirical Study on Customer Role • The role of customers in extreme programming projects Author/s: Martin, Angela M Category: Doctoral Thesis Year Published: 2009 • XP customer practices: a grounded theory Author/s: Martin, Angela , Biddle, Robert , Noble, James Parent Document: Proc 2009 Agile Conference Category: Conference - Proceedings Year Published: 2009 Requirements elicitation in Agile process
27
Companies involved in the study
Requirements elicitation in Agile process
28
Research Questions Addressed • What is the experience of the customer? • Is the customer a single person or a team? • What practices enhance the effectiveness of the customer?
Requirements elicitation in Agile process
29
What is the experience of the customer? ―We probably needed about three of me … it’s been my life for about a year … look at these grey hairs‖ — Customer, KiwiCorp
―I’ve always worked at least 70 [or] 80 [hrs a week] I don’t even mind it, its like what I do‖ — Customer, RavenCorp ―Overall – I love this approach to development and I’d certainly like to use it again in any future projects I am involved in‖ — Customer, KiwiCorp Requirements elicitation in Agile process
30
Is the Customer a Single Person or a Team?
Figure: The Customer Team Roles Requirements elicitation in Agile process
31
Collaboration Guides • Geek Interpreter
• Political Advisor • Technical Liaison
Requirements elicitation in Agile process
32
Direction Setting • Negotiator • Diplomat • Super-Secretary • Customer Coach Requirements elicitation in Agile process
33
Skill Specialists • Acceptance Tester • User Interaction Designer • Technical Writer
Requirements elicitation in Agile process
34
Impact of Customer Team Roles on the Experience of Being a Customer
Requirements elicitation in Agile process
35
XP practices: Real Customer Involvement, Whole Team and Energized Work.
Figure: Customer practices
Requirements elicitation in Agile process
36
What practices enhance the effectiveness of the customer? • • • • • • • •
Customer’s Apprentice Programmer On-Site Programmer Holiday Road show Customer pairing Customer Boot Camp Big Picture Up-Front Re-Calibration Requirements elicitation in Agile process
37
Key Findings • Agile RE practices are neither panacea nor poison to the challenges intrinsic to RE. • Rely more on tacit knowledge and face to face communication than on written documentation. • Handling of Non-functional requirements is ill defined. • Often customer work as a team. • Certain practices enhances the effectiveness of customer. • Improves teams capability of dealing with changing requirements.
Requirements elicitation in Agile process
38
Want to know more?
Requirements elicitation in Agile process
39
References 1.
Kent Beck , Cynthia Andres, Extreme Programming Explained: Embrace Change (2nd Edition), Addison-Wesley Professional, 2004
2.
Requirements Engineering and Agile Software Development By F.E. Paetsch, A. Eberlein, and F. Maurer, (Proceedings of the Twelfth IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE’03))
3.
A. Martin, J. Noble, and R. Biddle. (2006), Programmers are from Mars, Customers are from Venus: A practical guide for customers on XP projects. in "Pattern Languages of Program Design", Portland Oregon, United States.
4.
The role of customers in extreme programming projects, Author/s: Martin, Angela M , Category: Doctoral Thesis, Year Published: 2009
5.
Requirements Engineering for Agile Methods By Alberto Sillitti, Giancarlo Succi http://www.agile-itea.org/public/papers/sillitti-succiV2.pdf
6.
Lan Cao, Balasubramaniam Ramesh: “Agile Requirements Engineering Practices: An Empirical Study”, Software, IEEE Volume: 25 , Issue: 1 Digital Object Identifier: 10.1109/MS.2008.1 Publication Year: 2008 , Page(s): 60 – 67. References
40
References 7. Mike Cohn, User Stories Applied, Prentice Hall PTR, Upper Saddle River, NJ, 2004 8. Grigori Melnik, Frank Maurer: Multiple Perspectives on Executable Acceptance TestDriven Development, Proceedings of the 8th International Conference on Agile Processes in Software Engineering and eXtreme Programming (XP 2007), Como, Italy 2007 9. Gerald Kotonya and Ian Sommerville: Requirements Engineering, John Wiley & Sons, 1997 10. Incorporating User Centered Requirement Engineering into Agile Software Development By Markus Düchting, Dirk Zimmermann and Karsten Nebe LNCS, Springer http://www.springerlink.com/content/9l720j6q56173n36/ 11. Some Findings Concerning Requirements in Agile Methodologies By Pilar Rodríguez, Agustín Yagüe, Pedro P. Alarcón and Juan Garbajosa, LNCS, Springer
12. Managing Uncertainty in Requirements: a Survey in Documentation-driven and Agile Companies By Sillitti, A.; Ceschi, M.; Russo, B.; Succi, G.; Software Metrics, 2005. 11th IEEE International Symposium
References
41
References 13. J. Highsmith. (2002), Agile Software Development Ecosystems, Addison-Wesley. 14. Romero, M. ; Vizcaino, A. ; Piattini, M., Teaching Requirements Elicitation within the Context of Global Software Development, 2009 Mexican International Conference on Computer Science. 15. Martin, Patricia Yancey, Turner, Barry A.. (1986). Grounded Theory and Organizational Research. The Journal of Applied Behavioral Science, 22(2), 141. Retrieved June 21, 2009, from ABI/INFORM Global database. (Document ID: 1155984)
16. Planned Methodologies vs. Agile Methodologies under the Pressure of Dynamic Market By M. Kamel, I. Bediwi and M. Al-Rashoud Faculty of Computer Science and Information Systems, King Abdulaziz University, Jeddah, Saudi Arabia http://www.kau.edu.sa/Files/320/Researches/55452_25774.pdf 17. Standish Group: Chaos Report,1995, http://www.standishgroup.com/
References
42