Home Page Contact Dave Thompson Consulting Site Map
Dave Thompson Consulting
408 Rose Drive
Allen, Texas 75002
(Dallas/Ft Worth area)
(972) 727-5670
Programming Cost Considerations for MS Access Projects
Introduction
1. Programming source
2. Location
3. Tasks and suggested source
4. A word about the development process
5. Rates and Terms
6. Example times to complete common MS Access programming tasks
The development cost for a project depends on a number of factors such as who does it (developer, programmer, temp IT employee), where most of effort takes place (onsite/offsite), the complexity of the business need to automate, and more. We will discuss some of those factors here.
Our focus here is creating a software solution to meet the needs of a specific business or for use at the department level of a corporation. This is not a discussion of enterprise-wide solutions. Also, we are not considering software developed to be a commercial product for resale.
|
Independent Developer/Programmer/Consultant -
Self-employed IT professionals. |
|
IT Staffing Firms (Often listed as Consulting firms)
- These companies are primarily in the business of placing full-time, temp
employees (commonly called contractors) to work on-site at your business. Since their profit is derived
from the delta between what you pay them and what they pay the temp
programmer, expect - on average - higher rates than independents. |
|
Internal IT Department - An internal IT department
has full-time, on-staff programmers. In the case of Access projects for the
department level (5 - 40 users), if they do not have an Access programmer
on-staff, the IT group may assist (even require) the using department to
locate an outside resource to conduct and complete the project. |
|
Part-Time (nights and weekends) - There are those who
have a regular "daytime job" and write software nights and
weekends as a source of extra income. Business decision makers seeking
professional assistance for the development of software should consider just
how focused part-time programmers are towards the conduct and successful
completion of projects. |
|
Onsite - Many - but not all - corporations
require programmers to work onsite. They tend to seek not an experienced
developer, but rather a temporary employee in the role of programmer. | |
Offsite - Offsite development of projects is the norm
for most independent developers. Project development is their full-time work and source of
income. |
When seeking outside assistance with Access, who to look for, and where to look, depends on the what you are attempting to accomplish. Here are some examples:
|
Small to medium-sized business with a database information
need, or an information process to automate - Developer or programmer | |
|
Large scale business - Look to your IT department for
resources and assistance | |
|
Department Manager in corporation - Look to your IT
department, but if your business need is local to your department (5 - 40
users), and IT has a backlog, consider pressing the IT group to look for
outside help such as a developer. | |
|
Any business that wants training for users - Training
is a separate business market from project development and programming. Look
for IT training firms. | |
|
Any business user with a failed project on their hands
- The ability and experience of developers (and their communication
and project management skills) vary significantly. |
4. A Word About the Development Process
Software development is labor intensive. Said another way: software development is all labor.
|
It takes time to write software | |
|
It takes time to test software | |
|
It takes time fix software | |
|
It takes time to change software to meet new customer
requirements | |
|
It takes time to re-work software when existing customer
requirements change | |
|
It just takes time ... |
Approach the consideration of hourly rates cautiously. Should
you believe that "all programmers are alike", then shop for the
cheapest rate that you can find, with all best wishes.
It should noted that productivity
rates across groups of programmers can vary by a ratio of 10 to 1 (and even greater). Hourly
rates are not reliable predictors of skill, but rather tend to reflect
prevailing market rates.
The name of the game in software development is success versus
failure. In my experience, I've seen projects done by others, that were not, and
could not, be completed due to technical flaws in the programming approach.
Programmer competence is not nice to have, but necessary to have.
For Access (the same for MS SQL Server, Oracle, and DB2) an application is
unlikely - very unlikely - to succeed without a database schema that conforms to
accepted relational database design practices. This is the foundation for any
successful project, and one of the leading causes (in my experience) of failed
projects by others.
The first two questions from a new client are: 1) "How much will it cost?" and 2) " When can I have it?"
Here are the answers:
1) I don't know.
2) I don't know.
For example, you wouldn't expect to pick up the phone, call a homebuilder, and ask them, "How much will it cost to build a custom home?"
There are issues about land, design plans, schedule, fixtures and furnishings, landscaping: in other words, plenty of variables that ultimately determine both how much it will cost and how long it will take.
The home building paradigm is useful to understand other actions that impact the total cost and schedule for development projects. In the home building example, during construction (to plans) you - the customer - may come back to the builder and ask them change part of the plan.
If the change requires moving a wall, it can be done. But remember, you pay for having the wall built in the first place, then having it torn down, then rebuilding it to the changed plan. Software development is no different in this regard: it is labor intensive. Programming takes time. Changing the requirements after programming starts, means that some work done will be lost, but the cost for doing it the first place does not go away.
Sometimes changes are necessary, and should be done. What the client needs is software that meets their needs and is of use in the business to support a process or informational need. So if a project gets off course, it should be re-directed.
Only for very small, tightly defined projects is it possible for a developer to give a quick estimate of time and cost. And only for small, tightly defined projects should you ask for, and expect to receive, a fixed price bid (usually for projects less than $1,000).
Note: For a more complete discussion of the software development cycle, see Software Development Process on this site. It discusses a project where the client went through a concept and definition phase, after which I was able to provide a total cost estimate (as a range) to permit the client to make a go/no-go decision. Remember, it is billable time to go through such an initial requirements gathering and specification step.
But for complex applications, skipping the requirements/specifications stage can lead - at best - to software that does not conform to your needs, or - at worst - to a failed project. Projects are more likely to succeed if they commence with a written plan (or at least an agreement on requirements) than if you begin programming immediatelyThe client goals and their budgets may not be in same ball park. Better to learn this at a modest analysis cost than to cancel a project before completion. The analysis and estimate stage enables the client to adjust requirements to meet their budget, or consider alternatives.
Dave Thompson
5A. Rates
Rates vary by:
|
programming source (see #1 above) | |
|
location (see #2 above) | |
|
market (geographical section of the country; large city
versus rural) | |
|
programming language or application | |
|
skill and experience of the developer | |
|
where on the spectrum a developer chooses to set their billing rates |
Some developers use a dual rate structure:
Offsite/Onsite. This dual rate structure reflects the dual roles that a
developer often assumes. Offsite, they are a programmer. Onsite,
they take on the role of consultant/analyst.
And since "time is all we have to sell", expect that
an offsite developer is likely both to charge more per hour to be onsite and to
charge some amount of travel time (such as one-way, or portal-to-portal) to
attend onsite, client meetings.
At this time, MS Access programming rates cluster around $60/hr, but can be lower (typical low rate $30/hr) or higher (typical high $75/hr).
For a survey of various average and high/low hourly rates for programming tasks see:
http://www.brennerbooks.com/sellsoftware.html
For a survey of salaried software employees see:
http://www.softwaremetrics.com/Articles/employment.htm
5B. Terms
For small, fixed-price bid projects (typically less than $1,000), expect to pay half at project start, and the other half at the end. If you begin to change specifications and requirements after such a project begins, expect to re-open negotiations as to final cost.
In general, for new clients expect to pay an upfront retainer
(some percentage of the program estimated cost, or an amount equal to the first
month's effort, or other negotiated amount). For established relationships, most developers will invoice
(weekly/monthly/monthly fixed amount a month beginning, overage at end of
month). Invoice frequency is normally negotiable.
Remember what is being invoiced
is - for most developers - their sole source of income, just as most
corporate employees expect to receive their paychecks on time (what would you do if you
company decided not to pay you on payday?), developers expect to paid on time.
Some projects proceed entirely by the client prepaying for
blocks of time such as 20 or 40 hour increments.
I work on projects as needed, billing actuals. I do not ask that a client promise any guaranteed amount of
work per week.
Therefore, some weeks might incur 10, 20, or 30 hours of billable time; other weeks none (zero).
6. Example Times for Common Programming Tasks
Here is a table that lists various Access programming tasks based on the time to complete. Such a table is not precise, but indicative that things do take time to do. While it may possible to describe a needed feature or functionality for an application in few words, that does not say anything about how long it takes to complete the tasks required.
For ongoing development projects, an efficiency is gained such that the total time is less than the sum of values shown in the table.
The table is most useful to communicate the scale of effort required for common tasks, and to inform the client that to control costs means to control requirements, and that to increase requirements ("Just add this one report ... this one form .... and ....) impacts cost and the schedule - both.
Dave Thompson Consulting
408 Rose Drive
Allen, Texas 75002
(Dallas/Ft Worth area)
(972) 727-5670
The Rating Table is intended as a guideline for ranges of effort (in billable hours) to perform typical programming tasks. The numbers are estimates only and not a firm quote. Actual hours are billed.
MS Access Task Level Rating Table - Revision Date: January 1, 2008
|
Task Level |
Effort Range | Description | ||||||
| 1 | 1 - 2 Hours |
|
||||||
| 2 | 2 - 4 Hours |
|
||||||
| 3 | 4 - 8 Hours |
* This may also apply to the development stage of new projects after the effort has commenced. |
||||||
| 4 | 8 - 16 Hours |
|
||||||
| 5 | 16+ Hours |
|