Одним из направлений деятельности нашей компании является разработка быстрых, надежных и красивых приложений для наших клиентов. Занимается этим целая команда: дизайнеры, разработчики, тестировщики, аналитики, архитекторы и другие.
Скоординировать работу всех специалистов для получения быстрого и качественного результата довольно сложно, если нет правильных и налаженных процессов. В этой статье, не вдаваясь в терминологию, мы поделимся четырьми этапами, которые проходит команда по разработке мобильных приложений в Ryadom Tech.
1. Аналитика
Без изложенных на бумаге требований невозможно сделать хороший продукт. Зачастую бывает так, что клиент не знает, чего именно он хочет, поэтому мы закладываем время на качественную аналитику: проводим интервью, анализ рынка и целевой аудитории; вникаем в предметную область, а затем обязательно излагаем всё на бумаге.
Может показаться, что этим этапом можно пренебречь, чтобы сэкономить время и ресурсы, особенно если приложение "простое". Это очень частое заблуждение.
Во-первых, обычно на этапе аналитики выясняется, что приложение вовсе не простое. Практически всегда с приложением требуется разработка серверной части, базы данных и весьма часто панели управления для владельцев продукта. А еще приложения бывают под iOS и Android, и каждое делают разные специалисты.
Мы стараемся не использовать кроссплатформенные решения, так как видим в них больше минусов, чем плюсов. Но заглядываемся на KMM, ожидая интеропа со свифтом. Обещали подвезти к 2025 году.
Алексей Козловский, лид мобильной разработки
Во-вторых, даже небольшое приложение в дальнейшем будет масштабироваться. А грамотного масштабирования не может быть без изложенной "корневой" бизнес-логики. Вернувшись через пару лет к старому проекту для его усовершенствования нужно будет постараться вспомнить, почему "здесь сделано так", и случайно не сломать старый функционал.
Ну и в-третьих, так как над разработкой под iOS и Android (а еще зачастую мы делаем Web) работают разные команды, их требуется скоординировать общими правилами. Нельзя допустить, чтобы в Android приложении и Web версии один и тот же функционал работал по-разному. Например, карточки должны отображаться везде в одинаковом порядке, кнопки при нажатии должны совершать одно и то же действие, ограничения должны быть идентичными на всех платформах.
В результате мы получаем всю систему на бумаге, а точнее в нашей базе знаний.
2. Проектирование и дизайн
На данном этапе мы привлекаем ресурсы отдела дизайна и проектирования для разработки макетов приложения и верхнеуровневой архитектуры. Наша цель — надежный каркас, правильный UX и приятный глазу UI. Во время разработки макетов дизайнеры активно взаимодействуют с клиентом, учитывая его пожелания, а также с разработчиками и архитекторами системы.
Наш типичный проект выглядит так:
1. Клиентские приложения под iOS, Android, а также Web-сайт
2. Web панель управления
3. Монолит на Spring или микросервисы
4. Один или несколько слоёв кеширования на Redis
5. База данных, обычно Postgres
6. Файловое хранилище S3 или Minio
Также мы делаем 2 окружения: Stage и Production для тестовых данных и "реальных", настраиваем бесшовный деплой серверов, автоматическое резервное копирование БД и автотесты.
В результате этого этапа мы получаем макеты приложений, кликабельный прототип, схемы основных бизнес-процессов и верхнеуровневой архитектуры, а также подготовленную инфраструктуру для проекта.
3. Разработка
Имея на руках всё необходимое, можно переходить к процессу разработки.
Сначала мы собираем продуктовую команду, ориентируясь на сроки и сложность проекта. Здесь важно создать баланс, чтобы не было "третьего лишнего" и одновременно хватало рук на внезапные правки и баги.
В среднем, команда по разработке приложения состоит из 8-10 человек: лид, аналитик, дизайнер, разработчики iOS, Android, Backend и тестировщики.
Не будем мусолить процессы, так как о них давно рассказали другие компании. Скажем лишь, что работаем по библии: скрам, 2-х недельные спринты, дейли, демо, ретро, PBR. Планируемся и заводим задачки мы в отечественном Weeek, который включает в себя и таск-трекер, и базу знаний, и даже CRM.
Заострим внимание на маленькой хитрости, которая помогает нам сэкономить время для себя и ресурсы для заказчика — переиспользование стандартных модулей.
В приложениях часто используются "стандартные" фичи. Например, камера, галерея для выбора медиа, просмотр видео и фото, редактирование изображений, метрика и всё в таком духе. Мы создали целую библиотеку таких модулей, которые достаточно подключить в новый проект и точечно доработать под его логику и дизайн.
Также для приложений под Android существует целый набор стандартных утилитных функций для работы с коллекциями, компонентами Android SDK, изображениями и так далее.
И мы активно их используем! Сделав что-то впервые для какого-либо проекта, мы обязательно вычленим это в программный модуль и сохраним на будущее для переиспользования. Справедливости ради отметим, что никогда наши клиенты не выступали против такого подхода.
4. Публикация
Процесс публикации приложений начинается за месяц до конца разработки. Время требуется на подготовку инфраструктуры на имя клиента: сервисных почт, аккаунтов на хостинге, в магазинах приложений.
Мы публикуемся в Google Play, App Store, App Gallery, Ru Store, Xiaomi GetApps и Galaxy Store, и все магазины требуют пройти процедуру регистрации и верификации. P.S. У нас есть свои лафхаки для регистрации в сторах, требующих иностранную банковскую карту. Поделиться ими в следующей статье?
Так вот, предположим, приложение проанализировано, разработано, протестировано, вся документация написана, сторы оформлены, клиент в ожидании. Что дальше?
Релиз! Альфа и бета-тестирование! Эти этапы также являются необходимыми в цикле разработки приложений. На первом этапе тестировщиками является узкая группа лиц: зачастую клиент и его коллеги, а на втором этапе мы подключаем людей "извне", но пока еще не даем гласности продукту.
Пока идет процесс альфа и бета-тестирования мы собираем и тщательно обрабатываем фидбек, отслеживаем краши и баги, в свободное время занимаемся рефакторингом и оптимизациями. Конечным результатом этого этапа является хороший отчет о стабильности системы, гарантирующий ее устойчивость на первых этапах жизни продукта.
А дальше маркетинг, сопровождение и непрерывное развитие!
Скоординировать работу всех специалистов для получения быстрого и качественного результата довольно сложно, если нет правильных и налаженных процессов. В этой статье, не вдаваясь в терминологию, мы поделимся четырьмя этапами, которые проходит команда по разработке мобильных приложений в Ryadom Tech.