Erich Gamma on Flexibility and Reuse

Artima is publishing a series of articles with Erich Gamma. Part 2 is out and it is an interesting conversation regarding flexibility, reuse and frameworks.

Of particular interest are these bits:

“We prefer many small frameworks over one heavyweight framework.”

“Because the bigger the framework becomes, the greater the chances that it will want to do too much, the bigger the learning curves become, and the more difficult it becomes to maintain it.”

This makes sense, and it contrasts what I’ve experienced. However, doing this is far more difficult then it sounds. Smaller frameworks allows for more choice and plug-ability, but you have to have an intelligent and productive team to understand how to take advantage of this flexibility without getting bogged down with all of the choices.

On the other hand, a larger framework that does everything can have its merits, especially when there is a team of people that need to use it. It creates conformity. However, to me this is just an initial benefit. As the framework grows in complexity and strays from its core functions, the less benefit it starts to produce. As Eric states, it becomes harder to maintain, and harder to learn. But when do we know this is happening? Is there a clear indicator?


About this entry