SlideShare uma empresa Scribd logo
1 de 43
CALCULATING THE COSTS OF
MANUAL REWRITES
Know before you go.

Mobilize.Net: Migrate to web, mobile, and cloud
2

You’ve got an old legacy application and you’re faced
with the dilemma…..
Should I rewrite from scratch?

Should I keep trying to maintain it?

Mobilize.Net: Migrate to web, mobile, and cloud
3

Before you take on a manual rewrite, you should
understand the risks and costs.

Mobilize.Net: Migrate to web, mobile, and cloud
4

Legacy code is expensive to keep around.
 Higher staffing costs for specialized talent.
 Higher maintenance costs for supported obsolete hardware.
 High maintenance fees for legacy vendors (i.e. high support contracts

for Windows XP).
 Higher costs to add features or do required updates.
 Longer project cycles due to poor architecture, linear
programming, bad data schemas, and more.
 Delays in responding to market changes and business cycles.

Mobilize.Net: Migrate to web, mobile, and cloud
5

Sometimes it’s good to rewrite from scratch.
There might be strategic reasons:
 If your app IS your business (e.g. if you’re Facebook or
Amazon).
 If you want to do something fundamentally different with
the app (add complicated or complex features).
And there might be technical reasons:
 The code is bad, poorly written, unsalvageable.
 Your code depends on obsolete libraries that are no
longer available.
Mobilize.Net: Migrate to web, mobile, and cloud
6

The problem with manual rewrites…
Typical Project Results for Full Manual Rewrites*

HIGH FAILURE RATE
• 70% of manual software rewrites fail*
HIGH COST
• Rewrite costs 4 times more than migration

Failed
Successful
Challenged

HUGE DEFECT RATE
• Developers write 10-50 bugs per KLOC
• In a 1 million line project, developers will

write 10-50K bugs

FEATURE CREEP KILLS MANUAL REWRITES
• Projects overcome by too many features
*Standish Group, 2010

Mobilize.Net: Migrate to web, mobile, and cloud

• Requirements keep changing
7

But mostly, manual rewrites are expensive.
 It’s going to cost between $6-$23 per line of

code written.
 And you’re going to write a bunch of bugs.
 You should figure out the costs before you
attempt a full manual rewrite.

Mobilize.Net: Migrate to web, mobile, and cloud
8

Before you can figure out costs, you need to
understand some definitions.

Mobilize.Net: Migrate to web, mobile, and cloud
9

There are three common ways to predict the effort
required to develop a software program.
Function Points (FP)
 A unit of measurement to express the amount of business functionality
a software program provides to a user. The cost (in dollars or hours) of a
single unit is calculated from past projects.
Source Lines of Code (SLOC):
 Measures the size of a program by counting number of lines in the
source code.
COCOMO (Constructive Cost Model)
 Uses formulas to calculate costs based on SLOC.

Mobilize.Net: Migrate to web, mobile, and cloud
10

Function Point estimating has pros and cons.
Pros:
 Lots of support for FP because it requires thorough planning and results in a
bulletproof plan.
 Concentrates on functionality vs implementation details so it’s focused on
end user outcomes.
 Helps to drive an accurate estimation of effort.
 Independent of programming language or style/terseness.
Cons:
 It’s a lot of work, hard to do if you lack experience, and there’s no way to
automate it.

Mobilize.Net: Migrate to web, mobile, and cloud
11

So does SLOC.
Pros:
 Automation tools make it simple to count lines of code.
 It’s an objective measure vs any other method.
Cons:
 Doesn’t take into account code complexity.
 Can be misleading depending on the quality of code.
 Varies by programming language (high level vs low level).

Mobilize.Net: Migrate to web, mobile, and cloud
12

As does COCOMO.
Pros:
 Based on historical data.
 Widely accepted.
Cons:
 Based on analyzing waterfall projects from before 1981.
 Doesn’t factor in modern patterns or methodologies.

Mobilize.Net: Migrate to web, mobile, and cloud
13

Which one should you use?
 Bottom line: they’re all great but flawed.
 It’s not possible to accurately predict software

development costs for complex projects.
 But you can at least get some order of
magnitude estimates.

Mobilize.Net: Migrate to web, mobile, and cloud
14

What’s the relationship between FP and SLOC?

Mobilize.Net: Migrate to web, mobile, and cloud
15

Low level languages
(e.g. Assembly) require
many lines of code for
one Function Point.

