В общем случае нужно знать и уметь применять правильные структуры и алгоритмы и писать поддерживаемый код.
Многое зависит от сложности программы. Для простой программы действительно быстрый набор и короткие названия переменных что-то дадут. Но простые программы никому не нужны.
В сложных программа на скорость разработки влияет ее архитектура.
Если программа "красивая", модульная, слабо связанная, то добавить в нее очередную фичу из ТЗ дело недолгое.
Если это тугой клубок спагетти, то время реализации может приблизится к бесконечности.
Программирование, как и любая инженерная дисциплина, это управление сложностью. Если вы способны в голове удержать на каждом из уровней абстракции работу программы, то вы сможете эффективно работать с ней дальше.
Если же, делая безобидную правку, у вас в неожиданном месте вылезает проблема, то вы потратите кучу лишнего время на разбор полетов, что отрицательно скажется на общей скорости работы.
Итого: алгоритмы и структуры, паттерны проектирования, слабо связанный тестируемый читаемый код, тесты, внедрение зависимостей, git + git-flow, знание надежных библиотек и фреймворков и умение их применять.
Макконнелл. Совершенный код.Симан. Внедрение зависимостей с .NETБанда четырех. Паттерны проектирования.
P.S. Не помню точно, может как раз у Макконнелла сказано, что программист на работу непосредственно с кодом тратит 20% времени. Остальные 80% заняты обдумыванием.
Так что логичнее тренировать голову, а не руки.