About database development

Some frequently asked questions about database development

Why are many software projects late and over budget?
How do I increase the chances of implementing a successful custom database?
What about off-the-shelf software?
What is wrong with keeping everything in my spreadsheets and Word documents?
What is client server computing?
What does SQL stand for?
What happens if Craig Evans gets run over by a bus?
Why should I choose Data Synthesis to develop my system?

Why are many software projects late and over budget?

The main reasons are 1) the developer and/or customer poorly understood the requirements; and 2) extra features and requirements were introduced late without adjusting the schedule and/or cost of the project.

Building a successful database is like building a house. If a builder is asked "How much is it to build me a house?", he is not going to be able to say without asking some questions. Where is the house to be built? Which direction should it face? What will it be constructed with? How many stories? How many rooms? How is to be decorated? and so on.

The house project becomes very expensive when you have to add another story just as you are tiling the roof.

It's a bit the same when developing a database. The developer must have a clear understanding of what the customer wants, and the customer must have a clear understanding of what is to be delivered. Both must agree on the plans before building starts.

It ensures the database can better cope with future changes.Top of page

How do I increase the chances of implementing a successful custom database?

Model the data correctly. This is the most important part of delivering a successful system. The underlying data structures (the database tables) must accurately reflect things that are important to your business, and the way they relate to each other. It can involve many meetings depending on the size of the project. Graphical modeling tools make this easy to comprehend - it is all based on common sense.

Make sure you have a "Project Champion" - someone who takes ownership of the project and helps drive it. They must be genuinely enthusiastic, must be given time off their normal workload, and may or may not be the Project Sponsor (the person who pays for it.)Top of page

What about off-the-shelf software?

If you can find software out of a box that does 80%+ of what you want, then it may be the best solution. You don't have to go through designing and testing it, and it may be cheaper than doing it yourself. 

However, if that last 10 - 20 % is really important, you are in trouble. Modifications will probably be expensive and take forever to be done. 

You also have to remember that off the shelf software was based on someone else's design and view of the world. If your process is unique, a custom database may be the only option.

What is wrong with keeping everything in my spreadsheets and Word documents?

Nothing... unless you want to ask new questions of the data in those documents. Or if you need to find the most up to date customer information in all those different copies of the same spreadsheet floating around the organization. Or if you need to track one-to-many relationships over time.

A database resolve the above, and can give the following benefits:

  • Each piece of information is entered and updated in the one location. Information is consistent throughout the organisation.
  • Raw data can be queried to provide useful information.
  • Security can be used to restrict what users can see and do.
  • A centralised store of data is easier to back up.

Spreadsheets are great for analysing data but should not be relied on for storing large amounts of data or important raw data. See here for an article by Microsoft on this. Top of page

What is client server computing?

A pure Access database uses a file/server model of computing. The application (front-end) and database (back-end) are both stored in Access. The database stores the data, but cannot do anything with it. That is the job of the application which has all the logic. The application links to data stored in the database.

Excellent for small groups or applications that run only off one machine. The biggest drawback is network traffic because of large amounts of data and sent back and forth over any network.

A client/server model might use SQL Server for the database and Access as the front-end. The database is controlled by a database server. 

An analogy is that of a restaurant. With a file/server system, patrons (the front-ends) look at the menu then wander into the kitchen (the database), grab any ingredients they feel like, and start cooking. If there are too many patrons, or they don't know what they are doing, the kitchen can get into a real mess.

With client/server, the patron looks at the menu then places an order with a waiter. The waiter goes into the kitchen and gives the order to the chef. The chef prepares the meal, gives it to the waiter who then delivers it to the patron. The kitchen is kept tidy and the patron gets what was ordered. The patron is not allowed anywhere near the kitchen.

Client/server has many advantages including reducing network traffic and providing more security and backup.Top of page

What does SQL stand for ?

SQL (pronounced 'sequel') stands for 'Structured Query Language'. It is the ANSI (American National Standards Institute) language used to retrieve and update data in relational databases. More...   Top of page

What happens if Craig Evans gets run over by a bus?

This is something I try my best to avoid ;-)

Is there more risk using an independent developer verses a higher priced consulting firm with many developers ?

I believe not. By providing good documentation and having a champion who knows the system well, the risk is akin to any system developed by a larger firm: another developer will still have to get up to speed with the system by reading the documentation and interviewing the system champion. The type of systems I specialise in are best managed, developed and deployed by one person.

By adhering to accepted best practices in relational design and coding standards, the risk of ending up with a bunch of tables, data and code that no one else can understand is eliminated. Top of page

Why should I choose Data Synthesis to develop my system? 
  • You will get professional service. If I say I will do something, I'll will do it. 
  • I take responsibility for delivery of the application. If there is a problem, you know who to contact.
  • I am good at finding out what needs to be done and figuring out a way to do it.
  • I have plenty of business experience in a variety of industries. Knowing how organisations work is invaluable when designing databases. I have specialised in databases for 12 years.
  • I have many industry standard data models that can be used and adapted to address a variety of common situations, such as:
    • People and organisations
    • People and contact mechanisms
    • Contracts
    • Transactions
    • Healthcare events
    • Communication events
    • Audit logs

    Using proved data models can improve the success of the system, and can be delivered without re-inventing the wheel.Top of page

Data Synthesis Ltd 1998
For comments or suggestions, please send us a message.

Last updated November, 2004