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.)
11
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.
3