1 Requirements Engineering for Agile Methods Lecture # 41.

Slides:



Advertisements
Similar presentations
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
Advertisements

COPYRIGHT © 2012 ALCATEL-LUCENT. ALL RIGHTS RESERVED. 1 Agile documentation development methodology Giby Panicker and Judith Benjamin 1-Dec-2012.
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Systems Analysis and Design in a Changing World, 6th Edition
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternate Software Development Methodologies
Agile Project Management with Scrum
Agile development By Sam Chamberlain. First a bit of history..
1 Software Testing and Quality Assurance Lecture 34 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
An Agile View of Process
Chapter 9 – Software Evolution and Maintenance
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
CompSci 230 Software Design and Construction
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
Agile Programming Principles.
Chapter 4 Agile Development
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Agile Software Development Chapter 3 – Lecture 1 Adrián Susinos.
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
K.Ingram 1 Sept 2007 Agile Software Development. K.Ingram 2 Sept 2007 Contents Agile Software Development: 1.What is it? 2.Agile’s Values, Principles,
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Systems Analysis and Design in a Changing World, 6th Edition
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Lecture 3 – Agile Approach
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
CS223: Software Engineering Lecture 16: The Agile Methodology.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
Introduction to Software Requirement Engineering Nisa’ul Hafidhoh Teknik Informatika
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
Embedded Systems Software Engineering
Agile Methods SENG 301.
The Systems Engineering Context
Introduction to Software Engineering
Chapter 2 – Software Processes
Software life cycle models
Agile Process: Overview
Chapter 9 – Software Evolution and Maintenance
Chapter 3 – Agile Software Development
Chapter 8 Software Evolution.
Extreme Programming.
Rapid software development
Chapter 5: New and Emerging Process Methodologies
System Development Methods
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

1 Requirements Engineering for Agile Methods Lecture # 41

2 Introduction Agile methods are a family of software development processes Their aim is to deliver products faster, with high quality, and satisfy customer needs through the application of the principles of lean production to software development

3 Introduction Agile methods have become popular during the last few years Lean production has been conceived during the ’50s in Toyota. It involves several practices that are now part of most manufacturing processes, such as just-in- time development, total quality management, and continuous process improvement

4 Introduction The principle of lean production is the constant identification and removal of waste, that is, anything that does not add value for the customer to the final product

5 Introduction Agile methods focus on –Delivering value for the customer –Ensuring that the customer understand such value and be satisfied by the project

6 Introduction Agile methods pose a lot of emphasis in producing and delivering to the customer only those features that are useful Producing anything that is not required is considered a mistake

7 Introduction Adding a feature that is not needed not only consumes effort without adding customer value but also creates extra code, which may contain errors and make code longer and more complex to maintain, to correct and improve

8 Introduction The waste includes general architectures that are used only partially or reusable components with functionalities that are likely to be never used

9 Introduction To achieve such elimination of waste, agile methods claim to be –Adaptive rather than predictive –People-oriented rather than process- oriented

10 Introduction A close collaboration between the development team and the customer is a must, so that –Requirements are fully identified and correctly understood –Final products reflects what the customer needs, no more no less

11 Agile Methods eXtreme Programming Scrum Dynamic Systems Development Method Adaptive Software Development The Crystal Family

12 Agile Manifesto Individuals and Interactions over Process and Tools Customer Collaboration over Contracts Working Software over Documentation Responding to Change over Planning

13 Common Practices and Behaviors Adaptability Incremental Development Frequent Releases Requirements Prioritization before every iteration High Customer Involvement

14 RE in Agile Methods In agile methods, the whole development team is involved in requirements elicitation and management, while in traditional approaches often only a subset of the development team is involved

15 RE in Agile Methods This approach is feasible only if the size of the problem is limited, as only a small development team can interact directly with the customer If the problem is bigger, the team can use other techniques for eliciting and managing requirements

16 RE in Agile Methods The understanding of requirements variability has a strong impact on the ability of agile methods to be “lean’

17 Focus of Agile Methods in RE The Customer Waste in Requirements Requirements Evolution Non-functional Requirements

18 Customer in RE of Agile Methods Customers/stakeholders assume a paramount role in requirements engineering in agile methods The interaction between the development team and stakeholders is complex due to the different perceptions of the problem that the stakeholders have

19 Customer in RE of Agile Methods In agile methods, the problem of multiple stakeholders is solved reducing their number to one, who represent all stakeholders in the project The customer should be a domain expert and able to make important decisions such as accepting the product, prioritize requirements, etc.

20 Customer-on-Site Requirements Availability –The customer has to be always available to answer questions coming from the development team. Any delay in the answer delays the development of the product

