Чтобы люди знали, чего они хотят.
Долгое время я думал, что буду разговаривать с людьми, они будут описывать проблему или рабочий процесс, а я буду вставлять их в код и автоматизировать. Оказывается, каждый раз, когда это происходит, то, что они думали, что они хотели, на самом деле не то, что они хотели.
Изменить: я согласен с большинством комментариев. Это не технический ответ и может не соответствовать тому, что искал спрашивающий. Это не относится только к программированию. Я уверен, что это не мое давнее предположение, но это было самое поразительное, что я узнал за 10 коротких лет, которые я делал. Я уверен, что это была чистая наивность с моей стороны, но то, как мой мозг был подключен, и учение и опыт, которые я получил до прихода в мир бизнеса, заставили меня поверить, что я буду делать то, что отвечал; что я смогу использовать код и компьютеры для решения проблем людей.
Я думаю, что этот ответ похож на ответ Робина о непрограммистах, понимающих / заботящихся о том, о чем я говорю. Речь идет об изучении бизнеса как гибкого, итеративного, интерактивного процесса. Речь идет об изучении разницы между тем, чтобы быть обезьяной кода программирования и разработчиком программного обеспечения. Речь идет о том, чтобы понять, что между этими двумя понятиями есть различие, и чтобы быть действительно хорошим в этой области, дело не только в синтаксисе и скорости печати.
Изменить: Этот ответ теперь вики-сообщества, чтобы успокоить людей, расстроенных этим ответом, давая мне репутацию.