Friday, April 11, 2008

Invented elsewhere syndrome

binoculars.jpg Is there something like the opposite of the "not invented here syndrome"? If there is, I think I am suffering from it...

Each time somebody shows me some code that looks slightly frameworkish, a home-brewn solution that looks toolish or a self-made process-assistance, I start thinking "you should not have to do this ... there must be an existing solution for this ... you must not do this if somebody else already solved this ..."

And I compulsively start investigating and digging on the net looking for existing solutions and trying to understand them ... evaluating different alternatives ... trying to find the optimum ... spending a lot of time and energy, while not doing anything productive.

I think I have to find a better balance between this "invented elsewhere syndrome" and plain pragmatism!

2 comments:

  1. Only because somebody did that before is not a reason for not doing it on your own - I can see plenty reasons:

    1. The other person solved it bad (buggy, bad concept, ...)

    2. The other person solved it with other background and other thoughts for future application.

    3. Your needs (regarding features or performance) are simply different which cannot be solved by just providing some code snippet.

    4. You want to reduce library dependencies and the other person is just using different libraries (for maybe good reasons) than you do (IMHO good example: Java logging libraries).

    5. You are already annoyed discussing code changes or new requirements with original developers who maybe don't want to implement things as you like it.

    6. The other person may change the license of a future version.

    7. There would be poor invention if everybody would just use existing solutions and build on them.

    ...

    ReplyDelete
  2. @Martin:
    You are completely right and all your reasons are certainly valid.

    However the important points are:

    A) You have to be aware of the existing solutions.

    B) You have to know the existing solutions well enough, that you can evaluate the cost-benefit ratio of redoing it

    C) You have to be completely honest and self-critical. Be sure to not yield to your not-invented-here-syndrome!
    The best thing is if you have to argue for your solution in front of some sceptical peers.

    In too many cases I have seen people reinvent the wheel either out of utter ignorance of existing solutions or because of a not-invented-here-syndrome combined with self-overestimation.

    I think progress is mainly made by building upon existing solutions and insights: nanos gigantum humeris insidentes.

    ReplyDelete

Related Posts Plugin for WordPress, Blogger...