Перед тем как выпускать минимальный продукт, нужно проверить его востребованность на рынке. Как правило, наши представления о рынке не соответствуют реальности, отчего очень легко попасть в ситуацию, когда бюджет реализован, какой-то минимальный продукт готов, а трафик отсутствует. Для таких случаев и существует CustDev.
CustDev (далее — кастдев) — сокр. от англ. Customer Development — проверка на востребованность.
Итак, как же появилась идея реализовать телеграм бота для проведения простых опросов и как был реализован MVP (который, кстати, перед разработкой не проверялся).
Идея
Небольшая предыстория, меня зовут Михаил и я год учился на социологии. Год изучал методологии опросов, практиковался в “полях” и писал курсовую на основе социологических иследованний.
Во время моей учебы я периодически сталкивался с опросами студентов старших курсов, которые проводили полноценные социологические исследования методом анкетирования. Конкретно, онлайн-опрос. Каждое их сообщение выглядело примерно следующим образом:
Добрый день, меня зовут <имя> я студент/ка <курс, кафедра> пройдите опрос посвященный <тема опроса> :
<ссылка на опрос в гугл формах или другом конструкторе опросов>
Во всех этих опросах я участвовал, но почти всегда психовал от того, как их долго и муторно проходить. Чуть позже я решил что так быть не должно и решил сесть за этот проект.
Бот
И тут в какой-то момент мне в голову пришла идея. А что если сделать опросы быстрой и удобной операцией, которую можно проходить больше чем один раз. То есть некий Тиндер от мира социологии.
Так и появился он, Survey Compact (предварительное название, которое в целом отражает суть проекта).
Первая-версия
Разработку я начал с того, что попросил своих знакомых с кафедры социологии разработать анкету, чтобы потом перенести ее в бота. Я думал это было просто, поэтому как только анкета была у меня на руках я приступил к работе.
Для начала я нашел какой-то стандартный шаблон структуры для телеграм бота и перенес его в свой проект (спойлер: я от него отказался)
Вообще этот шаблон был почти полностью скопирован, в т.ч. с файлами и скриптами, но немного переделан.
«Внезапный» инсайт
Просто копировать проект и скрипты оттуда, а потом изменять под себя на начальном этапе развития кодера — плохой экспириенс. В какой-то момент я, конечно, понимал как работает код, но спутся какое-то время запутался в своем и чужом функционале
│ .gitignore │ bot.py │ requierments.txt │ ├───app │ │ config_reader.py │ │ dbworker.py │ │ __init__.py │ │ │ ├───handlers │ │ │ common.py │ │ │ p-ker-new.py │ │ │ partyshaker.py │ │ │ __init__.py │ │ │ │ │ └───__pycache__ │ │ common.cpython-310.pyc │ │ partyshaker.cpython-310.pyc │ │ __init__.cpython-310.pyc │ │ │ └───__pycache__ │ config_reader.cpython-310.pyc │ dbworker.cpython-310.pyc │ __init__.cpython-310.pyc │ └───config bot.ini
структура проекта в первой версии
Озарение
В какой-то момент, когда у меня совсем не ладилось с первой версией, я решил пересмотреть и структуру опроса и способ программирования. Если первая версия была с обычными кнопками, в базу данных она передавала длинные ответы вроде “Затрудняюсь ответить” то вторую я решил делать по-другому.
Вторая-версия
Вторая версия получилась более компактной, лаконичной и логичной, что самое главное. Вот несколько нововведений, которые я добавил:
-
Я сократил количество вопросов с ~10 до 5
-
Сделал вместо клавиатурных кнопок инлайн.
-
Сделал изменение фрейма с вопросом, чтобы интерфейс телеграма не скакал туда сюда удаляя и отправляя вопрос.
-
Настроил коллбэк от кнопок согласно ответу. Ответы, кстати, стали стандартизированными, то есть они описывались листом “точно да”, “скорее да”, “скорее нет”, “точно нет”, что позволило сделать нумерацию от 1 до 4 где 0 — затрудняюсь ответить, а 1 — точно да.
Таким образом опрос стал очень простым, быстрым.
Что дальше
Дальше дистрибьюция. Я разослал этот опрос друзьям, знакомым, родственникам, они разослали точно также. В итоге у меня получилось собрать 70 обезличенных ответов, которые помогли решить задачу для нашего небольшого проекта (собственно для чего этот бот и разрабатывался).
Код бота доступен по ссылке: mkhivchk/polling_bot: The bot is designed to conduct quick surveys and custdev research. (github.com)
ссылка на оригинал статьи https://habr.com/ru/articles/738910/
Добавить комментарий