Руководство командой разработчиков программного обеспечения


История 16. «Делаем все по правилам!»


Симптомы:

  • Программист стремиться сделать наиболее общее решение задачи, учесть все возможные последующие изменения и расширения.
  • Старается разработать самый быстрый алгоритм, требующий минимальных ресурсов.
  • Использует в решении все лучшие практики, паттерны проектирования, самые новые инструменты.

Диагноз. «Зло преждевременной оптимизации». Причина: программист не научился управлять приоритетами. Не различает важные и не важные дела. Низкая эффективность. Для решения задач в срок постоянно не хватает времени. Сверхурочные. Раздражительность. В результате появляется большой и проблемный код.

Рекомендации. Более четко формулировать цели и расставлять приоритеты. Определить конкретные критерии оценки результата, директивное управление. Нацеливайте программистов на правильное решение задачи максимально быстрым способом. Опыт свидетельствует, что более чем в 90% случаев ее не придется переделывать. Если работа вашей подпрограммы занимает только 1% общего времени выполнения, то, затратив сколько угодно времени на оптимизацию ее алгоритма, вы не добьетесь улучшения системных характеристик более чем на 1%. Такой выигрыш вряд ли стоит того, чтобы тратить время на оптимизацию. Со всеми остальными «программистским наворотами» дело обычно обстоит так же.

Неадекватное понимание целей конкретного проекта может привести к проблемам. Большинству опытных программистов свойственно стремление решать свою задачу не просто хорошо, а как можно лучше. Доводя свою программу до совершенства, программист способен затратить гораздо больше времени, чем реально требуется на задачу. Это стремление всегда вступает в конфликт с коммерческой стороной профессионального программирования, как способа получения прибыли. С точки зрения заказчика, качественная программа это та, которая удовлетворяет заявленным требованиям. Не более того.

Второе условие эффективной работы программиста — умение делать порученную работу. Как правило, начинающие программисты мало что умеют. Их главный метод программирования — копирование чужих образцов (Copy/Paste).


Начало  Назад  Вперед