Software Engineering Solutions for Business Challenges
Don’t Custom Applications Take Forever?
Time is money. Software development, modification, implementation, and maintenance are labor intensive. Controlling the schedule is one approach to minimizing cost. This is equally true when modifying and implementing off-the-shelf systems, and when writing glueware and custom applications.
Too many schedules are unrealistic to begin with. We see this over and over again. Software development and implementation schedules are very difficult to predict. Sometimes managers dictate the schedule that would meet their cost or schedule constraints. Sometimes developers underestimate the time a task will take. In most cases, the business rules, processes, and resulting software requirements are not fully understood at the beginning, or change during the project and impact both cost and schedule.
Schedule overruns suggest a definite advantage to off-the-shelf applications. If the software is already written, it shouldn’t take longer than expected to implement it? Unfortunately, the same problems apply when deciding how long implementation will take: unrealistic schedules, underestimated efforts, changing requirements. Additionally, unforeseen problems implementing your business model, with either off-the-shelf applications or custom applications, can overshadow other schedule problems.
How do you decide the best approach? The problem is not that implementing off-the-shelf software, or writing glueware, or developing customer applications take longer. The problem is predicting how long each approach will take so that good management decisions can be made, before and during the project.
So what do you do? First, don’t make the mistake of putting your head in the sand, and don’t pretend you know a definite schedule at the beginning of the project. Address software project uncertainties as part of the project management plan. Subdivide large projects into small, manageable increments with usable results from each effort. Value flexibility in the software design and architecture.
Some problems are amplified with off-the-shelf applications. Unfortunately, you may not have enough control to implement these recommendations with off-the-shelf applications. The software developer may not give you complete access to the architecture needed to effectively subdivide the implementation. Sometimes it’s all or nothing, or their business model may not allow you to define increments that work effectively in your business model. Lack of flexibility in today’s business environment can be a real problem. Enterprise systems can themselves become stovepipes that can’t be modified fast enough to support agile business requirements.
Advantages of Custom Applications. With today’s technology it has become easy to develop system architectures which overcome many long term problems seen in off-the-shelf applications. Most of the advances are the result of the Internet. Key technologies include web services, service oriented architectures, business intelligence systems, XML, and a host of integrated development environments and advanced server systems. Custom application development is no longer writing software from scratch. It’s a process of selecting off-the-shelf components and technology; and gluing them together into a system.
Custom Applications support incremental development. By definition, custom applications are made up of smaller building-blocks. These may include some off-the-shelf applications, various pre-written objects and components, and services provided by various server systems. Server systems might include databases (e.g. Microsoft SQL Server, Oracle, MySQL, etc.), messaging and collaboration servers (e.g. Microsoft Exchange, Lotus), web servers (e.g. Microsoft IIS, Apache), firewalls (e.g. Cisco, Dell/SonicWALL), application integration servers and middleware(e.g. Microsoft Biztalk, IBM WebSphere MQ, etc.), and the list goes on… Because the custom application is composed of a number of these building blocks, and there are different options for each block, the result yields more granular control over the application. This allows the software to be tailored to the target business model, and allows it to be subdivided into smaller pieces where each subdivision can be defined to provide a useful contribution to the overall requirements. This enables custom application to follow an evolutionary path (instead of the revolutionary approach of large, monolithic off-the-shelf applications).
Custom Applications support flexible business objectives. In today's business environment, for a company to be successful it must be nimble; able to adapt to different business plans and strategies as the business climate changes. Business systems must be able to respond to these changes and should support, and not hinder, the process. A few off-the-shelf applications can meet these goals; others just become a boat anchor. Being locked into a monolithic business application, where you are not in control of upgrades or new functionality, is not a flexible position.
So for scheduling, which is better: Off-the-Shelf or Custom Applications? Since the same scheduling errors influence both off-the-shelf implementations and custom application development, this question is difficult to answer. From an initial implementation standpoint, the accuracy of the schedule is directly proportional to the experience of the estimators and the quality of the information available about the applications and components, and the quality of the requirements definition for the system. From a long-term ROI standpoint, it depends upon the flexibility of the off-the-shelf application to adjust to changing business requirements vs. the maintenance cost of a Custom Application. At Auburn SeeWolf, we address all of these issues to improve initial business decisions and then manage each project to minimize impacts from changing schedules.
Schedules are important. They are one method of measuring progress, and are needed to ensure that resources are available when they are needed. In general terms, schedule concerns don’t help much with the basic make or buy decisions of custom application vs. off-the-shelf software. But for each specific case, other schedule factors may be important and change their influence upon the decision. Risk, however, is always a consideration and is discussed in they always cost more and take longer.
Copyright © Auburn SeeWolf 2009-2015