views:

93

answers:

6

When making the case for library usage within an application, what arguments lead to the greatest success? How have you successfully helped co-workers see the benefits of library usage?

Specifically in the context where:
1. The library is open source.
2. The library is for JavaScript, HTML, CSS.
3. A team of developers has a culture where they believe they have seen it all, think they can program it all, and are generally suspicious of things outside their comfort zone (what they understand and have skill in).
4. The development team has kludged together 10+ years of this infrastructure type of code.
5. This homegrown code is embedded in server-side code.
6. The team does not use a web-development IDE.
7. The target user audience is currently 99.9% IE 6.0.

+3  A: 

You know, the best arguments I come up with for this are that no matter how good your team is, bugs are inevitable; with an open source library, somebody has already found the bugs and fixed them. That's by far the most persuasive argument I've used in that precise sort of situation. No matter how self-confident your developers are, they have to admit that even they have bugs in their code occasionally, and using code that's already been extensively tested and debugged removes much of that indeterminacy.

McWafflestix
+1  A: 

The two best are related (for me) -

  • already developed and tested
  • this lets you focus your time/energy on your core-competency/problem domain

It is sometimes an uphill battle and you have to accept the fact that you might not win it.

Tim
+1  A: 

It saves time and money are pretty good arguments. You will have to prove that to them though.

Itay Moav
+3  A: 

If you're planning on doing anything interesting with javascript, and your team doesn't think they need a javascript library, then they're definitely inexperienced in that arena.

They're obviously unaware of the hell that is browser incompatibility issues, especially with respect to IE6.

When you're working in the browser, you're not working with one platform, you're working with 4 quirky, incompatible platforms.

Frank Farmer
This is a really good point. I'd be tempted to let them try the IE6/css/javascript hell. See if they really are as smart as they think! :-)
IainMH
@IainMH: That's very cruel, and extremely funny! :-)
McWafflestix
+3  A: 

Your colleges are suffering from a case of NIH syndrome (Not Invented Here).

It's common on all sorts of task like when creating data access code. They think that they can do it better than the massive community effort something like (N)Hibernate has been over 10 years.

Libraries should stop you from having to re-invent the wheel (badly) and concentrate on the more interesting stuff.

Case-in-point, today I had to review some code from a third party. It had a re-implementation of System.DateTime and it was chuffing awful.

IainMH
+1  A: 

I think I suffer some form of NIH. My problem with most libraries: they are too fat. They contain a lot of functionality I never use. My strategy is to copy the functions I need from libraries, sometimes adjust them to my own needs, and leave the rest. This way I collected a fairly eclectic library of functions for my own use, which I try to divide in small functionally ordered modules (for example a domwrapper, a tooltip module etc.).

Moreover, I really like to know what I'm doing, and using libraries this isn't allways clear or pretty time consuming to find out.

KooiInc