Главный навык, который появляется только с опытом — это понимание, что «тут что-то может пойти не так». Думаю, это справедливо для любой специальности. И чем больше опыт, тем больше вариантов того, что именно может пойти не так, есть в голове у разработчика. Опыт — сын ошибок трудных, и разработка ПО — не исключение.