Программист программисту – рознь. И это связано, в первую очередь, не с технической подготовкой. Давайте рассмотрим более подробно качества, которые делают программиста более ценным в глазах заказчика.

Программист должен решать бизнес-задачу заказчика

Казалось бы очевидно, но далеко не все реально помнят об этом. Труд программиста в итоге нужен для того, чтобы упростить чью-то жизнь. Именно ориентация на потребности конечного потребителя дает возможность программисту делать свой труд максимально эффективным. Это простой критерий “А как будет лучше для моего потребителя?”, и он будет отсекать все ненужное.

Различайте конечного потребителя и заказчика. Потребитель – это скорее всего клиент вашего заказчика (либо его сотрудник). Если конечному потребителю будет удобно и комфортно, то вы повышаете шанс, что потребитель “заплатит” вашему заказчику, а заказчик заплатит вам за проделанную работу.  Помните, что в итоге платит потребитель, а не ваш работодатель, и даже не заказчик.

Создает сопровождаемый код

Что значит сопровождаемый? Это тот код, который будет просто изменять и развивать. Дело в том, что любая система рано или поздно меняется. Очень часто бывает так, что вы выполняете текущее техническое задание (ТЗ), а заказчик уже готовит правки в новом ТЗ. Это нормальная ситуация.

Также хороший признак сопровождаемого кода – это когда вы через год смотрите на код и понимаете его без дополнительной траты времени.

Если вы написали кривой код, который невозможно читать и развивать, то очень вероятно, что в ситуации, когда надо будет этот код развивать, его просто перепишут заново (вполне возможно, что это будете вы сами). Зачастую это правильный подход, т.к. опытный программист понимает, что это упростит его поддержку в дальнейшем.

Как писать правильный код – надо просто соблюдать правильные практики программирования. Здесь мы это не будем рассматривать.

Задание. Поищите в сети аббревиатуры DRY, KISS, YAGNI. Если вы их хорошо изучите и усвоите, это уже будет большой шаг вперед.

Понимает зачем его решение

В чем-то это сходно с первым качеством. Здесь имеется в виду, что программист должен глубоко понимать смысл того, что он делает. Зачем вообще это нужно? Например, вам сказали сделать новый текстовый редактор. А чем не устраивает какой-то существующий редактор? В чем фишка? Кто его будет использовать? Почему он выберет наш редактор, а не существующий (например MS Word). Зная ответ на вопрос “Зачем”, вы будете принимать правильные решения, а также понимать ценность своей работы.

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

← Образ мысли программиста  Качества хорошего программиста ч.2 →