GRADUATION REQUIREMENTS State Board of Education House Bill 5.
Software Requirements and Organizational Culture: 10 ...Karl+Wiegers...champions” to represent...
Transcript of Software Requirements and Organizational Culture: 10 ...Karl+Wiegers...champions” to represent...
Sponsored by:
Karl Wiegers
Principal Consultant, Process Impactwww.processimpact.com
Software Requirements and Organizational Culture: 10 Lessons Learned
2
Sponsor: IREB
Advanced Level – available Modules:
Foundation Level
Requirements Elicitation and Consolidation
Expert LevelJanuary 2018
Prerequisite: none
RE@Agile Primer
Prerequisite: Foundation Level certificate
Prerequisite: 3 Advanced Level certificates (2 certificates replaceable)
Requirements Modeling
Requirements Management
RE@AgileQ4 2017
Prerequisite: none
CPRE ‐ CERTIFIED PROFESSIONAL FOR REQUIREMENTS ENGINEERING
Phone #:
E‐mail:
3
Sponsored By
Blog:
Featured Speaker
Karl WiegersPrincipal Consultant, Process Impact
www.processimpact.com
503‐698‐7879
Consulting Tips & Tricks Blog: www.karlconsulting.blogspot.com
Downloadable Process Goodies: www.processimpact.com/goodies.shtml
Use discount code GOOD17 for $20 off on Process Impact Goodies Collection
Sponsored By
4
Source Books
Creating a Software Engineering Culture by Karl Wiegers (Dorset House Publishing, 1996)
tinyurl.com/reqs3
Software Requirements, 3rd Edition by Karl Wiegers and Joy Beatty (Microsoft Press, 2013)
Sponsored By
5
Requires commitments: by each technical practitioner, to apply sound software engineering
practices by managers at all levels, to provide a quality‐driven environment by everyone, to continuously improve the way they work
Lesson One:Every software organization should
determine its underlying cultural principles.
Software Engineering CultureA set of beliefs, behaviors, and technical practices that define an environment in which all team members are
committed to building quality software products through effective and appropriate software processes.
Sponsored By
6
Some of My Old Group’s Cultural Principles
Never let your boss or your customer talk you into doing a bad
job.
Quality is the top priority; long‐term productivity is a natural benefit of
high quality.
Strive to have a peer, rather than a
customer, find a defect.
Ongoing education is every team member’s
responsibility.
People need to feel that the work they do is appreciated.
Continual improvement of your
software development process is both possible and
essential.
A key to software quality is to iterate on all development steps except coding.
If you measure what you do, you can learn
to do it better.
You can’t change everything at once.
Sponsored By
7
Actions matter, not words
Culture Buildersactions a manager takes to establish and reinforce a healthy culture
Lesson Two:Management at all levels plays a huge role in steering the culture — for better or for worse.
Culture Killersactions a manager takes that undermine a healthy culture
Sponsored By
8
Culture Builders and Culture Killers
Some Culture Builders• If no one is interested in serving as a product champion for a
project, perhaps the project should be canceled.• Make tracking charts of acceptance test results visible to the
whole team to emphasize a shared focus on quality.
Some Culture Killers• “We haven’t got time to write requirements; just build
me a system.”• Include every requirement anyone requests in the specification,
regardless of usage frequency, cost, or feasibility. The customer is always right.
• Use the defect logs from peer reviews as input into individual performance appraisals. This shows you care about quality.
Sponsored By
9
Some relevant cultural principles: Customer involvement is the most critical factor in software
quality.
Our greatest challenge is sharing the vision of the final product with the customer.
Lesson Three:A commitment to effective requirements engineering is a hallmark of a healthy
software engineering culture.
Sponsored By
10
Management Commitment to Requirements1. Asking that requirements for a project be documented in an appropriate
form.2. Working with the business analyst to provide business requirements.3. Expecting requirements to be reviewed by appropriate stakeholders.4. Asking stakeholders to agree on requirements before implementing each
portion of the solution.5. Ensuring that project plans include time and resources for requirements
tasks.6. Collaborating with other key stakeholders to gain their participation in
requirements activities.7. Establishing effective mechanisms and policies to handle changes.8. Investing in training, tools, books, and other resources.9. Funding and staffing activities to improve the organization’s
requirements processes.10. Making the time available for team members to spend on requirements
process improvement activities.
Sponsored By
11
Business requirements include: business opportunity business objectives success metrics vision statement business risks, assumptions, dependencies scope of initial and subsequent releases limitations and exclusions stakeholder profiles
Lesson Four:Clearly defined business requirements are the foundation of a successful project.
Sponsored By
12
Three Levels of Software RequirementsBusiness
Requirements
Vision and Scope Document
UserRequirements
User Requirements Document
FunctionalRequirements
Software Requirements Specification
ConstraintsSystem
Requirements
BusinessRules
ExternalInterfaces
QualityAttributes
Sponsored By
13
Traditional: Use Cases
“A description of a set of interaction sequences that a system performs to provide a result of observable or measurable value to one or more actors.”
Agile: User Stories
A “short, simple description of a feature told from the perspective of the person who desires the new capability, usually a user or customer of the system.”
Lesson Five:Taking a usage‐centric approach instead of a feature‐centric approach during elicitation
better meets user needs.
Sponsored By
14
Use Cases and User Stories
User Story
UseCaseName
conversations use casespecification
functional requirements
tests
refined user stories
conversations acceptancetests
conversations
analysis
“Create an Invoice”
“As a small business owner, I want to create an invoice so that I can bill a customer.”
Sponsored By
15
Benefits from the Usage‐Centric Approach
User’s terminology is applied
Reveals functionality users need to get their
work done
Helps analysts understand
application domain
Avoids building unnecessary functionality
Permits early drafting of
acceptance tests
Helps set priorities for functional requirements
Permits tracing requirements back to voice of the
customer
Sponsored By
16
Lesson Six:Customer engagement is a vital contributor
to building high‐quality software.
Expectation Gap(Surprise!)
Time
Sponsored By
17
A Stakeholder Hierarchy
Stakeholders
Customers OtherStakeholders
OtherUser Classes
IgnoredUser Classes
DisfavoredUser Classes
FavoredUser Classes
Other Customers
Direct andIndirect Users
Sponsored By
18
Key Aspects of Customer Involvement
Identify stakeholders and their interests and
priorities
Identify distinct user classes
Identify “product champions” to represent user
classes
Have a Customer’s Requirements Bill of Rights and Bill of Responsibilities
Select appropriate elicitation techniques
Have customers define acceptance
criteria
Engage customers through
prototypes, reviews, etc.
Sponsored By
19
Reducing the Expectation Gap
Time
contactpoint
} ExpectationGap
contactpoint
contactpoint
Sponsored By
20
Responsible for many tasks: Defining business requirements with project sponsor Identifying project stakeholders and user classes Eliciting requirements Analyzing requirements Specifying requirements in various ways Leading requirements validation Facilitating requirements prioritization Managing requirements
Lesson Seven:The business analyst plays a central role in
understanding and communicating a project’s requirements.
Sponsored By
21
The Business Analyst: A Bridging Role
sponsor businessrequirements
projectmanager
size and complexityinformation
development
functional and
nonfunctionalrequirements
user reps
userrequirements
functional andnonfunctionalrequirements
testing
expectationsand constraints
other stakeholders
Sponsored By
22
Lesson Eight: No single view of the requirements shows
you everything you need to know.
Natural‐language
requirements
Visual analysis models
Acceptance tests
Prototypes and screen designs
Tables and structured lists
Decision tables and decision
trees
Data dictionary
Photographs, video clips, audio clips
Mathematical expressions
Sponsored By
23
You can’t get all the requirements the first time. You can’t get the requirements right the first time. Requirements will change. An adaptive strategy: identify user requirements at a high level learn enough about them to do first‐cut prioritization allocate user requirements to releases or iterations elaborate requirements details prior to construction revise, refine, reprioritize, reallocate as change happens
Lesson Nine:A guiding principle of requirements development
is “iterative refinement of detail.”
Sponsored By
24
Components of Requirements Engineering
Requirements Development
Requirements Management
Elicitation Analysis ValidationSpecification
clarify rewritere-evaluate
confirm and correct
Requirements Engineering
Sponsored By
25
Lesson Ten:Addressing nonfunctional requirements
contributes significantly to user satisfaction.
design implementation
Constraints
user software hardware communication
ExternalExternalInterfaceReqs
response time throughput latency degraded modes efficiency
Performance
usability robustness installability security availability modifiability...
QualityAttributes
NonfunctionalRequirements
Write them to be quantitative and verifiable Document these in the requirements specification Cannot be simultaneously optimized; there are tradeoffs
Software Quality Attributes
Internal Quality
(important todevelopers and
maintainers)
External Quality(important to users)
Two views of product characteristics:
26
Sponsored By
Sponsored By
27
Bonus Lesson:Without high‐quality requirements,
software is like a box of chocolates: you never know what you’re going to get.
28
Sponsor: IREB
CPRE RE@Agile addresses RE in an agile context
Work more efficiently with stakeholders during elicitation.
Learn the appropriate methods for successful negotiations.
Be familiar with different techniques for modeling and documenting requirements.
Be more effective at managing requirements during the entire lifecycle of a project or product.
Know the terminology of RE Become part of an internationally
recognized community.
The CPRE is worldwide acknowledged – over 33,000 certified professionals in 70 countries
Gain the relevant skills, improve your professional profile and you will gain a higher market value.
www.ireb.org
Sponsored By
29
Q & A
Karl Wiegerswww.processimpact.comwww.karlwiegers.com
thereconstructionbook.com