Prototyping and Development Tools

Continually evaluate your set of development tools to ensure you have a complete up-to-date tool kit for application development that meets your needs. Having the right stack of tools significantly decreases the cost and time of development and support. This includes not only the development language but also other areas such as proper prototyping, source code management, debugging, testing, stress testing, and documentation tools. One company looked at their development tool stack in the areas of presentation layer, application server, web server, and rules engine. Evaluate and select your development tool set just as you would other software by identifying the requirements, establishing the selection criteria, and reviewing the options.

Agile Development

As compared to traditional waterfall systems development, agile software development methodologies gets you faster results with less cost and effort. There are many variations of agile development methodologies, such as Extreme Programming (XP), Scrum, Crystal Clear, Feature-Driven Development, and Lean Software Development. Concepts used in agile development vary, but usually include teamwork, regular communication, implementation in small increments, short time frames, and iterations. This type of development will reduce risks and costs as you are able to find errors earlier in the process and complete changes quicker.
Top Tip: Agile development methodology

"We changed from a traditional waterfall development methodology to an agile methodology using SCRUM. In doing so, we were able to take out a layer of management and significantly reduce costs, while also increasing value through better execution. This realizes the benefits of a small IT department in a large shop."
—Mike Degeneffe

Open Source

Open source software has had a significant impact on the software industry. Open source is not free like many think. Open source vendors charge for maintenance and support, but it is significantly less expensive than standard software. Many development projects mix open source with internal code to shorten development time and reduce costs. Open source software is typically modular so components are easily integrated, built for reuse in multiple applications, usually standards-based with efficient use of code, and transparent with its own source code. Open source avoids wasting time reinventing the wheel by using hundreds of thousands of components available for reuse on the Internet. However, open source introduces challenges to managing, such as license obligations, finding the best software for your needs, security vulnerabilities, scalability, maintenance, and version proliferation. Keep in mind that you do not realize cost savings with open source until you are able to replace or forgo other more expensive options as many companies are using open source in addition to other software. Also, do not forget to consider if you must increase resources to support open source software.

Service Oriented Architecture

Service Oriented Architecture (SOA) is an architectural paradigm that allows you to build applications with reusable components, which is similar to building blocks.
It is highly interoperable, loosely coupled, and encapsulated units of work that link or combine resources on demand. It provides a flexible application architecture that is easier, faster, and less expensive to change. Like any new approach, it is a major change, a challenge to get started, and is not a fix-all. However, evaluate using this architecture style if you have significant areas of custom development because the total cost of ownership can be less.

Mixed Development

Many companies are finding significant cost reduction by mixing development as necessary and using pieces of open source, third-party code, SOA components, outsource provided, and custom code. For example, when developing applications for online ordering, companies will frequently use a service for all the handling of credit card information. Payment Card Industry compliance requirements are very expensive if a company chooses to process and store credit card information internally rather than using an outsource provider. Another example is a company that liked but found it was too expensive for its budget and needs. They chose to buy the development tool at a fraction of the cost of to develop the pieces of the system they needed.

Revenue Generation

Look at getting royalties from your custom software developments. If you have written custom add-ons to software packages, consider selling the software back to the vendor or other companies. Consider the possibility that IT can generate revenue. The one caution is that you do not want your IT department to become a software vendor that distracts from providing the business with a unique competitive advantage. This also diminishes your competitive advantage if your competitors are able to purchase the same functionality. One example is a company that wrote an extensive product configurator to handle a complex product structure. The vendor was interested in the enhancement as part of its standard product as other customers had requested the capability. The company was able to sell it back to the vendor in exchange for additional software licenses and modules. The enhancement became part of the vendor's standard offering that also helped the company maintain and enhance the modification without the high internal cost of custom software.

Focus on Business Process Improvements | SOFTWARE IMPLEMENTATION

We have all heard the horror stories where a company has spent $50 million on implementing new software and only realized $10 million in benefits. As stated previously, most of the implementation costs are typically in the deployment, not the technology. Similarly, you realize 75 percent of the benefits in the deployment, not the technology as shown in Figure 1. In implementing new software, many companies focus on the software and hardware when focus should be on the business process improvement and redesign, as that is where you realize the true benefits. Companies that have focused on the process and people benefits have realized exponential payback from software implementations. For example, when implementing new software, one company initiated a vendor certification program whereby vendors who achieve exceptional levels of reliability, timeliness, completeness, and quality begin managing the product's inventory levels at the distribution center and the stores. Eventually the inventory is all vendor consigned and paid without a vendor invoice based on the store sell-through reports, which results in tremendous cost savings for the business.

Figure 1: Sample implementation benefits
The following are examples of ways that companies have redesigned business processes to realize true cost savings:
  • Faster cycle times
  • Fewer handoffs
  • Fewer steps in the process
  • Fewer decisions
  • Less duplication
  • Minimize delays
  • Minimize discrepancies
  • Allow fewer exceptions
  • Automate manual forms and activities
  • Automate workflows by using conditional rules to drive different processes
  • Capture data at the source
  • Take advantage of real-time processing and information
  • Centralize control, effort, responsibilities for speed, and efficiency
When you are finished implementing new software, you are never really done, as the business process improvement must continue. Always raise the bar for cost improvements.