If you have decided that your small business wants to implement an ERP program, the selection process may be one of the most important things that your company ever does.
(article continues below)
There are a variety of ways to acquire and deploy an ERP system. Each of these approaches to deploying an ERP system has pros and cons that will be discussed briefly to give you a better idea of what path your small business should follow. Before you start the process of choosing an ERP system, you should consider these high-level options.
In House Development
Developing in house is the most customized approach and will provide your business with an exact fit. Your software team will have direct access to the people using the software and will be able to tailor it in such a way that most of the wishes of users can be incorporated. However, this entails that your company has a team of programmers capable of creating such a system, and it means that you will be responsible for maintaining and evolving the code over time. That is why this option is generally reserved for larger companies. Also, this is the most expensive option and proceeds and the slowest pace.
In House with Assistance from Outsourcing Partners
Using an outside systems integration or programming firm to help create an in house system can save time and make the process move more quickly. However, it is also expensive and slow. This should be used if you want to develop in house but don't have the time or capital to do it entirely on your own.
Customized System Via Outsourcing Partner
This option allows you to have a custom built program created entirely by a vendor of your choosing. As expected, this option is also expensive compared with some of the options down the list. This allows you to have an entire system created for you, but instead of handing the reigns over to a vendor you remain in the driver's seat. Flexibility is maintained in this way, and your small business can tailor the system to fit your needs.
In this scenario, the vendor designs and implements an entire system for your company and many other companies. The problem with this approach is that it is inflexible, and you usually given the same functionality that everybody else has. Small companies that wish to retain flexibility generally would want to choose a more flexible option for their systems. However, customizing vendor systems is an option. For example, an ERP system may give you the leeway to write your own custom reports.
The idea behind vendor modules is that you can implement your ERP system in phases over time, one application area at a time. They are quick to implement and generally don't require extensive downtime in operations. As such, they are less risky than an entire ERP system implementation. Also, they are less expensive to purchase individually. This enables a small business to increase their productivity without spending a huge amount of capital to invest in an entire system. However, the problem with modules is that they tend to be difficult to expand upon.
An application service is a third party that provides services without any of the technology or hardware being in house. This is often referred to as a "software as a service" (SaaS) purchase. A subscription fee is paid by the company to use these services, and they provide many of the benefits that traditional ERP systems do. However, sometimes these applications can have increasing subscription costs. In some cases, there is no control over these systems and the companies generally depend entirely on the service provider. In other cases, the SaaS vendors have published interfaces that allow companies to add their own custom functionality.
Mixing Best-of-Breed, Third-Party Options
This is theoretically the best option to use, although it too has some disadvantages. You pick software applications from various vendors, choosing the best for each functional area. Hopefully, your company will pick the best modules and link them together in such a way that they work seamlessly and provide for your every need. In practice, however, the problem is murkier. Even with middleware, there are problems with programs communicating and how efficiently the system runs. It is difficult to link these modules together and you can lose some of your gains during the exchange of information.