DEV Community

Cover image for Overengineering
Arif Balaev
Arif Balaev

Posted on

Overengineering

Over engineering - проблема каждого.
Термин подразумевает создание более сложных вещей, чем этого требовалось. Ресурсы тратятся на менее важные вещи. Время проходит неэффективно. Ожидания не оправдываются, и ты огорчаешься. Узнаешь себя?

Откуда это берется?

  • Задача нечетко определена. Нет ясности, зачем ты это делаешь. Какую проблему решаешь? Решаются другие проблемы или тратится время на ненужное.
  • Плохая коммуникация. Бизнес меняется. Завтра появляются новые требования или задача устаревает. Если мы вовремя не получим обратной связи, мы потеряем время.
  • Перфекционизм. Все готово, но не идеально. Мы тратим время на поиск ошибок и задерживаем сроки.
  • Иррациональное мышление Мы пытаемся предвидеть будущее и облегчить работу. "Один раз сделаю и больше не буду трогать годами." Но мы смотрим слишком далеко и тратим время на "что если".

Последствия

  • Тратим больше времени. Время = деньги. Потеряли время - потеряли деньги.
  • Наше "Изобретение" нужно поддерживать. Чем дальше от даты создания, тем меньше помним, как это работает.
  • Не уложились в сроки. Задача устарела. Снижается мотивация и эффективность.

Выход

  • Не выдумывай и не планируй слишком далеко. Разработка решает проблемы бизнеса. Сделай требования прозрачными. Дай бизнесу, что он хочет, в кратчайшие сроки и получи обратную связь. Думай над оптимизацией, если это актуально. Почитай про Закон Парето.
  • Обзаведись критическим мышлением. Что мы решаем? Какой самый важный сценарий? Можно ли сделать решение проще и выполнить требования? Почему мы выбрали этот подход? Какие альтернативы мы могли бы выбрать?

Top comments (0)