Do you need to create a database for your organization? It’s difficult to decide what approach to take. The growth of the Internet and rise of web applications has lead to a plethora of different options, which leads to a lot of confusion. Should you create your own database in-house? Or look for an existing tool that addresses most of your needs?  

simple database design


Do you need to create a database for your organization?

It’s difficult to decide what approach to take. The growth of the Internet and rise of web applications has lead to a plethora of different options, which leads to a lot of confusion. Should you create your own database in-house? Or look for an existing tool that addresses most of your needs?  I won’t make that decision for you, but I will arm with the information you need to make an informed decision.

Most organizations we’ve worked with first start out with a MS Excel spreadsheet and quickly realize its limitations. Others are still using paper!

So how does a database help?

A database is a collection of information that is organized so that it can easily be accessed, managed, and updated (typically by multiple users at the same time). Database applications give your organization a new level of information sharing and interaction that is not possible with paper or spreadsheets (e.g. powerful search functionality).

What does it take to create enterprise level database applications?

Creating database applications is more than having a nice looking interface to access and update data. There are many critical parts to software development that may be mistakenly overlooked::

  • System documentation: describe how does the system work and why it was created. This is especially important for new people coming onto the project
  • User documentation: describe how to use the system
  • Testing: thoroughly test that the system behaves as
  • Training: teach users how to effectively use the system
  • Versioning: software can go through various versions so it’s important to archive each version in case you need to roll back to an earlier one

Be prepared to always be on call!

Software development is an iterative process. Be prepared to continually improve your database. The development of applications requires continuous maintenance to provide bug fixes and improvements, and to keep up with changing IT environments. 

As more people use the database, you will receive more requests. Without the experience and infrastructure of a quality software development firm, it’s likely the database will have bugs, illogical data structure issues, and bad user interfaces. As it grows, your responsibility and effort will also increase because it will become harder and harder to maintain. 

Are there any tools to help out in our process?

Nowadays there are many online and desktop tools to help you create your database and user interface. Depending on your requirements some might be more appealing than others. For example, if mobile access is key then MS Access would not be a good solution

Some of the options available to create your own database include:

Creating a temporary solution in-house can be a great way to create something quickly, save money while confirming the usefulness of the database and to learn more about you exactly would need. Not ready to take on this responsibility along with your normal work duties? Not to worry, there are less hands-on approaches:

Software as a Service (SaaS)

One of the options is to find a cloud/web-based Software-as-a-Service product that provides the functionality you need. Chances are that no single product will match your exact needs but you may be able to modify your process or customize the software just enough to make it work.

Advantages

  • low entry costs
  • reliable, tested software
  • created for very specific use case
  • can start using immediately

Drawbacks

  • no capital investment - think of renting versus paying a mortgage. SaaS means as long as you want to use the product you need to pay
  • dependant on software staying in business
  • some pricing models can add up quickly
  • may not match your business’ use case exactly
  • lack of customizations

Risk

  • SaaS product goes out of business
  • License price goes up
  • Outgrow software

Software Development Agency

The last option is to hire a professional software development agency to create a database to fit your needs. In this case, the agency’s main job is to work with you to create something that works for you, it is easily maintainable and scalable.

Advantages

  • created exactly to meet your needs
  • no unwanted features
  • own the product completely
  • can grow with your company

Drawbacks

  • bigger upfront investment
  • some models can add up quickly
  • may require constant tweaks, improvements and bug fixes

Risk

  • software company goes out of business


Mitigate Risks

Whatever your approach, it’s important to identify risks and have a plan in mind detailing what how to resolve the issue. What will happen if a service you rely on is discontinued or a developer leaves? It is important to know whether your data can be exported easily, whether you will be able to find a new developer, and in the case of a development agency whether you will get the source code.

How you build a database for your company depends on your company’s expertise, time and budget. I hope I’ve helped to clarify your options so that you can make a well informed decision . If you have any questions, don’t hesitate to email me at mcacace@boundstatesoftware.com and I will happily answer any questions you might have.

Image Source: Flickr.com