My team and I develop and application which uses a number of third-party libraries to fulfill certain common functions. (It's a Java application and uses a number of Apache Commons libs, Log4j, etc.)

I have been asked to justify the use of third-party libs as opposed to coding everything in-house. I have explained that it is standard practice in software development, that it reduces the need to write and test our own code, and that the libs' long history and "many eyeballs" mean that library code is likely to be more reliable than our own.

My explanation is all well and good (IMHO!) but is there a more formal explanation of why using third-party libs is generally good practice — in a book, or a web page by a respected developer, for example?

(Edit: Unlike the question marked as duplicate, I'm not after a bunch of opinions. I'm specifically after a well-respected source I can cite to back up the prevailing opinion. However, I've just been pointed at the FAQ which explains that asking for off-site resources isn't allowed, so apologies for posting this question.)

  • 1
    Show them the money. – Robert Harvey Apr 27 '15 at 9:36
  • 2
    You could add "everybody does it" as a reason. Commercial products like Oracle Weblogic and IBM Websphere are full of open source libraries. Good luck with finding a reference! – kiwiron Apr 27 '15 at 9:38
  • 4
    The request "to justify the use of third-party libs as opposed to coding everything in-house" is a bogus request, and you should look for the ulterior motives behind it. Someone is either incredibly dumb, or they are trying to get you fired. – Mike Nakis Apr 27 '15 at 10:11
  • 3
    Why are non programmers getting involved in highly technical decisions @IanRenton? And how are they going to evaluate whatever technical source you throw at them? I think your explanation is as good as it gets for non programmers. – yannis Apr 27 '15 at 11:29
  • 2
    Ask then why they are using a 3rd party Operating System and not writing their own in-house . A library is not fundamentally different except in size. – gbjbaanb Apr 27 '15 at 15:19

This is a very broad question which can only receive a broad answer about software reusability.

It all started back in 1968, with Douglas McIlroy's (personal website, and wikipedia) address at a NATO conference on software engineering, the content of which can be found today in a book called "Software Engineering, Report on a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968", Scientific Affairs Division, NATO, Brussels, 1969.

The text of interest has been scanned and can be found on the professor's site, under the title "Mass Produced Software Components".

Of course, a lot more has been written on the subject since then, for example a quick search yields documents on software reusability by Microsoft Research and other notable sources, but all these documents reference McIlroy's first paper, so you can search for its title to find documents that reference it.

  • I'll be honest, I didn't expect such a good answer given your less-than-sensitive comment on the original question. – MetaFight Apr 27 '15 at 12:02
  • @MetaFight this is an issue I have in general with my life. I often come across as belligerent, while I do not intend to. Thanks for commenting on this. – Mike Nakis Apr 27 '15 at 12:05
  • I've been told I come across as abrasive :) Communication is a hard problem. – MetaFight Apr 27 '15 at 12:07

Not the answer you're looking for? Browse other questions tagged or ask your own question.