Which one is the Right Choice for Your Company?
This paper was developed to provide general background to assist clients in decisions related to outsourcing IT. Please note that this paper presents professional opinions intended to apply generally and that clients must take appropriate care to evaluate them in light of their specific needs. Technology & Business Integrators, Inc. makes no representations, warrantees or guarantees of any sort as to the applicability of the opinions presented in this paper.
When considering whether to employ packages rather than custom developed applications, a clear understanding of an organization’s priorities is necessary, since each option carries both advantages and disadvantages. The best solution is one that carries advantages that are important to the organization and disadvantages that minimally affect it.
Package Software: Pros and Cons
The major advantages to software packages can be summarized as follows:
- The most reputable vendors have invested enormous effort and expense in incorporating world-class functionality into their products, which a company acquires along with the package. Duplicating such expense to develop similar functionality in custom developed code used by one company has become, in many cases, prohibitively expensive. Moreover, if the customer does not customize the package code extensively, then the customer through regular version upgrades can secure the on-going benefits of continued R&D investment by the vendor, by remaining current with maintenance fees. This can prove to be a cost effective way of remaining state-of-the-art in functionality.
- Packages tend to be far more configurable and re-configurable than custom developed applications, which is to say that they can accommodate change by adjusting table values to a far greater degree than is usual for custom developed applications. Moreover, package environments often come with capabilities that a customer does not implement immediately but are there for future exploitation without the need to build something new, then integrate it with the old, while custom code is usually more tactically designed. And integrated tools usually come with a package environment that allows extraction, analysis and presentation of information without the need to acquire and configure other, third party tools.
These advantages usually translate in a package environment into less need to modify package code than custom code over time, and less cost and more speed to adding capabilities and using information.
This is important to organizations operating in highly volatile markets, or with many new product or service offerings, or start-up companies, where it may reasonably be expected that process changes will be relatively frequent and will require changes to how software operates and how information is used.
- With products from major vendors, it is usual to find a body of experienced professionals on the open market, available as internal hires or as consultants, with substantial familiarity with the products.
This is important to organizations with few or no people to dedicate to implementation and on-going maintenance of software products; and, to organizations that are at risk of losing key skills due to the highly competitive market for skills today.
- It is usual that a package environment can be implemented in significantly less time than a custom environment, and often at substantially less cost.
The major disadvantages of packages can be summarized as follows:
- Even the most robust package environments have constraints: If a company’s business processes or other transactional requirements are truly unique it may be that packages cannot easily accommodate them, requiring process change or package customization. If the current processes truly differentiate a company from its competition, then this could require major customization of the package in order to retain the process advantages.
- In such cases, the value of using a package would be substantially reduced, and customized software could be the better alternative.
- If the package vendor is small in size, without substantial resources to dedicate to on-going R&D of its product, then this could limit the value to a customer of the package environment over its production lifecycle.
- Conversely, very large vendors often offer very complex package environments which, while highly flexible, still require a substantial number of highly specialized professional resources to effect even moderate changes through table adjustments. The high cost of maintaining such resources, or of purchasing consulting services, can be an unanticipated and unpleasant surprise: a high degree of flexibility is often available, but it usually comes at high cost.
- A singular disadvantage to packaged software is that a customer incurs some degree of dependency on the vendor’s technology direction.
- It is conceivable that the vendor could stop supporting equipment platforms, operating systems, database management systems, communication protocols or programming languages in which the customer has invested substantial resources.
However, the strong industry trend is for major vendors to become increasingly open in such matters, embracing multiple technologies rather than fewer, for their products.
This could be important to companies in highly competitive environments, where constant innovation and continuous improvement are necessary to maintain competitive advantage.
This is important to companies which have budgeted a relatively lean maintenance expense over the production lifecycle of a package environment, but who have been sold on the package based on its adaptability, and who have a high perceived need for such flexibility.
This problem often does not bear dramatically on the package vs. custom decision, because it can apply equally to custom software; rather, it points to a need for carefully understanding what the true costs are of satisfying requirements, whether they be implementation costs or on-going support costs.
Custom Software – Pros and Cons
Custom software, on the other hand, possesses advantages that can also be disadvantages:
- Custom software can be precisely designed to the needs of the moment. However, the burden of anticipating the needs of the next year and beyond falls directly on (usually) a small team of internal designers and architects. With packages, a large team of vendor personnel creates and maintains a product that must stand the test of time and must be attractive to many companies, in order to be financially viable. The vendor also is usually armed with better information about world-class process requirements, and is highly incented to develop change-friendly products.
- Custom environments can be less costly to implement than package environments, primarily because no license or maintenance fees are incurred, and because custom design tends to be very tactical: it rarely includes extras.
However, the lack of the extras can increase the total cost of operating the software over its production lifecycle, as can a tactical (as opposed to strategically flexible) architecture and design.
The extras may be needed soon, and will need to be built as well, and then integrated with the old, all at additional cost. Less dramatic but important changes also may be required that were not foreseen, that could require code modification and perhaps major design re-thinking.
It should be noted that it is generally accepted that approximately 90% of an application’s total cost of implementation and operation for as long as it is used lies in on-going support. Anything that minimizes this cost component will have a large affect on overall cost of use.
In summary, custom software, particularly that which automates critical processes is best suited to more stable environments consisting of unique and high-value business processes. Where highly robust packaged software is available from proven vendors with a track record of high R&D investment, this may be the more strategically advantageous solution to automating less unique processes.
Consequently, custom environments tend to be less stable than package environments, once in production; and, enhancement backlogs tend to be more quickly and cost effectively reduced in package environments.