Software and the Small Business Owner
Accumulation of data has become an unavoidable component of a modern business. Extraction and intelligent interpretation of data are key business differentiators but, without a database correctly structured and developed to contain the data, it's not possible to extract full value from the information accumulated.
Many business owners may have an instinct for what information they and their staff need to run a business efficiently and what their customers are looking for to improve their experience. However, many do not have a good understanding of what technology and software components are required to get from "accumulated data" to "intelligence". Conversely, those owners that do have this technical expertise are less likely to have a deep understanding of what to do with the information that could be extracted.
Without having a good understanding of what's involved to travel this path in either direction, great expense can be incurred building databases and developing applications that may or may not be efficient, timely or even achieve owners stated objectives or customer needs.
This dilemma frequently leads to wasted expense on software development or paralysis on project decision-making and the subsequent failure to develop applications. This situation results in lost opportunity to use data that could have benefited a business operator and its customers. Businesses cannot afford the wasted capital or time associated with failed software projects, nor can they afford not to deploy technology to ensure their business is able to operate efficiently while optimizing their customers experience.
The essential components of software involved to operate a business with an integrated software platform in the 21st century are identified and briefly explained below.
SQL stands for Structured Query Language and is the standard language used for relational database management systems. A database is a collection of data, and specialized database software such as MySQL, is just a program that allows data to be stored and retrieved as efficiently as possible. Over the last decade there has been a massive increase in the amount of data generated, largely as a result of the increase in the use of the Internet and, more recently, custom applications have been designed for intelligent use and interpretation of that data. These applications are largely dependent on SQL databases and specialized software such as MySQL for retrieval and interpretation.
Once you have accumulated, or have access to, large amounts of data, if you don't have a system for organizing it, then finding what you want and utilizing it for a specific purpose becomes a time-consuming operation. A database program (SQL for example) is a type of database that is designed to handle lots of data, but to store it in such a way that finding a specific file at a point of time is quick and efficient when using a software program written, for example, in MySQL.
For the majority of small and medium businesses there is no need to learn SQL or how to write custom software in MySQL or other database software languages. Mostly, small businesses utilize hosted software - for example WordPress may host a website and the service they provide includes a "behind-the-scenes" database to store such information as articles, web pages, comments from visitors and data gathered from input forms completed by site visitors. Almost all businesses want to somehow utilize the data that's stored in their database for the purposes of running the business more effectively and efficiently. The old saying "knowledge-is-power" continues to hold true but, if the knowledge is buried and not retrievable within a massive database, then there's no value or potential until the time it can be extracted and interpreted.
If an enterprise develops a requirement for a custom use of data from its database that cannot be provided by a third party that has already developed it, then it may be necessary to retain the services of an expert in the field of database software development such as MySQL in order to obtain what's being looked for.
Object Oriented Programming makes it possible to build large applications and with ASP.Net it's possible to do the same on the web. Traditional ASP uses HTML and VBScript to process and render pages and because VBScript was entwined in the HTML it ended up in messy and complicated code in larger applications. ASP.Net separates code from display and enables the code to be cleaner and more efficient.
One of the most important goals of .Net was to allow developers to write an ASP.Net application using multiple programming languages. As long as each ASP.Net page contains only one programming language, then it is possible to mix and match different pages using different languages and still have them work together seamlessly. An obvious advantage is that a team of developers working in different languages can be utilized without having to be concerned about language compatibility.
A great feature of ASP.Net is Web Services which enable multiple pieces of an application to run on different servers. Web Services is the enabler for information from massive central databases to be displayed on thousands of different web sites - usually in return for a subscription fee in order to compensate the owner of the data and providing the service. Use of Web Services for different applications are limited only by the imagination.
XML - Extensible Markup Language
Another, very important feature, is that ASP.Net makes it simple to use XML for sharing information on the Internet. XML is an Extensible Markup Language much like HTML that allows for efficient storing of data that can be cached in memory after extraction for fast access. XML is about describing information and was not designed to replace HTML which is about displaying information. As such, the two were designed with different goals that complement each other, and XML is expected to be as important to the future of the Web as HTML has been to the foundation in that it's become the de facto standard for all data transmission and manipulation over the Web.
MVC Programming Practice
Use of MVC programming practice to keep the data (Model), styling (View) and functionality (Control) completely separated and isolated. This means the Model and Control code can be developed independently of the styling in order only the View code needs to be changed when creating multiple distinct sites.
Application Programming Interface (API)
An interface is a common boundary shared by two applications or programs that allow both to communicate with one another. For a small business that has chosen to subscribe to a suite of different software applications from different providers it is critically important that APIs can be utilized to allow the applications to "talk" to each other and establish a fully integrated information technology platform. In order to facilitate a small business to integrate its various software applications it is important that each software provider has open APIs to permit third-party developers to map and facilitate the transmission of data from one application to another.
Businesses may have a need at some point for custom software applications that require the services of programmers. Resulting programs perform customized functions and usually interface with forward facing web-sites and reverse-looking back-office systems. Custom applications need to be built with the requirement for integration with other systems through use of an API at the forefront of the plan.
Software development is time-consuming and expensive. Quite often lack of upfront specifications and clear requirements means the end result isn't quite what the owner wanted and the final application that's delivered never quite lives up to expectations. For companies that don't have the resources to fund software development and custom applications, they may be far better off searching for individual components that third parties have already developed and to invest their funds integrating these separate applications so they all talk to each other.
Small businesses need to be focused on providing customer centric solutions and driving traffic to their websites where they can explain their value proposition. Getting traffic to a website is difficult, keeping it there once it's arrived is also difficult. Not only does the content need to be compelling but useful tools such as business and financial calculators need to be provided that will keep a visitor engaged and increase the chances of future business being conducted. If a small business really believes it should be investing in software development then its focus should be toward building apps and tools that are likely to increase levels of web based engagement.
For an example of a prototype application developed for the purposes of building an online app please click the link below to download our Information Technology Scorecard designed to help a small business owner identify the weaknesses in its IT platform and the priorities for improvement.