21
CS 5150 1 CS 5150 Software Engineering Lecture 5 by Stephen Purpura Matching Process to Risk

CS 5150 1 CS 5150 Software Engineering Lecture 5 by Stephen Purpura Matching Process to Risk

  • View
    217

  • Download
    3

Embed Size (px)

Citation preview

CS 5150 1

CS 5150 Software Engineering

Lecture 5 by Stephen Purpura

Matching Process to Risk

CS 5150 2

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 3

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 4

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 5

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 6

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 7

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 8

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 9

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 10

What Does Success Earn You?

• An increase in valuation

• Credibility

CS 5150 11

The Capitalization Table of a Seed Funded Company with a $250,000 Round

Investor Common Shares Preferred Shares % of CompanyFounder 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 12

Basic Process Steps in all Software Development

• Feasibility and planning

• Requirements

• System and program design

• Implementation

• Acceptance and release

• Operation and maintenance

Start with a meaningful goal!

Minimum possibleproduct driven by goals!

CS 5150 13

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 14

Observations about Software Processes

Completed projects should have the basic process stepsbut ... 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 15

Matching Process to Risk

• 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

IterativeDesign

ModifiedWaterfall+Reaction

MinimumProduct

CS 5150 16

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 17

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 18

Matching Process to Risk

IterativeDesign

ModifiedWaterfall

MinimumProduct

CS 5150 19

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 20

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 21

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.