130 likes | 149 Views
Requirement Engineering - Customer-Oriented. Paul Sorenson Department of Computing Science University of Alberta CMPUT 401 Software Engineering. 1. Cathy. Sorry Cathy. Stable require. Carl. Cathy. Carl. Carl. Carl. Carl. Carl. Product Success Depends on Customer Satisfaction.
E N D
Requirement Engineering - Customer-Oriented Paul Sorenson Department of Computing Science University of AlbertaCMPUT 401 Software Engineering 1 Requirements Engineering
Cathy Sorry Cathy Stable require Carl Cathy Carl Carl Carl Carl Carl Product Success Depends on Customer Satisfaction • If you can satisfy your customers, you satisfy your manager, your company’s top brass, etc. Claire Claire Requirements Engineering
What are Requirements? What? When? Why? Where? How? And by Whom? Wishes, functionality, constraints, . . Dictionary: Necessity, something essential to exist. As soon as the project description/definition has been agreed to… Continual management of requirements must be an ongoing priority. We have to have something upon which to base the development of the system. Get requirements from clients and end-users. Also from industry standards and practice. Use effective communication strategies, involving all players: clients, end-users, project managers, developers, maintainers Requirements Engineering
Understanding the Need for Client Involvement Top three reasons for late, over-budget or functionally incomplete projects [Standish Group Study - ‘94]: • Lack of user input • Incomplete requirement specifications • Changing requirement specifications With respect to rapid development, good customer relations: • improves actual development speed • improves perceived development speed. Requirements Engineering
Bosses Developers Customers Maintainers End-Users Project StakeholderObjectives No overtime No surprises Successful project Interesting design work Exploration of new technical areas No “grunt” work Home life Quick schedule Low budget Stakeholder Objective Reconciliation No defects Good documentation Modifiability Lots of features User-friendly sw Fast sw Robust sw Requirements Engineering
Managing Requirements Effectively Planning Phase - setting the stage • Select an appropriate lifecycle model • Identify the real customers - who really needs to be pleased • Establish efficient, effective communication channels with customer • Create win-win project - use Theory-W • Manage customer-related risks Requirements Engineering
Real Requirements Gathered Requirements Captured Requirements Managing Requirements Effectively Requirements Phase • Vosburgh[84] study- found 50% betterproductivity when customershave a high level of participationin requirements specifications • Same study found that productivity was lower when customer wrote the specs - in one case over half the specs had to be rewritten. Requirements Engineering
Some Customer Involvement Practices • Use requirement elicitation practices - including:- UI prototyping, evolutionary prototyping, JAD sessions • Form focus group • Videotape customers using software • Conduct customer-satisfaction surveys to obtain quantitative measurements about customer relationships • “Educate” your customers - Josh primer Requirements Engineering
Best Practice Theory-W • Tries to create winning positions for stakeholders by getting them on the same side of the negotiating table • It supports rapid development in the following ways:- Establish a set of win-win preconditions before starting- Structure a win-win software process- Structure a win-win software product Requirements Engineering
Theory-W (continued) • Understand how people (stakeholders) want to win • Establish reasonable expectations • Match people’s tasks to their win conditions • Provide an environment that supports the project’s goals Establish Win-Win Preconditions Requirements Engineering
Theory-W (continued) Structure Win-Win Software Process • Establish a realistic plan • Use the plan to control the project • Identify and manage win-loss and loss-loss risks • Keep people involved Structure Win-Win Software Product • Match product to end-users’ and maintainers’ win conditions Requirements Engineering
Conclusions • “Ask not what your customer wants, but what you can do for the customer” • Overall, customer involvement is the . . . Requirements Engineering