Mobilize.Net: Migrate to web, mobile, and cloud
16

High level languages
(SQL, Powerbuilder) require few
lines of code for one Function
Point.

Mobilize.Net: Migrate to web, mobile, and cloud
17

Ratio of lines of code to function points is a reflection
of the level of language development (high or low).
For example,
 The average lines of code* it takes to build a Function Point in:
 Macro Assembler = 119
 Visual Basic = 42
 SQL Server = 21

*Based on analyzing real project code.

Mobilize.Net: Migrate to web, mobile, and cloud
18

One developer month: A
developer can develop 5 to
9.25 FPs per month.

Mobilize.Net: Migrate to web, mobile, and cloud
19

1 Function Point = approx. 54 SLOC in C#

Mobilize.Net: Migrate to web, mobile, and cloud
20

How do FP productivity numbers compare to SLOC?
• Industry data by lines of code:
• A world-class developer (e.g. Facebook or Google senior
engineer) will write 50 LOC per developer-day.
• A regular developer will write 10 LOC per developer-day.
• This includes everything from requirements
definition, specifications, coding, bug fixing, testing, and
documentation.
• Most work in programming is not actual coding.

Mobilize.Net: Migrate to web, mobile, and cloud
21

What about COCOMO?
• The COCOMO algorithm tells you three things:
• Person-months to complete (“effort applied”)
• Calendar months to complete (“development time”)
• Number of engineers (“people required”)
• Uses SLOC and standardized calculations to complete

Mobilize.Net: Migrate to web, mobile, and cloud
22

Now let’s talk about developer productivity and
defects.
There’s a lot of interesting data on this topic and it’s pretty
sobering stuff:
 On average, developers write 4.5 defects per Function Point.
 On average, 1.2 defects per FP make it into the final delivered
application.
 Best-in-class delivery is 1-3 defects per FP.
 Unfortunately, US devs average 4-6 defects per FP.

Mobilize.Net: Migrate to web, mobile, and cloud
23

You’re going to ship a lot of bugs.
 If you write a project with a thousand Function

Points, you’re going to ship 1200 bugs.
 Best-in-class developers will write fewer bugs, but
not by much.

Mobilize.Net: Migrate to web, mobile, and cloud
24

How does that break down?
• Design errors make up 30-60%.
• Coding errors make up 25-40%.

• Design errors take an average of 8.5 hours to fix.
• Coding errors take an average of 3 hours to fix.
• Data errors take an average of 6.5 hours to fix.

Mobilize.Net: Migrate to web, mobile, and cloud
25

How many bugs will you write?
 Typically, you’ll write 20 – 50 new bugs per KLOC
 A 100KLOC project will have 2000 – 5000 bugs to

find, fix, and test.
 Many of those bugs will not be discovered before the product
is delivered.

Mobilize.Net: Migrate to web, mobile, and cloud
26

Whichever costing method you use, the bottom line
is that everything takes longer than you estimate.
You’re going to write more bugs than you anticipate.

Mobilize.Net: Migrate to web, mobile, and cloud
27

How do you figure out realistic costs for manual
rewrites?

Mobilize.Net: Migrate to web, mobile, and cloud
28

Here are some assumptions to get you
started….

Inputs

Average LOC written or changed per developer per day
Total developer work days per year

Fully burdened cost of one developer per year

Description and sources

20 Industry average from low of 10 to high of 50 (McConnell: Code Complete)
250 Assumes 10 days off, no additional sick or vacation days

$150,000 Include all taxes, vacation, insurance, office space, IT support, PC, software, etc.

Maximum potential savings of offshore development

15% Best savings is 40%, worst is less than 10%, likely is 15%: Source: Deloitte, multiple research reports

Potential cost savings of rewrite vs. new development

20% Reductions come from better requirements, existing use and test cases, existing staff experience

New defects introduced per KLOC touched

25 Industry averages run from 10 to 50, Sources: Deloitte, Lotus, Microsoft

Developer hours per defect to find, fix, test

Industry averages run from 3 to 9. See http://www.slideshare.net/jsub/cast-webinar-capers-jones-on5.00 function-points

Total project KLOC

100 100,000 lines of C# code would be considered a medium-large project

Total function points (FP)
Average FPs per developer per day
Average defects per FP

Mobilize.Net: Migrate to web, mobile, and cloud

