Добавить в корзинуПозвонить
Найти в Дзене
А как думать?

Как находить нормальные решения

Большинство "решений" для нетривиальных задач — это на самом деле вообще не решения. Это: Как такие решения находить: — Рисуем наши любимые весёлые квадратики. Какие субъекты и объекты есть в системе. Рисуем, как они связаны. Связи прописываем и прямые, и обратные. — Находим те связи, где наши лыжи перешли на наждачку. Где мы еле как родили, какая же там связь. Часто решение именно там. — Нещадно ломаем что-нибудь одно. И смотрим, что будет (пока что на квадратиках). Меняем какую-нибудь одну связь, выкидываем какой-нибудь объект. Особенно всё, что "так принято", "так всегда делали", "так сказали сверху". Совсем свежий. В июне я на конференции ECCS отвечала на вопрос: как мы реализовали явление времени в нашем симуляторе. Симулированный заказ в каждом прохождении должен вести себя одинаково. Независимо от того, когда запущена симуляция. Типовое мышление: "Окей, давайте пробросим дату создания, завяжем квесты на реальные даты, и заставим тренеров учитывать временные сдвиги". Это и было б
Оглавление

Большинство "решений" для нетривиальных задач — это на самом деле вообще не решения. Это:

  • первое, что пришло в голову
  • реакция на тревогу
  • шаблон, взятый у других
  • что-то, чтобы просто отстали🥺

Нормальное решение — это то, которое:

  1. Системное. Это когда оно работает в системе. Идеально, если решение в том, чтобы удалить что-то из системы. Средне — если хотя бы не пришлось ничего добавлять. Но это отдельное искусство.
  2. Даёт выигрыш в долгую, а не просто затыкает дыру
  3. Учитывает реальные ограничения (людей, ресурсы, время). Но только реальные!
  4. Не требует держать его в голове всё время, т.е оно встроено в процесс. Не очередная рутинная задача для Тамары, которая уже все подкасты мира прослушала. Пока кликала одно и то же в вашей админке/табличке/CRM. Хотя бы потенциально автоматизируемо.
  5. Не вызывает внутреннего "что-то не то" лично у вас (да, лично)

Как такие решения находить:

Рисуем наши любимые весёлые квадратики. Какие субъекты и объекты есть в системе. Рисуем, как они связаны. Связи прописываем и прямые, и обратные.

Пример на Меладзе, как вы любите
Пример на Меладзе, как вы любите

— Находим те связи, где наши лыжи перешли на наждачку. Где мы еле как родили, какая же там связь. Часто решение именно там.

— Нещадно ломаем что-нибудь одно. И смотрим, что будет (пока что на квадратиках). Меняем какую-нибудь одну связь, выкидываем какой-нибудь объект. Особенно всё, что "так принято", "так всегда делали", "так сказали сверху".

Пример

Совсем свежий. В июне я на конференции ECCS отвечала на вопрос: как мы реализовали явление времени в нашем симуляторе.

Симулированный заказ в каждом прохождении должен вести себя одинаково. Независимо от того, когда запущена симуляция.

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

Это и было бы “обычное решение” — костыль на костыле.

С чего стоит начать:

А можно ли снести время как явление вообще?

Ответ: да.

Мы отказались от самóй идеи времени в настройке симуляции. Тренер просто выбирает, сколько "дней назад" начался заказ — и всё.

Никаких реальных дат, никаких лишних расчётов, никаких багов при переходе через Новый год.

Время — не фундамент, если его можно убрать.

Короче

Мышление системами — главный козырь при создании хитрых продуктов на кучу бабок. В любых сферах.

В мышлении системами всё просто. Самое сложное — это не усложнять. Усложнения начинаются, когда вы хотите казаться профессионалом, а не делать результат.