Илья Зверев, один из самых активных участников сообщества OpenStreetMap публикует впечатления о своем первом хакатоне, который прошел в Санкт-Петербурге. Интересно разбирая все что увидел, всех кому помог. Осторожно, много ненормативной компьютерной лексики.
Всем привет!
Я Илья, и на прошедшем хакатоне я работал ментором по OpenStreetMap. Это был мой первый настоящий хакатон. В смысле, обычно получается либо «брэйншторминг»: полный зал людей пишут бессмысленный список, который забывается через два часа, либо мероприятия формата «сам организовал – сам и работай». Виталий Власов из университета ИТМО и фонда «Открытый город» вместе с Теплицей социальных технологий в этот раз показали, как все должно выглядеть по уму.
Начали с питчей: заранее зарегистрированные команды выходили на сцену и объясняли, что они хотят сделать. Кто-то решает свои проблемы, кого-то годы назад озарила идея, и они так и ходят, озаренные, кто-то придумал гениальный проект прямо на месте. Самое сложное на этапе питчинга – не выйти, а не выйти. Потому что тут жестко: сказал – значит, будешь делать. В атмосфере генерации идей очень просто что-нибудь подхватить, но я ограничился записью в блокноте и молчал, как партизан. Моя работа – не кодить и не дизайнить, я – ментор.
Фронт работ начал проясняться. Про OpenStreetMap никто не знает, а значит, многие обречены повторять сделанное десятки раз до них. Жаль, не было развернутого знакомства с менторами, где они объяснили бы, по каким вопросам стоит подходить, и чем они полезны. Так не они бы искали, чем помочь, а участники проектов знали, кого спросить. Честно говоря, я запомнил только одного из менторов, хотя и не знаю, в чем его специализация. Сам я бы объяснил про свободное редактирование, про гигантский массив открытых данных, про сотни библиотек и простые визуализации. Это знают многие осмеры, но «многие» – это лишь сотни человек.
Несколько проектов касались доступности для маломобильных групп населения. Например, парень, приехавший на коляске (с помощником, конечно, как в Петербурге без него), вместе с человеком, пугающе похожим на Костю Мошкова, известного в карто- и велосообществах под ником «GaM», предложили построение маршрутов по городу с учетом препятствий.
Влад Линдер рассказал о школе финансов для слабовидящих: у нас же поражение в чем-то одном навлекает проблемы во многих других, часто не связанных областях. Про «Метро для всех», представленное на хакатоне Мишей Гусевым, вы знаете. Елена Сегаль выступила со знакомой идеей: вести базу данных заведений, доступных посетителям на колясках. Вот и первая запись в блокнот: нужно рассказать о проекте WheelMap, родившемся в Германии у неунывающего Рауля Краутхаузена.
Около 20 идей записаны в таблицу, участники объединяются в группы, ищут и переманивают друг у друга программистов, дизайнеров и аналитиков, отхватывают лучшие столы и диваны. Я за обедом втираю Елене про WheelMap, чем плохи его русские аналоги (подсказка: открытые данные). У нее не было программиста, но при наличии готового проекта и мобильных приложений он не пригодится: нужна организаторская работа. Перевести сайт и приложение на русский, собрать встречи волонтеров, готовых обойти пару городских кварталов и записать данные. Связаться, наконец, с Раулем и обменяться мыслями. Почта – главный инструмент решения задач, как сто лет назад, так и сейчас.
Тут Виталий собрал всех менторов и очертил задачу: переговорить с каждой группой, определить ее цели, оценить ресурсы и заполнить анкету. Последние два пункта анкеты – именно то, зачем мы нужны: «сильные и слабые стороны проекта» и «советы по развитию проекта». На этом этапе все менторы равны: мы не насаждаем свои решения и технологии, а внимательно слушаем, задаем наводящие вопросы, корректируем, иногда урезая, планы групп.
Честно говоря, я не помню, кому именно заполнял анкеты, потому что привязался затем, кажется, совсем к другим группам. Среди первых особенно блистал Радомир с проектом поступенчатого подъема бездомных от их незавидного положения через выполнение заданий к собственным ферме и дому. Радомир явно горит идеей, которой он покорил предыдущий хакатон, и заражает ею всех программистов и дизайнеров в радиусе 3-4 метров. Я не забывал предупреждать об этом его соседей: группа «Добротерапии» чуть не потеряла всю команду, включая лидера. Без сомнения, вывод бездомных «в люди» – благородная и амбициозная идея, но как быть с тем, что у них редко есть Интернет? Кто будет давать задания и какого толка? Причем тут ферма?
После получаса разговоров с лидером и программистом проекта его очертания прояснились, и главный совет был прост, но сложен в исполнении: звонить в фонды и ночлежки, общаться с бездомными и выяснять, чего они хотят. Звонить в организации и узнавать, какие задачи они готовы делегировать непрофессиональным работникам. Когда появится конкретика, на питчинге не понадобится сыпать абстрактными понятиями и обещаниями светлого будущего.
«Добротерапия» под руководством Алексея Орлова – менее амбициозный, но более близкий к моей социальной группе проект. Это веб-сайт с календарем, в который занесены все волонтерские мероприятия на ближайшие дни. Он отвечает на вопрос «Чем бы таким полезным заняться сегодня вечером?». Можно сходить в детский приют и порадовать обитателей, можно помочь с сортировкой гуманитарной помощи или съездить на пляж и очистить его от мусора.
Алексей позиционирует календарь для «пресыщенных городских жителей», но реально тут вопрос в количестве свободного времени, и лидерами в нем, конечно, будут студенты. Самым сложным оказалось найти подходящие мероприятия: НКО и волонтерские организации не считают предоставление информации главным назначением своих сайтов. Помог ВКонтакте с поиском по ключевым словам: в итоговой презентации лента «добротерапии» пестрела прилагательным «благотворительный».
Между группами меня задержал Никита Грайворонский, чью анкету заполнил и унес прямо передо мной Алексей из Теплицы. Никита руководит «школой управдома» и для хакатона решил сделать сайт-помощник для организации собраний собственников жилья. Каждому собеседнику он растолковывал, что, владея квартирой, вы владеете целым домом, и в ваших силах взять контроль за расходованием средств на установку и ремонт всего. Нужно лишь объединиться с другими собственниками и провести собрание. А всю бумажную и счетную работу поможет сделать его веб-сервис «Собрание дома». На хакатоне его программист, одолженный Теплицей, пытался вытащить с сайта Росреестра данные по жилым помещениям для заданного дома и, судя по итоговой презентации, вытащил.
В другой комнате на диване сидела Ирина Кириллова, на питче попробовавшая шокировать аудиторию проектом поиска ближайшего общественного туалета. Очередная задача на данных OSM, подумал я и, закончив заполнять анкеты, подсел к Ирине и ее программисту Антону, чтобы рассказать про Overpass API для вытаскивания данных, Graphhopper для построения пешеходного маршрута, а также объяснить суть OpenStreetMap и условия его лицензии. Будучи не таким амбициозным, как многие другие, этот проект имел реальную возможность быть завершенным в срок, то есть до 17 часов следующего дня.
Именно с таким вопросом я подходил к каждой группе, оценивая их проекты: что вы покажете завтра в 17:00? Антон успел сделать мобильный сайт с картой и кнопкой, нажав которую, пользователь получит карту близлежащих туалетов. Просто и понятно. Жаль, что про открытость данных авторы проекта на итоговой презентации забыли, иначе вопрос про отличия от гуглояндексов был бы с блеском отбит.
Проект Ирины то и дело поминал Александр Еремеев из фонда развития интернет-инициатив (ФРИИ). Он выступил в середине дня с докладом про стартапы, которые отличаются от хакатонных проектов одним, ключевым, этапом: «Customer Development». Образно выражаясь, это когда команда бросает компьютер, берет блокноты и идет на улицу (или к телефону) искать потенциальных пользователей своего продукта. Весь первый цикл развития стартапа заключается в опросе людей, создании MVP (минимально работоспособного продукта) и проверке, купит ли кто-нибудь результат. Истории успехов и неуспехов, ради которых и стоило слушать доклад, подтверждали важность этого шага. Но поди заставь технарей встать из-за монитора, проще выкинуть миллион рублей.
Одиноко, не найдя компанию из программиста, между комнатами ходил Павел Суворов с простой, но красивой идеей сделать карту возраста домов, наподобие прогремевших карт Портленда, Нью-Йорка, всей Голландии и Москвы. Она не решит каких-то насущных проблем, но поможет и туристам, и градозащитникам, и жителям, интересующимся историей. Павел нашел достойный источник, но дома в нем присутствовали даже не в виде координат, а адресами. Не будучи программистом, он не знал способа быстро и не вручную превратить эти данные в карту.
Мы с полчаса обсуждали проект и данные, Павел пошел домой, поскольку был без ноутбука, а я вечером, вернувшись с хакатона, сотворил пару недостающих веб-сервисов: для геокодирования через MapQuest Nominatim (но в России лучше openstreetmap.ru) и для превращения CSV в GeoJSON на базе готового скрипта с открытым кодом. На следующий день, загрузив результат в CartoDB, Павел получил несколько красивых картинок, убедивших слушателей в потенциале его проекта: жюри отдало ему один из двух «бесплатных пропусков» на GoDesigner, где над дизайном поработают опытные люди (второй – у DropStuff). Вероятно, скоро мы получим красивую и полную визуализацию возраста домов в Петербурге.
Михаил Гусев из НекстГиса мучил дизайнера за дизайнером, желая сделать схемы станций метро понятными для обывателей. Со стороны это походило на борьбу с пузырями под обоями: тут разгладишь – там выскочит. То значков слишком много, то надписи забивают фон и мельтешат «ступ»-ами. Во второй подход, когда думать Мише помогала жизнерадостная Настя (которая в друзья берет только тех, кого тоже зовут Настями), я подсел рядом, и мы начали «брейншторминг» вариантов причесывания очередного оформления.
Договорились до разделения схемы на логическую часть – векторные данные, не привязанные к оформлению, и графическую – собственно, значки, стили оформления переходов и станций, расположение подписей. Это позволит не хранить схемы в виде картинок, а генерировать их автоматически, с учетом выбранного профиля (ноги, коляска, сумка). Зависимость от контекста поможет убрать лишний шум и акцентировать внимание на проблемных местах. Слайд из итоговой презентации с картинками «было – стало» вызвал в зале возгласы «наконец-то», видимо, от тех, кто пытался разобраться в старых схемах.
В комнате с Радомиром, на достаточном от него расстоянии, за круглым столом сидели две группы: проекта с неудобным названием «DropStuff» и помощники неудачливых оппозиционеров «К.О.П.» – контроль отделов полиции. Задача последних также радовала технической простотой и выполнимостью: создать сайт, на который зайдет только что вышедший на волю незаконно «забранный» митингующий. Сайт поможет ему составить акт о правонарушении со стороны полицейских: для этого потребуется заполнить меньше дюжины полей. Вместо настоящего акта в итоговой презентации авторы Яна Теплицкая и Владимир Беркутов вставили смешную объяснительную из какого-то комедийного сайта, но, судя по отсутствию смешков в зале, вместо чтения текста все слушали выступающих.
Объясняя задачи хакатона утром, Виталий поставил несколько условий, при выполнении которых проект мог получить дополнительные ресурсы на развитие – деньги, советы, бесплатное оформление или продвижение. Например, добавив в проект механизм пожертвований, участники включались в соревнование за бесплатный UMI.CMS. Взял его именно проект «К.О.П.», единственный, успевший внедрить пожертвования в свой мобильный сайт. Правда, как и остальным, им было непросто объяснить, на что именно пойдут деньги, но с таким проектом это несложно придумать.
Напротив них команда из лидера-аналитика Дарьи Чуркиной и программиста Айрата Насырова ваяла приложение для легкого избавления от ненужных или использованных вещей: DropStuff. Вы знаете, что батарейки нужно утилизировать? И сколько уже отдали в соответствующие пункты? Проблема налицо: очень сложно найти информацию о пунктах утилизации и приема разных категорий вещей. Одежда нужна одним, покрышки откатывать в другую сторону, а батарейки могут принимать только по средам с 12 до 14 за сорок километров. Приложение DropStuff наглядно, на карте, покажет, куда и когда можно подъехать с вещами. Можно и наоборот: авторы обещают, что по оставленной заявке за ненужными вещами заедет агент проекта или представители заинтересованных организаций.
Одна из проблем проекта DropStuff – корявое название. Из-за него потенциальные пользователи банально не найдут приложение. В первый день команда немало времени уделила перебору вариантов, но согласия не было. Помня, что название и рюшечки наименее важны на хакатоне, где на всю разработку дают один день, авторы оставили исходный вариант. Жаль, им не успел помочь Алексей Сидоренко, который своей работой определил помощь с названиями и логотипами. Он собирал заявки весь первый день, и вечером второго похвастался семью оформленными проектами – половиной от всех, доживших до итоговой презентации.
Самым емким был логотип проекта «Друзья времени», посвященного планированию и оптимизации времени в контексте получаемой пользы. Сам проект сомнительный: авторы предполагают, что человек в силах не только построить точный график событий на неделю, но и потом заполнить огромную таблицу, проранжировав план по нескольким критериям (и сайт в итоге его откритикует: мол, неэффективно).
Я не успел добраться до тоже интересных, но более закрытых проектов, разработчики которых вместо социализации фигачили, фигачили, фигачили.
- Ирина Литвина сделала прототип магазина «Творцы» для мастеров рукоделия. Ее печалит, что талантливые люди в России не находят рынка и, производя красивые вещи, обречены на неизвестность и голод. То же можно сказать про деревенские музеи народных промыслов: выходя в Интернет, они найдут средства для существования, в которых государство часто отказывает. От существующих магазинов проект отличает, кажется, инициативность автора: Ирина готова ездить по регионам и учить мастеров продаже работ через Интернет.
- Мобильное приложение «One Day in Saint-Petersburg» амбициозно без меры. Предполагается, что турист, готовясь к поездке в незнакомый город, заполнит небольшую анкету по интересам и на выходе получит поминутный план развлечений: кино, музеи, театры, экскурсии. Приложение учтет все: маршруты автобусов, график разводки мостов, время работы музеев (в понедельник будет непросто). Продемонстрированный прототип был красив и вроде бы показал календарь, но авторы не успели раскрыть, что в него попало. Взяв транспортную номинацию, команда разработчиков во главе с Нурисламом Алимовым получила от фонда «Открытый город» грант в 30 тысяч на доработку.
- Про «школу финансовой грамотности для слабовидящих» сложно что-то сказать, потому что даже на итоговой презентации не было ясно, что это: приложение, сайт, статья? Разработчик, безусловно, квалифицирован: он преподает финансовую грамотность пенсионерам, многие из которых даже кредитные карты впервые видят на его уроках. Кажется, результатом проекта был то ли план уроков, то ли презентация.
- Авторы мобильного сайта «WeGuide» Павел Томша и Полина Шаклина сначала хотели сделать справочник по памятникам Петербурга, но когда им показали работающее приложение ровно такого же назначения, придумали другой проект. В нем город покрыт точками-квестами: придя к одной из них, пользователь нажимает кнопку и начинает путешествие от задания к заданию. Каждое из них делится на поиск QR-кода (авторы надеются договориться с владельцами музеев для их расклейки) и осмотр достопримечательностей. Задания складываются в маршрут, который покажет окрестности со всех сторон. На итоговой презентации слушателям сложно было следить за докладом: как только на экране появился первый вопрос, все немедленно начали подбирать и обсуждать ответы. Геймификация – страшная сила.
Победил, получив 60 тысяч рублей от Теплицы, навигатор для людей на колясках. Пестрая группа авторов – тот самый двойник GaM-а Виталий Касьянов, рыжеволосая Наталья, Никита Касьянов на коляске и обязательный программист в свитере – за два дня смогла не только оформить сайт «SMOOTH» и нарисовать на нем карту, но и запрограммировать с нуля мультимодальный роутинг (т.е. с использованием разных видов транспорта, включая автобус). В планах – подключить данные с проектов «Метро для всех», «Красивый Петербург» (про высоту поребриков), базу доступных заведений и т.п. Кроме того, поскольку базы неполны, о недочетах можно сообщить прямо с их сайта.
Я заметил несколько странностей: во-первых, конечно, картографическая подложка Google, когда роутинг строится по графу OpenStreetMap и не совпадает с отображаемыми улицами (про отсутствие обязательного упоминания OSM нет смысла повторять, им грешат и сайты крупных компаний). И авторы как будто гордятся, что не использовали сторонние движки навигации, а разрабатывали свой: это, конечно, грандиозно, но сколько подобных «велосипедов» уже пылятся. Объем работы и амбиции авторов завоевали симпатии жюри, которые почти единогласно посчитали проект лучшим.
Хотелось заявить перед всеми, но получилось только лично некоторым из команд, что награда ничего не решает. Я уверен, что победивший проект так и останется памятником рвению чудо-программистов, не развиваясь и не дойдя до пользователей. Пока что он, как и «Метро для всех», не столько помогает, строя маршрут в обход сложных мест, сколько информирует о проблемах по дороге. Едва ли запала хватит на корректировку этой концепции. Сделано много – и это почти наверняка остановит разработчиков, дав им ложное чувство завершенности, соблазняя отдохнуть после тяжелой работы.
Но о других командах, успевших не так много, но сильнее вовлеченных в свои проекты и проблемы их потенциальных пользователей, мы еще можем услышать. Они работали над планами, они болеют за свои приложения просто потому, что пишут для себя, они не погружались с головой в разработку, но пользовались возможностями хакатона: общались с менторами и другими участниками, выравнивая свои цели и понимая, насколько крутые проекты в их руках. Чтобы сделать полезное для людей, не обязательно быть мастером программирования или гениальным оратором – достаточно просто принимать помощь и довести свою небольшую работу до конца.
Вечером воскресенья, когда победителей сфотографировали, члены жюри похвалили участников и раздали достойным сертификаты на бесплатные штуки и номера телефонов для консультаций, атмосфера в кафе «Миракл» разрядилась и стала умиротвореннее. Вернее, раньше, примерно с того момента, как в запертой комнате, в ожидании жюри, удалившегося для обсуждения номинантов, один из участников начал тихо играть замысловатую мелодию на гитаре.
Нас было полсотни на две комнаты с круглыми столами и мягкими диванами, но теснота не мешала, наоборот, пространство было наэлектризовано идеями, и просто сидя в такой бодрой компании, мы подзаряжались перед близящейся рабочей неделей. Это был мой первый настоящий хакатон, и мне понравилось.
Все были молодцами: и Виталий, собравший нас, и «Теплица», добавившая остроты, и сотрудники кафе, снабжавшие участников чаем и печеньем, и менторы с жюри, вдохновлявшие и помогавшие каждому, и сами участники – за два дня они придумали и сделали столько полезных и перспективных проектов, сколько у иных занимает месяцы.