1,852 Based on C# ratio of 54 SLOC per FP. See: http://www.qsm.com/resources/function-point-languages-table
0.30 Industry averages run from 0.24 to 0.44
5 US industry averages are 4-6. See: http://sqgne.org/presentations/2011-12/Jones-Sep-2011.pdf
29

…which result in these estimates.
Calculations
Software Development using LOC estimates:
Lines of code per developer per year
Total developer-months to design / develop new application similar size

5,000
416.7

Estimated number of regression defects introduced by rewrite
Average cost per LOC for on-shore new development
Best case scenario cost per LOC offshore development
Rewrite cost per LOC domestic rewrite
Rewrite cost per LOC offshore rewrite (optimum)
Estimated rewrite cost on-shore

2,500
$30.00
$25.50
$24.00
$20.40
$2,400,000

Cost of defect mitigation before ship (on-shore)
Estimated rewrite cost off-shore

$937,500
$2,040,000

Cost of defect mitigation before ship (off-shore)

$796,875

Software Development using Function Point estimates:
FPs per developer per month
Total person months to complete

$6.25
$296.3

Estimated cost per FP on-shore

$2,000

Cost per FP on-shore with rewrite efficiency factored in
Estimated regressions / defects introduced
Estimated rewrite on-shore

$1,600
$1,852
$2,962,963.0

Cost of defect mitigation before ship (on-shore)
Estimated rewrite off-shore

$694,444
$2,518,518.5

Cost of defect mitigation before ship (off-shore)

$590,278

Mobilize.Net: Migrate to web, mobile, and cloud
30

And for COCOMO.
Effort Applied (Person months)
Development Time (months)

People Required
Cost*
*Cost based on on-shore fully burdened rate from assumptions table.

Mobilize.Net: Migrate to web, mobile, and cloud

302.14
21.90

$14
$3,776,776
31

Which should you believe?
• None is perfect.

• Bottom line: expect your total costs to be

somewhere between the high and low in the
different models.

Mobilize.Net: Migrate to web, mobile, and cloud
32

What are your alternatives to starting from
scratch?

Mobilize.Net: Migrate to web, mobile, and cloud
33

Automated software code conversion gives you the
best of both worlds, costs 80% less money and is 4X
faster.

Mobilize.Net: Migrate to web, mobile, and cloud
34

Code conversion via automation tools
enables you to reuse the existing
functionality without starting over from
scratch.

Mobilize.Net: Migrate to web, mobile, and cloud
35

Because you don’t have to re-invent the
wheel:
Costs are lower
You need less time
Your risk is lower.

Mobilize.Net: Migrate to web, mobile, and cloud
36

No new bugs are introduced.

Mobilize.Net: Migrate to web, mobile, and cloud
37

Doesn’t require re-training because UI is
the same (or similar).

Mobilize.Net: Migrate to web, mobile, and cloud
38

The application can be re-factored
and re-architected via automation
tools to make the new application
multi-tier and cloud-enabled

Mobilize.Net: Migrate to web, mobile, and cloud
39

Once the code conversion is
complete, you can enhance the app
with new features, updated UI and
other improvements.

Mobilize.Net: Migrate to web, mobile, and cloud
40

Why use automated code
conversion?
Guaranteed success.
You get a full-functioning application
that runs on the new platform.

Mobilize.Net: Migrate to web, mobile, and cloud
41

Calculate the real costs of your project
 We’ve developed a calculator where you can calculate

your development costs. You can use real numbers
from your projects: http://mobilize.net/solution/rewritecalculator

Mobilize.Net: Migrate to web, mobile, and cloud
42

Need more help?
1. You can also use our assessment tool to help you figure out

costs: http://mobilize.net/modernization-assessment-tool/
2. Let a Mobilize.Net migration engineer help you figure out
how to convert your legacy application:
http://mobilize.net/talk-to-an-engineer/

Mobilize.Net: Migrate to web, mobile, and cloud
43

If you really want to go deep on rewrite statistics:
• http://www.qsm.com/resources/function-point-languages-table

• http://sqgne.org/presentations/2011-12/Jones-Sep-2011.pdf
• http://www.slideshare.net/jsub/cast-webinar-capers-jones-on-function-points
• http://www.compaid.com/caiinternet/ezine/bundschuh-est.pdf
• http://www.ifpug.org

Mobilize.Net: Migrate to web, mobile, and cloud

Mais conteúdo relacionado

Último

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 

