ecaminc.com

  • Increase font size
  • Default font size
  • Decrease font size
Home Blog: Back From Red General Blog Do Not Build Extensible Systems
E-mail Print PDF
RSS

System Extensibility

Yes, I am on that soapbox. Ensuring that maintainability and adaptability are part of a system is a "best practice," extensibility is not. To the extent that a highly structured system is extensible, that is the end of any commitment to building for the future.

Adding hooks and stubs for something that may not happen, confuses and clutters the design of the resulting system. Building and running prototypes wastes time. Making a system extensible adds significant undefined scope. The reason is that no one knows what the future will bring. Furthermore, how can it be tested if the systems it is interfacing with are not defined?

This is one of the better philosophical underpinnings of the Agile methodology. Do not build for the future. Jim Highsmith said it well in his book Agile Project Management, "Simple design means valuing adapting over anticipating. This means designing for what we know today and then responding to what we learn in the future." Build a clean structured product and refactor components to account for current changes, however, leave the future for that, the future.

Leaving room in a hardware design for extension (i.e. ensuring the interfaces have expansion room) or ensuring software has the capability to adjust to areas known to be volatile, is perfectly sensible. Consideration for some yet-to-be-defined standard is over complicating and adding time to the design, additionally building and testing something that may need to be completely thrown away and rebuilt.

Too many engineers want to make their system fit the future by anticipating where and how the system may be used in the future. This is often hidden in what is simply referred to as "implementation details". The project's management and even the customer are left out of the decision. However, this is a huge area for internally induced scope creep, additional risk and increased cost. This is a recipe for project failure.

Delicious Delicious

Add to Technorati Favorites

Anticipation should be for areas of known change. Even this should be clearing called out so that the project team and the customer understand the work involved in its design and implementation. If they choose spent their time and money in others areas, that is their choice.  The Project Manager will need to work with the technical team and their functional managers to instill this philosophy.

Tags: 

©2009 eCameron, Inc. BackFromRedTM and Back From RedTM are trademarks of eCameron, Inc. All rights reserved.

Previous Blog Next Blog
 

Add comment


Security code
Refresh


Project Failure Insight:

The following blogs regularly have articles on project failure, recovery and good management practices.
Chris Curran
CIO Dashboard
Michiko Diby
Preventing Project Failure
John Estrella
Dr. John A. Estrella's Blog
Mike Krigsman
IT Project Failures on ZDNet
John F. Moore
Random Thoughts of a Boston-based CTO
Roger Sessions
Simple Architectures for Complex Enterprises

Not in the US?
Don't want a personalized copy?
No problem. Rescue the Problem Project is available in your local bookstore and online around the world. You can even buy it as an eBook and start reading in minutes! Here are some options:

 

Amazon logo
Book or Kindle
Flag of Canada Flag of the United States
North America
Flag of the United Kingdom Flag of Ireland
United Kingdom
Flag of Germany
Deutchland
Flag of France
France
Flag of Italy
Italia
Flag of the PRC
中國
Flag of Japan
日本の
Barnes and Noble Logo
Book or Nook
Sony Reader Store logo
Sony Reader
Worldwide: Many other
book sellers worldwide.

Suggested Books

Many of these books have reviews in the "Books to Read" section of this site.

Critical Chain
by Eliyahu Goldratt
BFR Class Image

Earn PDUs with the online class Recovering Failing Projects