Posts Tagged skeleton implementation

Keeping It Simple Sux : still seeking sly solutions?

It is much easier to develop a complex solution to a problem than to develop a simple one.

Unfortunately, complex solutions are also brittle and more expensive to develop, maintain and extend.

Sometimes, the path of least resistance in development involves skipping initial prototyping and exploratory programming work and heading directly to the planning stage. Often this is motivated by external pressure to pick a completion date immediately.

A skeleton system is a response to this challenge.

An application is constructed which demonstrates the minimal functionality end-to-end. Development then becomes the process of putting meat on the bones.

When expanding the functionality of this system, each component’s functionality is expanded to the level needed by the application. Components grow with the application.

Since components are always in use, their level of complexity is held in check by the needs of the application.

Because components are only developed to meet the needs of the application, resources can be used more effectively.

Once software is in production, it can be almost impossible to replace.

One reason for this is the obvious risk of deploying new software as opposed to the less obvious risk of leaving a fragile system in place.

The software industry has produced a number of horror stories about full blown project re-implementations. Building up test coverage and refactoring an existing solution is a very practical alternative.

The legacy system provides a well documented feature set for the refactored implementation.
The goal should be to produce a drop-in replacement which has the test coverage to back it up.

An effort of this sort has a high probability of success and is a sort of alchemy to convert a complex implementation into a simple one.

Comments (1)