Berdasarkan pengalaman saya: karena Anda tidak dapat menghilangkan ketergantungan perpustakaan, Anda dan tim Anda harus cukup tahu untuk menyelesaikan masalah.
Sebagai programmer, kita punya sedikit waktu, jadi kita harus memilih yang memiliki prioritas tertinggi. Masalahnya harus diselesaikan, secepat dan selembut mungkin. Hanya alasan inilah yang membuat "mempelajari segala sesuatu berjalan lancar" agak berlebihan.
Yang ingin saya tambahkan di sini adalah "ketergantungan". Sebagai sebuah komunitas, kita semua tergantung pada orang lain. Kami mendukung Giants untuk membangun aplikasi kami: Java, .NET, API ... Dan kami percaya pada Giants tentang pekerjaan mereka; karena itu bekerja untuk banyak orang. Jika Anda memiliki masalah tentang kerangka kerja, atau API, ada peluang bagus bahwa orang lain menghadapinya di suatu tempat, dan ada solusi / penyelesaiannya.
Satu-satunya masalah di sini: mungkin, di suatu tempat, dalam kriteria terbatas Giants runtuh.Misalnya, flash tidak didukung di beberapa OS, dan ada banyak hal yang tidak dapat kami lakukan tanpanya. Kemungkinan ini lebih dari nol, tetapi dalam hal ini kita memiliki hal-hal kecil yang dapat kita lakukan. Hanya dalam kasus-kasus ini, pengetahuan tentang "apa yang ada di balik tudung" terbukti bermanfaat, karena menunjukkan di mana masalahnya sebenarnya dan dapat menciptakan penyelesaian yang besar; tapi saya tidak yakin waktu yang kita investasikan benar-benar sepadan.
Untuk mengatasi kemungkinan itu, saya pikir ada solusinya: karena sebagian besar programmer dapat dengan mudah menangkap "pekerjaan permukaan" perpustakaan, dan hanya kadang-kadang kita benar-benar membutuhkan seseorang yang sangat paham: biarkan membagi tim untuk melakukan itu. Mencoba untuk membentuk sebuah tim yang masing-masing telah ahli tentang 1,2 perpustakaan / alat / "keahlian" yang berguna yang terlibat : seseorang memiliki pengalaman yang baik tentang jQuery, seseorang telah berspesialisasi dalam database, ... Ini akan banyak membantu dalam meminimalkan risiko.