The Keep It Simple Model

Keep It Simple: a good and elusive goal. The expression has never been so relevant or important as applied to enterprise software development. This special kind of software is both highly complex and highly abstractable, because of it’s many and diverse stakeholders; it’s production is often more an issue of finding consensus than of overcoming technical hurdles.

It’s ironic that Keep It Simple is itself a subtle goal. That’s because taking the highly complex collections of use cases that make up the underlying business driver justifying a development effort, create a complex scenario for the software project to address.

Architecturally, Keep It Simple means building a platform only to the point that it has the minimum structure required for the immediate need; in other words to meet the requirements of the immediate project, while at the same time leaving the field as open as possible for as many different future uses and directions in the future, as possible.

But from a software team perspective, this approach has a completely different and possibly more important meaning; this is the point of this post. An enterprise is a large, complex entity; it is a collection of businesses. When a software development project is justified by business drivers, it is often not the first time the enterprise as a whole has addressed these needs, and created a solution. These prior efforts were likely smaller in scale, lower in capacity, completed more quickly, or used to address a smaller, less complex subset of use cases than the current project. Maybe, and this is frequently the case, the previous effort was completed by a different team or different business unit within the enterprise.

This prior effort has lots of value. It can be used as a model, a template, for the current effort, for discussion, lessons learned, and as an example. The prior effort is a lever that can be used to launch a much more complex or capable version. It’s a discussion point that can serve as common ground for the analysts and developers, and all teams involved, in order to move much more quickly in the current effort.

Enterprise software projects are never complete, each project is more like a further iteration of itself, a widening and reinforcement of the paths that already existed. Keep It Simple represents this process. It is a statement of the strength of the opportunity for the software to fulfill it’s promise to advance the enterprise: if something is worth doing, do it rapidly to the margin it is useful and no more, and then wait for the margin to increase.

Posted in Uncategorized