The horticulture of software
Reviewing software solutions before you buy is a major effort for users and/or vendor selection committees. Much time is spent on looking at whether the features of the product will meet team needs. Features are so important that companies will spend time to produce RFPs with extensive feature lists. They may even require a proof of concept; the vendor must install and test the solution in the purchaser’s work environment. This goes for those applications used to manage data, but also many other applications.
However, I believe that buyers should carefully look at the style of growth to the code base. In the data management field, we undergone decades of technology combined with decades of market consolidation. The code base for the application you’re about to buy may have grown from the following horticultural strategy:
- Grafting – A large software company sees potential in the data management field and begins to acquire companies and grafting them together to create a solution. Sometimes the acquisition isn’t done by technologists, but by upper management seeking to fill holes in the product line. Sometimes they even buy competing technologies, leaving everyone trying to figure out who will win. Sometimes the graft doesn’t take.
- Old Growth – Companies have an existing technology that has worked for decades. However, back in 1990 when they released version 1.0, JAVA was experimental and not the dominant force it is today. FORTRAN was the preferred programming language and COBOL copybooks were the data model. I know some companies in the data management market have spent millions updating old growth code to be more competitive in this market, and some others who have not. This becomes a dilemma for all vendors at some point. When do you prune out the dead wood?
- Sapling – Companies who are just breaking into the data management marketplace and have a good-looking start for data management. However, the sapling doesn’t yet have all the branches you want on it. Will the sapling survive among the other deciduous solutions in the market?
When you’re selecting a vendor, you ideally want a code base that is mature, but not too mature. You want limited grafting. The growth of the code and the grafting affects:
- Speed of innovation for the vendor
- Customization for you
- Future expansion for both of you
- The age and experience of the technologists necessary to operate it
- Consulting requirements
- Ability to cross-train personnel (E.g. DI people running DQ and vice versa)
So, when you’re selecting a data management solution, or any technology solution, don’t just compare the features, but take a look at how the product grew to where it is today. Look for the solution in the optimal stage of growth that will meet your needs today and those for the future.