Series Recap: For the vast majority of people looking for new enterprise software, the task can be very daunting. Unless you are steeped in software technology, there is far more that you can’t compare, than you can. It’s like an iceberg, people see the tip and know there is far more under the water that cannot easily be seen. Comparing software is analogous - what you see is a small portion of the application, the tip if you will, with the vast majority unseen and seemingly incomparable.
So what do we do in this situation? We look at more superficial aspects, things we can “get our arms around” and ASSUME what’s “below the waterline” is the same. This, as you can imagine, can lead to poor decisions that will affect your company for years to come.
In Part 1 we discussed the importance of the first attribute, Trust, and the fact that if you do not have it with your potential partner, nothing else matters. We’ll assume at this point you have a sufficient level of trust with your potential Software Vendor. The next key attribute to discover is their Technology.
A very close second to Trust is the Technology your potential, or current, software vendor leverages. Technology is a pretty broad term and I’ll discuss Technology more in Part 3, but for right now let’s limit our discussion to the following:
Development Platform / UI
There are literally hundreds of development platforms and languages that are available for use, and more are added all the time. Some are very specialized to specific industries and entities, while other are very broad and are used in myriad industries. Most of the time, the technology used for the development of the software product will determine the UI (User Interface) that you will use on a day-to-day basis.
The main point is to make sure your software vendor is utilizing a modern and well supported development platform and language. I would recommend asking what company(s) products they are using, and which language. It’s my opinion that you want your software partner to be using mainstream products and languages and not relying on any “open source” code or components or obscure language. I’m sure there are many developers that will flame me for that suggestion, but I believe you need to protect your business and data and have some recourse if your software provider gets hit by the proverbial “Beer Truck,” individually or corporately. If you should need to access other people for help, you’ll have more choices if the development tools used are mainstream. If you want a second opinion as to the mainstreamness of software you are looking at, just ping me and I’ll let you know; there are too many to list here.
Really Old Technology
Pretty much all older software, was written to be displayed on a “green screen” (think mainframe or DOS text screens) where all you have available is alpha-numeric characters, 80 characters by 25 lines, a keyboard, and no mouse. This UI is the definition of clunky. If you are still trying to run software of that era, you have my sympathies.
The next lineage of UI would be graphical “windows” based screens, either designed for Microsoft Windows OS (Operating System) or Apple OS based computers. Usually the same software cannot run on both Microsoft and Apple computers because the underlying OS is not compatible. Many of these older class of software applications have their roots back nearly 20 years, and if still viable (some on life-support), are extremely susceptible to updates to their underlying OS, and have very antiquated UI designs. The design might have been “good” 20 years ago, but from a software standpoint, 20 years might as well be 100 years. You are required to install this software on every computer that is going to run it (aka “Fat Client Software”), and when you decide to “trust” an update to the software, all computers need to be updated; obviously very time consuming. Because of the OS sensitivity, this class of software limits your OS options. I’ve seen plenty of companies that are still running Windows XP because any newer OS is not supported by the software vendor. BTW, Microsoft stopped supporting XP as of April 2014.
The UI paradigms of this class of software are not capable of dealing with today’s UI and device requirements, like tablets and smartphones. You might see some attempts to make the UI more “friendly” and “pretty”, but typically it amounts to nothing more than putting “lipstick on a pig” - in the end you still have a pig, and an old one at that!
The current breed of software, and development environments, are designed to deal with not only computer screens (both Windows and Apple) and mice, but tablets, finger gestures (no not that universal gesture you just thought of ;), smartphones, e-Readers, etc. These development environments leverage HTML (the “OS” of browsers) to allow a single code base to run on any modern computing device. A single code base is a BIG DEAL, because you don’t need multiple development environments, tools and developer experience to build for different platforms; coding for an iPhone is different from coding for Android, which is different from a Blackberry, which is different from a Windows Phone.
Because HTML5 is the “OS”, any device that supports HTML5 can be used to access the application. This type of application usually can be run on your own server, but it also can be run in the cloud - giving you real cost saving support options. Updates to this type of software are done on the server and ALL devices accessing it are automatically “updated”. There is no software to install on any device running the application; you can literally pick up a new tablet, point to your application site (URL) and login. As you can imagine, your support costs go WAY DOWN! And access to your company’s data by you, your employees and customers goes WAY UP!
Database (DB) Platform
Here again, I recommend you only consider an application that uses a real mainstream database server. Microsoft SQL Server and Oracle are good examples, and even the open-source MySQL is ok since there are many people who support it. Microsoft Access is not a good solution for enterprise software, it simply does not scale well and is really meant for very small workgroups, plus it is not a real “DB Server”. People might still be using other DB’s that are not true servers, like DBase or FoxPro or the dozens of other similar databases. I highly recommend staying away from those.
When you have a real Database Server, there are well known ways to optimize and produce the fastest query results. Unfortunately, talking about the details gets into a very technical zone, very quickly. It gets into how the DB and its data tables were designed, data normalization, the use of primary keys and indexing, normalization, query stored procedures, functions and views. Obviously, this discussion is WAY too technical for this article, but I will give you a couple quick questions that might help evaluate the database structure of your potential software partner.
What database does your software use? Look for a real DB server.
How many data “Tables” are in the database? They probably should have many dozens or hundreds.
How many “Stored Procedures” do you have? How many “Functions”? How many “Views”? If you do not have at least a 4 to 1 number of stored procedures to the number of tables, I would seriously question how the database was designed. If there are virtually no Functions or Stored Procedures used, then I’ll guarantee you have a poorly designed database foundation.
Can they provide you any documentation of their Database design? You would be looking to see definitions of all the data tables, the data columns, indexes, relationships to other data objects. Sometime this could be in the form of an ERD (Entity Relationship Diagram) or some other type of electronic documentation that allows easy “clicking” to navigate through the database design. We use an HTML based DB Help file that shows all the details.
Ultimately, it would be wise to have a third-party consultant talk to the potential software vendor and look “under the covers” of not only the database, but also the application, to make sure you are not buying an unsupportable application or a “pig in a poke.” You cannot look at the surface of the application to determine if it is sound, or rely on unsubstantiated claims of being the “industry leader.” This suggestion is no different than purchasing a house. Would you even consider purchasing a house without having an independent third party home inspector look at the details that you cannot? Can you get up in the attic rafters, or down into and throughout the bowels of a crawlspace? Do you know what to look for and what you are seeing? It’s surprising what a coat of paint will hide. The database is the foundation of your data and application. If it is constructed on “sand,” you can bet the UI design is no better. Even the best looking application in the world will fail if it is sitting on a shifting database foundation.
Software technology is changing at a breakneck pace, and if a software company does not constantly move their systems forward, they are falling behind, and you as the customer will suffer the full brunt of the consequences. You should be demanding access to your company's data anytime, anywhere and from any device. Your customer should also be provided the same type and quality of access to the jobs you are running for them.
Next time we will discuss the next attribute you need to discover, Software Updates.
Todd Wenzel, CEO/CTO
Throughput | Bluestreak, an MTI Diamond Sponsor.
*This is a multi-part blog, so be sure to look for parts 1, 3 & 4.