По моему опыту: поскольку вы не можете устранить библиотечную зависимость, вы и ваша команда должны знать достаточно, чтобы решить проблему.
Как программисты, у нас мало времени, поэтому мы должны выбрать тот, который имеет наивысший приоритет. Проблема должна быть решена как можно быстрее и деликатнее. Только эта причина делает «изучение всего, что работает» несколько излишним.
Здесь я хочу добавить «зависимость». Как сообщество, мы все зависимы от других. Мы стоим на Giants для создания нашего приложения: Java, .NET, API ... И мы доверяем Giants в их работе; потому что это работает для очень многих людей. Если у вас есть проблема с фреймворком или API, есть хороший шанс, что другие где-то сталкивались с этим, и есть решение / обходной путь.
Единственная проблема здесь: может быть, где-то, по ограниченным критериям, гиганты рухнули. Например, flash не поддерживается в некоторых ОС, и есть много вещей, которые мы не могли бы сделать без нее. Эта возможность больше нуля, но в этом случае у нас есть небольшие вещи, которые мы можем сделать. Только в этих случаях знание о том, «что скрывается за капотами», оказывается полезным, поскольку оно указывает на то, где проблема действительно и может создать большой обходной путь; но я не уверен, что время, которое мы инвестируем, действительно того стоит.
Чтобы справиться с этой возможностью, я думаю, что есть решение: потому что большинство программистов могут легко уловить «поверхностную работу» библиотеки, и только иногда нам действительно нужен кто-то, кто очень хорошо понимает: давайте разделим команду, чтобы сделать это. Попытка объединить команду, в которой каждый испытал около 1,2 полезных библиотек / инструментов / «наборов навыков», которые включали : у кого-то хороший опыт работы с jQuery, у кого-то специализация на базе данных, ... Это очень поможет в минимизации рисков.