service desing and requirement management how to combine two similar worlds course material 2014 v...
Post on 26-Dec-2015
220 Views
Preview:
TRANSCRIPT
Service Desing and Requirement Management
How to combine two similar worlds
Course Material 2014 v 0.5Marko Rintamäki
About Course Material
- This material if for general training for service design and software requirement management
- Material is supportive material for class room - Material will be updated during courses- FreeNest Portable Project Platform is used to
demonstrate things only in practice. This is not limiting usage for material for other training environments (I hope )
Seller
Customer
Developer
Hacker
Seller
Customer
Developer
Hacker
Builiding Concept in early phase
Idea#1Idea#1
Customer
I would like to haveInternal Flame Drum Kit
Could you deliver it to us?
I would like to haveInternal Flame Drum Kit
Could you deliver it to us?
Actually We have severalWow features for it here
Actually We have severalWow features for it here
Ok!That‘s Interesting!
Tell me more! I love it!
Ok!That‘s Interesting!
Tell me more! I love it!
Nice looking feature propoals.We have to do some evaluationNice looking feature propoals.
We have to do some evaluation
Idea#2Idea#2
Idea#3Idea#3 Idea#4Idea#4
Idea#1Idea#1-Technology?-Knowledge-Resource-Solution?-Priority?
Requirement ManagementBetween 40% and 60% of software failures and defects are the result of poor software management and requirements definition. In plain English, this means that about half of the problems encountered could have been avoided by making it clear, from the very beginning, what the customer expected from the respective project. This is to say that the programming was fine and the developers did their job well – only they did a different job from what they were supposed to.
http://www.softwareprojects.org
Read also http://www.projectshrink.com/why-requirements-change-270.html
Why requirement management ?
IDEALIDEAL
Requirements help
Design
Requirements help
Design
REQ-XREQ-X
REQ-YREQ-Y
REQ-ZREQ-Z
REQ-OREQ-O
REQ
REQ
Old School ”Waterfall”- process model
ChangeManagement
http://en.wikipedia.org/wiki/Waterfall_model
Requirement Management
Product Life Cyle
Iterative Process Model - RUP
http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process
Agile Process Model - Scrum
Adhoc Process Model ?
Traditional Definition for a requirement
- One sentence which can be verified, clear, complete, consistent, traceable, viable, necessary, implementation free
- Sentence has to be understandable, measurable and testable
http://www.slideshare.net/guest24d72f/8-characteristics-of-good-user-requirements-presentation
• Tractor has four wheels• Tractor has one exhaust pipe• Engine of tractor is capable of use flexi fuel• The tractor has a hook for trailer• The tractor shall have a enhanced driving system
• Tractor has four wheels• Tractor has one exhaust pipe• Engine of tractor is capable of use flexi fuel• The tractor has a hook for trailer• The tractor shall have a enhanced driving system
Functional and non-functional requirements
FunctionalRequirements
FunctionalRequirements
Non-FunctionalRequirements
Non-FunctionalRequirements
Functional Requirement
"User can select application from ui
by using wheel button”
”Tractor can be driven both directions”
Functional Requirement
"User can select application from ui
by using wheel button”
”Tractor can be driven both directions”
Non-Functional Requirement
"Performance Requirement"
”Tractor Startup should take minimum 10 seconds”
”Usability Requirement”
”User interface should be able to control using simple wheel quide”
”The hook can last max 20Kkg trailer load”
Non-Functional Requirement
"Performance Requirement"
”Tractor Startup should take minimum 10 seconds”
”Usability Requirement”
”User interface should be able to control using simple wheel quide”
”The hook can last max 20Kkg trailer load”
How it works? How fast it is?How stable it is?
Do some googling!!
Create a wiki page!!
AboutUserStory
Do some googling!!
Create a wiki page!!
AboutUserStory
Different Requirement categorys?
ScalabilityScalability
StabilityStability
PerformancePerformance
SecuritySecurity
PerformancePerformance
StressStress
UsabiltyUsabilty
Different points of view on systemRequirement Category‘s
„scalability“„scalability“
„Stability“
„Functionality“
Tracebility matrix
• http://www.guru99.com/traceability-matrix.html
Requirements and impact analysis
http://www.borland.com/products/caliber/
Requirements and Design
Business and customer
Development Team
Business Requirements
Business Requirements
TechnicalRequirements
TechnicalRequirementsNEEDNEED SOLUTIONSOLUTION
Design & ArchitectureImplentation
Design & ArchitectureImplentation
AgreementAgreement
“One of sides should not dominate in design process”“One of sides should not dominate in design process”
ImplentationImplentation
Problem domain vs solution domain
What we want?How to do it?
Business/Stake/Customer Requirements
Architecture/Design/Technology Requirements
User interface?
• Usability of functionality?
FunctionalRequirements
FunctionalRequirements
Non-FunctionalRequirements
Non-FunctionalRequirements
User Inteface Layouts
How to find requirements?• You can gather requirements from several sources: Users,
Stakeholders, Business and Development team and many others
• Requirements are trying to define nature of feature/system/solution more specific than common written document does. This information is helping development team to design a solution for a need
• There is several common methods to define and gather requirements.
• Traditional Requirement modeling (http://en.wikipedia.org/wiki/Requirements_management)
• RUP/UML based Use Case modeling (http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process)
• Agile XP oriented User Story’s (http://en.wikipedia.org/wiki/Agile_software_development)
• Your task is to figure out a small difference between them
Read more http://en.wikipedia.org/wiki/Requirements_management
Requirement Gathering Process ?
• Interviews• Workshops• Prototyping• Prestudys• Research
Requirement Specification
http://en.wikipedia.org/wiki/Software_Requirements_Specification http://www.slideshare.net/indrisrozas/example-requirements-specification
Requirement Management Tool Rational Doors
https://www.ibm.com/developerworks/community/blogs/requirementsmanagement/?lang=en
Rational Unified Process model
Brief history of Use Cases
• Defined by Ivar Jacobson http://en.wikipedia.org/wiki/Use_case
• Used with UML (Unified Modeling Language) http://en.wikipedia.org/wiki/Unified_Modeling_Language
• RUP (Rational Unified Process) • http://fi.wikipedia.org/wiki/RUP
Stakeholder and actors?
Customer
Many customer roles => More actors?
Think about Roles!
Use Case Diagram (UML)
USE CASE
Written scenario for action. Also execeptions included
Use Case: Open IFDK Main Application
Actor: IFDK User
Step1: Gadget User touches home button
Step2: UI wakeup initiated (if standby)
Step3: Home screen is activated
Setp4: User browses applications specific icons using wheel button
Step5. Icons are moving on screen left and right
Step6: User selects application by pushing wheel button
Step7: Application starts up <4 seconds
Execptions:
1. If application cannot start there will be note on screen about problem
USE CASE
Written scenario for action. Also execeptions included
Use Case: Open IFDK Main Application
Actor: IFDK User
Step1: Gadget User touches home button
Step2: UI wakeup initiated (if standby)
Step3: Home screen is activated
Setp4: User browses applications specific icons using wheel button
Step5. Icons are moving on screen left and right
Step6: User selects application by pushing wheel button
Step7: Application starts up <4 seconds
Execptions:
1. If application cannot start there will be note on screen about problem
Use Case
A use case in software engineering and systems engineering, is a description of steps or actions between a user (or "actor") and a software system which leads the user towards something useful.[1]
Wikipedia
Create Use Case
ACTOR
Use Case
SYSTEM
Actor:
System: IFDK kit
Use Cacenario: Standby mode after boot
1. User turn’s on IFDK by pressing red button on front panel
2. Screen wil flash and show welcome text ”Hello my friend!”
3. User interface opens after seconds
4. Screen will show three selection buttons
5. After 30 seconds user inteface goes to standby mode
Exeption:
1. If user activates screenby tapping it standby counter will be reseted
Actor:
System: IFDK kit
Use Cacenario: Standby mode after boot
1. User turn’s on IFDK by pressing red button on front panel
2. Screen wil flash and show welcome text ”Hello my friend!”
3. User interface opens after seconds
4. Screen will show three selection buttons
5. After 30 seconds user inteface goes to standby mode
Exeption:
1. If user activates screenby tapping it standby counter will be reseted
Why Use Cases?
Use cases are used for define functional requirements!
Requirement Analysis
http://en.wikipedia.org/wiki/Requirements_analysishttp://en.wikipedia.org/wiki/Requirements_analysis
Requirment levels
Customer/Business/Stake Holder Requirements
Customer/Business/Stake Holder Requirements
System RequirementsSystem Requirements
Design RequirementsDesign Requirements
Component RequirementsComponent Requirements
ImplementationImplementation
ScalabilityScalability
StabilityStability
PerformancePerformance
SecuritySecurity
PerformancePerformance
StressStress
UsabiltyUsabilty
Requirement Tracebility
FunctionalRequirements
FunctionalRequirements
Non-FunctionalRequirements
Non-FunctionalRequirements
FeatureFeature
DesignDesign
ImplementationImplementation
TestTest
BugBug
Stake holderRequirementStake holderRequirement
Code…..…..………..Fix
..
Implement/Fix TASK
Implement/Fix TASK Test TASKTest TASKDesign
TASKDesignTASK
ResearchTASK
ResearchTASK
http://www.sysml.org/UML
OMT
OMT
System Engineering
Google: SysML, UML, Systems engineering, Software Design,
Code
Software Engineering - ArchitectureSysML
UML
OMT
.NET, JAVA, C++
Software Engineering - Design
Requirement Management
http://www.sysml.org/
(FDD) Feature Driven Development
What is feature?
FeatureFeature
Feature is functionality of product/software which can be seen as one module/functionality of whole product
Internal Flame kit has WLAN support Internal Flame Kit has touch screen user interface
Feature is functionality of product/software which can be seen as one module/functionality of whole product
Internal Flame kit has WLAN support Internal Flame Kit has touch screen user interface
Feature Example 1
Feature X * nFeature X * n
Calory Counter:
Player can measure calories during training session. This can be seen as exercise result in web service eg. Facebook application
Energy usage
Feature Example 2
Table Drummer:
Player drums table board instead of drum can. IFDK kit is able to use DSP algorithm to detect correct drum sound from environment.
In training mode IFDK is trained to detect drum sounds for environment.
Table Drum ModeTable Drum Mode
DSPAlgorithm
DSPAlgorithm
Is product a combination of features?
Calory CounterCalory Counter
Drum MetronomeDrum Metronome
Table Drum ModeTable Drum Mode
Standby ModeStandby Mode
MIDI SupportMIDI Support
Touch Screen with single tapTouch Screen with single tap
Is product a combination of features
Core Software/Platform
Core Software/Platform
Calory CounterCalory Counter
Drum MetronomeDrum Metronome
Table Drum ModeTable Drum Mode Standby ModeStandby Mode
MIDI SupportMIDI Support
Touch Screen with single tapTouch Screen with single tap
Customer and features
Calory CounterCalory CounterDrum MetronomeDrum Metronome
Table Drum ModeTable Drum Mode
Simple Training ModeSimple Training Mode
MIDI SupportMIDI Support
Touch Screen with single tapTouch Screen with single tap
Customer Type 1 Customer Type 2 Customer Type 3 Customer Type 4
Who are our target customers?
Target Customers ?
Drum MetronomeDrum Metronome Table Drum ModeTable Drum Mode
Simple Training ModeSimple Training Mode
MIDI SupportMIDI Support
Touch Screen with single tapTouch Screen with single tap
Customer Type 1 Customer Type 2 Customer Type 3 Customer Type 4
What is our key customer?
Primary Target
Calory CounterCalory Counter
Secondary Target
Roadmapping features
Requirement
Requirement
Requirement USE CASE #2
USE CASE #1
USE CASE #3
Requirement
Requirement
Requirement
USE CASE #1 User Story #1
User Story #2
User Story #3
RequirementRequirement
RequirementRequirement USE CASE #2USE CASE #2
USE CASE #1
USE CASE #3USE CASE #3
RequirementRequirement USE CASE #1USE CASE #1 User Story #1User Story #1
Requirement
Requirement
Requirement USE CASE #2
USE CASE #1
USE CASE #3
Requirement
Requirement
Requirement
USE CASE #1 User Story #1
User Story #2
User Story #3
RequirementRequirement
RequirementRequirement
RequirementRequirement USE CASE #2USE CASE #2
USE CASE #1
USE CASE #3USE CASE #3
RequirementRequirement
RequirementRequirement
RequirementRequirement
USE CASE #1USE CASE #1 User Story #1User Story #1
User Story #2User Story #2
User Story #3User Story #3
Requirement
Requirement
Requirement USE CASE #2
USE CASE #1
USE CASE #3
Requirement
Requirement
Requirement
USE CASE #1RequirementRequirement
RequirementRequirement USE CASE #2USE CASE #2
USE CASE #1RequirementRequirement
RequirementRequirement
USE CASE #1USE CASE #1
Release 0.1
Release 1.1 Release 1.2
Feature: Simple Training Mode
Feature: Table Drum mode
Feature Touch Screen with single tap
Release 1.0
TIME TO MARKET!! For Target Group 3TIME TO MARKET!! For Target Group 3
CORE/Platform Software Development
TIME TO MARKET!! For Target Group 2TIME TO MARKET!! For Target Group 2
TIME TO MARKET!! For Target Group 1TIME TO MARKET!! For Target Group 1
Requirement
Requirement FEATURE
Requirement
Requirement
WHERE IS STARTING POINT?“Let’s define first…”
Functional Requirement
DEFINED USE CASE
DEFINE USE CASE
Functional Requirement
Functional Requirement
Non Functional Requirement
Can Lead to
Helps to define!
Team Work:
1. SELECT TWO DIFFERENT DOMAINS
Use Paper
2. DEFINE ACTOR’s ACCORDING DOMAIN
DETECT ALSO ROLES
Use Paper
3. DEFINE 10 EXAMPLE USE CASE’s FOR DOMAIN
Use Paper
DEFINE DRAFT FEATURES PACKS
Card GameFunctional Requirement Non-Functional
Requirement
LOAD SECURITY MAINTENANCE
IMPLEMENTATION
Non-Functional Requirement
Non-Functional Requirement
Non-Functional Requirement
Non-Functional RequirementAgile
Epic / Theme
SCALING
FUNCTION
SAFETY
Non-Functional Requirement
RECOVERY?
NON FUNCTIONAL
NON FUNCTIONAL
PERFORMANCE?
Main {….} ?
Card Game
Stake Holders? Customer / User ? Business Request ?
Use Case NON FUNCTIONAL
PERFORMANCE?
SCALINGUSABILITY
UC
AcceptanceCriteria? RECOVERY?
NON FUNCTIONAL
User Story ?
User Story Addition +
SCENARIO ?
Traditional Feature
?
Practice: Define some requirements for selected feature
Functional RequirementsFunctional Requirements Non-Functional RequirementsNon-Functional Requirements
Who?When?How?Cost?
Who?When?How?Cost?
Simple Requirment Process
DefinesDefines
Feature X * nFeature X * n
FunctionalRequirements
FunctionalRequirements
Non-FunctionalRequirements
Non-FunctionalRequirements
Use CasesUse Cases
Vision of product
Problem Domain Solution Domain
Customer/Marketing/business
User StorysUser Storys
FEATUREVISION/NEED/
PROPOSAL
FEATUREVISION/NEED/
PROPOSAL
YOU!YOU!
Design documents & implementation
Test Case
Agile Process?
Service DesignPhase
Sprint 1
Sprint 2
Sprint 3
Sprint 4
Sprint 0
http://en.wikipedia.org/wiki/Agile_software_development
Product Life Cyle
Creating Product vision in a modern way
• Service Desing• Customer Centric• Provide evidences- prototyping/Mockup• Lean requirement gathering (User Storys) • Living documents (Wikis)• User Storys
New requirement gathering process
Service Design Methods
Define Epic Storys -User StorysDefine Features
Prototyping
-Prototyping-Interviews-Workshops
Vision Specification instead of requirement specification?
Part of traditional requirement specification + Epics / Major features defined
Compilation of User Stories
Important requirement attributes specified
Epics / Features definedDesign GuidelinesUser Interface Prototypes
Use Case if needed?
Brief History of User Story
• Used in agile development process for requirement definition and gathering
• Backlog Item• Simple way to describe needed functionality
Use Story Examples
• As a user I would like to get notifications if get a new message from other users
• As a operator I would like to disable misbehaving user account
• As a owner of product x I would like to be able to reset it using one button
• As a selling person I would like to be able to set product X running a demo mode without my personal presence.
Concepts?
What means a feature, requirement, use cases, and user story
Practice: Create User Storys
USER STORY:
As a bad behavin person I cannot access IFDK using wlan without encryption
How to test?Acceptance Criteria?
USER STORY:
As a bad behavin person I cannot access IFDK using wlan without encryption
How to test?Acceptance Criteria?
USER STORY:
As a member of audience I can hear effect sound that player is having electrical shocks
How to test?Acceptance Criteria?
USER STORY:
As a member of audience I can hear effect sound that player is having electrical shocks
How to test?Acceptance Criteria?
Agile requirement model
Epic Story
User Story
UserStory1
RequirementId0002
EpicStory0001
AcceptanceCriterias?
As a customer I would like to pay with multiple ways
As a user I would like to pay with Visa
UserStory2 UserStory3
As a user I would like to pay with Bitcoin
As a user I would like to pay with Visa
USE CASE:_____________________________________________
Actor:__________________________________
Scenario:
Execeptions:
USE CASE:_____________________________________________
Actor:__________________________________
Scenario:
Execeptions:
EPIC STORY: As a user I would like to use product which is fast to startup
Story Points:
Notes:
• Gadget should startup <5seconds
How to show it is tested? (eg. Acceptance Criteria)
Use timer to verify startup time. Measure time from power on to main screen activated.
• Time
EPIC STORY: As a user I would like to use product which is fast to startup
Story Points:
Notes:
• Gadget should startup <5seconds
How to show it is tested? (eg. Acceptance Criteria)
Use timer to verify startup time. Measure time from power on to main screen activated.
• Time
USER STORY: As user I would like to see startup message on screen, so I could be sure a gadget is started up
Story Points:
Notes:
• Gadget should startup <5seconds
How to show it is tested? (eg. Acceptance Criteria)
Use timer to verify startup time. Measure time from power on to main screen activated.
• Time
USER STORY: As user I would like to see startup message on screen, so I could be sure a gadget is started up
Story Points:
Notes:
• Gadget should startup <5seconds
How to show it is tested? (eg. Acceptance Criteria)
Use timer to verify startup time. Measure time from power on to main screen activated.
• Time
USER STORY:
Story Points:
Notes:
How to show it is tested? (eg. Acceptance Criteria)
USER STORY:
Story Points:
Notes:
How to show it is tested? (eg. Acceptance Criteria)
USER STORY:
Story Points:
Notes:
How to show it is tested? (eg. Acceptance Criteria)
USER STORY:
Story Points:
Notes:
How to show it is tested? (eg. Acceptance Criteria)
Requirement SpecificationGeneral Requirement Specification
System Use Cases
Feature1 /Epic 1
-Service Desing-UI Proto Design-User Storys-Requirements
Feature2 /Epic 2
-Service Desing-UI Proto Design-User Storys-Requirements
Team Work:Learn to Use VISIO and TRAC for documentation:
1. Draw all selected Use Cases with Microsoft VisioYou can use also DIA on Linux platform
2. Define Actors as wiki pages links…
Eg. ActorCustomer
3. Create own wiki page for all defined Use CasesUse ActorWikiPage linking in documentation!
4. Attach UseCase Diagrams (exported as JPG) directly on Use Case specific Wiki Pages
Define step and all needed.
PLEASE TRY TO USE WIKI LINKING AS MUSH AS POSSIBLE!
User Story
USER STORY Examples
Simple phrase describes a need. This can lead to several other storys!
"As user I would like to open application easily”
As a user I would like to select application from icon list on screen
As a user I would like to configure amount of application icons on screen
"As a user I would like to use wheel for speeding up selection process"
"As a user I would like to initate application fast enough"
"As a tractor driver I would like to have enhanced driving system”
USER STORY Examples
Simple phrase describes a need. This can lead to several other storys!
"As user I would like to open application easily”
As a user I would like to select application from icon list on screen
As a user I would like to configure amount of application icons on screen
"As a user I would like to use wheel for speeding up selection process"
"As a user I would like to initate application fast enough"
"As a tractor driver I would like to have enhanced driving system”
User StoryUser Story
Use Case, User Story & Requirement Requirement
Measurable Testable
RequirementMeasurable
Testable
USE CASE
Written scenario for action. Also execeptions included
Use Case: Open Application
Actor: Gadget User
Step1: Gadget User touches home button
Step2: UI wakeup initiated (if standby)
Step3: Home screen is activated
Setp4: User browses applications specific icons using wheel button
Step5. Icons are moving on screen left and right
Step6: User selects application by pushing wheel button
Step7: Application starts up <4 seconds
Execptions:1. If application cannot start there will be note on screen about problem
USE CASE
Written scenario for action. Also execeptions included
Use Case: Open Application
Actor: Gadget User
Step1: Gadget User touches home button
Step2: UI wakeup initiated (if standby)
Step3: Home screen is activated
Setp4: User browses applications specific icons using wheel button
Step5. Icons are moving on screen left and right
Step6: User selects application by pushing wheel button
Step7: Application starts up <4 seconds
Execptions:1. If application cannot start there will be note on screen about problem
USER STORY
Simple phrase describes a need. This can lead to several other storys!
"As user I would like to open main menu using left
button"
"As a user I would like to use mouse wheel for
zoom"
"As a user I would like to initate application fast
enough"
USER STORY
Simple phrase describes a need. This can lead to several other storys!
"As user I would like to open main menu using left
button"
"As a user I would like to use mouse wheel for
zoom"
"As a user I would like to initate application fast
enough"
Non Functional Requirement
"Performance Requirement"
"Application Startup should take minimum 4 seconds"
Non Functional Requirement
"Performance Requirement"
"Application Startup should take minimum 4 seconds"
Functional Requirements
"User can select application from ui
by using wheel button"
Functional Requirements
"User can select application from ui
by using wheel button"
Practice: Define specific requirements for feature
• Define 10 requirements in a team for a selected product
Customer Journey Map
Service Desing
• What is service design?• Who needs it?• How service design is linked with requirement
management
Modeling….
How to understand better what is needed ???
?
Important concepts
• Stake Holders• Service Design • Requirement Capturing • System Design• Software Design• Hardware Design
Service
System
Hardware Software
Customer
Stakeholder / Share holders
Vision
Implementation
Service Desing
Service design is the activity of planning and organizing people, infrastructure, communication and material components of a service in order to improve its quality and the interaction between service provider and customers. The purpose of service design methodologies is to design according to the needs of customers or participants, so that the service is user-friendly, competitive and relevant to the customers.
• Wikipedia• http://en.wikipedia.org/wiki/Service_design •
Logo
• The main logo consists of two elements, the leaf and the text laying horizontally.
• You can also use the logo with the FreeNest text under the leaf, if you need. Don’t do this often, the main logo should be the horizontal one.
top related