Глава 1. Цели и задачи

В любой профессии есть мастера своего дела, которым можно поручить что-то и забыть об этом — ты знаешь, что они всё сделают как надо, а если будут проблемы, то либо сами их решат, либо своевременно поставят о них в известность. А есть посредственные работники, которых постоянно требуется проверять, чтобы они делали что надо и как надо.

В чём главное отличие мастера от посредственного работника? Я считаю, что главное отличие в том, что они делают:

  • посредственный работник — выполняет задачу

  • мастер — достигает цели

К сожалению многие не различают цели и задачи, часто используя эти слова как синонимы. А между тем разница между ними принципиальная.

Алан Купер в книге «Психбольница в руках пациентов»[1] пишет:

Цель любой деятельности всегда лежит за пределами самой деятельности. Цель — это конечное состояние, тогда как задача — переходный процесс, необходимый для достижения цели.

Пример. Вы хотите пригласить к себе в гости друзей, но в квартире у вас не прибрано, поэтому вам сперва надо навести порядок. Ваша цель — приятно провести вечер с друзьями. Задача — уборка в квартире.

Верное и качественное выполнение задачи не гарантирует к достижения поставленных целей.

У любого проекта по разработке ПО всегда есть цель, и это — не разработка ПО. Создаваемое ПО — лишь инструмент, с помощью которого планируется решить какие-то задачи, чтобы достигнуть поставленных целей.

Важно

Цель — единственное, что по-настоящему важно. Всё прочее важно лишь постольку, поскольку оно служит достижению цели.

К цели чаще всего можно прийти разными путями. И задачи — это преграды на пути к цели. Высший пилотаж в любой области — достичь цели, избежав решения задач. Применительно к программированию: самый лучший код — это код, который получилось НЕ писать.