Как мы Trello повторяли и пилили MVP
Всем привет! Меня зовут Дмитрий, и я расскажу вам, как можно потратить кучу времени на разработку MVP, опытно поэксплуатировать его в крупной телекоммуникационной компании, выложить в общий доступ, и так и не набрав орды пользователей, написать текст на vc :)
Это моя первая в жизни статья, так что не пинайте сильно. Я разработчик ПО, делаю коммерческий софт с 2006 года, и иногда мне нравится пилить пет-проекты 😊
Начало
2016 год. Agile и kanban у всех на слуху, и эти термины доходят и до крупной телекоммуникационной компании, в которой я тогда трудился ведущим инженером-программистом. Несмотря на название должности, на тот момент мы с командой особо ничего не программировали, а усердно внедряли и поддерживали сторонний покупной софт. Иногда наши будни разбавляли редкие внутренние заказчики, которые просили что-нибудь автоматизировать, но основное рабочее время занимала рутина поддержки и эксплуатации.
Чтобы в таких условиях не потерять квалификацию, нужно было изучать что-то новое. Делалось это в свободное от работы время, благо тогда его было существенно больше. А чтобы это новое реализовать, нужна была точка приложения.
Помимо трендов на всяческую агилизацию бизнес-процессов, примерно в то время началась эпоха импортозамещения, хотя тогда к этому вопросу подходили максимально формально.
Я на тот момент имел свободное время, и читая различные профильные статьи, думал, куда же все эти знания применить.
Trello как инструмент для работы с досками уже был хорошо известен, хотя и не всем. Многие там вели или даже до сих пор ведут как свои личные, так и корпоративные дела. В один из дней наши безопасники закрывают доступ к Trello, потому что нерадивые сотрудники заливают на доски эксельки с чувствительными и не очень данными, а так как это внешние сервера, то нефиг ― информационная безопасность. Чувствительные данные храним только внутри защищенного контура (во внутренней сети) и точка!
Закрытие доступа к Trello навело меня на мысль: а не запилить ли нам свой луна-парк (зчркнт), свой Trello с серверами и шлюзами. Проект был интересен технически, можно было пощупать и применить то, о чем читал, но не было подходящей задачи. Особо не размышляя, я решил окунуться в этот новый дивный мир agile с его досками и карточками.
Холодный расчет
План был незамысловатый. Доступ к доскам закрыт, а потребность в них у пользователей есть. Учитывая тренд на импортозамещение и общее усиление напряга с западом, возникло предположение, что запрет всякого облачного софта, куда можно прикреплять файлики с чувствительными данными, коснется не только нашу компанию. Предполагалось, что потребность контролировать свои данные будет расти, и возникнет какой-никакой спрос на on-premise решения подобного рода (вы помните, что про agile тогда не говорил только ленивый). А если продукт будет еще и отечественный… В общем, в мозгу рисовались вереницы людей с чемоданами денег.
Было решено заняться MVP, в котором реализовать основной функционал kanban-досок, и далее допиливать под потребности заказчиков. Если заказчиков не будет, то все равно это прекрасный опыт и прокачка скилов во всех направлениях. В общем, расчет сулил несколько месяцев бессонных ночей!
Desktop application ??!
Почти каждый нормальный человек, почти в любой ситуации скажет, что нужно пилить web-приложение. И почти во всех случаях будет прав. Кроссплатформенность, кроссбраузерность, Mac, Win, Linux ― это нехило расширяет аудиторию. Да и Trello вон же ж в вебе работает, с него же собираемся слизывать функционал. Ноооо….. Мы решили, что пойдем другим путем! Мы будем пилить классическое десктоп-приложение под винду, потому что… а потому что мне так показалось проще! Я трезво и небезосновательно оценил, что веб-реализацию я не потяну, даже очень MVP делаться будет долго и с неизвестным для меня результатом. А так как никто на тот момент не додумался сделать десктоп-приложение для досок, рынок пуст, то мы как кавалеры-сэры-пэры зайдем на свободный рынок и будем снимать сливки лопатой.
Если серьезно, то помимо уверенности в своих силах при разработке именно классического приложения, было еще одно предположение: если инструмент будет использоваться внутри компаний действительно для работы (а не по приказу начальника: «доски завели, и чтобы карточки туда-сюда каждое утро двигались»), то классическое приложение лучше. Вы же не пользуетесь веб-почтой на работе. У вас наверняка стоит Outlook или что-то подобное в классическом исполнении. Традиционное приложение дает больше возможностей. Какие именно возможности нужны, было непонятно, но их наличие― это же плюс! Не минус!
«Дашка»
6 декабря 2016 года. Тогда был сделан первый коммит. При старте разработки проект был назван просто dashboard, а сокращенно и ласково — «Дашка». Фраза «пойду Дашкой позанимаюсь» в доме однозначно стала ассоциироваться с работой до 2‒3 ночи.
Что бы «Дашка» выглядела современно, нужен был дизайн, и я втянул в эту авантюру одного хорошего человека, надеюсь он не сильно меня за это ненавидит 😊
Итак, программист пошел программировать, а дизайнер дизайнить ― все при деле. Для взаимодействия решили использовать разрабатываемый инструмент. Ну а что ж мы, создавая убийцу Trello по-русски, будем использовать жертву для ведения дел и учета багоф? Категорическое «нет»! Поэтому за январские праздники была напилена версия, которая отдаленно напоминала доски с колонками. Для упрошенного деплоя и обновления вместо классических инсталляторов был выбран ClickOnce. Разработка закрутилась.
Ниже покажу, как выглядели самые первые версии. С чего начинали и к чему пришли. Так выглядел стикер (карточка) в самом начале пути:
А вот так ― списки на доске, которая еще и упала:
Это март 2017-го (т. е. 3 месяца разработки). Тестируем загрузку файла, уже виден виджет со сроком, кол-во комментариев и вложений:
Уже не помню, сколько точно прошло времени, но примерно за 6 месяцев у нас получился крепкий MVP, который выглядит уже как продукт, а не поделка на коленке. Причем наиболее активно разработка велась месяца 3 по вечерам, хотя иногда эти вечера занимали по 6‒8 часов. Вот собственно результат:
В результате повторили основной функционал Trello и подобных продуктов. Реализовали десктоп-клиента, который цепляется к облаку с авторизацией по email и там позволяет использовать все основные функции. То есть создавать/архивировать доски, объединять их в проекты, приглашать людей для совместной работы по email, на досках создавать/архивировать/менять местами списки, создавать стикеры и перемещать их между списками. Стикеры выделять цветом, прикреплять файлы и обложки, ставить срок исполнения, писать комментарии и т. д. и т. п.
Стикер (карточка) в развернутом виде:
Для быстрого доступа к доскам были реализованы ссылки:
Пора в поля!
Руководство в какой-то момент прониклось идеями agile, ведь это доски, а доски внешние никак нельзя, ибо безопасность. Показав разработку начальству, мы получили добро на «поэксплуатировать это внутри компании». Авторизация по email/паролю была заменена на сквозную в AD — каждый, кто был залогинен на своем компе, проваливался в систему без дополнительной возни. Красота, да и только.
Приложение начали использовать внутри департамента. Была обнаружена куча багов, их постепенно подчистили, и MVP стал стабильно работать. Коллеги в то время стартанули новый проект, естественно по scrum, и начали проводить митапы у большого телевизора, где красовалась доска проекта на нашем софте.
Постепенно народная молва дошла и до других департаментов, количество пользователей наших импортозамещенных досок увеличивалось. Кто-то вел там отпуска и отгулы, кто-то организовывал свою работу. В основном, конечно, доски создавали для управления командами отделов или проектами. Поэксплуатировав наше чудо-приложение около полугода, пользователи стали входить во вкус, и им захотелось использовать все это дома, а не на работе. И желательно с телефона, лежа на кровати. Это мы, конечно же, поддержать сходу не могли. Бюджета и времени не было, да и «вон сколько в опенсорсе подобного есть»… Наши силы к тому моменту подыстощились, и мы не решились ввязаться в такую авантюру, как разработка веб-версии, ибо знали, сколько это потребует сил и времени.
Был найден подходящий opensource проект на php ― все, кто хотел, переехали на него. Еще около полугода после перехода на web жила виртуалка, на которой крутилась "Дашка", и когда ее наконец отключили, нашлась группа пользователей, которые так и продолжали работать в нашем приложении.
Ну а мы выложили «Дашку» в публичный доступ (работает через интернет), ничего лучше не придумав в качестве названия, чем AgileForce. Зарегали домен agileforce.ru, накидали landing, настроили работу приложения и стали ждать пользователей. Маркетологи и раскрутчики из нас никакие, поэтому ажиотажа не было (хотя, к слову сказать, продукт пробовали некоторые известные и большие компании). Запросов на доработки ни от кого не поступало, люди приходили, заводили доски, двигали карточки, прикрепляли файлы и комментировали, но через какое-то время переставали пользоваться приложением. Скорее всего, отдавали предпочтение продуктам с доступом через веб либо просто отказывались от инструмента типа «доска и карточки».
Я нисколько не жалею потраченного на «Дашку» времени. Часть целей была достигнута: скилы прокачались, опыт разработки проекта таких масштабов приобретен, в большой компании (овер 5000 сотрудников) наш MVP проработал плюс-минус год и собрал положительные отзывы. Естественно, была надежда на коммерциализацию и дальнейшее развитие, но для этого нужны маркетинг, реклама и бюджет, которых пока нет )
Попробовать наши импортозамещённые доски можно и сейчас, инфраструктура в облаке пока продолжает работать и принимать новых пользователей: agileforce.ru
А вы используете доски в своей работе?
Как считаете, имеет смысл заморочиться с продвижением и поиском клиентов?