Anyone Can Make a Database, NOT!

Over the course of my career, I have been amazed how often I see employers getting employees with no database experience, and more importantly training, to try and develop in-house mission critical databases thinking to themselves that anyone can create a database. Sadly, nothing could be further from the truth!

MS Access is unlike Excel, PowerPoint and Word and requires substantial training and experience to develop a proper solution with.  The simple fact of the matter is that, by default, MS Access creates a flawed structure to begin with when you start your database by creating a single database file which novice developer have no knowledge of.  Then add to the fact that in most cases people seem to believe they can simply migrate an Excel worksheet into a single database table thus completely starting off with the wrong table normalization structure upon which every other aspect of the database is built upon.

The simple fact of the matter is that by the time I am asked to intervene, companies have already spent 10’s of thousands of dollars in employee time to develop databases which must be complete restarted because of basic flaws in table design requiring redesign of Tables, Queries, Forms, Report and VBA code!

Case Study 1

Let use a formal, real-life, anonymous examples to illustrate the problem.

I had a client come to me after spending 2 years and 22,000$ to develop a database for their business.  They originally came to me to ask me to review it because of performance issues.

I reviewed the database that had problems in every corner, table structure was not properly normalized, queries were not optimized, forms were a disaster and VBA code was a mess to put it politely.  In one evening, I manage to prove how bad the VBA coding was by redesigning a single report (well the VBA code used to generate it) and reduced the reports load time from 2minutes 37seconds down to 3 seconds, and still was purely through proper VBA coding I still had not addressed table structure!

So in the end, by not hiring a professional from the start, this client:

  • Lost 2 years
  • Lost 22,000$
  • Lost the time and fees associated in reviewing his database
  • Would have to restart everything (time and $$$ associated with that)
  • Would incur extra costs for extracting their data and importing it into the new solution

What was sad in this case was that the client did not have any funds left to rectify the problems with there database.  They believed that I was going to tell them that everything was optimal and it was an Access limitation, but nothing could have been further from the truth.  Incompetent development was entirely at fault, but the true root cause was poor management thinking someone who had never created a database could do so at an enterprise level.

In this instance, the cost would have probably been in the same order of magnitude, but I would have been able to deliver a solution in a fraction of the time, probably 3-4months instead of 2 years!  Obviously, it would not have suffered from the performance issues as well.

Case Study 2

I have an acquaintance that works for a government agency and has spent 2 weeks developing a database, well the beginnings of one at least.  They were having certain difficulties and contacted me for some pointers.  In one evening, approx. 4 hours, I completely redid the entire databases from scratch that they had spent 2 weeks on and had made it substantially better.  So what is cheaper I ask you, 2 weeks of your employee’s time to end up with a subpar database which doesn’t work properly or a couple hours of a consultant’s time?!

If we were to compare, in this case we’d be looking at:

  • Employee :: 55 $/hr x 36 hr/wk x 2 wks = 3960$
  • Consultants :: 100$ $/hr x 4 hrs = 400$

The above represent a 890% decrease in cost and a 1700% decrease in time, simply by hiring a professional developer.

 

The other aspect of not hiring a professional is that quite often managers think they are saving money by getting an employee to tackle the database.  The simple fact of the matter is nothing could be further from the truth, as illustrated by the brief examples above.  When you hire a professional developer, yes the hourly fee is greater than that of your employee, but it will take an employee countless hours (if not days, weeks, months) to accomplish what an experienced developer can do in a couple of hours.  Not to mention the fact that a developer, such as myself, has a toolbox of existing tools, that we can integrate into a database in seconds.

By hiring a professional, typically, you:

  • Reduce costs (sound counter intuitive, but my experience seems to prove this point)
  • Reduce development time by orders of magnitude
  • Increase the quality of the final solution

One last word of caution is that Access is not like any other database or programming language.  Please do not think that hiring a DBA with a great deal of experience with ORACLE (for instance) makes them a good Access developer.  Just as much as an experienced C++ developer does not make them a good Access developer (I’ve had the pleasure of cleaning up after this mess!).  Now, like when hiring any professional (developer, contractor, …) you need to do your due diligence when choosing who to deal with.

  • Ask for references
  • Ask to see samples, screenshots of previous work
  • Ask how long they’ve been in business
  • Ask how many Access databases they’ve created

Now this post isn’t meant to discourage anyone wanting to start learning MS Access, but don’t expect to come out of the gates and have your 1st database work properly, nor your 5th, …  It takes some serious development time to tame MS Access!!!  Now, if you understand the learning curve ahead of you and are still interested, then let the good times roll.

5 responses on “Anyone Can Make a Database, NOT!

  1. Anthony Morris

    I got so excited about your article that I had to speed read it!! You are dead spot on – I have been trying to relay this to the companies I’ve worked for, for years. I work by contract, I have spent many years, as well as obtained my B.S. in Information Systems, studying programming and database creation, which I was inspired to do after so many so called programmers attempting to explain to me how to design a database, some good information – lots of bad info, but I digress. As you have pointed out, employers think that because MS Access is a part of the MS Office Suite that it is easy to work with, and that “Anybody can create a database” As Doctor Evil would say “Rrrrrrright???”, to pun a phrase from Mike Meyer’s Character of the Austin Powers line of movies. It takes a little more knowhow even with a lightweight database like Access to make it work right, but it can work for you, if you know how to program, and if you know database rules, And have the experience at designing them.

    1. Daniel Pineault Post author

      “employers think that because MS Access is a part of the MS Office Suite that it is easy to work with, and that “Anybody can create a database””

      I think that sums it up quite nicely! Nothing could be further from the truth, MS Access is another beast onto itself.

  2. Shlomo Landa

    thanks a lot for your website ..
    do you have a post about database optimization?
    or can you post a link to some good article in the subject..

  3. Mike

    Anyone can create a database – not everyone can create a database that is usable for more than 2 people! I think there is a big misconception with employers and what Access should be used for, and what a professional software development company should be used for. You’re spot on, if you want your access database to hold 5 fields and it will not be integral part of your business, go for it. Else, you better hire a pro!