In base alla mia esperienza: poiché non è possibile eliminare la dipendenza dalla libreria, tu e il tuo team dovreste conoscere 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ù rapidamente e delicatamente possibile. Solo questa ragione rende "apprendere tutto sulle cose" in qualche modo ridondante.
Le cose che voglio aggiungere qui sono "dipendenza". Come comunità, siamo tutti dipendenti dagli altri. Siamo in piedi sui Giganti per costruire la nostra applicazione: Java, .NET, API ... E ci fidiamo dei Giganti per il loro lavoro; perché funziona per così tante persone. Se hai un problema con il framework o API, ci sono buone probabilità che altri lo abbiano affrontato da qualche parte, e c'è una soluzione / soluzione.
L'unico problema qui: forse, da qualche parte, in un criterio ristretto i Giganti sono crollati. Ad esempio, il flash non è supportato in alcuni sistemi operativi e ci sono molte cose che non possiamo farne a meno. Questa possibilità è più di 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 si trova veramente il problema e può creare un grosso problema; ma non sono sicuro che 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 cogliere il "lavoro di superficie" di una biblioteca, e solo a volte abbiamo davvero bisogno di qualcuno che sia molto ben compreso: lasciamo dividere il team per farlo. Cercare 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 il database, ... Ciò aiuterà molto a minimizzare i rischi.