21 Customer-on-Site Requirements Complete knowledge –The customer is the representative for all the stakeholders. Therefore, he is able to answer all questions, since he is the domain expert and knows how the application should work and input/output data required. Again, this is possible if the size of the project is limited

22 Customer-on-Site Requirements Decision power –The customer is able to make final decisions and commitments. Changes in requirements, acceptance of the features implemented, etc., can be decided directly by the customer, allowing a fast decision making process

23 Waste in Requirements Identification and reduction of waste from requirements assume a paramount role to avoid the creation of waste later in the development process In lean practices, the reduction of waste is extremely important because waste always generates more waste

24 Waste in Requirements Waste in requirements includes both wrong and useless requirements All the waste generated is a cost for the customer both directly and indirectly Such costs are likely to generate further waste inside the customer organization due to the reduced amount of money available to its core business and reduced revenues

25 Impact of Requirements Waste on Development Process More source code to write and higher cost Increased complexity of the source code Delayed delivery of the final version of the application with all functionalities More complex and costly maintenance

26 Impact of Requirements Waste on Development Process More resources required by the application, including: memory usage, processing power, network usage, etc Increased complexity of the application from the point of view of the customer (e.g., more complex user interface, more effort to learn how to use the application, etc)

27 Impact of Requirements Waste on Development Process Savings produced by the application in the production process of the customer are delayed

28 Techniques to Focus on Interaction with Customer The whole development team collects requirements from the customer –Usage of documents to share knowledge is reduced to a minimum Requirements are collected using a common language –Requirements are collected using the language of the customer, not any formal language

29 Techniques to Focus on Interaction with Customer Direct interaction between the development team and the customer –Reduces both the number of documents required and the probability of misunderstanding due to unnecessary communication layers Requirements splitting –If the development team considers a requirement too complex, this technique helps the customer to split it in simpler ones

30 Waste Reduction Techniques In order to reduce the waste created by the over specification of requirements, following techniques are used –Requirements prioritization –Incremental releases

31 Prioritization Activities The development team estimates the time required to implement each functionality. If the effort required is too high, the requirement is split into simpler ones that can be implemented with less effort The customer specifies business priorities for each functionality

32 Prioritization Activities According to the business priorities, the development team assign a risk factor to the functionalities The customer and the development team identify the functionalities to implement in the iteration

33 Requirements Evolution Agile methods assume that is very hard to elicit all the requirements from the user upfront, at the beginning of a development project They also assume that such requirements evolve in time as the customer may change its mind or the overall technical and socio- economical environment may evolve

34 Requirements Evolution Agile companies are aware that changes are inevitable and they include the management of variability into the development process

35 Requirements Evolution Requirements are not well known at the beginning of the project Requirements change Making changes is not expensive

36 Requirements Evolution Agile methods assume that the cost of introducing changes in a product is nearly constant over the time, but this hypothesis is not true in every context

37 Requirements Evolution Usually, the cost of implementing changes grows exponentially over the time On the other hand, if development phases are grouped together in very short iterations and binding decisions are taken as late as possible, the growing of the cost is limited

38 Requirements Evolution In order to manage requirements evolution, agile methods use variable scope-variable price contract. This means that the features really implemented into the system and its cost evolve as well Requirements are negotiated throughout the project between the customer the development team

39 Managing Variability Decoupling requirements Requirements elicitation and prioritization

40 Managing Variability Decoupling requirements –Requirements have to be as independent as possible in order to clearly identify what to implement and make the order of their implementation irrelevant

41 Managing Variability Requirements elicitation and prioritization –At the beginning of every iteration, there is a requirements collection and prioritization activity. During that, new requirements are identified and prioritized. This approach helps to identify the most important features inside the ongoing project.

42 Managing Variability Features are implemented mainly according to their prioritization, not their functional dependence

43 Non-Functional Requirements Agile methods do not provide any widely accepted technique for eliciting and managing non-functional requirements Such requirements are collected implicitly during the requirements collection activity. The need of specifying non-functional requirements is less important than in other context due to the continuous interaction with the customer

44 Roles and Responsibilities Customer Developers Managers

45 Tools for Requirements Management in Agile Methods Paper, pencil, and pin boards UML modeling tools Requirements negotiation tools Instant messaging tools Project management tools

46 Summary Provided an introduction to agile methods and their approaches to requirements elicitation and management These methods are still evolving Customer involvement is a must

47 References ‘Requirements Engineering for Agile Methods’ (Chapter 14), by Alberto Sillitti and Giancarlo Succi in ‘Engineering and Managing Software Requirements’ by Aybuke Aurum & Claes Wohlin (Eds.), Springer 2005