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
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