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 Microsoft 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 Microsoft Access programming tasks

 

Introduction

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.

return to top

1. Programming Source

Independent Developer/Programmer/Consultant - Self-employed IT professionals.

The terms developer, programmer, and consultant are often used interchangeably; the distinction is often not important. However, within the IT community, these terms do represent differences.

A developer is normally a self-employed, IT professional with the experience and knowledge to both assist a client in defining how to automate a business need, and one who has the skills to perform the programming tasks.

A programmer is skilled in writing software in one more languages, or one or more applications. Common sense should indicate that with today's complex applications, a claim of competence by a programmer in a large number (four, five, six - I've seen more!) of programming languages is questionable (at best).

Often developers call themselves programmers, and vice versa. As a business decision, what matters is not the specific label, but the ability and experience of the independent IT person.

Consultants - generally - are those who analyze your business needs and make recommendations across the spectrum such as hardware (PC's, network equipment), application tools/platforms  (Access, Microsoft SQL Server, Oracle, DB2, etc.), along with implementation and project management considerations. There are, of course, full service IT firms that offer turnkey service from the consulting phase through implementation. 

Such firms frequently have programmers on staff, and approach clients with a team that may include titles such as project manager, implementation specialist, programmer, trainer, etc.

Large consulting firms are rarely an option for the small, up to medium-sized business. Frankly, to get the attention of such firms, the total cost of a project should be six figures ($100,000) or more, sometimes much more.

 

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.

Staffing firms look to place temp IT on assignments that run for months, with the IT person working for 40 hours per week.

Most medium to large firms have developed relationships with staffing firms, and are well informed about the process. An advantage of staffing firms is that they will do some screening of candidates. 

Since they prefer making long-term placements, staffing firms are not generally a viable option for small or medium-sized firms, . Some staffing firms will, however, make referrals of small projects to independent developers, consultants, or programmers.

 

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.

Also, the usual scheduling considerations apply, that is the IT group may have one or more programmers, but these may be committed to long-term projects so that it is useful to bring in outside help for small to medium-sized, department-level projects.

 

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.

Additionally, while full-time, salaried programmers may be skilled and quite talented, developing complete projects for small and medium-sized businesses is not necessarily learned in the corporate environment of project managers, multi-programmer teams, and high-end platforms.

return to top

2. Location

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.

For department-level applications that do not require tight integration into enterprise-wide platforms (such as MS SQL Server), much of the development work can be done offsite. Savvy IT departments know the real focus is not the presence of the developer, but the results of the developer.

For small to medium-sized companies, onsite may not even be practical since they do not have a suitable workstation and space to accommodate a temp, full-time person.

Offsite - Offsite development of projects is the norm for most independent developers. Project development is their full-time work and source of income.

Experienced developers have a core set of software solutions and techniques that work, proven by prior, successful projects. They have development machines (PC workstation) loaded with previous software efforts; a library of technical articles; current versions of the software (such as Access 2016); in the case of Access, perhaps some previous versions (such as Access 2007, 2010 or 2013); along with other technical resources such as lists of internet Access resources and forums.

For developers, working on their developmental machine is a productive environment. Move them away from this, and they are not quite so productive (in my opinion and experience). 

There are occasions for an independent developer to meet with clients onsite. But development of projects can proceed effectively and efficiently offsite.

Internet access has become pervasive across the workplace. Projects can move back-and-forth between developer and client via zipped email attachments,  by over-night delivery of CD's, or other means such as ftp drop sites.

Screen sharing programs such as JoinMe or GoToMeeting (among others) enable collaboration and demonstrations. This technique is useful in all phases of projects from project defintion, progress reporting, and requirements reviews.

return to top

3. Tasks and Suggested Source

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.

Identify why the project failed. 

If the project was worth starting in the first place, it is likely worth finishing - assuming you can get qualified assistance. When you locate a more qualified source, do not visit the sins of the previous programmer on the new one. 

return to top

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 immediately

The 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

return to top

5. Rates and Terms

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.

Typical MS Access programming rates are $75-100/hr for off-site development. On-site rates are higher.

Please note that there is some variance in rates, but you find that professional Access developers will be the $75-100/hr range.

For a survey of salaried software employees see:

Datamation: The-2018-IT-Salary-Guide.htm

Salary Snapshot for Software Engineer / Developer / Programmer Jobs

 

 

There is more IT salary data available than independent programmer rates. One rule of thumb is to take the equivalent salary in thousands and convert that to an hourly rate. For the equivalent skill level of a $90,000 salaried programmer, expect to pay $90/hour for an independent developer. The range is more like $1/hour per $1K/year plus 25%.

Thus a range estimate for independent programming at the level of a $75,000 salaried programmer, would be $75 - $93.75/hour.

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

return to top

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

Task Level

Effort Range Description
1 1 - 2 Hours
  • Simple fixes/changes
2 2 - 4 Hours
  • Simple new form or new report (No changes to database schema)
  • Add existing field to form or report
3 4 - 8 Hours
  • Medium level of new functionality (No changes to database schema)
  • Medium complexity new form or report
  • Add field to table in existing application (*), and include on forms and reports

* This may also apply to the development stage of new projects after the effort has commenced.

4 8 - 16 Hours
  • Implement new functionality of moderate complexity. Examples: New tables, new multi-level forms; import/export functionality; add workgroup security to existing application
  • Changes to database schema - several forms and reports impacted
  • Complex multi-table report
5 16+ Hours
  • Review existing application of moderate to high complexity done by others
  • Significant new functionality requiring multiple changes to database schema with existing forms and reports impacted
  • Significant changes to program logic

    Note: At this level, it is often appropriate to develop a work statement, or take the time to modify an existing work statement.

 

return to top