Home | Site Map
Software

In the twenty first century software developers have continued to refine the methodologies utilized to produce effective software. Two of the most commonly used methodologies are the Agile and RUP methods. In general, Ideal perfers the Agile process but in many cases, we employ a mixture of both.

The basic difference between these two methodologies is flexibility vs. rigidity but there is more to the story:

  • RUP: Rational Unified Process is best suited for larger projects where the requirements are clearly defined in advance. The potential pitfall is that in the real world, large projects can take a few years to complete and requirements change at a rate of about 1% a month on average. You may think your requirements analysis is iron-clad, but things rarely workout that way.
  • Agile: This methodology assumes that requirements will be changing during the development process and therefore, provides best-practices to meet said changes. The potential pitfall is that clients may feel that they can change the scope in a willy-nilly fashion, which may in turn pull the rug out from under your budget.

There are 4 phases to RUP:

  1. Inception: The scope of the project is defined and functional, data and user requirements are collected.
  2. Elaboration: All requirements are analyzed and an architecture framework is developed.
  3. Construction: The application is developed according to the baseline architecture and component testing is undertaken.
  4. Transition: The finished application is tested, fine tuned and installed on a production server for release to end users.

The Agile Methodology is driven by a modular process, wherein requirements are divided into modules and each module essentially becomes a project on it's own. Within this modular process, all phases are carried out for each module, including the requirements analysis, design, coding, testing and documentation of each module.

The following graphs help to illustrate these two methodologies: Graphs provided by Damnish Kumar, Software Architect, HTP, Inc.

RUP
  • Figure 1: With RUP, each iteration is typcially decided at the commencement of the project and very little flexibility is available.
Agile
  • Figure 2: This graph shows the modular process of the Agile Methodology. Modules are undertaken as individual units, developed and released.

In a perfect world, all software would be built using the RUP methodology, however, defining requirements in an ever-changing business world, in advance of developoment, is nearly impossilbe. Clear-headed project managers realize that changing requirements are inevitable and they plan accordingly. On larger projects, there are various means of planning for and accommodating changing requirements, but on smaller projects flexibilty is key.

At Ideal, we strive to reduce the timeframe of projects by asking the right questions during the requirements phase and then listen intently to the answers. In the end, all that really matters is that the clients expectations are met and Ideal delivers software that fits the business like a glove. This is a goal we have met on each and every project.

Why Invest in Custom Software?

The challenge of software is to make businesses more profitable by improving productivity and by allowing users to perform tasks that would otherwise be either difficult or impossible.

Word processing software replaced the typewriter and although users were not enabled to necessarily type faster, the benefit of other features such as saving files, editing, printing mulitple copies and spell checking greatly increased productivity.

Your business is full of processes, such as order processing and scheduling, but there is nothing so generic about these processes as word processing. They are unique to your business or your way of doing business.

Good software will further enable your staff to complete these processes and as important, empower them to do more - not just in terms of quantity, but also in terms of quality and capability.

Custom software is often the only solution to the unique processes within your business. You do things your way and off-the-shelf software knows nothing of those ways. So, typically, businesses like yours attempt to fit the proverbial round peg in a square hole, sometimes achieving better results than others.

This scenario rarely unfolks without aid from manual processes that support the off-the-shelf software you've chosen. Sure, the software was cheap, but employees and lost productivity are expensive.