Разрыв между кодом и его исполнением на реальном железе и сколько этого железа надо и какого конкретно
Одна из проблем, не только моё ИМХО - это относительно дешёвые вычислительные ресурсы.
---
Раньше отладка, Refactoring, покрытие тестами были необходимы хотя бы потому, что вот у вас 64MB RAM и вам нужно сделать так, чтобы и ОС работала нормально, и ваше приложение, как минимум. Память, про CPU я вообще молчу, были дорогими...Да и стоимость 1GB недешёвой.
---
Сейчас , довольно часто, вот что: "докиньте мне там памяти, что-то в Swap часто система уходить стала" или "файл подкачки почти весь системный том занял", да и "ядер там накиньте", а то, что твоё приложение, которое, вроде, должно быть мультипроцессорным, грузит один CPU...Примеров много.