Whenever a company is considering developing a new system, it must
first determine whether to build the new system from scratch or buy an
off-the-shelf solution. If the new system is strategic or so unique that a
prepackaged solution does not exist, then it makes sense to build the
system from scratch. Building a system from scratch can be done using
internal resources alone or by outsourcing the effort (or portions of it)
to a development outsourcer. If the new system is not strategic and not
unique, then it makes sense to investigate prepackaged alternatives. These
alternatives include software packages, application service provider (ASP)
offerings, and component-based solutions. Purchasing one of these prebuilt
solutions is a form of outsourcing in its broadest sense, since an outside
party was responsible for designing and building the system.
Build Versus Buy Decision
The build versus buy decision is never black and white. There is
actually a range of build and buy options that varies, based on the level
of customization, resource requirements, and degree of difficulty and
risk. A decision to buy a software package may require some development
work, and a development project may involve the use of prepackaged
components.
There are many prebuilt solutions on the market today, from application
software packages to ASP services, that can provide a company with robust
and extensive functionality to rival any inhouse-developed software. With
such a diverse range of options, there is apt to be a solution or
combination of solutions that will match, or come close to matching, the
functionality sought by a company. In many cases, an off-the-shelf
application software package can be customized to fit a company's
specifications exactly. Package implementation and customization work can
be performed by the IT organization or can be outsourced either to the
software vendor or to third parties with expertise in the package being
purchased.
Purchasing a software package or ASP services can eliminate the need
for a development project, but much depends on how well the purchased or
rented application fits the company's specific requirements, as well as
the amount of customization needed. With purchased components, the level
of custom programming involved can range from minimal to extensive,
eventually approximating the scope of a pure development project.
Frequently, the purchase and installation of software packages, and even
ASP services, are just pieces of larger development projects. To get the
functionality they need, companies combine these purchased components with
applications built from scratch, interfaces, and utilities. As an example,
many e-commerce development projects rely on commerce platforms and
software from vendors such as CommerceOne, Ariba, Art Technology, and
others, plus interfaces to back-end fulfillment systems.
Many customer relationship management development projects use a
third-party database products and off-the-shelf data mining and analysis
tools, along with home-grown applications to explore and exploit the data.
The decision to go with standard packages and/or ASP services can simplify
and speed up the overall development project, but there may still be quite
a bit of development work to tie the packages together and integrate the
Web-based systems with their legacy brethren.