Implementation approaches for decision support applications
An organization that has decided to improve its planning or its operations by leveraging operations research techniques needs to make a choice on the design and implementation of information technology to perform this task. On a generic level, one may distinguish the following basic approaches to implementing advanced decision support applications:
- Packaged solutions deployment
- Mathematical modeling
- Excel spreadsheet modeling
- Component based programming
- Full programming
A packaged solution is as a complete or nearly complete solution provided by a vendor. Many packages provide horizontal – that is industry independent - solutions, for ERP, CRM and SCM and so on, see for instance SAP and Oracle. Other package solutions are vertical packages embedding operations research solutions geared for specific industries or business processes, such as Quintiq for planning, scheduling and supply chain optimization solutions and Alstom Grid for energy automation and information solutions.
Full programming solutions are at the other end of the spectrum, these are custom built from scratch in e.g. C++, Visual Basic, Java or Delphi with few external components. Component based programming represents a variant of the full programming solution that uses different packaged components from different vendors as well as custom code to integrate them into a solution. An example of a component vendor is ILOG, which sells specific components for decisions support and advanced planning applications.
Mathematical modeling and spreadsheet modeling can be viewed as intermediate solutions, where one maintains the flexibility of the programming approach but avoids the need for detailed programming through the use of high-level language constructs. Mathematical modeling tools, like AIMMS, are specifically designed for the modeling of classes of operations research problems such as linear programming (LP), non-linear programming (NLP), Mixed integer programming (MIP).
Selecting an implementation approach can be a challenge and may require detailed analysis of the costs and risks involved in each approach. A wrong decision can result in cost overruns, project delays, or a solution that does not fit business needs very well. It is therefore essential to make the selection criteria explicit and review the different implementation approaches against these criteria.
Selection criteria
The table below compares the different implementation approaches at a generic level in terms of the effort involved in creating and maintaining the application, the implementation period, and the flexibility to tailor the application.
Approach Characteristics |
Packaged solutions deployment | Mathematical modeling |
Excel spreadsheet modeling |
Component based programming | Full programming |
|
Development ease |
HIGH | MEDIUM | MEDIUM |
MEDIUM-LOW |
LOW |
|
Customization ease |
LOW | HIGH | HIGH | MEDIUM | HIGH |
|
Maintenance ease |
HIGH | MEDIUM | HIGH | MEDIUM-LOW | LOW |
|
Implementation speed |
MEDIUM | FAST | FAST | MEDIUM | SLOW |
|
Flexibility |
LOW | HIGH | HIGH | MEDIUM | HIGH |
These high-level characteristics may help to assess what approach is best suited for the development and implementation of an advanced decision support application in your situation. The table below gives some indication under what circumstances these implementation approaches would provide the best solution.
|
Situation characteristics |
Packaged solutions deployment | Mathematical modeling |
Excel spreadsheet modeling |
Component based programming |
Full programming |
|
Standard / non-standard solution
|
Standard solution & proven approach
|
Innovative solution
|
Innovative solution
|
Innovative solution based on well known solution components |
Innovative solution
|
|
Stability of requirements
|
Stable requirements
|
Evolving requirements
|
Evolving req., but restricted to constant solution dimensions
|
Stable req.
|
Stable req.
|
|
Development process
|
Few iterations in design and implementation expected
|
Prototyping and incremental programming essential
|
Prototyping and incremental programming essential
|
Few iterations in design and impl. expected
|
Few iterations in design and impl. expected
|
|
Implement. period
|
Medium/long development time acceptable
|
Short development time required
|
Short development time required
|
Medium / long devel. time acceptable
|
Long devel. time acceptable
|
|
Multi/single end-user
|
Application shared by various end-users
|
Application shared by various end-users
|
Application used as personal productivity tool
|
Application shared by various end-users
|
Application shared by various end-users |
|
Cost
|
License, customization and implementation cost are recovered through improved productivity of the supported processes and lower maintenance cost of the solution
|
Cost of development tool & solver licenses is recovered through low development and maintenance cost and quick time to market with a tailored business productivity tool
|
Low cost, but only if used as personal productivity tool.
|
Additional cost of third party licenses for tools or components is recovered through low devel. and maintenance cost and quick time to market
|
Higher development and maintenance cost to build own solution are recovered through lower cost of third party licenses
|
The selection of the most appropriate approach will require a detailed understanding of the existing practice, a clear definition of the objectives of the change process and a thorough analysis of the resource requirements, total cost of ownership and risks of the alternative solutions.
When use AIMMS?
AIMMS is unique in the sense that it offers an advanced mathematical model development tool, open interfaces to databases and various programming environments, as well as the capabilities to build an end-user graphical interface. This makes its potential usage extremely versatile. Within the framework outlined above, AIMMS can be used in each implementation approach, for example to design and build:
- a complete standalone mathematical modeling application;
- a prototype application to reduce the development time and cost of a full programming or a standard package implementation;
- an extension to a standard package solution;
- an optimization component for a full programming application;
- an optimization component as Excel add-in.
Please contact our AIMMS Specialists when you want to have further advice on how AIMMS can be used within your organization.