О ПРОЕКТЕ
Сегодня проект «Обещания.Ru» — это удобный инструмент, позволяющий общественности следить за исполнением обещаний, данных публичными людьми: экономистами, политиками и др. Каждый пользователь имеет возможность пополнять список данных обещаний и прогнозов, присылая информацию с мест или публикуя её на сайте самостоятельно, чтобы после проверки модератором она стала доступна всей аудитории портала.
ОБЩАЯ ИНФОРМАЦИЯ О РАБОТЕ НАД ПРОЕКТОМ
Компания «ТриЛан» не стоит на месте, мы постоянно совершенствуемся. Вместе с нами развиваются и наши клиенты. Проект «Обещания.Ru» — один из наиболее ярких примеров, демонстрирующих этот тезис на деле. Это многолетнее и плодотворное сотрудничество, в ходе которого обе стороны находились в постоянном поиске наиболее эффективных способов реализации своих идей и, что особенно важно, в итоге эти способы нашли.
Представленный кейс состоит из двух частей. Первая — «Как создавались и поддерживались старые "Обещания.Ru"» — рассказывает о самом начале работы над проектом и последовавшим за ним этапом поддержки. Вторая — «Обещали — сделали! Обновление "Обещаний.Ru" за три месяца» — повествует о самом последнем опыте сотрудничества, когда работа над новой версией проекта велась итерационно, в соответствии с современными подходами к организации рабочего процесса (Scrum).
ИСПОЛЬЗУЕМЫЕ ТЕХНОЛОГИИ
Django Framework v.1.3 —
свободный фреймворк для веб-приложений на языке Python, позволящий решать широкий спектр задач быстрым и эффективным способом, что не раз было доказано нашими специалистами как победой в международном конкурсе разработчиков Django Dash, так и повседневным трудом над проектами.
Celery v.2.5.5 —
пакет для асинхронной обработки очереди задач, используется для выполнения процессов «в фоне» (отправка почтовой рассылки, уведомление персон в Twitter'e о том, что у их обещаний подходит срок или они его не выполнили).
ElasticSearch v.1.2.4 —
поисковый сервер, работает во всех фильтрациях данных по сайту и в глобальном поиске.
PostgreSQL v.9.2.9 —
свободная объектно-реляционная система управления базами данных, применяемая для хранения всех данных проекта.
Python v.2.7.3 —
высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода.
Redis v.2.2.12 —
сетевое журналируемое хранилище базы данных в оперативной памяти с быстрым доступом к объектам для кеширования отдельных блоков на страницах.
КАК СОЗДАВАЛИСЬ И ПОДДЕРЖИВАЛИСЬ СТАРЫЕ «ОБЕЩАНИЯ.RU»
Задача
Перед нами стояла задача разработать сайт электронного СМИ, который бы позволял собирать и отслеживать выполнение публичных обещаний и прогнозов, группировать их по тематике, региону, по людям и структурам. Предусмотреть возможность участия в проекте пользователей.
Оказываемые услуги
Веб-дизайн, разработка сайта
Начало работ
Специалисты «ТриЛан» приступили к работе над проектом в октябре 2011 года. Создание сайта осуществлялось по заранее составленному техническому заданию. Портал «Обещания.Ru» на тот момент существовал лишь на бумаге и являлся стартапом, то есть нашим специалистам предстояло создавать проект «с нуля». Менеджер отдела продаж Олег Воробьёв заключил с клиентом договор. Куратором проекта выступил руководитель отдела разработки Фёдор Воропаев. Созданием веб-дизайна портала занялась арт-директор компании «ТриЛан» — Ольга Круглова. Программирование сайта легло на плечи ведущего программиста Дмитрия Кукушкина, а техническую поддержку после запуска проекта взял на себя программист Денис Веселов.
Ход работ
Начиная с октября 2011 –го, мы исследовали поставленные задачи, продумывали их возможные решения и на основе этого рисовали прототипы основных страниц. После того, как работы по созданию веб-дизайна были завершены, последовали этапы вёрстки и программирования. Проект был опубликован в марте 2012-го года.
С момента запуска сайта в работу по осень 2014 года в рамках технической поддержки проекта было осуществлено множество интересных нововведений и несколько небольших редизайнов.
За первый год работы проекта на сайте было реализовано более 300 изменений, в том числе:
Основные страницы проекта
Главная страница
Прототип
Макет
Мы исследовали поставленные задачи, продумали их возможные решения и на основе этого нарисовали прототипы основных страниц. Так как главной задачей, ставящейся перед проектом, является возможность слежения за выполнением обещаний и прогнозов, данных публичными персонами, на титульной странице большую часть пространства отводим именно под обещания, рейтинг персон и основные новости.
Главная страница сервиса позволяет пользователю узнать самые актуальные и популярные обещания, новости и аналитические материалы. Избежать информационной перегрузки страницы из-за плотной вёрстки информационных блоков помогает доступная инфографика. На главной странице размещены такие блоки, как «Актуальные обещания», «Аналитика и комментарии», «Обещания», «Хроника дня», «Рейтинг персон», «Самое читаемое» и др.
Блок «Актуальные обещания» содержит набор из трёх последних добавленных обещаний. Каждое из них имеет своё описание и изображение, которое в свою очередь является ссылкой на страницу с подробным описанием. Блок формируется автоматически из трех последних обещаний или вручную через административную панель.
«Аналитика и комментарии» содержит набор из трёх последних добавленных мнений экспертов. Каждый элемент имеет изображение, имя эксперта и описание. Содержание блока также формируется автоматически или ручным выбором мнений через панель администратора.
Блок «Обещания» занимает одно из центральных мест на странице, благодаря чему привлекает внимание пользователя. Он содержит три вкладки - «Срок!», «Просроченные», «Популярные» - в каждой из которых находится по три элемента.
«Хроника дня» на главной странице предоставляет пользователю список пяти последних добавленных новостей. В автоматическом режиме их список формируется из заголовков статей, на страницы которых было совершено максимальное количество переходов в течение текущего дня. В ручном режиме пять новостей выбираются из общего списка новостей.
Блок «Рейтинг персон» содержит три элемента, в которых представлены больше всех пообещавшие, больше всех сделавшие и популярные персоны. Первые два элемента блока формируются автоматически. Третий – автоматически или ручным выбором персоны в административной панели. Через административную панель «Рейтинг персон» может быть заменен на блок «Самое читаемое», где отображаются самые популярные новости и аналитические заметки.
Страница подробного описания обещания
Прототип
Макет
Страница с подробным описанием обещания позволяет пользователю ознакомиться с детальной информацией об обещании, в том числе временными рамками исполнения обещания, его статусом на данный момент (выполнено, не выполнено), аудио- и видеоматериала, мнениями экспертов и новостями по этой теме.
Страница мнения эксперта
Прототип
Макет
На странице мнения эксперта представлено обещание, по поводу которого, выражено это конкретное мнение, заявленные временные рамки выполнения обещания и, конечно же, непосредственно экспертный текст с именем и фотографией эксперта. Также пользователи могут ознакомиться с иными экспертными мнениями, обратившись к блоку «Другие мнения».
Страница новостей о ходе выполнения обещания
Прототип
Макет
На этой странице представлены новости, которые связаны с данным обещанием и иллюстрируют ход его выполнения персоной. Здесь пользователь также может увидеть сроки выполнения, заявленные обещавшим, просмотреть мнения экспертов и комментарии пользователей из социальных сетей.
Проблемы и решения,
возникшие во время разработки и поддержки проекта
Проблема:
Необходима была система управления рекламными баннерами, которая бы позволяла изменять настройки рекламной кампании для каждой страницы сайта в зависимости от раздела или новости, к которой она относится.
Решение:
Нами был разработан специальный модуль для системы управления сайтом Lemon CMF (разработчиком которой также является «ТриЛан»), отвечающий за требуемый функционал.
Проблема:
Не все письма рассылки с информацией о появлении новых материалов по персонам или событиям, на которые подписались пользователи, были доставлены получателям. Это было связано с тем, что почтовый сервер не справлялся с возложенной на него нагрузкой.
Решение:
Мы осуществили перенастройку отправления почтовых сообщений, предусмотрев создание очереди сообщений в соответствии с приоритетами.
Проблема:
Для того чтобы следить за определённой темой (например, "Выборы в Москве"), пользователю приходилось самостоятельно сопоставлять различные обещания, прогнозы, мнения и новости.
Решение:
Был разработан раздел сюжетов – объединённых по темам обещаний, прогнозов, новостей и мнений. Плюс ко всему – предусмотрено автоматическое копирование в сюжет закреплённых за обещаниями и прогнозами новостей и мнений, чтобы облегчить работу редакции проекта. Также, чтобы обеспечить быструю работу сайта и избежать высокой нагрузки на сервер, была произведена денормализация данных (данные копируются в сюжет, операция соединения при выборке становится ненужной и запросы выборки, которые ранее требовали соединения, работают быстрее).
Проблема:
Персоны, чьи обещания и прогнозы опубликованы на сайте, не уведомлены об этом.
Решение:
Была налажена система автоматического оповещения персон, путём информирования их через аккаунты в социальной сети Twitter. Так, когда подходит срок выполнения обещания или осуществления прогнозируемого события, персоне приходит сообщение.
Проблема:
Необходимо было создать для пользователей возможность помечать любой контент, размещённый на сайте, как интересный, чтобы затем они могли получать уведомления о появлении новых комментариев или других изменениях, связанных с заинтересовавших их материалов.
Решение:
Специальный функционал был разработан специалистами «ТриЛан» с использованием системы отложенных задач.
Проблема:
Необходимо весь контент собирать в единую RSS ленту.
Решение:
Для того чтобы агрегировать все события в одну RSS-ленту, программистами компании был написан специальный модуль, предусматривающий тонкую настройку содержимого, работающую с метками.
Результат
«Обещания.Ru» образца конца 2012-го года — это почти 3 000 обещаний и прогнозов, шестая часть которых добавлена пользователями; более 3 000 подписчиков в социальных сетях; 1400 персон и 700 организаций в базе проекта; 36 экспертов, аналитиков и журналистов, написавших более 300 материалов.
В ноябре 2012 года проект «Обещания.Ru» получил «Антипремию Рунета» в номинации "Збс" (За выдающиеся достижения интернет-СМИ).
ОБЕЩАЛИ — СДЕЛАЛИ! ОБНОВЛЕНИЕ «ОБЕЩАНИЙ.RU» ЗА ТРИ МЕСЯЦА
Предыстория
Развитие проекта происходило медленнее, чем того желали его основатели. Проанализировав возможные причины этого явления, команда «Обещаний.Ru» обратилась к нам, чтобы найти выход из положения. По итогу нескольких встреч мы пришли к выводу, что необходимы серьёзные перемены и силами одной технической поддержки здесь уже не обойтись. Тогда руководством проекта «Обещания.Ru» было принято решение арендовать команду специалистов «ТриЛан», чтобы в кратчайшие сроки осуществить редизайн сайта и оснастить его новым функционалом.
На этот раз в работе над проектом нами использовались передовые подходы к организации командной разработки. Гибкая методология (Agile software development), активно применяемая нашими специалистами, позволила выполнить все задачи качественно и в срок. Благодаря итерационному подходу, чётким и понятным спринтам, на которые был разбит процесс разработки, команде специалистов «ТриЛан» удалось продемонстрировать свои лучше качества.
Задача
По результатам исследования активности пользователей на прежнем сайте было выяснено, что большая их часть не знает о возможности самостоятельного размещения обещаний. Кроме того, анализ показал, что зарегистрированные пользователи проводят в 5,7 раз больше времени на сайте, чем анонимные. На стороне заказчика был разработан дизайн, призванный исправить эти моменты и акцентировать внимание на размещении обещаний. Перед специалистами «ТриЛана» была поставлена задача по созданию макетов страниц с новым дизайном и программированию обширного перечня нового функционала.
Редизайном клиент хотел решить четыре задачи:
Заказчиком были установлены чёткие временные рамки: все работы должны уложиться в три итерации (по месяцу каждая). Итогом должно стать увеличение конверсии новых пользователей в зарегистрированных, а также реализация возможности концентрирования внимания пользователей на одной теме без рассеивания аудитории по сайту.
Оказываемые услуги
Вёрстка макетов, программирование сайта
Начало работ
Создание новой версии сайта началось 15 июля 2014 года.
Ход работ
Проект долгое время находился на техподдержке, в ходе которой осуществлялись лишь доработки в рамках уже созданного функционала, а времени и сил на создание и внедрение новых возможностей не оставалось. Конечно, были грандиозные планы по внедрению нового дизайна, добавлению моделей игрофикации и новых возможностей, однако реализация всего этого заняла бы более десяти месяцев. Поэтому, следуя основным принципам гибкой разработки (Agile), мы предложили итерационный подход реализации с выделением полноценной команды.
Такой подход позволил не только сократить время разработки до трёх месяцев, но и снизить риски на внедрение практически до нуля. Как показывает практика, большинство неудачных проектов считаются таковыми из-за того, что не уложились в срок по причине разработки того функционала, который изначально не был запланирован.
В первые недели реализации проекта была проведена кропотливая аналитическая работа, в ходе которой был сформирован журнал продукта (Product Backlog). Мы выставили приоритеты функциональностей, которые легли в основу ежемесячных релизов (Release backlog). Работа велась итерациями длительностью один месяц. Благодаря этому и заказчик, и разработчики понимали, какой функционал должен быть выпущен к концу итерации. В середине каждой итерации собирались требования к следующему релизу, которые постоянно корректировались с появлением новых требований к проекту и объему функционала.
Внутри команды проводилось еженедельное планирование спринтов (Sprint Planning Meeting). Таким образом, в итерацию умещалось 4 внутренних спринта, которые позволяли всем участникам команды быть в курсе разработки, выявлять проблемы и риски на ранних стадиях и своевременно вносить корректировки в разработку.
Все работы по вёрстке и программированию были разбиты на три итерации, продолжительность каждой из которых равнялась месяцу. Над проектом работала целая команда специалистов: со стороны «ТриЛан» трудились программисты Денис Веселов и Валерий Свириденко, верстальщики Александр Асланов и Александр Пригодин, а также менеджер проекта Дмитрий Чернов; со стороны заказчика проектом вплотную занимались директор по развитию «Обещаний.Ru» Максим Гоненко и руководитель проекта Андрей Черешнев.
В течение трёх месяцев (с 15 июля по 15 октября) программисты «ТриЛан» выполнили массу задач, куда вошли не только работы по созданию функционала для обновлённого сайта, но и действия, направленные на поддержку текущего веб-ресурса проекта.
Всё это проходило по чётко организованному сценарию процесса командной разработки, где:
Первая итерация (с 15 июля по 15 августа)
Так, в период первой итерации на действующем сайте «Обещаний.Ru» были применены элементы игрофикации: в правой части экрана появился прогресс-бар, заполнящийся по мере голосования незарегистрированным пользователем. В определённый момент (после того как пользователь отдаст три голоса) на сайте всплывает окно, предлагая выбор — и дальше оставаться «молчуном» или зарегистрироваться и стать «гласом народа».
Скриншот прогресс-бара
Скриншот всплывающего окна
Помимо этого, в первую итерацию на текущем сайте было решено несколько существенных проблем. Так, был увеличен объём сервера и количество воркеров, что позволило поддерживать больше одновременных подключений и избежать падения сайта.
Обнаружилось, что при добавлении очередного объекта (обещания, прогноза и пр.) к сюжету сверх определённого числа возникает ошибка 500. Тогда наши специалисты увеличили допустимое количество объектов, привязываемых к сюжету.
В то же время велись работы и по созданию нового функционала для обновлённых «Обещаний.Ru». На сервера проекта установили систему развёртывания приложений, которая позволила использовать актуальные версии программного обеспечения. Добавили возможность фильтрации по персонам в раздел сюжетов, обновили страницу профиля (изменили работу с подписками), а также выполнили большое количество мелких исправлений.
Фильтрация по персонам в сюжетах
Вторая итерация (с 15 августа по 15 сентября)
Во время второй итерации на текущем сайте проекта возникла проблема: на сервере в геометрической прогрессии увеличивалось потребление оперативной памяти (24 гигабайта полностью расходовались за 3 часа). Мы оперативно провели анализ, выбрали несколько вариантов решения, и проблема была устранена. Также в этот период программисты «ТриЛан» обновили на текущем сайте поисковый сервер, благодаря чему тот стал работать быстрее.
Основная работа в этот период кипела вокруг создания нового сайта. Было свёрстано более 50 макетов, переделана главная страница (появился большой блок сюжетов, отражающих актуальные события в стране и за её пределами), переделана страница обещания (она стала удобнее, появился новый способ отображения статуса документа), фильтрация в разделе «Обещания и прогнозы» стала удобнее, а страницы волонтёров и новостей были приведены в соответствие с новым дизайном.
Третья итерация (с 15 сентября по 15 октября)
Наконец, в период третьей итерации почти все работы были направлены на скорейший запуск бета-версии нового сайта. Специалисты «ТриЛан» подобрали конфигурации для новых серверов, чтобы сайт выдерживал большие нагрузки. Переделали страницы списка персон и организаций (появились всплывающие подсказки, где отображается рейтинг доверия, формирующийся на основе голосования, и другая информация). В распоряжении проекта появился новый поисковый сервер с актуальной версией ElasticSearch. Обновили раздел мнений в соответствии с дизайном. Исправили последние недочёты и выложили бета-версию на сервер для тестирования.
Примеры страниц нового сайта
Главная страница
Страница обещания
Страница списка персон
Проблемы и решения
Проблема:
Сайт страдал от перегрузок.
Решение:
Был увеличен объём сервера и количество воркеров, что позволило поддерживать больше одновременных подключений и избежать падения сайта.
Проблема:
Обнаружилось, что при добавлении очередного объекта (обещания, прогноза и пр.) к сюжету сверх определённого числа возникает ошибка 500.
Решение:
Увеличили допустимое количество объектов, привязываемых к сюжету.
Результат
С 5 ноября обновлённые «Обещания.Ru» начали полноценную работу.
СТОРОНЫ О ПРОЕКТЕ
Максим Гоненко,
директор по развитию проекта «Обещания.Ru»
По проекту в целом:
В работе с компанией «ТриЛан» меня всё устраивает. Разве что очередь на верстку иногда очень длинная, но, если нам что-то нужно сделать срочно, менеджмент компании всегда идет навстречу, что, несомненно, радует. Денис, который занимается сейчас поддержкой сайта, — очень адекватный и понимающий человек. Часто сам предлагает какие-то решения, которые оказываются лучше моих. Бывает неразбериха с документами, но это не так страшно.
По работе над обновлённым сайтом:
Работу специалистов «ТриЛан» оцениваю на пять! Конечно, не всегда наши желания сделать всё в срок совпадали с физическими возможностями, но в целом у меня нет нареканий, я доволен. Хотелось бы отметить, что с переходом на итерационный метод работы оценивать сроки стало гораздо удобнее, это позволило точнее выстроить планирование, благодаря чему весь процесс разработки прошёл почти без опозданий или каких-либо задержек. Я считаю, что именно такой подход оптимален для создания крупных проектов.
Денис Веселов,
ведущий программист
По проекту в целом:
Я бы выделил два наиболее интересных, на мой взгляд, решения, которые были реализованы в рамках проекта «Обещания.Ru». Во-первых, это создание раздела сюжетов (http://www.obeschania.ru/trends/), где собираются различные данные (документы, мнения, новости), объединённые одной темой. Причём, если у документа есть новости или мнения, то в сюжет они добавляются автоматически — это упрощает работу редакторам, которые формируют сюжеты. Во-вторых, есть интересное решение для подсчёта мест, где упоминается персона или организация (http://www.obeschania.ru/persons/putin-vladimir). Скажем, если Владимира Путина упомянули специальной кнопкой в каком-то документе, мнении или новости, то на его странице это сразу же отобразится (в блоке «где упоминается»).
По работе над обновлённым сайтом:
Это были три месяца усердной работы: мы с командой делали новую, интересную и очень сложную, версию «Обещаний». Каждая неделя начиналась с коррекции оценок и проверки того, успеваем ли мы сделать всё в срок, а каждый месяц — с оценки проделанных работ и расставления новых приоритетов задач. Благодаря тому, что над проектом трудилась команда профессионалов, мы уже на третьей неделе успели выполнить весь список задач на первую итерацию. Потом каждую следующую итерацию мы также не теряли времени даром и делали всё с опережением графика. Третья итерация была самой сложной: помимо запланированного функционала, мы находили какие-то недочёты, нестыковки и в порядке очереди исправляли их. В середине итерации даже становилось немного страшно: мы могли просто не успеть сделать всё в срок, потому что на исправления было выделено не так уж много времени. Но благодаря профессионализму ребят из моей команды всё было сделано в срок!
Александр Асланов,
программист-верстальщик
По работе над обновлённым сайтом:
При разработке сайта пытались избежать ошибок, которые были допущены в предыдущей версии. С самого начала работы над проектом был налажен тесный диалог с заказчиком и дизайнером — это очень сильно помогало в решении трудных задач. Где-то пришлось дизайн упростить, а где-то, как мне кажется, наоборот — сделать его более насыщенным в функциональном плане.
Дмитрий Кукушкин,
ведущий программист
В этом проекте мы смогли задействовать новейшие технологии и самые смелые идеи! Для нас «Обещания.Ru» стали бесценным опытом разработки подобных порталов. Команда разработчиков «ТриЛан» приложила максимум усилий для того, чтобы сайт был удобен для пользователя и отказоустойчив. Перед нами изначально ставилась задача создать портал, который ежедневно сможет принимать более 100 000 посетителей. Во время разработки мы вели активный диалог с клиентом и в режиме итеративного общения разрабатывали проект, который сейчас видит пользователь.
Дмитрий Чернов,
менеджер проекта
Это интересный и уникальный проект. Я очень ценю и благодарю всех коллег за совместную работу. Здорово работать над этим проектом!
Фёдор Воропаев,
руководитель отдела разработки
Разработать сервис обещаний — действительно интересная задача. Идея проекта — создать инструмент для того, чтобы следить за исполнением обещаний известных людей — заслуживает самых высоких оценок. Поэтому работать над «Обещаниями.Ru» было по-настоящему увлекательно. Мы надеемся, что благодаря этому инструменту люди серьёзнее станут относиться к своим словам.
Андрей Черешнев,
руководитель проекта «Обещания.Ru»
По разработке первой версии проекта:
Работа над проектом, который по функционалу принципиально отличается от большинства существующих интернет сайтов, не может быть простой и беспроблемной. Помимо классических сложностей, связанных с обширным техническим заданием и необходимостью соблюдения сроков, разработчиков ждут многочисленные сюрпризы.
В какой-то момент новый сайт, только-только получивший базовый функционал, начинает развиваться по законам собственной внутренней логики. В результате, возникают совсем неожиданные идеи, не предусмотренные ни авторами концепции, ни техническим заданием. Те, кто работал с большими интернет-проектами «с нуля», поймут, что я имею в виду. И здесь уже необходимо не просто умение «прикрутить», а способность просчитать, к каким последствиям может привести внедрение той или иной новой «полезняшки».
На мой взгляд, в «ТриЛане» с этой задачей справились. Коллеги, спасибо!
Проведите конкурс среди участников CMS Magazine
Узнайте цены и сроки уже завтра. Это бесплатно и займет ≈5 минут.