Cóż, nie mogę się całkowicie zgodzić, bo musisz się o to martwić. W tym przypadku jedną z rzeczy, które uwielbiam w programowaniu, są przełączanie się między różnymi poziomami abstrakcji i wielkości, które szybko przechodzą od myślenia o nanosekundach do myślenia o miesiącach iz powrotem.
Jednak wyższe rzeczy są ważniejsze.
Jeśli mam wadę w kilku liniach problemów, które powodują nieprawidłowe zachowanie, prawdopodobnie nie jest to zbyt trudne do naprawienia. Jeśli powoduje to słabą wydajność, prawdopodobnie nawet nie ma to znaczenia.
Jeśli mam wadę w wyborze struktury danych w podsystemie, co powoduje nieprawidłowe zachowanie, jest to o wiele większy problem i trudniej go naprawić. Jeśli powoduje to słabą wydajność, może być dość poważne lub, jeśli to możliwe, wciąż znacznie mniej dobre niż podejście konkurencyjne.
Jeśli mam wadę w relacji między najważniejszymi strukturami danych w aplikacji, co powoduje nieprawidłowe zachowanie, to przede wszystkim mam poważne zmiany w projekcie. Jeśli powoduje to jego słabe działanie, może być tak źle, że byłoby prawie lepiej, gdyby zachowywał się źle.
I to właśnie sprawia, że znalezienie problemów na niższym poziomie jest trudne (naprawianie błędów na niskim poziomie jest zwykle łatwe, znalezienie ich może być trudne).
Rzeczy niskiego poziomu są ważne, a ich pozostałe znaczenie jest często poważnie zaniżone, ale blednie w porównaniu do dużych rzeczy.