White Paper

Build vs. Buy: Development Issues in Production Capture

Comparing Costs of Purchasing vs. Developing a Production Capture Application

This white paper describes how to evaluate a make/buy decision for a document capture product. By following each of the steps below and filling out the worksheets, you will be able to make reasonable estimates for the cost of developing a capture application which you can then compare with the cost of purchasing a commercial product.

There are five basic steps to consider when developing a software application:

  • Coding
  • Testing
  • Documentation
  • Maintenance
  • Support

The cost of each of these steps varies depending on how complex your application requirements are. The five sections below explain how to estimate the cost of each step.

1. Coding

The coding phase is required for all software projects and is generally the most complex and time consuming. The time required depends on a number of factors, and you should take all of the following into consideration:

  • Programming language. Visual Basic is the most common language for custom projects and generally requires fewer lines of code than C or C++. However, in some cases, performance requirements dictate the use of a more flexible programming language and this can add time to the development schedule.

  • Database knowledge. Document capture applications are database driven by nature and frequently founder because of complex database locking and integrity issues, especially if they are designed as multi-user applications. If your programming staff does not have a thorough knowledge of relational database design and performance issues, you will probably run into serious database problems during either development or maintenance of the application.

  • Toolkit APIs. This is one of the trickiest areas to assess. All capture applications require the use of at least one toolkit and some require as many as half a dozen. Toolkit APIs are frequently difficult to learn and almost always present bugs that need to be worked around at some point during development. Evaluating toolkits and allowing sufficient time to learn the APIs is a major part of the development schedule for capture applications.

  • Error checking. Implementing thorough error checking can sometimes take as long as writing the basic code itself. The amount of error checking you require depends on how many people will be using the application and what kind of support is available to them, but keep in mind that this is probably the biggest area of difference between commercial applications and custom applications. It is also one of the most frequently misjudged parts of estimating development time.

The worksheet below allows you to estimate the coding time for your application based on the types of features you plan to implement. It assumes that the application is written in Visual Basic and that moderate error checking is being performed.

Feature
Toolkit Needed
Man Months
Required for your application?
Man months for your application
Basic standalone scan application
Yes

2

 
 
Automatic document separation
No
1
 
 
LAN based operation (multiple stations)
No
4
 
 
Full-text OCR
Yes
1
 
 
Zonal OCR
Yes
2
 
 
Zonal ICR
Yes
1
 
 
Bar code recognition
Yes
1
 
 
Automatic form ID
Yes
1
 
  
Key from image
No
2
 
 
Export to back end system
No
1
 
 
Installation
Yes
1
  
  
Remote scanning over Internet
No
6
 
 
Full-page QC
No
2
 
  
Centralized batch management
No
2
 
 
Total basic coding time
 
Add 30% if you require very complete error handling
 
 
Subtract 20% if you require no error handling
 
 
Add 30% if using C or C++
 
 
Add 20% for final unit test and integration
 
 
Add 10% for management overhead
 
 
Total coding time
 
Burdened monthly cost of one programmer
 
Grand total coding cost
 

Here's an example of how to use the worksheet:

  • Total basic coding time for an application that requires basic scanning, installation, key from image, export, document separation, and batch management is 9 man months

  • To implement complete error handling, add 2.7 man months

  • Add 1.8 man months for unit test and integration

  • Add .9 man months for management overhead

This is a moderately sophisticated capture application with a total coding time of 14.4 man months. A Visual Basic programmer has a burdened annual cost of about $90,000, or $7,500 per month, so the total cost of the coding phase is $108,000.

2. Testing

In general, testing time is best calculated as a percentage of coding time, since more complex applications normally require longer and more involved test procedures.

Feature
Required for your application?
Man Month Calculation
Man months for your application
Basic testing and quality assurance
 
30%
 
Extensive scanner testing
 
20%
 
Stress testing
 
10%
 
Regression testing
 
20%
 
Total testing time
 
Burdened monthly cost of one tester
 
Total testing cost
 

Continuing our example from above:

  • Basic testing time is 30% of total coding time, or 4.3 man months

  • Stress testing is 1.4 man months

  • Regression testing is 2.8 man months

Total testing time is therefore 8.5 man months. At a burdened monthly cost of $5,000 for a tester, the total cost of the testing phase is $42,000.

3 Documentation

Documentation can generally be estimated as approximately 30% of total coding time for a technical manual of average depth and complexity.

Your cost may vary dramatically, however, depending on how many people you need to train, their level of sophistication, and whether you choose to provide any documentation at all.

Feature
Required for your application?
Man Month Calculation
Man months for your application
Basic documentation time
 
30%
 
Online help
 
15%
 
Total documentation time
 
Burdened monthly cost of one tech writer
 
Total documentation cost
 

Continuing our example, the average cost of documenting our project is 30% of 14.4 man months, or 4.3 man months. At a burdened cost of $5,000 per month for a tech writer, the total cost of the documentation phase is $21,000.

4 Maintenance

Routine maintenance is required to repair bugs, add features, and to keep up with changes forced on you by outside vendors. The worksheet below shows how to calculate maintenance requirements.

Feature
Required for your application?
Man Month Calculation
Man months for your application
Basic annual maintenance
 
15% of coding time
 
Operating system updates
 
1
 
Scanner updates
 
.5
 
Toolkit updates  
1
 
Compiler and tool updates
 
.5
 
Total maintenance time
 
Burdened monthly cost of one programmer
 
