TGViewer
Работая в айтишечке Работая в айтишечке @workinginit · 1.48K subscribers
Post #34 896
📝 "Почему" вместо "что": как объяснение причин экономит время и нервы

На днях в канале настенька и графики моей бывшей коллеги и друга Насти увидел пост про важность объяснений "почему" мы делаем так, а не иначе. Обычное "что" надо сделать — приносит мало пользы.

И правда, объяснять зачем — это не просто хороший тон, это необходимость. Особенно когда работаешь в команде или над проектом, который будет жить долго.

Вот несколько примеров из разных аспектов айтишечки, где этот принцип работает на все 100:

📚 Документация

❌ Плохо:
API-метод /payments/cancel отменяет платежи

Это и так видно из названия. Зачем он нужен? В каких случаях использовать?

✅ Хорошо:
Метод /payments/cancel отменяет платежи до их подтверждения банком (статус pending). Используется, если пользователь передумал сразу после оплаты. Не работает для уже проведенных платежей (статус completed)


Почему это важно?
— Новые разработчики не потратят часы на тестирование "нерабочего" метода.
— QA поймет, какие сценарии проверять.


📋 Постановка задач

❌ Плохо:
Добавить поле 'регион' в форму регистрации

Зачем? Может, это требование GDPR? Или маркетинг хочет аналитику?

✅ Хорошо:
Добавить поле 'регион' в форму регистрации:
— Для пользователей из ЕС — обязательное (требования GDPR).
— Для остальных — опциональное (поможет в локализации)

Почему это важно?
— Разработчик не будет гадать, где поле должно быть обязательным.
— Тестировщик сразу поймет, какие кейсы проверять.

🔀 Pull Request'ы

❌ Плохо:
Исправил баг с авторизацией

Какой баг? Почему решение верное?

✅ Хорошо:
Исправил баг с авторизацией:
— Проблема: Токен обновлялся даже при неактивной сессии (ошибка 401).
— Решение: Добавил проверку session.isActive() перед обновлением.
— Почему это безопасно: Метод isActive() покрыт интеграционными тестами


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

👥 Встречи и обсуждения

❌ Плохо:
Нужно переписать модуль X на Go

Почему не Python? Это критично для дедлайна?

✅ Хорошо:
Переписываем модуль X на Go:
— Причина: Текущая реализация на Python не справляется с нагрузкой > 10k RPS.
— Альтернативы: Рассмотрели кеширование, но это лишь временное решение.
— Риски: Миграция займет 2 недели, но снизит затраты на инфраструктуру.

Почему это важно?
— Команда видит, что решение взвешенное, а не "просто ради Go".
— Новые участники поймут контекст, даже пропустив обсуждение.

👀 Тестирование

❌ Плохо:
Тест: проверить отправку email после регистрации

Какой email? Всем ли пользователям?

✅ Хорошо:
Тест: проверить отправку email после регистрации:
— Кейс: Письмо с подтверждением отправляется только новым пользователям (поле is_new=True).
— Почему: Спам-фильтры банят, если отправлять повторно


Почему это важно?
Тестировщик не потратит время на проверку "почему письмо не пришло".

🪄 Лайфхаки
— Везде, где возможно, добавляйте ссылки на контекст: задачи в таск-трекере, страницы в вики, чаты в телеграм.
— Если решение временное, пишите FIXME/TODO + дату:
// TODO: Удалить после миграции на Logbroker (дедлайн: 01.01.2024)
— В сложных решениях оставляйте аргументы против альтернатив (например, "Выбрали Redis вместо Memcached из-за поддержки TTL на уровне ключей").

💡 Итого
Чем больше вы объясняете зачем, тем меньше времени команда тратит на "догадки" и тем выше качество продукта.

#softskills #management #bestpractices
  • 👍 11
  • ❤ 10
  • 🔥 5
  • 👎 1
  • 😁 1
More from @workinginit
  1. Sep 25, 2026Пятничный мем #memes
  2. Sep 25, 2026Post #468
  3. Sep 24, 2026☕️ Курс «AI-агенты для продактов» Ребята из MLINSIDE пригласили провести модуль "Аналитика…
  4. Sep 14, 2026Post #466
  5. Sep 10, 2026Post #465
  6. Sep 9, 2026Post #464
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →