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

Requirements Elicitation in Agile Processes

According to 75% of the Agile companies and 63% of the .... TravelAssist and other company). Requirements ... Parent Document: Proc 2009 Agile Conference.

1MB Sizes 1 Downloads 153 Views

Recommend Documents

Secure Requirements Elicitation Through Triggered ...
ysis in the first phase of the software development life cycle itself ie in the require- .... [11], like MSCs [1] describe system scenarios in terms of the atomic actions ( ...

A graphical tool for elicitation of MTL requirements
applications of our tool for defining specifications for operation of robotic surgery and ..... Section VI, we present two application specifications that illustrate the various ..... and monitoring of cyber-physical systems. In Int. Workshop on Desi

Agile Software Requirements
and the Enterprise (Agile Software Development ... Enterprise (Agile Software Development Series), Full PDF Agile Software Requirements: Lean .... author of Managing the Design Factory; and leading expert on rapid product development.

pdf-1480\agile-software-requirements-lean-requirements-practices ...
... of the apps below to open or edit this item. pdf-1480\agile-software-requirements-lean-requirements-practices-for-teams-programs-and-the-enterprise.pdf.