Enterprise Software: Build or Buy?
If you browse through the offerings of enterprise business software support systems such as those from SAP (Business Suite), Oracle (E-Business Suite), Microsoft (Dynamics ERP), one of the first things that strikes you is the enormity of the range of software that’s available. There’s software to support just about every function of business across most major industry sectors. And that’s not all. There are editions to support business of different sizes as well.
Time to implement
A quick consideration of what it takes to develop a piece of software that supports complex business use cases may lead one to conclude that it would take far more time to develop a customised software solution from scratch when there might be one that’s ready for use straight out of the box. But that’s not necessarily true.
It’s true that the actual development time in a custom-built software would be high, but in the case of a product, that might be offset by the time required to analyse and develop solutions for gaps between the package functionality and actual business requirements, and the amount of time to do testing. Users (who may not have been involved in the functional solution definition) have to spend time understanding the software, and figuring out which features they need, which they don’t and how the software works. In addition, there is usually a lot of time to be spent on integrating the package into the existing IT environment. Later one as well, changes may be quite difficult to implement within the well-defined, but possibly rigid design of a package.Fitness for need and purpose
When software is custom built it is designed in response to very specific business needs and realities. When the job is well done there could be no match for a solution that provides a perfect solution not only to processing needs, but also in the way it integrates into the enterprise IT landscape. With a package, there may or may not be a good fit right out of the box. When use cases are simple and common within the industry, a package may provide a good fit, but it’s very likely that it comes with several additional unrequired features as well, along with constraints and bloatware to match. There may also be requirements that are not met and which call for package customization. The question to be asked here is Will the software fit in to the way the business works or will the business need to change the way it works in order to meet the design of the software?Costs and Risks
Developing custom software in-house is practical when there is an IT budget to cover the costs of staffing and infrastructure as well as adequate management support for the process of building good software. There are risks associated with it, of course. It takes organizational as well as IT departmental confidence to build enterprise grade software, and to be confident that it will be done right. Large projects often overrun cost and time budgets, and this naturally presents a risk. An additional risk is that during the project lifecycle business requirements change due to external environment changes or corporate action. In such cases packaged products may actually already have solutions prebuilt because they are meant to meet the common functional requirements across a range of clients within a particular industry. The experience of implementing the package at a number of client sites also gives its developers exposure to a broader range of variations in not only use cases but also innovative solutions for different situations.
Over time, of course, all software has to be maintained. Packaged software maintenance can be expensive due to recurring license fees. What needs to be seen is whether this is still preferable to the cost of maintaining a team to maintain custom built software and having to ramp it up or down according to changes in maintenance demand. Packaged software is also usually technologically upgraded by its developers from time to time. While small patches may be offered at no cost, largescale changes in versions are usually available only at additional charge. Even so, their availability is an advantage.Availability of expertise
Building custom software, especially in-house, requires the availability of a minimum amount of expertise, not only in technology, but also in the entire gamut of software lifecycle tasks, and in conceptualising and designing the most appropriate solutions. When working with a package vendor, however, the requirement for such expertise in-house is potentially much less, not only for the immediate or foreseen requirements, but for the unknown future as well. Deep functional expertise is best maintained within the business, however this can be constrained by not having as much exposure to a range of business environments as a package vendor might have.Control
Once a company invests in developing its own software it has complete control over every aspect of it, such as how it is designed, what technologies it is based on, what scope of functionality it supports, how many instances can be rolled out, how and when to change it, and when to re-engineer it. They can also choose whether to continue to develop it in-house or ask a vendor to take over maintaining it. And, of course, they completely own the intellectual property rights to the software and its internals. With a package, however, some of these freedoms are constrained. The vendor owns the product IPR, and decides the future course of the product features and technology roadmap, its licensing policies, and for how long the product will be supported. To that extent, the customer does get locked in with the vendor. It’s for each buyer enterprise to consider this aspect and decide whether the constraints are acceptable when weighed against the option of developing the software themselves.