Под впечатлением от замечательнейшей книги "The origin of wealth" (Beinhocker) задумался о том, как "задизайнить" эволюцию в разработке продуктов. Вспомним, что 3 ключевых принципа/механизма биологической эволюции это:
1) Выживание наиболее приспособленного
2) Скрещивание
3) Мутация
Что такое эволюция в контексте подуктов и как эти механизмы "перенести"?
1) Скрещивание - по-моему, каждый A/B эксперимент - это некоторый новый вариант (особь) продукта. Эти новые варианты конкурируются между собой и выживает "наиболее присопобленный".
2) Что такое присоболеннный - какая fitness функция (функция присобленности) описывает жизнеспособность той или иной версии продукта? Это, пожалуй, самый сложный вопрос, так как практика показывает, что очень велика вероятность получить локальное улучшение в ущерб другим метрикам (новый тип пушей качает метрику конверсии, но и повышает долю юзеров, запретивших пуши, что в долгосрочной перспективе снижает ретеншн). По-моему, лучший кандидат на эту метрику - уравнение идеального продукта, о котором я размышлял выше. Но пока этот вопрос для меня остается открытым
3) Что такое мутация? Имхо это проведение A/B тестов заметно отличающихся от того, что пробовалось командой до этого. Да, очень неточное определение, но в случае нашей команды при тестировании этого опредлеения я заметил, что люди легко называют такие эксперименты. Их не должно быть много (непонятно сколько), но они должны проводиться, чтобы расширять область поиска решений и не застрять в локальном оптимуме.
Ну и дефакто работа над продуктом это генерирование экспериментов (включая мутацию), оценка их фитнесс функцией, отбор наиболее приспособленных и "амплификация" других частей продукта механиками, выявленными в ходе A/B. М?
P.S. Если вам близка такая философия и вы умеете хорошо NodeJS, Android (Kotlin & Java), или дизайн, то у нас есть несколько отличных вакансий (см. предыдущий пост)
Post #428
4.95K