Total maintenance cost per year
 

Continuing our example once again:

  • Basic maintenance time is 15% of the original coding time, or 2.2 man months per year.

  • Operating system updates, scanner updates, toolkit updates, and compiler updates will generally use up about 3 man months per year.

Total maintenance time is therefore 5.2 man months per year. At a burdened cost of $7,500 for a Visual Basic programmer, the total cost of the maintenance phase is $39,000 per year.

5 Support

Technical support is required to train users, answer questions, troubleshoot problems, and to generally maintain the system. The amount of time required depends on how extensive your support needs are, as shown in the worksheet below.

Feature
Required for your application?
Man Month Calculation
Man months for your application
Basic telephone help desk support
 
.5 per user
 
User training
 
.2 per user
 
System administration and maintenance
 
20% of coding time
 
Advanced troubleshooting and administration  
.5 per user
 
Total support time
 
Burdened monthly cost of one support technician
 
Total support cost per year
 

Support time is primarily related to system size and number of users. Continuing our example from above, and assuming that the system has 6 users:

  • Basic support time is .5 man months per user, or 3 man months per year.

  • User training is 1.2 man months per year.

  • System administration (which is more dependent on application complexity than number of users) is 20% of coding time, or 2.9 man months per year.

Total support time is therefore 7.1 man months per year. At a burdened cost of $6,000 for a system administrator, the total cost of the support phase is $42,000 per year. (If advanced troubleshooting is required, this cost would increase to 10.1 man months, or $60,000 per year.)

Final Calculations

The total cost of developing a custom application is the sum of the cost of each phase. The maintenance and support phases need to be calculated for the life of the project, and five years is usually a good benchmark time period to use. The worksheet below shows the final calculation.

Phase Cost
Coding  
Testing  
Documentation  
Maintenance  
Support  
Total initial cost  

Phase Cost
Maintenance (years 2-5)  
Support (years 2-5)  
Total five-year cost  

 

Finishing our example, the total initial cost of the project is:

  • Coding: $108,000
  • Testing: $42,000
  • Documentation: $21,000
  • Maintenance: $39,000
  • Support: $42,000

The total initial cost of the project is $252,000. Maintenance and support for years 2-5 amount to an additional $324,000, for a total five-year cost of $576,000.

Your costs will vary depending on what kind of application you write and how extensively you document and support it. However, whatever type of application you need, the methodology described in this application note can help you estimate your total costs and compare it to the cost of buying a commercial application that meets your requirements.

Application Development Time for Production Capture

A Summary Worksheet

Untitled Document

1. Coding

Feature
Toolkit Needed
Man Months
Required for your application?
Man months for your application
Basic standalone scan application
Yes

2

 
 
Automatic document separation
No
1
 
 
LAN based operation (multiple stations)
No
4
 
 
Full-text OCR
Yes
1
 
 
Zonal OCR
Yes
2
 
 
Zonal ICR
Yes
1
 
 
Bar code recognition
Yes
1
 
 
Automatic form ID
Yes
1
 
  
Key from image
No
2
 
 
Export to back end system
No
1
 
 
Installation
Yes
1
  
  
Remote scanning over Internet
No
6
 
 
Full-page QC
No
2
 
  
Centralized batch management
No
2
 
 
Total basic coding time
 
Add 30% if you require very complete error handling
 
 
Subtract 20% if you require no error handling
 
 
Add 30% if using C or C++
 
 
Add 20% for final unit test and integration
 
 
Add 10% for management overhead
 
 
Total coding time
 
Burdened monthly cost of one programmer
 
Grand total coding cost
 

2. Testing

Feature
Required for your application?
Man Month Calculation
Man months for your application
Basic testing and quality assurance
 
30%
 
Extensive scanner testing
 
20%
 
Stress testing
 
10%
 
Regression testing
 
20%
 
Total testing time
 
Burdened monthly cost of one tester
 
Total testing cost
 

3. Documentation

Feature
Required for your application?
Man Month Calculation
Man months for your application
Basic documentation time
 
30%
 
Online help
 
15%
 
Total documentation time
 
Burdened monthly cost of one tech writer
 
Total documentation cost
 

4. Maintenance

Feature
Required for your application?
Man Month Calculation
Man months for your application
Basic annual maintenance
 
15% of coding time
 
Operating system updates
 
1
 
Scanner updates
 
.5
 
Toolkit updates  
1
 
Compiler and tool updates
 
.5
 
Total maintenance time
 
Burdened monthly cost of one programmer
 
Total maintenance cost per year
 

5. Support

Feature
Required for your application?
Man Month Calculation
Man months for your application
Basic telephone help desk support
 
.5 per user
 
User training
 
.2 per user
 
System administration and maintenance
 
20% of coding time
 
Advanced troubleshooting and administration  
.5 per user
 
Total support time
 
Burdened monthly cost of one support technician
 
Total support cost per year
 

Final Cost

Phase Cost
Coding  
Testing  
Documentation  
Maintenance  
Support  
Total initial cost  

Phase Cost
Maintenance (years 2-5)  
Support (years 2-5)  
Total five-year cost  

 

 

 

 

Kofax Image Products
16245 Laguna Canyon Road
Irvine, CA 92618
PHONE 949-727-1733  FAX 949-727-3144  INTERNET www.kofax.com

EUROPE: Heide 17, B-1780 Wemmel/Brussels, Belgium
PHONE +32-2-456-1720 u FAX +32-2-456-1721

Kofax Image Products