You have likely heard the saying, “they put everything but the kitchen sink in it”. The reference refers to adding everything including things that are not needed. I got to thinking about this term and how it applies to software development architectures of many vendor solutions across several market segments.
Those of you that have had the opportunity to install any enterprise solutions know that the process typically begins with a central server install. The process can include multiple steps and can be quite complicated with surprises. Most enterprise solution vendors use a centralized server architectural approach for their solutions. What this means is that the product is installed on a server, which serves as the main repository for functionality of the solution. It also is the main conduit for all communications and control.
Enterprise solutions did not start out being so complicated to install. They evolved into their complexity. Each vendor typically develops their solutions on version and release schedules of eight to fourteen months or more. They put out the first version of their solution with some beginning level of functionality. The first release is normally pretty simple to install and maintain. As the vendor progresses through subsequent releases of their solution, they add new functionality to each release. Some of the functionality ideas come internally, while others come from customers. Rarely is any functionality removed because vendors cannot determine who is using the functionality and who is not. They do not want to upset any customers who may be using any functionality by removing it.
As the functionality piles up from release to release of their solutions, the process has a growing and detrimental effect on the solution itself. The solutions become increasingly monolithic and bloated. Interfaces become cluttered and increasingly hard to navigate and use. Installation and upgrade processes become increasingly complex. In many cases they can require dedicated and specialized IT resources on the part of the customer to install and use them. The vendors are forced to dedicate increasingly more development, QA and support resources to their development effort in order manage the growing and complex code base. They must keep on top of the process or risk software bugs and poor code quality that can ultimately damage their reputation and sales. These additional vendor resource requirements are not free, and are passed on to the customer in the form of higher licensing costs.
Some of you are saying to yourselves, “This is the very justification for cloud or SaaS applications.” Taking the solution out of the customer’s network will eliminate the customer having to deal with it. Let the professionals manage the application. There are some truisms to this. Yes, the customer no longer has to devote technical resources to installing and maintaining the solution. However, the complexity and cost issues remain. SaaS and cloud vendors have not learned the architecture lesson from their on-premise software vendor brethren. They continue to use the same centralized architecture approach, and they are experiencing the same complexity and cost issues. The end-user ends up being impacted by the very same complexity and cost issues they are experiencing with their in-house solutions.
So what is the solution? The solution is to take a step back and reevaluate architectural approaches to software solutions, and how they impact customers and end-users. Solutions should be designed around individual end-user needs. End-users should be able to select the functionality they need, as opposed to being forced to use solutions that are static in their functionality. Being able to modularly install or remove functionality from the solution as needed will significantly reduce complexity of the solution. It will also make interfaces much more navigable.
At Vallum Software, we believe we have such an architecture, and we welcome you to take a look at our solution and provide us feedback.
About the Author:
Lance Edelman is a technology professional with 25+ years of experience in enterprise software, security, document management and network management. He is co-founder and CEO at Vallum Software and currently lives in Atlanta, GA.