You know, if I needed a truck, I’d probably just go buy one. If I needed a truck that nobody built, I’d probably pick a manufacturer and order all the parts I needed and bolt them together. Given the multitude of trucks of various configurations built today, that is a pretty unlikely scenario, but in the software world I have seen this problem in every business I have ever been in. Small companies use whatever is cheapest or whatever an employee is most familiar with, and large companies use whatever they are sold on the golf course. We end up with Mom and Pop using manual processes and QuickBooks (Never, EVER use QuickBooks for anything, your data is in there for good and you can’t get it out and can’t integrate it with anything else) and the big companies use literally hundreds of small developed and computer off-the-shelf (COTS) applications with no idea how they work and a cast of thousands to support them. Further, some of the COTS applications are amazingly expensive. Moses Cone in Greensboro has spent over $130,000,000 (yes kids, $130 MILLION) to implement Epic Electronic Medical Records (Click here for details) and has little to show for it. Novant Medical Group is also implementing Epic and has over 600 smaller applications to maintain and secure built in goodness only knows what development languages. This is an impossible task for less than an army of support and administration people. Those people are expensive. That doesn’t count the consultants that they have to hire to integrate these COTS applicationas and make them communicate with each other.
There is really only one ‘manufacturer’ of software development tools that vends a complete suite of tools that allows a programmer to build a complete application and that is Microsoft. With SQL Server and Visual Studio you can design and build applications for the web or Windows desktop without having to buy or find any other products. Microsoft’s products are a little more expensive, but there is a fairly decent chance that even a junior developer has a familiarity with everything needed to produce an application. If you don’t want to maintain your own servers there are any number of hosting solutions that will take care of all of the server maintenance and patching for you for a fee comparable to a Unix/Linux environment, so it isn’t that much more expensive. Arvixe charges an additional $5/month for Microsoft over LINUX
Outside the Microsoft world there is a bewildering array of offerings. Of course there is Oracle database engine, but it is even more expensive than SQL Server, Microsoft’s database engine (and not offered by Arvixe, consequently . Further, Oracle is difficult to set up, with text files laying all over the network and on client machines, and most Oracle developers use a third part tool called TOAD (I kid you not) to access the database visually. So developers wanting to go down this road usually pick MySQL or PostgreSQL, which are NOT free, against the popular belief. These are also difficult to set up and if not set up correctly suffer horrible performance issues if not set up correctly. Outside the database issue there is a bewildering array of products to design and build the User Interface: PHP, Perl, Python, SSI, CGI, Ruby on Rails, Flash, and the list is nearly endless.
What does all this mean for someone who commissions new software? That’s a tough question. If you learn everything you need to know to make a truly informed decision, you may as well just write the software yourself. My recommendation is to use a single technology stack probably Oracle/Java/PHP or Microsoft, and simplify the development of everything you do. You only need one knowledge base one staff and literally one application, unless you can find the off-the-shelf application that does everything your business needs. At Sentia we picked the Microsoft stack and cobbled together a set of standards that allow us to secure our applications and ease development. We were literally copying and pasting old code into a new window and changing the names to produce new code. Then we came up with a way to automate the copying and pasting. Then we came up with a way to generate the database code for create, read, update, delete and search that we had been writing by hand. Then we came up with a way to look for related information in other tables, like students and classes. We can get a list of all the students in a class or all the classes a student is taking without typing any code at all in that example. Microsoft adopted an existing technology a few years ago called Model/View/Controller (MVC) that will generate web forms based on a model , that thing we were copying and pasting above . Yes, that is the Model in MVC. So from a relational database design Sentia (and Microsoft, let’s be fair) can generate about 90% of a new application. This is why we use one technology stack. This is why you should use one technology stack. This is why you should throw rocks at any other consulting firm that tells you anything that you haven’t read right here first, or who tries to sell you expensive COTS software.
Don’t be Moses Cone or Novant Health.