Según mi experiencia: como no puede eliminar la dependencia de la biblioteca, usted y su equipo deben saber lo suficiente para resolver el problema.
Como programadores, tenemos poco tiempo, por lo que debemos elegir el que tenga mayor prioridad. El problema debe resolverse lo más rápido y suave posible. Solo esta razón hace que "aprender todo sobre las cosas funcione" algo redundante.
Lo que quiero agregar aquí es "dependencia". Como comunidad, todos dependemos de los demás. Nos apoyamos en los Gigantes para construir nuestra aplicación: Java, .NET, API ... Y confiamos en los Gigantes sobre su trabajo; porque funciona para mucha gente Si tiene un problema con el marco o API, hay una buena posibilidad de que otros lo hayan enfrentado en algún lugar, y hay una solución / solución.
El único problema aquí: tal vez, en algún lugar, en un criterio restringido, los Gigantes colapsaron. Por ejemplo, flash no es compatible con algunos sistemas operativos, y hay muchas cosas que no podríamos hacer sin él. Esta posibilidad es más que cero, pero en este caso tenemos pequeñas cosas que podemos hacer. Solo en estos casos, el conocimiento sobre "lo que está detrás de las capuchas" resulta útil, ya que señala dónde está realmente el problema y puede crear una gran solución; pero no estoy seguro de que el tiempo que invertimos realmente valga la pena.
Para hacer frente a esa posibilidad, creo que hay una solución: porque la mayoría de los programadores pueden captar fácilmente el "trabajo superficial" de una biblioteca, y solo a veces realmente necesitamos a alguien que comprenda muy bien: dejemos dividir al equipo para hacerlo. Tratando de comprender un equipo que cada uno haya experto sobre 1,2 bibliotecas / herramientas útiles / "conjunto de habilidades" involucradas : uno tiene buena experiencia sobre jQuery, uno se ha especializado en la base de datos, ... Esto ayudará mucho a minimizar los riesgos.