Здесь в Smartum мы занимаемся запуском стартапов уже достаточно долгое время. Около 5 лет (или более 50 проектов) : CRM-системы, приложения для дистанционного обучения, VPN-приложения, социальные сети и так далее.
Все наши проекты были крайне разносторонними, но у большинства из них есть кое-что общее — рабочий процесс, используемый при их разработке. С помощью этого процесса мы можем разрабатывать отличные приложения в предсказуемые сроки и без потерь в качестве.
Итак, сегодня мы бы хотели поговорить об этом рабочем процессе. Быть может, вы также захотите применить его у себя в бизнесе (или, быть может, заказать у нас приложение… Кто знает?). Приступим!
Каждый клиент хочет создать превосходное приложение с огромной юзербазой и доходом, но зачастую не совсем понятно, как это сделать — идея попросту не проверялась на настоящих пользователях.
Либо функции приложения описаны недостаточно подробно, либо их разработка займет слишком много времени. В таких случаях проект очень легко превращается в бездонную чёрную дыру с неограниченными потребностями во времени и бюджете.
И конечно же клиент хочет знать точную стоимость продукта, сроки запуска, и при этом иметь определенные гарантии после него. Для наиболее быстрого и безопасного запуска продукта мы используем принципы методологии Lean.
Основная идея заключается в создании MVP (минимально жизнеспособного продукта). Это позволяет и нам и клиенту определить по-настоящему важные функции, после чего как можно быстрее запустить проект в разработку.
Несмотря на то, что этот рабочий процесс больше подходит для мобильных приложений (где цикл разработки обычно короче), его вполне можно применять и для web-проектов.
Теперь поговорим в деталях:
От клиента требуется:
Видение проекта. Документ кратко описывающий суть приложения, а также его главную функциональность. Наличие простого прототипа (wireframes) значительно упрощает работу дизайнера.
Данные документы могут быть предоставлены клиентом, но в большинстве случаев проработка нашей командой будет предпочитетельнее.
Прототип дизайна. Разрабатывается для того, чтобы и клиент, и команда имели точное представление о том, как продукт должен выглядеть. Интерактивный прототип позволяет визуализировать логику перемещения между экранами приложения, расположение элементов на экранах, решает ряд задач по проверке целостности, а также упрощают восприятие технического задания. В нашем рабочем процессе мы используем сервис Invision, который значительно упрощает задачу создания прототипа.
Техническое задание. Описывает суть приложения, его элементы, их взаимодействие, требования к функциональности и внешнему виду. Техническое задание помогает систематизировать информацию о том, что из себя представляет приложение, и как оно должно работать.
Чем лучше будут проработаны эти документы, тем эффективнее и предсказуемее будет двигаться работа.
После того как клиент и команда определились с требованиями, мы начинаем готовить план разработки (roadmap) который состоит из:
Список функций, распределенных по приоритету (backlog). Данный документ призван помочь команде сориентироваться в том, что должно быть сделано в первую очередь. После того, как команда подготовит бэклог, клиенту нужно будет приоритезировать функции приложения. В первую версию попадут функции с наибольшим приоритетом которые команда может сделать за 3 месяца.
Планирование задач на каждую итерацию (iteration breakdown). Составляется командой совместно с клиентом для того, чтобы обе стороны понимали, что должно быть выполнено в пределах данной итерации. По ее завершению, клиент должен подтвердить выполненные работы. Оплата выполненных работ должна быть произведена в течение 5 дней после завершения итерации.
Распределение нагрузки/формирование команды (resource allocation/team setup). Перед началом процесса разработки нужно определить, какие члены команды будут подключаться на каждом отдельном этапе.
Это необходимо для того, чтобы процесс разработки был непрерывным, а члены команды были вовлечены в него на постоянной основе. В случае, если разработка останавливается, мы не можем гарантировать возможность его возобновления в любой момент, так как члены команды переводятся на другие проекты во избежание простоев.
Первый этап разработки длится 3 месяца, и состоит из 6 итераций:
Задачи и результат:
Почему?
На первом этапе необходимо подготовить фундамент для основных функций приложения. Само приложение на данном этапе является просто каркасом — вы сможете перемещаться между экранами, но самого функционала на данном этапе разрабатываться не будет, так как на стороне сервера пока что отсутствует back-end.
Если разработка функционала начнется раньше реализации интерфейса, по завершении первой итерации вы не сможете получить первую версию своего приложения, так как в нём будет не на что смотреть.
Задачи и результат:
Почему? При разработке крайне важно, чтобы ни одна часть проекта не являлась своеобразным “бутылочным горлышком”, которое будет блокировать остальной процесс разработки. Поэтому необходимо чтобы все части команды как можно скорее закончили разработку функционала, без реализации которого дальнейшее движение проекта невозможно.
Задачи и результат:
Почему? Когда проект ничего не блокирует, можно приступать к реализации большей части основной логики приложения. Тестирование и исправление багов на текущем этапе не имеет смысла — при добавлении нового функционала могут проявиться новые баги, из-за чего многое придется исправлять заново.
Задачи и результат:
Почему?
Серьезные изменения в логике приложения сведут на ноль результаты тестирования и вызовут регрессию по всей функциональности. Работы по активному тестированию и стабилизацией продукта начинаются после подтверждения присутствия всех функций. Для качественного тестирования, необходимо чтобы весь функционал приложения был на месте, и команда тестирования могла воспроизводить всевозможные пользовательские сценарии.
Задачи и результат:
Почему? Обычно для релиза проекта бывает необходимо выполнить несколько задач, не входивших в изначальный план. Например:
Задачи и результат:
! В случае, если ваш продукт разрабатывается для iOS, на данном этапе рекомендуется отправить приложение на модерацию в App Store, так как процесс модерации приложения может занять до нескольких недель.
После завершения разработки, приложение отправляется на модерацию для последующего размещения в App Store/Google Play (если это мобильное приложение). При этом нужно учитывать, что продолжительность процесса модерации может варьироваться от пары часов (Google Play) до нескольких недель (App Store).
В случае, если клиент хочет опробовать свой продукт на небольшой группе пользователей, релизу приложения может предшествовать бета-тест. В зависимости от платформы и целей бета-теста можно использовать разные инструменты — Crashlytics, TestFlight, Diawi и т.д.
По завершению всех этапов, команда Smartum даёт двухнедельную гарантию на свою работу. В течение двух недель мы бесплатно исправляем все критические и серьезные баги в приложении, если такие имеются.
После релиза команда может заняться улучшением приложения и добавлением новых функций. Но в первую очередь на данном этапе следует заняться обратной связью — узнать мнение пользователей о приложении. На основе пользовательских отзывов можно понять, что именно следует улучшить в приложении, и какие функции, вероятно, остались невостребованными.
В заключение, мы хотели бы упомянуть о типичных ошибках при разработке продукта, которых нетрудно избежать:
looks good!
We will process the request and contact you.
Now fill in information about yourself: