- Команда і процес
- Чому SCRUM?
- приклади ітерації
- Новий каталог сервісів і спец.предложение
- Гео-залежні результати пошуку
- клієнтська шаблонізаціі
- Нові форми редагування компаній
- Сервіс перевірки контрагентів
- Автоматичне тестування верстки
- висновки
До нас приходять різні проекти, великі і маленькі. Кожен проект зі своїми особливостями. Особливість великих проектів - вони всі потребують виділеної команді розробників. Наша особливість в тому, що ми вміємо формувати злагоджені команди під великі проекти.
Приклад великого проекту Портал Клубу Клієнтів Альфа-Банку. Аудиторія порталу - керівники малих і середніх бізнесів. Сервісами клубу скористалося 40 000 компаній клієнтів Альфа-Банку. Більше 5000 активно користуються порталом і залучають клієнтів. Над проектом працює команда з 5-и осіб. Ми почали роботу над проектом в жовтні 2014 року, пілотна версія була запущена навесні 2015. З цього моменту ми продовжуємо працювати над розвитком цього проекту. Всього було понад 100 ітерацій-релізів, вирішено понад 500 завдань, інвестовано 2500 годин
Команда і процес
Основний склад команди:
Юрій Устинов - керівник проекту з боку Альфа-Банку, Product Owner і ідейний натхненник. Він задає напрямок, ставить великі і дрібні завдання, приймає роботу.
Олександр Михайлов - Головний Back-end розробник, основний розробник на проекті.
Юрій Корольков - Головний Front-end розробник, основний верстальник проекту.
Олександр Карпов - Головний дизайнер проекту.
Сергій Горєлов - менеджер проекту з боку ИнтерВолга, Scrum-master, відповідає за робочий процес, комунікації, своєчасність і акуратність.
Методологія - SCRUM
Система управління проектом - Google Docs і Youtrack, чат в Bitrix 24, дзвінки в Skype
Чому SCRUM?
В нашій команді всього 5 осіб, всі з різною спеціалізацією. Ми не робимо завдання паралельно, тому помилки для нас дуже дорого коштують. Їх усунення зупиняє розробку і гальмує розвиток проекту. У нас немає можливості довго і скрупульозно перебирати варіанти реалізації, нескінченно проектувати, перевіряти результат на фокус групах, тому ми відкинули Водоспад з його суворої послідовністю і поверненнями в початок шляху. Навпаки, у нас є багато гіпотез, які ми хочемо швидко перевірити в бою, порожні відкинути / заморозити, корисні розвивати.
Ми вибрали SCRUM. У нас є довгий список завдань, в який Юрій Устинов (Product Owner) додає баги, завдання, побажання, зауваження, ідеї - все те, що може поліпшити проект. Кожен день в 9-00 вся команда телефонує по скайпу, звіряє плани і факти, перевіряє доберемося чи до поставленої мети в термін. Раз в тиждень команда обговорює завдання, розставляє пріоритети і приймає рішення - яким маршрутом ми будемо рухатися далі до мети.
З одного боку це схоже на бардак з колективною відповідальністю, з іншого боку така свобода дозволяє нам швидко рухатися вперед.
Для підтримки порядку в проекті ми використовуємо сучасні інструменти та підходи. Основні:
Система контролю версій (GIT) - дозволяє безболісно підключати нових розробників у важкі моменти. Всі зміни які вони вносять проходять перевірку провідним програмістом проекту.
Розробка ведеться на окремому сервері, де у кожного розробника є своя "пісочниця" - фахівці не заважають один одному, кожен працює в своїй екосистемі і час від часу вони синхронізуються один з одним. Помилки і аварії на одній з пісочниць не блокують роботу всієї команди, а проблемна пісочниця оперативно замінюється на нову.
результат перших 6 місяців командної роботи ми вже описували. З того часу минуло багато часу і ми вирішили, що пора розповісти про те, що відбувається в проекті.
Якщо в числах, в середньому за місяць ми закриваємо 250-300 годин. Кожні 2 тижні завершуємо чергову ітерацію і щось переносимо на бій.
приклади ітерації
Нова домашня сторінка порталу
Яку проблему / завдання вирішували?
Перед нами стояло завдання розробити гнучку геозалежні головну сторінку порталу.
Родзинка головної сторінки це її можливість настройки для кожного регіону, без підключення програміста.
Сторінка розділена на 4 горизонтальних блоку для відображення контенту різних типів: спеціальні пропозиції, заходи, сервіси і т.д. У кожному регіоні у клубу клієнтів свої партнери зі спеціальними пропозиціями, свої сервіси і свої особливості, контент-менеджер має можливість задати налаштування відображення для конкретного міста або для групи міст. В тому числі, "просунути" спеціальна пропозиція або сервіс в конкретному регіоні.
Як структури даних для зберігання інформації ми вибрали дерево. Вузли дерева - блоки на головній сторінці, листя дерева - настройки для конкретного регіону. Для зберігання дерева використовували Інфоблоки. Розділ = вузли. Елементи = листя.
Практично для кожного блоку контент-менеджер може задати зображення в якості фону. При завантаженні зображення контент-менеджер може вказати з якою "силою" потрібно розмити зображення.
У чому ми виграли:
Виключили роботу програміста. Щоб провести акцію в місті або проанонсувати потрібне захід жодного разу не знадобилося залучати фахівців.
Новий каталог сервісів і спец.предложение
Ми хотіли показувати користувачам релевантні спеціальні пропозиції і сервіси з того ж регіону, що і відвідувач, а також дати користувачам порталу зручні і технологічні інструменти пошуку.
Гео-залежні результати пошуку
На момент початку програмування, у нас вже був реалізований механізм кешування, що враховує місто відвідувача. Ми використовували його повторно.
З пошуком ситуація складніша. Пошукова машина в 1С-Бітрікс не така просунута як "Яндекс" і не вміє враховувати розташування користувача при обробці пошукового запиту. Ми розширили можливості стандартної системи за рахунок обробників подій, що спрацьовують в момент індексування контенту. Така проста маніпуляція дозволила додати в пошуковий індекс дані про компанію, яка опублікувала спеціальну пропозицію, що не роздуваючи структуру даних і не створюючи додаткове навантаження в публічній частині порталу.
клієнтська шаблонізаціі
Розділ спеціальні пропозиції виконаний як single page application. Такий підхід дозволяє мінімізувати кількість переданого контенту з сервера в браузер і прискорити реакцію інтерфейсу на дії користувача. Простою мовою - коли ви натискаєте на кнопку, перезавантажується не вся сторінка, а "догружаются" тільки необхідні дані у вигляді JSON.
При реалізації розділу ми врахували максимум можливих сценаріїв використання розділу:
При переході зі сторінки на сторінку змінюється URL, його можна скопіювати, зберегти в закладки, надіслати другу
Працюють кнопки браузера "вперед" і "назад"
При відкритті внутрішньої сторінки за прямим URL, сервер покаже потрібний контент
Всі сторінки працюють при відключеному JS, Яндекс прекрасно індексує контент
В результаті в 2 рази збільшилася кількість переглядів сторінок компаній
Нові форми редагування компаній
Необхідно отримати більше інформації про бізнес користувачів клубу, щоб мати можливість познайомити зацікавлені бізнеси один з одним.
Ми розробили складний функціональний віджет для вибору видів діяльності компанії.
Можна використовувати пошук:
Можна скористатися рубрикатором:
Щоб віджет працював максимально швидко, ми не завантажуємо відразу все дерево розділів, а довантажувати їх у міру потреби і кешіруем в браузері. Таким чином користувач один раз отримає тільки потрібні йому дані.
На наш погляд, рішення виявилося вдалим. Більше 5000 компаній вказали в яких галузях вони працюють, представників яких галузей вони бачать своїми клієнтами, а будь партнерами і постачальниками.
Сервіс перевірки контрагентів
Спільно з розробниками сервісу Моя справа ми надали користувачам Kлуб Kліентов новий сервіс перевірки контрагентів по ІПН.
Який результат?
55% користувачів скористалися сервісом перевірки контрагентів у вересні.
Автоматичне тестування верстки
За довгий час роботи над проектом змінилося кілька інструментів верстки. Перехід з одного інструмента на інший завжди дається болісно. Завжди щось ламається там, де цього не чекаєш.
Цього разу ми підстрахувалися так: автоматично зняли скріншоти з усіх типів сторінок до змін і після. За допомогою спеціальних інструментів, в автоматичному режимі, порівняли скріншоти і побачили різницю. Детальний опис інструментів ми показали в статті " Контролюємо стабільність верстки ".
В результаті тестування ми отримали список завдань на виправлення. Помилки виправили, оновили JS і CSS на сайті.
висновки
Для впевненого руху вперед і досягнення результатів досить злагодженої роботи невеликої команди фахівців. У нас є практичний досвід такої роботи і фахівці, які разом працювали над різними завданнями. Якщо у вас є проект, ми готові сформувати для вас команду професіоналів.
Оцініть статтю:
Який результат?