30.12.11

How to make reusable components/features/blocks or whatever?

Today out development group had a short discussion of a new feature on our system for the next release. As soon as I understood the requirement, I proposed a solution to just reuse one of the feature I implemented about about 15 months ago, which has been working ever seen and without any changes after I finished it.

To be honest, that feature was designed totally for another feature. However, when I designed the module, I just thought in a very generic way. I almost forgot the feature itself, by just working with an abstract requirement.

Developing a specific feature is much easier, because it would be straightforward. I totally agree with this. I don't try to make things very generic to support many scenarios. Instead, I just simply abstract the requirement to remove most of specific scenario out of my scope and try to support my abstract scenario. In another word, I just support one scenario, but an abstract one. In this way, I don't have problem to develop a GENERIC system by considering too many things. However, my solution does support many scenarios.

No comments: