MAJOR STRATEGIES OF A SOFTWARE BUSINESS

MAJOR SW STRATEGIES
BASED HEAVILY ON ROBERT GRADY'S BOOK
“Practical Software Metrics for Project Management
and Process Improvement”, Prentice-Hall 1996
• What are the goals in developing successful
software systems?
• We wish to develop systems that ....
meet customer needs
are reliable (perform well)
are cost effective to build and evolve
meet a product delivery schedule
CMPUT 402 - Software Quality
Major Software Strategies - 1
©Paul Sorenson
GOAL DEVELOPMENT
GOAL:
Develop Successful Software Systems
SG4: Minimize Time
to Market
SG1: Maximize Customer
Satisfaction
SG3: Minimize Defects
SG2: Minimize Engineering
Effort and Schedule
CMPUT 402 - Software Quality
Major Software Strategies - 2
©Paul Sorenson
QUESTION GENERATION
SG1: Maximize Customer Satisfaction
Q1: What are the attributes of customer satisfaction?
Q2: What are the key indicators of customer satisfaction?
Q3: What aspects result in customer satisfaction?
Q4: How satisfied are the customers?
Q5: How do we compare with the competition?
Q6: How many problems are affecting customers?
Q7: How long does it take to fix a problem? (compared to customer expectn)
Q8: How does installing a fix affect the customer?
Q9: How many customers are affected by the problem? (by how much?)
Q10: Where are the bottlenecks?
CMPUT 402 - Software Quality
Major Software Strategies - 3
©Paul Sorenson
Q1: What are the attributes of
customer satisfaction?
Functionality
Feature Set
Capabilities
Generality
Security
Usability
Human Factors
Aesthetics
Consistency
Documentation
Reliability
Failure Freq.
Predictability
Failure Severity Accuracy
Recoverability Mean Time to Fail
Performance
Speed
Efficiency
Thruput
Resource Consumpt.
Response Time
Testability
Extensibility
Adaptability
Maintainability
Compatiability
Configurability
Serviceability
Installability
Localizability
Supportability
CMPUT 402 - Software Quality
Major Software Strategies - 4
©Paul Sorenson
MEASUREMENT PROGRAM
PLANNING
40
35
FURPS
30
25
Actual
Planned
20
15
10
5
0
1
3
5
7
9
11
13
15
17
WEEK
FURPS+ planned versus actual tracking
(from Fig. 4-3 Grady, Practical Software Metrics)
CMPUT 402 - Software Quality
Major Software Strategies - 5
©Paul Sorenson
SG2: Minimize Effort & Schedule
QUESTION
GENERATION
Q11: Where are the resources going? Where are the worse rework loops?
Q12: What are the total maintenance and support costs for the product?
Q13: What development methods affect maintenance costs?
Q14: How maintainable is the product as change occurs?
When do we rewrite?
Q15: What will process monitoring cost and where are costs distributed?
Q16: What will the maintenance requirements be?
Q17: How long does it take to respond to (fix) a defect?
Q18: How can we predict cycle time, reliability and effort?
Q19: What practices yield best results?
Q20: How much do maintenance phase activities cost?
Q21: What are the major cost components?
Q22: How do costs change over time?
CMPUT 402 - Software Quality
Major Software Strategies - 6
©Paul Sorenson
Minimize Effort & Schedule
• Emphasis is clearly on management aspects
• Much more process-oriented than customer-oriented
• Important to get people involved
in looking at where time is spent.
Also important to empower groups
and individuals to make changes
in their areas to achieve stated
goals
CMPUT 402 - Software Quality
Major Software Strategies - 7
©Paul Sorenson
Q11: Where are the resources going?
Project
Type
Phase
Requirements
Design
Implementation
Test
Firmware
Systems
Applications
(31 Projects)
(48 Projects)
(53 Projects)
15%
14%
22%
21%
19%
16%
39%
30%
34%
25%
37%
28%
(adapted from Fig. 5-1 Percent engineering hours by phase)
CMPUT 402 - Software Quality
Major Software Strategies - 8
©Paul Sorenson
QUESTION
GENERATION
SG3: Minimize Defects
Q23: What are the key indicators of process health and how are we doing?
Q24: What are the high-level opportunities for preventive maintenance?
Q25: Are fixes effective and are unexpected side-effects created?
Q26: What is the post-release quality of each module?
Q27: What are we doing right (w.r.t. defects)?
Q28: How do we know when to release?
Q29: How effective is the development process in preventing defects?
Q30: What can we predict post-release based on pre-release data?
Q31: What defects are getting through and what caused
those defects?
CMPUT 402 - Software Quality
Major Software Strategies - 9
©Paul Sorenson
MINIMIZING DEFECTS
• most applicable when product features are
competitive and holding or improving market
share is the goal
• Grady points to products such as standard
operating systems and compilers as examples
• Typical metrics are defect-tracking oriented:
count of prerelease and postrelease defects,
count of remaining critical & serious defects
or defects sorted by module or size, NCSS and
branch coverage in testing
CMPUT 402 - Software Quality
Major Software Strategies - 10
©Paul Sorenson
MAJOR STRATEGIES CHARACTERISTICS
MAJOR
CHARACTERISTICS
MAXIMIZE
CUSTOMER
SATISFACTION
MINIMIZE
EFFORT AND
SCHEDULE
MINIMIZE
DEFECTS
MAJOR BUSINESS FACTOR
Attempt to capture
market share
Competitive pressures
=> prod dev & cost cntrl
Hold/increase
market share
WHEN MOST EFFECTIVE
When initially entering
the market
Competitive products or
prod cost reduction req.
When features are
competitive
CHARACTERISTIC
FEATURE
Customer commun. &
quick response
Focus on delivery dates
and effort
Analysis & removal
of defect causes
MOST VISIBLE METRICS
Survey & interview data
product metrics, defects
Calendar time, effort
and defects
Failure analysis by
module, cause & sev.
GROUP LIKELY TO
DRIVE STRATEGY
Development team
initally, customer
support later
Division or
company management
Devel. team &/or
quality organization
GROUP MOST IN CONTACT
WITH CUSTOMER
Development team
Marketing/factory
customer support
Field support
organization
POTENTIAL DRAWBACKS
IF FOCUS TOO
RESTRICTED
Process of developing
products may not
improve
CMPUT 402 - Software Quality
Defect backlog can get Defects may be fixed
unmanageable,
that are not cost
customers & developers
effective
frustrated
Major Software Strategies - 11
©Paul Sorenson
SG4: Minimize Time to Market
QUESTION
GENERATION
1.
CMPUT 402 - Software Quality
Major Software Strategies - 12
©Paul Sorenson
Mixture of Goals
Minimize
Costs
Air Traffic Control System
Maximize
Customer
Satisfaction
Java Compiler
Minimize
Defects
Next Version of Baldergome
Minimize
Time-toMarket
CMPUT 402 - Software Quality
Major Software Strategies - 13
©Paul Sorenson