Requirements Engineering & Management
Total Page:16
File Type:pdf, Size:1020Kb
Requirements engineering & management Tommi Mikkonen Dept. Computer Science University of Helsinki, Helsinki. Finland [email protected] www.cs.helsinki.fi Schedule Mon 30.10. Course overview, Mon 20.11. Configuration management practicalities, Product management (TJM) role in software industry. (TJM) Thu 23.11. Visiting lecture: DX200 life Thu 2.11. Product definition, product cycle (Kari Rossi, Nokia) evolution, product lifecycle (TJM) Mon 27.11. Quality in the context of Mon 6.11. Visiting lecture: SW product software products (AP) management in a startup (Juhana Thu 30.11. Software product Peltonen, Hanken) management and testing (AP) Thu 9.11. Visiting lecture: Data Mon 4.12. Visiting lecture: Dependability collection for product management in software products (Francis Tam) (Riku Suomela, NextGames) Thu 7.12. Connecting the dots: Tools and Mon 13.11. Requirements methods for planning, managing, management and engineering tracking, etc. (TJM) (TJM) Mon 11.12. Backup time Thu 16.11. Visiting lecture: Product management in practice (Olli Thu 14.12. Revisit of the course contents Nuutinen, M-Files) (AP?) Schedule Mon 30.10. Course overview, Mon 20.11. Configuration management practicalities, Product management (TJM) role in software industry. (TJM) Thu 23.11. Visiting lecture: DX200 life Thu 2.11. Product definition, product cycle (Kari Rossi, Nokia) evolution, product lifecycle (TJM) Mon 27.11. Quality in the context of Mon 6.11. Visiting lecture: SW product software products (AP) management in a startup (Juhana Thu 30.11. CANCELLED Peltonen, Hanken) Mon 4.12. Visiting lecture: Dependability Thu 9.11. Visiting lecture: Data in software products (Francis Tam) collection for product management (Riku Suomela, NextGames) Thu 7.12. Connecting the dots: Tools and methods for planning, managing, Mon 13.11. Requirements tracking, etc. (TJM) management and engineering (TJM) Mon 11.12. Software product management and testing (AP) Thu 16.11. Visiting lecture: Product management in practice (Olli Thu 14.12. Revisit of the course contents Nuutinen, M-Files) (AP?) What happens to essays? Graded with 3 levels: • Pass • Extra tasks to fix the essay • Fail So far all have passed • Will add data to course home page (or moodle, whichevery you prefer) If you cannot make it to guest lectures, you can write up to 3 essays based on 2-3 research articles • You can search articles by yourself, but check with me that those are ok • Deadline for everything extra is 18.12. (the exam day) Comments regarding “lean startup & design thinking” The big picture of “Lean Startup”: Iterative approach to seek profitable business model • Feedback loop • Focus on learning; MVP != MVP • Iterations drive towards a goal that is being refined as a part of the process • Non-technical/low-tech prototypes Systematic approach in both • Well-organized • Seemingly independent of who executes the tasks (like research) Comments regarding “data collection and use” The big picture: Refining product(s) and product ideas based on collecting data Converging series of prototypes/designs leading to more and more data regarding the product; different tools at different stages (user interviews, MVP, A/B testing, data collection from player behavior) KPIs (key performance indicators) play a key role • Profitable business not identified -> pivot to next idea? Requirements engineering & management Tommi Mikkonen Dept. Computer Science University of Helsinki, Helsinki. Finland [email protected] www.cs.helsinki.fi “The hardest single part of building a software system is deciding what to build. No other part of the conceptual work is as difficult in establishing the detailed technical requirements, including the interfaces to people, to machines, and to other software systems. No other part of the work so cripples the results if done wrong. No other part is more difficult to rectify later. ” - Fred Brooks, “No Silver Bullet: Essence and Accidents of Software Engineering” Content What is a requirement? Requirements engineering, specification, and management Detailed activities Characteristics of a good requirement For further reading Summary and conclusions What is a requirement? The IEEE Standard Glossary of Software Engineering Terminology defines a requirement as: 1. A condition or capability needed by a user to solve a problem or achieve an objective. 2. A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document. 3. A documented representation of a condition or capability as in 1 or 2. Business goals -ideas, leads, etc. -understanding Business needs & -documentation understanding - ... Client (or system) Functional Non-functional Limitations, requirements requirements requirements constraints Software requirements Functional specification Lot of terminological mismatch (e.g. https://en.wikipedia.org/wiki/Requirements_management, https://en.wikipedia.org/wiki/Requirements_engineering) Requirements management is… Requirements engineering is… process of process of documenting, defining, analyzing, documenting and tracing, maintaining requirements. prioritizing and agreeing on requirements, and then controlling change and communicating to relevant stakeholders. One possible interpretation (that makes sense) Requirement engineering Requirement Requirement specification management Elicitation Analysis Documentation Validation 13 -stakeholder needs (clients, users, marketing, management...) -existing systems -domain specific characteristics -client organization practicalities -regulation -... -Elicitation Requirements -Analysis for future -Documentation versions -Validation Accepted Requirements specification requirements Requirements management Accepted changes Changes in Requirement requirements Changes in change the project process Associated key activities Requirements elicitation • Developers and stakeholders meet, the latter are inquired concerning their needs and wants regarding the software product. Requirements analysis • Requirements are identified (including new ones if the development is iterative) and conflicts with stakeholders are solved. Both written and graphical tools (the latter commonly used in the design phase but some find them helpful at this stage, too) are successfully used as aids. System modeling (sometimes optional) • Some fields (or specific situations) require the product to be completely designed and modeled before its construction or fabrication starts and, therefore, the design phase must be performed in advance. Associated key activities Requirements validation • Checking that the documented requirements and models are consistent and meet the needs of the stakeholder. Only if the final draft passes the validation process, the RS becomes official. Requirements documentation • Documenting the requirements and their motivations Requirements management • Managing all the activities related to the requirements since inception, supervising as the system is developed and, even until after it is put into use (e. g., changes, extentions, etc.) Client requirement vs. sw requirement Client requirement – client’s problem waiting for solution: ”producing as correct and error-free User/client/ customer solutions as possible” Req. Feature – a functional entity that is meaningfully defined from client’s perspective jokin asiakkaan Software/ kannalta mielekäs kokonaisuus ohjelmiston technical toiminnallisuudesta: ”support for spell-checking” Req. Function – one operation that the system can perform: ”check spelling”, ”propose fix”, ”automatically fix”, … Technical requirement – how to implement the system: ”file buffer”, ”dialog implementation”, … (notice that this classification is not obvious or unambigiuous) 12.9.2009 Constraints Constraint 1 Constraint 2 All possible solutions 12.9.2009 Characteristics of a good requirement completeness: includes everything that is needed but nothing useless/extra preciseness correctness understandability testability: how to ”measure” that the requirement is satisfied? traceability: where the requirement originates, how important it is, one thing only in one place (no redundancy) (?) 12.9.2009 Examples ”The system can use a 64kb memory” ”A school can have only one headmaster?” ”Storage cycle speed increases” ”Report must be on screen within 300ms after the alarm has been set” ”Jet engines may not be set to reverse unless the plane is on on the field” ”Jet engines may not be set to reverse unless the front wheel is rolling or the speed is zero” 12.9.2009 How to find client requirements • Domain knowledge is fundamentally important • Make a list of stakeholders • What hopes, expectations, fears etc. they have • Discuss with users in their daily job context • Plan the visits; play dumb • Ask reassuring questions ”so you mean that…” • Use presentation formats that the client understands • Analyze and document learnings from visits, summarize • Go for the ultimate problem • Why to do something, can it be left undone? • Try to separate essentials from traditional practices • Prototyping, previous versions, related systems • User Centered Desing 12.9.2009 Documenting requirements (example) Creation date Author Client, origins of the requirement Type of requirement (addition, modification, bug fix) Definition of the requirement Relation to other requirements Ranking (must have, preferable, extra) Stability: will not change, may change, likely to change 12.9.2009 Requirements definition process Ideas, Requirements