September 28, 2024

Как качественно сформулировать техническое предложение по изменениям в проекте

Материал для тех, кому часто требуется выступить с предложением технических изменений в проекте ✌

Кто пробовал изменить что-то в устоявшемся проекте, тот знает — любые изменения воспринимаются окружающими критически, и полезность ваших изменений надо еще доказать.

В особенности когда проект существует много лет и все привыкли что проект работает пускай не идеально, но зато предсказуемо и понятно.

Такая уж природа человека 🤷‍♂️

Чтобы предложение изменений причиняло как можно меньше боли окружающим и вообще было воспринято конструктивно, я сформулировал для себя чек-лист, цель которого:

  • Донести важность изменений
  • Сохранить адекватность повествования
  • Не давать повествованию уйти в сторону
  • Достичь хорошего соотношения времени/полезности в выступлении

Итак, чек-лист адекватного предложения изменений:

Сформулируй тему

Тема должна быть узкой и предлагать конкретное решение проблемы. Широкая тема даёт возможность перескакивать с одного места на другое, из-за этого становится сложно понять общий смысл.

Широкие темы, где мысль может скакать:

  • Улучшение процесса тестирования
  • Повышение производительности приложения
  • Использование паттернов проектирования

Узкие темы, где мысль будет идти по четкой траектории:

  • 3 утилиты способные ускорить написание тестов
  • Использование хуков для мемоизоции снижает нагрузка на коллстэк
  • Как внедрение MVC сделает приложение более устойчивым к рефакторингу

В контексте презентации, тема должна быть сформулирована так, чтобы презентация умещалась в 5-7 простых слайдов.

Определи цель

Целью выступления должно быть позитивное изменение текущего положения дел.

Не стоит коммититься на что-то амбициозное, нужно выбрать простую, понятную и достижимую цель, которую можно внедрить без лишней боли.

Абстрактная амбициозная цель:

  • Помочь разработчикам писать код лучше и не допускать ошибок
  • Предложить рефакторинг лейаутов

Конкретная цель:

  • Убедить разработчиков включить/выключить линтер-правила
  • Доказать что доработка лейаута значительно сократит код-базу, снизит траты ресурсов на тестирование и поддержку

Предложи решение

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

Помни про тайминг

Выступление должно идти не больше 20 минут, иначе оно рискует превратится в скучную лекцию препода по матеше в субботний солнечный день.