Transcript PowerPoint

CS 5150
Software Engineering
Lecture 5 by Stephen Purpura
Matching Process to Risk
CS 5150
1
Big Team vs. Small Team Risks
When requirements or plan are uncertain, the
minimum (engineers, modules, lines of code, tests,
etc.) should be impacted by changes (that result from
uncertainty).
Changing the direction of a big ship requires more
ocean than a small ship requires.
CS 5150
2
Some definitions of success are more concrete …
How do you approach these definitions of success?
(a) Increase market share by 3%
(b) Gain 10,000 new web site visitors
(c) Build a document repository web site
(d) Make Windows safe from hackers
CS 5150
3
Let’s Start a Technology Company
It is 1998. Regular consumer Internet usage is less
than 10 million people. We want to start a company
that will allow consumers to pay their bills using an
Internet interface. We’ll call this market “online Bill
payment”.
What do we do next?
CS 5150
4
Which Option Would You Choose?
Feasibility and planning
• Option 1: Sketch the components of the web site, make a list
of modules, build budgets for building the components
• Option 2: Plan how you will acquire the first 1,000 users
• Option 3: Start building a prototype
CS 5150
5
Draft 1: Requirements for
Acquiring 1,000 Customers
Step 1: At least 1,000 potential customers must navigate to the
site
Step 2: Each customer must be able to:
• Identify themselves
• Establish funding information
• Pay a bill
• See status/history
• Troubleshoot
Step 3: Profit?
CS 5150
6
Draft 2: Requirements for
Acquiring 1,000 Customers
Step 1: Sign relationship deals with 4 billers that will ask at least
25,000 customers to navigate to your web site.
Step 2: Each customer must be able to:
• Identify themselves
• Establish funding information
• Pay a bill
• See status/history
• Troubleshoot
Step 3: Profit?
CS 5150
7
Draft 3: Requirements for
Acquiring 1,000 Customers
Step 1: Sign relationship deals with 4 billers that will ask at least
25,000 customers to navigate to your web site.
Step 2: Each biller can customize their customer interface
Step 3: Each customer must be able to:
• Identify them self
• Establish funding information
• Pay a bill
• See status/history
• Troubleshoot
CS 5150
8
How Much Money Do We Need?
The founders of a company seek $250k based on a broad plan
(that seems feasible) to test whether they can acquire 1,000
Internet Bill Payment customers by leveraging agreements with
4 billers that will drive 25,000 potential users to their web site.
Success =
• A conversion rate of 4%
• 1,000 happy customers with at least 1 transaction each
• A web site that can handle the daily load
• A secure system ships every day
CS 5150
9
What Does Success Earn You?
• An increase in valuation
• Credibility
CS 5150
10
The Capitalization Table of a Seed Funded
Company with a $250,000 Round
Investor
Common Shares Preferred Shares % of Company
Founder 1
30,000,000
25.00%
Founder 2
30,000,000
25.00%
Investor 1
10,000,000
8.33%
Investor 2
10,000,000
8.33%
Director
100,000
0.08%
Programmer 1
30,000
0.03%
Programmer 2
30,000
0.03%
Option Pool
19,840,000
16.53%
Authorized but
Unallocated
20,000,000
16.67%
Total
100,000,000
20,000,000
100.00%
Assuming a liquidity preference of $1:$1 for Preferred shares, if this
company is sold for $250,000, how much does each programmer
receive?
CS 5150
11
Basic Process Steps in all Software Development
• Feasibility and planning
• Requirements
• System and program design
• Implementation
Start with a
meaningful goal!
Minimum possible
product driven by
goals!
• Acceptance and release
• Operation and maintenance
CS 5150
12
What are the technical risks?
Major Risks
• Company will run out of money
• Customers don’t understand how to use site
• Customers can’t complete transactions
• Customers don’t have funding ability
• Web site fails under load
• Hackers/fraud/repudiation
CS 5150
13
Observations about Software Processes
Completed projects should have the basic process steps
but ... the development process is always partly evolutionary.
Risk is lowered by:
• Prototyping key components
• Frequent releases, dividing large projects into phases
• Early and repeated testing with users and customers.
•
Following a visible software process
• Making use of reusable components
• TESTING! Simulations! Trial runs!
CS 5150
14
Matching Process to Risk
• Company will run out of money
• Customers don’t understand how to use site
• Customers can’t complete transactions
Minimum
Product
Iterative
Design
• Customers don’t have funding ability
• Web site fails under load
• Hackers/fraud/repudiation
CS 5150
Modified
Waterfall
+
Reaction
15
Iterative Processes: Requirements and Risk
Mistakes in the requirements are the most expensive to
correct.
Requirements are hard to understand until there is an operational
system, particularly with user interfaces
Create an outline system quickly, review it with clients, test it
with users, improve the understanding of the requirements
Example: Start-up time of launching a complex application.
CS 5150
16
Contrast the Previous Example with Planning the
Next Version of Microsoft Windows
People buy Windows primarily because of network
effects. But some upgrade because of “excitement”.
What do we do next?
CS 5150
17
Matching Process to Risk
• Company will run out of money
Minimum
Product
• Customers aren’t excited
Iterative
Design
• Network effects
• Hackers/fraud/repudiation
• Application and hardware compatibility
Modified
Waterfall
• New “lock in” features
CS 5150
18
Application Compatibility
Stability is a major feature of Windows.
• Recent but older applications run correctly
• Older web sites can be viewed in Internet Explorer
• Home users can use older HP laser printers
How do you assure this? You test and validate every
day.
CS 5150
19
Big Team vs. Small Team?
Why can Google Chrome ship faster than IE?
Version
Ship Date
Market Share
1.0
December 11, 2008
70.5% vs. 1.4%
2.0
May 24, 2009
68.1% vs. 1.7%
3.0
October 12, 2009
64.6% vs. 3.6%
4.0
January 25, 2010
62.1% vs. 4.6%
5.0
May 25, 2010
60.0% vs. 6.8%
6.0
September 2, 2010
60.1% vs. 8.0%
CS 5150
20
Conclusion and Preview of Next Talk
• If the software isn’t written, deployed, and
functioning as desired, there are unknowns in its
development.
• To eliminate unknowns, you simulate desired
production behavior.
• You order the creation of the simulations based on the
potential cost of known unknowns and unknown
unknowns. This is learned from experience.
• Big teams use more simulations than small teams to
minimize the number of times they modify plans with
cascading changes.
CS 5150
21