Requirements Engineering and Management INFO 627 Defining the System and Managing Scope Glenn Booker INFO 627 Lecture #5 1 Organizing Requirements Requirements must be captured and documented. Period. No excuses. For that to happen, the stakeholders must reach agreement on what are the requirements It is rare for all requirements to be fulfilled in the first release of a system, so need to agree on their priority, too INFO 627 Lecture #5 2 Organizing Requirements The requirements specification defines the external behavior of the system A single document rarely can capture all requirements INFO 627 Might separate system requirements from software requirements Could use a high level Vision document, vs. a lower level software requirements specification Lecture #5 3 Organizing Requirements Might use product family versus software requirements Could separate business requirements from software requirements The systems engineering approach can lead us to defining system requirements, then define subsystem requirements INFO 627 Lecture #5 4 Organizing Requirements Then each subsystem’s requirements could be divided into hardware, software, and interface requirements (1E p. 163) Product families, or product lines, are sets of systems which share some common subsystems INFO 627 Like different cars using the same model starter Lecture #5 5 Product Families In those cases, the vision for each system is based in part on a vision for the whole family, and the shared software requirements For any system, need to distinguish requirements which are being implemented from those saved for future releases INFO 627 Lecture #5 6 Business Requirements Some organizations use a Marketing Requirements Document (MRD) to capture business issues INFO 627 Market release windows Target market or audience Distribution and marketing issues Profit margin and investment amortization Lecture #5 7 Vision Document The vision document combines some marketing and product requirements Use of the Vision document is highly recommended Also known as the scope or business blueprint Can define vision for an organization too INFO 627 Joint Vision 2020 Lecture #5 8 Vision Document Challenge in writing the Vision is to keep everything understandable by all major stakeholders Write at a low level of detail, and use plain language The vision captures what the system will do, and won’t do INFO 627 Lecture #5 9 Vision Document The Vision document gives a synopsis of the problem to be addressed, and the solution proposed The Vision describes: INFO 627 The users of the system; their demographics, profile, and environment Alternative solutions and competition Lecture #5 10 Vision Document INFO 627 The product, including its benefits, differences from the competition, capabilities, dependencies, and cost Key features Key use cases Non-functional requirements Documentation, installation, and help Lecture #5 11 Delta Vision Document (DVD?) As a product concept matures during development, a “Delta Vision” document can be used to reflect improved understanding Hence the basic product information from the first Vision document isn’t repeated INFO 627 Instead, focus on changes Lecture #5 12 Delta Vision Document 2.0+ The second and later major releases could use a delta vision with New features in version 2 Removed features from version 1 Planned features for future releases The delta vision document is kind of like a release’s Version Description Document (VDD), but at a higher level INFO 627 Lecture #5 13 Delta Vision for Legacy Systems Fully defining requirements for a large legacy system is often too time consuming Can then use a delta vision document to capture what changes you want to make in the system features This avoids documenting stuff which isn’t changing INFO 627 Lecture #5 14 Champion No, not a mushroom, that’s a champignon The project vision is maintained by a product champion The champion maintains the vision, and makes sure that changes to it are negotiated fairly among the various stakeholders The champion is fully focused on what this product will become, and makes it that way INFO 627 Lecture #5 15 Champion In contrast, some projects are marked by: Inability to refuse a new feature Inability to accept a reasonable schedule to create the desired features Inability to balance the product’s features (like a car with a 1000 HP engine and stock tires) These are all signs of a weak or nonexistent champion INFO 627 Lecture #5 16 Champion The champion could be a lead engineer, project manager, or have other titles Depending on industry, the champion might be closely tied to marketing, to ensure the product remains desirable by the customer Champion must balance market, customer, technology, and profit all at once INFO 627 Lecture #5 17 Champion For internal IT development, the champion might be from almost any area Champion needs to play a key role in feature change decisions (e.g. participate in the configuration control board) INFO 627 Lecture #5 18 Team Skill 3 Summary So we’ve Started to structure requirements by subsystem, Captured the vision for the product, and Identified a champion to keep the vision from going out of focus *ouch* Now it’s time to get concerned about managing scope INFO 627 Lecture #5 19 Project Scope The scope of a project consists of three parts: The functionality (features) to be delivered The resources available (people, facilities, tools, money, etc.) The time to complete implementation Given enough resources and time, most projects are easy! INFO 627 Lecture #5 20 Project Scope If we ignore facilities and tools for now, people and money can be equated to restrict our focus to two issues – people and time Number of People Project Scope Deadline INFO 627 Lecture #5 Time 21 Project Scope Can’t just add resources (people) to make a project finish sooner INFO 627 Too many interdependencies among their work Learning curve for project characteristics Proven by Brooks in 1975 Only works if enough time for people to become productive, and productivity still goes down with project size Lecture #5 22 Project Scope Time may or may not be a flexible constraint May – Windows Server 2003 (first due for release in 2001) INFO 627 And Windows Vista, known as Longhorn in 2003? May not – The Year 2000 Problem, any fixed regulatory constraint, or known competitive constraint Lecture #5 23 Project Scope The functionality which gets delivered is limited by the available time and resources Yet on average, projects will start based on completing 200% of the features in the scope available Maybe that’s why projects average 89% late! Result is that half of the features don’t work, or all features half work – yuck! INFO 627 Lecture #5 24 Project Scope This leads to the development team’s dilemma of chopping the scope in half, without ticking off the customer Otherwise the customer becomes an unofficial part of the test team, which is generally not appreciated INFO 627 Old line – release 1.0 means “beta” test Lecture #5 25 Establishing Scope The key to defining the scope of a project is to create the requirements baseline The requirements baseline defines what requirements will be delivered in which version of the application Assumes incremental development of features Must be agreed to by customer INFO 627 Lecture #5 26 Requirements Baseline The requirements baseline must also have a reasonable chance of being implemented on time Start to define the requirements baseline by making a list of the features INFO 627 Need to keep a consistent, low level of detail Remember the guideline of 25-99 features Lecture #5 27 Requirements Baseline Then assign priorities to each feature Critical/Important/Useful or H/M/L is enough Could vote on priorities like we saw earlier Now estimate the amount of effort needed to accomplish each feature INFO 627 Rough order of magnitude is okay here At least do Critical/Important/Useful or H/M/L Do more refined estimates if possible Lecture #5 28 Requirements Baseline Now define the risk in implementing each element – how technically challenging is it to implement? Again, use three level scale, at least Now look at candidates for reducing scope, if necessary INFO 627 Lecture #5 29 Reducing Scope Make sure that the critical priority features are really the core of the system First look for high priority, then balance effort and risk INFO 627 High effort and high risk might call for immediate risk mitigation Assign resources to high effort features first (unless system architecture dictates otherwise) Lecture #5 30 Assigning Resources to Features Middle resources Risk Risk mitigation and immediate resources For critical priority features Last resources INFO 627 Immediate resources Effort Lecture #5 31 Reducing Scope Then look at how much scope reduction is needed, and reduce resource allocation to lower priority features accordingly INFO 627 For slight scope reduction, might shift immediate resources to middle, middle to low, and eliminate low completely For more drastic scope reduction, might drop all medium and low priority features Lecture #5 32 Reducing Scope The keys to successful reduction are: INFO 627 Make sure the customer is happy with what will get implemented The features implemented still form a coherent product – not a hodgepodge of unrelated features Keep the vision intact Lecture #5 33 Requirements Baseline The requirements baseline is formed when the time and effort match the features to be developed The requirements baseline defines the expected features to be developed Then if any lower priority features can be included in time, they’re a bonus INFO 627 Lecture #5 34 Managing the Customer It often helps to maintain a supportive position with your customer Want to help them meet their commitments and do so with a product which will fulfill their needs Remember the product belongs to the customer, not the development team! INFO 627 Lecture #5 35 Managing the Customer Customer needs to be a direct participant in all decisions affecting the product scope This gets buy-in from the customer, and alleviates responsibility for the developer Negotiating is critical for scope discussions INFO 627 “Getting to Yes” is a classic guide See Dale Carnegie, Zig Ziglar, and Dr. Norman Vincent Peale for negotiation and sales skills Lecture #5 36 Managing the Customer Try to underpromise and overdeliver when negotiating, because of the inevitable risks of development INFO 627 Unexpected technical risks Delays in getting hardware or software Emergencies among your staff And a thousand other things which might go wrong Lecture #5 37 Managing the Customer Margins for error also allow for feature creep, which can run 30-100% after the start of the project Need to continually balance desire for more features with the needs for schedule and cost accuracy and product quality INFO 627 Lecture #5 38 Managing Feature Changes Changes need to be recorded and tracked using our change control system Added features will result in some effect: Change in cost, schedule, and/or resources Lower priority for some other feature(s) Higher risk for completing one or more features Customer needs to be clear about the impact INFO 627 Lecture #5 39 Software Development Process The software development process (life cycle) model describes the sequence in which all major activities will occur Defines who does what when Whether formal or not, some model is always being used – just not necessarily the ones shown here (See lecture 3 of INFO 638 for more models) INFO 627 Lecture #5 40 Waterfall Life Cycle Model One of the first models used, circa 1970 Covers all major software development activities in a logical sequence Based on an assembly-line mentality Transitions between activities often called “throwing it over the wall” Little or no communication among life cycle phases INFO 627 Lecture #5 41 Waterfall Model Problem Analysis Requirements Analysis Architectural Design Detailed Design Coding & Unit Test System Testing INFO 627 Lecture #5 42 Waterfall Model Works well for: Known requirements AND known technologies Weak or inexperienced staff Clearly defined requirements (must have!) Problems: INFO 627 Often hard to define requirements adequately Expensive and time consuming Few signs of progress Lecture #5 43 Spiral Life Cycle Model Focuses on addressing major risk areas for a project (requirements, architecture, etc.) Each “mini-project” addresses one or more risk areas, then start the next mini-project A.k.a. the cinnamon roll model Developed by Barry Boehm, USC, 1988 INFO 627 Lecture #5 44 Spiral Model Each mini-project has six steps INFO 627 Determine objectives, alternatives, and constraints for this mini-project Identify and resolve risks Evaluate alternatives (possibly through prototyping) Develop and verify the deliverables for the next iteration ... Lecture #5 45 Spiral Model Plan the next iteration Review progress to date; obtain commitment for next mini-project Go on to the next mini-project Repeat until project is completed, or major risks are under control Then another life cycle model must be used INFO 627 Lecture #5 46 Spiral Model Is often combined with other life cycle models within each mini-project too Pros Handles risk very well Cons INFO 627 Very complicated Hard to define and resolve many mini-projects Hard to stay focused on overall project goals Lecture #5 47 Waterfall with Subprojects After Requirements and Architectural Design of project, break out [Detailed Design, Coding, and Unit Testing] for several subprojects Then integrate the whole system and complete system testing for a single release of the product Pros include faster development of known tasks, and possibly better use of resources Cons include unforeseen dependencies between subprojects INFO 627 Lecture #5 48 Waterfall with Subprojects Conceptual Development Requirements Analysis Sub-Project A Architectural Design C B Detailed Design, Coding, Unit Test, Subsystem Testing Detailed Design, Coding, Unit Test, Subsystem Testing INFO 627 Detailed Design, Coding, Unit Test, Subsystem Testing Lecture #5 System Testing 49 Staged Delivery Like Waterfall model for Requirements Analysis and Architectural Design; then [Design, Code, Test, and Deliver] the product in stages INFO 627 Project fully defined from the start and is delivered in stages, based on feature priorities Increases chance of getting key features into product Good for maintenance environment Lecture #5 50 Staged Delivery Conceptual Development Requirements Analysis Architectural Design Stage 1: Detailed Design, Coding, Unit Test, Test, and Deliver … Stage 2: Detailed Design, Coding, Unit Test, Test, and Deliver Stage n: Detailed Design, Coding, Unit Test, Test, and Deliver INFO 627 Lecture #5 51 Iterative Approach The iterative life cycle model breaks life cycle phases apart from the features of the product Used by the Rational Unified Process See also INFO 620’s text by Larman, Ch. 2 Each phase has one or more iterations Each iteration produces an executable system (or some defined release) INFO 627 Lecture #5 52 Iterative Approach Phases are: INFO 627 Inception, to define scope of an issue Elaboration, to define requirements, structure, and resolve highly risky parts of this issue Construction, to implement less risky parts of this issue Transition, to get issue ready for beta testing and deployment Lecture #5 53 Iterative Approach Each iteration has a clear time limit (timeboxed), such as 2 or 4 weeks duration Hence this model is heavily risk-focused, like the spiral model, but has overall phases more like a waterfall model Goal is to blend risk reduction with a mix of design and development activities INFO 627 Iterations build on each others’ functionality Lecture #5 54 Iterative Approach Approach gets rid of many “Yes, But” objections due to many releases Helps manage scope through frequent estimation and effort cycles No matter which development process model is used, get a prototype to the customer! INFO 627 Lecture #5 55