Último (20)

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 

Destaque

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 

Destaque (20)

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 

Calculating the cost of manual rewrites

  • 1. CALCULATING THE COSTS OF MANUAL REWRITES Know before you go. Mobilize.Net: Migrate to web, mobile, and cloud
  • 2. 2 You’ve got an old legacy application and you’re faced with the dilemma….. Should I rewrite from scratch? Should I keep trying to maintain it? Mobilize.Net: Migrate to web, mobile, and cloud
  • 3. 3 Before you take on a manual rewrite, you should understand the risks and costs. Mobilize.Net: Migrate to web, mobile, and cloud
  • 4. 4 Legacy code is expensive to keep around.  Higher staffing costs for specialized talent.  Higher maintenance costs for supported obsolete hardware.  High maintenance fees for legacy vendors (i.e. high support contracts for Windows XP).  Higher costs to add features or do required updates.  Longer project cycles due to poor architecture, linear programming, bad data schemas, and more.  Delays in responding to market changes and business cycles. Mobilize.Net: Migrate to web, mobile, and cloud
  • 5. 5 Sometimes it’s good to rewrite from scratch. There might be strategic reasons:  If your app IS your business (e.g. if you’re Facebook or Amazon).  If you want to do something fundamentally different with the app (add complicated or complex features). And there might be technical reasons:  The code is bad, poorly written, unsalvageable.  Your code depends on obsolete libraries that are no longer available. Mobilize.Net: Migrate to web, mobile, and cloud
  • 6. 6 The problem with manual rewrites… Typical Project Results for Full Manual Rewrites* HIGH FAILURE RATE • 70% of manual software rewrites fail* HIGH COST • Rewrite costs 4 times more than migration Failed Successful Challenged HUGE DEFECT RATE • Developers write 10-50 bugs per KLOC • In a 1 million line project, developers will write 10-50K bugs FEATURE CREEP KILLS MANUAL REWRITES • Projects overcome by too many features *Standish Group, 2010 Mobilize.Net: Migrate to web, mobile, and cloud • Requirements keep changing
  • 7. 7 But mostly, manual rewrites are expensive.  It’s going to cost between $6-$23 per line of code written.  And you’re going to write a bunch of bugs.  You should figure out the costs before you attempt a full manual rewrite. Mobilize.Net: Migrate to web, mobile, and cloud
  • 8. 8 Before you can figure out costs, you need to understand some definitions. Mobilize.Net: Migrate to web, mobile, and cloud
  • 9. 9 There are three common ways to predict the effort required to develop a software program. Function Points (FP)  A unit of measurement to express the amount of business functionality a software program provides to a user. The cost (in dollars or hours) of a single unit is calculated from past projects. Source Lines of Code (SLOC):  Measures the size of a program by counting number of lines in the source code. COCOMO (Constructive Cost Model)  Uses formulas to calculate costs based on SLOC. Mobilize.Net: Migrate to web, mobile, and cloud
  • 10. 10 Function Point estimating has pros and cons. Pros:  Lots of support for FP because it requires thorough planning and results in a bulletproof plan.  Concentrates on functionality vs implementation details so it’s focused on end user outcomes.  Helps to drive an accurate estimation of effort.  Independent of programming language or style/terseness. Cons:  It’s a lot of work, hard to do if you lack experience, and there’s no way to automate it. Mobilize.Net: Migrate to web, mobile, and cloud
  • 11. 11 So does SLOC. Pros:  Automation tools make it simple to count lines of code.  It’s an objective measure vs any other method. Cons:  Doesn’t take into account code complexity.  Can be misleading depending on the quality of code.  Varies by programming language (high level vs low level). Mobilize.Net: Migrate to web, mobile, and cloud
  • 12. 12 As does COCOMO. Pros:  Based on historical data.  Widely accepted. Cons:  Based on analyzing waterfall projects from before 1981.  Doesn’t factor in modern patterns or methodologies. Mobilize.Net: Migrate to web, mobile, and cloud
  • 13. 13 Which one should you use?  Bottom line: they’re all great but flawed.  It’s not possible to accurately predict software development costs for complex projects.  But you can at least get some order of magnitude estimates. Mobilize.Net: Migrate to web, mobile, and cloud
  • 14. 14 What’s the relationship between FP and SLOC? Mobilize.Net: Migrate to web, mobile, and cloud
  • 15. 15 Low level languages (e.g. Assembly) require many lines of code for one Function Point. Mobilize.Net: Migrate to web, mobile, and cloud
  • 16. 16 High level languages (SQL, Powerbuilder) require few lines of code for one Function Point. Mobilize.Net: Migrate to web, mobile, and cloud
  • 17. 17 Ratio of lines of code to function points is a reflection of the level of language development (high or low). For example,  The average lines of code* it takes to build a Function Point in:  Macro Assembler = 119  Visual Basic = 42  SQL Server = 21 *Based on analyzing real project code. Mobilize.Net: Migrate to web, mobile, and cloud
  • 18. 18 One developer month: A developer can develop 5 to 9.25 FPs per month. Mobilize.Net: Migrate to web, mobile, and cloud
  • 19. 19 1 Function Point = approx. 54 SLOC in C# Mobilize.Net: Migrate to web, mobile, and cloud
  • 20. 20 How do FP productivity numbers compare to SLOC? • Industry data by lines of code: • A world-class developer (e.g. Facebook or Google senior engineer) will write 50 LOC per developer-day. • A regular developer will write 10 LOC per developer-day. • This includes everything from requirements definition, specifications, coding, bug fixing, testing, and documentation. • Most work in programming is not actual coding. Mobilize.Net: Migrate to web, mobile, and cloud
  • 21. 21 What about COCOMO? • The COCOMO algorithm tells you three things: • Person-months to complete (“effort applied”) • Calendar months to complete (“development time”) • Number of engineers (“people required”) • Uses SLOC and standardized calculations to complete Mobilize.Net: Migrate to web, mobile, and cloud
  • 22. 22 Now let’s talk about developer productivity and defects. There’s a lot of interesting data on this topic and it’s pretty sobering stuff:  On average, developers write 4.5 defects per Function Point.  On average, 1.2 defects per FP make it into the final delivered application.  Best-in-class delivery is 1-3 defects per FP.  Unfortunately, US devs average 4-6 defects per FP. Mobilize.Net: Migrate to web, mobile, and cloud
  • 23. 23 You’re going to ship a lot of bugs.  If you write a project with a thousand Function Points, you’re going to ship 1200 bugs.  Best-in-class developers will write fewer bugs, but not by much. Mobilize.Net: Migrate to web, mobile, and cloud
  • 24. 24 How does that break down? • Design errors make up 30-60%. • Coding errors make up 25-40%. • Design errors take an average of 8.5 hours to fix. • Coding errors take an average of 3 hours to fix. • Data errors take an average of 6.5 hours to fix. Mobilize.Net: Migrate to web, mobile, and cloud
  • 25. 25 How many bugs will you write?  Typically, you’ll write 20 – 50 new bugs per KLOC  A 100KLOC project will have 2000 – 5000 bugs to find, fix, and test.  Many of those bugs will not be discovered before the product is delivered. Mobilize.Net: Migrate to web, mobile, and cloud
  • 26. 26 Whichever costing method you use, the bottom line is that everything takes longer than you estimate. You’re going to write more bugs than you anticipate. Mobilize.Net: Migrate to web, mobile, and cloud
  • 27. 27 How do you figure out realistic costs for manual rewrites? Mobilize.Net: Migrate to web, mobile, and cloud
  • 28. 28 Here are some assumptions to get you started…. Inputs Average LOC written or changed per developer per day Total developer work days per year Fully burdened cost of one developer per year Description and sources 20 Industry average from low of 10 to high of 50 (McConnell: Code Complete) 250 Assumes 10 days off, no additional sick or vacation days $150,000 Include all taxes, vacation, insurance, office space, IT support, PC, software, etc. Maximum potential savings of offshore development 15% Best savings is 40%, worst is less than 10%, likely is 15%: Source: Deloitte, multiple research reports Potential cost savings of rewrite vs. new development 20% Reductions come from better requirements, existing use and test cases, existing staff experience New defects introduced per KLOC touched 25 Industry averages run from 10 to 50, Sources: Deloitte, Lotus, Microsoft Developer hours per defect to find, fix, test Industry averages run from 3 to 9. See http://www.slideshare.net/jsub/cast-webinar-capers-jones-on5.00 function-points Total project KLOC 100 100,000 lines of C# code would be considered a medium-large project Total function points (FP) Average FPs per developer per day Average defects per FP Mobilize.Net: Migrate to web, mobile, and cloud 1,852 Based on C# ratio of 54 SLOC per FP. See: http://www.qsm.com/resources/function-point-languages-table 0.30 Industry averages run from 0.24 to 0.44 5 US industry averages are 4-6. See: http://sqgne.org/presentations/2011-12/Jones-Sep-2011.pdf
  • 29. 29 …which result in these estimates. Calculations Software Development using LOC estimates: Lines of code per developer per year Total developer-months to design / develop new application similar size 5,000 416.7 Estimated number of regression defects introduced by rewrite Average cost per LOC for on-shore new development Best case scenario cost per LOC offshore development Rewrite cost per LOC domestic rewrite Rewrite cost per LOC offshore rewrite (optimum) Estimated rewrite cost on-shore 2,500 $30.00 $25.50 $24.00 $20.40 $2,400,000 Cost of defect mitigation before ship (on-shore) Estimated rewrite cost off-shore $937,500 $2,040,000 Cost of defect mitigation before ship (off-shore) $796,875 Software Development using Function Point estimates: FPs per developer per month Total person months to complete $6.25 $296.3 Estimated cost per FP on-shore $2,000 Cost per FP on-shore with rewrite efficiency factored in Estimated regressions / defects introduced Estimated rewrite on-shore $1,600 $1,852 $2,962,963.0 Cost of defect mitigation before ship (on-shore) Estimated rewrite off-shore $694,444 $2,518,518.5 Cost of defect mitigation before ship (off-shore) $590,278 Mobilize.Net: Migrate to web, mobile, and cloud
  • 30. 30 And for COCOMO. Effort Applied (Person months) Development Time (months) People Required Cost* *Cost based on on-shore fully burdened rate from assumptions table. Mobilize.Net: Migrate to web, mobile, and cloud 302.14 21.90 $14 $3,776,776
  • 31. 31 Which should you believe? • None is perfect. • Bottom line: expect your total costs to be somewhere between the high and low in the different models. Mobilize.Net: Migrate to web, mobile, and cloud
  • 32. 32 What are your alternatives to starting from scratch? Mobilize.Net: Migrate to web, mobile, and cloud
  • 33. 33 Automated software code conversion gives you the best of both worlds, costs 80% less money and is 4X faster. Mobilize.Net: Migrate to web, mobile, and cloud
  • 34. 34 Code conversion via automation tools enables you to reuse the existing functionality without starting over from scratch. Mobilize.Net: Migrate to web, mobile, and cloud
  • 35. 35 Because you don’t have to re-invent the wheel: Costs are lower You need less time Your risk is lower. Mobilize.Net: Migrate to web, mobile, and cloud
  • 36. 36 No new bugs are introduced. Mobilize.Net: Migrate to web, mobile, and cloud
  • 37. 37 Doesn’t require re-training because UI is the same (or similar). Mobilize.Net: Migrate to web, mobile, and cloud
  • 38. 38 The application can be re-factored and re-architected via automation tools to make the new application multi-tier and cloud-enabled Mobilize.Net: Migrate to web, mobile, and cloud
  • 39. 39 Once the code conversion is complete, you can enhance the app with new features, updated UI and other improvements. Mobilize.Net: Migrate to web, mobile, and cloud
  • 40. 40 Why use automated code conversion? Guaranteed success. You get a full-functioning application that runs on the new platform. Mobilize.Net: Migrate to web, mobile, and cloud
  • 41. 41 Calculate the real costs of your project  We’ve developed a calculator where you can calculate your development costs. You can use real numbers from your projects: http://mobilize.net/solution/rewritecalculator Mobilize.Net: Migrate to web, mobile, and cloud
  • 42. 42 Need more help? 1. You can also use our assessment tool to help you figure out costs: http://mobilize.net/modernization-assessment-tool/ 2. Let a Mobilize.Net migration engineer help you figure out how to convert your legacy application: http://mobilize.net/talk-to-an-engineer/ Mobilize.Net: Migrate to web, mobile, and cloud
  • 43. 43 If you really want to go deep on rewrite statistics: • http://www.qsm.com/resources/function-point-languages-table • http://sqgne.org/presentations/2011-12/Jones-Sep-2011.pdf • http://www.slideshare.net/jsub/cast-webinar-capers-jones-on-function-points • http://www.compaid.com/caiinternet/ezine/bundschuh-est.pdf • http://www.ifpug.org Mobilize.Net: Migrate to web, mobile, and cloud