Sulla base della mia esperienza: dato che non puoi eliminare la dipendenza dalla libreria, tu e il tuo team dovreste sapere abbastanza per risolvere il problema.
Come programmatori, abbiamo poco tempo, quindi dobbiamo scegliere quello che ha la massima priorità. Il problema deve essere risolto, il più veloce e gentile possibile. Solo questa ragione rende un po 'ridondante "imparare tutto sulle cose".
Le cose che voglio aggiungere qui sono "dipendenza". Come comunità, siamo tutti dipendenti dagli altri. Ci troviamo sui Giants per costruire la nostra applicazione: Java, .NET, API ... E crediamo ai Giants del loro lavoro; perché funziona per così tante persone. Se hai un problema con il framework, o API, ci sono buone possibilità che altri lo affrontino da qualche parte, e c'è una soluzione / funziona.
L'unico problema qui: forse, da qualche parte, in un criterio ristretto i Giants sono crollati. Ad esempio, il flash non è supportato in alcuni sistemi operativi, e ci sono molte cose che non potremmo fare a meno. Questa possibilità è più che zero, ma in questo caso abbiamo piccole cose che possiamo fare. Solo in questi casi, la conoscenza di "cosa c'è dietro le cappe" si rivela utile, in quanto indica dove il problema è veramente e può creare un grande work-around; ma non sono sicuro che il tempo investito ne valga davvero la pena.
Per far fronte a questa possibilità, penso che ci sia una soluzione: perché la maggior parte dei programmatori può facilmente catturare il "funzionamento superficiale" di una libreria, e solo a volte abbiamo davvero bisogno di qualcuno che abbia una comprensione molto buona: lascia che la squadra divida Fai quello. Cercando di comprendere un team che ognuno ha sperimentato circa 1,2 utili librerie / strumenti / "set di abilità" che ha coinvolto : uno ha una buona esperienza su jQuery, uno si è specializzato con database, ... Questo aiuterà molto a ridurre i rischi.