SOLID dogmatizmi, yazılım dünyasının sessiz sedasız yayılan bir sorunudur. Bu beş prensibin her biri ayrı ayrı savunulabilir gerekçelere dayanır. Ancak tümünü her kod satırına zorla uygulamak, prensiplerin amaçladığı temizliğin tam tersini üretir. İddia şu: SOLID, bir hedef değil, bir bağlam meselesidir. Kanıtlara bakalım. Tek Sorumluluk Prensibi'ni ele alalım. Bir sınıfın yalnızca bir değişim nedeni olması gerektiği söylenir. Bu ilke küçük, odaklı sınıfları teşvik eder. Peki on beş satırlık basit bir yardımcı sınıfı dört parçaya bölmek ne kazandırır? Dosya sayısı dörde katlanır, geliştirici kodu takip etmek için dört dosya arasında gezinir, anlaşılırlık düşer. Aynı şey Açık/Kapalı Prensibi için de geçerlidir. Her olası değişim için soyut sınıf ve arayüz inşa etmek, gelecekte ne değişeceği bilinmeden yapılan bir yatırımdır. Kod henüz kimse tarafından okunmadan genişleme noktalarıyla şişirilebilir. SOLID dogmatizmi bu noktada en çok zarar verir: gerçek bir ihtiyaç olmadan yazılan soyutlamalar, değiştirilmesi gereken her yerde ağır bir yük taşır. Bağımlılık Tersine Çevirme Prensibi de benzer bir tuzak kurar. Her somut sınıfın bir arayüzü olması gerektiği inancıyla hareket edildiğinde, test etmek için bile olmayan arayüzler ortaya çıkar. Basit bir dosya okuyucu sınıfı için `IFileReader` arayüzü oluşturmak ve bunu enjekte etmek, ne esneklik ne de test kolaylığı sağlar; yalnızca katman sayısını artırır. SOLID prensipleri bir rehber olarak değerlidir. Ama bu prensiplere körce uymak, kodu kim okuyacak diye sormadan sınıf hiyerarşisi kurmak, yazılımı daha az değil daha çok karmaşık yapar. Prensip, bağlamın önüne geçtiğinde araç olmaktan çıkar ve engel haline gelir.