Moneygmnt История разработки

История проекта началась в августе 2012 года. Перед началом работы над проектом я уже длительное время планировал свой бюджет. Для этих целей исследовал существующие приложения, но каждое из них не удовлетворяло моим потребностям. Анализ рынка показал низкую конкуренцию, и было принято решение начать работать над проектом, который планировался к запуску через 7-8 месяцев работы.

Как и сейчас, в тот момент у меня было постоянное место работы. Соответственно разработкой приходилось заниматься только в свободное время, которого, как обычно, мало. В конце истории укажу на проблемы и ошибки, которые происходили на этапе всего проекта. Именно из-за этих ошибок продукт не вышел в срок и стал невостребованным. Тем не менее, опыт был получен колоссальный и хочется им поделиться.

Moneygmnt История разработки

План работы выглядел следующим образом:

— Подбор команды и организационная часть;
— Подготовка бизнес-модели;
— Аналитика/Архитектура;
— Разработка прототипов;
— Дизайн;
— Разработка;
— Публикация проекта и его поддержка.

Этап 1 — Подбор команды и организационная часть

Была организована команда из четырех человек: два разработчика, дизайнер/UI-дизайнер и аналитик. Каждый из них также имел основное место работы, поэтому времени на проект у всех оставалось не много. Изначально была найдена бесплатная система постановки задач, которая вполне удовлетворяла нашим нуждам.

Этап 2 — Подготовка бизнес модели

Команда была собрана и предстояло написать видение бизнес модели. Для этого каждому из участников рассылалась анкета с условием ее заполнения и последующим обсуждением. Бизнес модель была основана на freemium-схеме, то есть часть функциональности бесплатно, остальное - за деньги.

Этап 3 — Аналитика/Архитектура

На данном этапе решались основные вопросы по работе приложения: взаимодействие с сервером и клиентская часть. Появилась мысль получить учетную запись Microsoft Bizspark. Компания подтвердила заявку и у нас появилась возможность использовать сервисы и продукты в рамках программы Microsoft Bizspark. С этого момента мы решили перейти на систему управления задачами и багами Jira. В качестве системы контроля версий использовался svn на assembla.com. Jira была развернута на виртуальной машине в Windows Azure, в нее были перенесены все задачи из предыдущей системы.

Велась аналитика построения системы клиент-сервер. Так как было очень интересно изучить Windows Azure платформу, то архитектуру заложили с учетом этих требований. В системе планировалось использовать три сервиса:

— Получение информации курса валют и кеширование их в БД на сервере;
— Предоставление API для синхронизации данных между клиентом и сервером;
— Публикация сайта-визитки с основной информацией о продукте.

Очень много времени было потрачено на изучение архитектуры Windows Azure. В конечном счете предполагалось использовать облачный сервис, состоящий из двух составляющих:

— Рабочая роль - получала информацию по курсам валют с yahoo сервиса и обновляла данные в БД;
— Веб роль - предоставляла API и одновременно с этим содержала web-endpoint (доступ к сайту-визитке).

В качестве фреймворка синхронизации выбрали Microsoft Sync Framework. На данном этапе решили переехать с assembla на bitbucket, попутно начать изучение git'а.

Этап 4 — Разработка прототипов

После того как все организационные моменты были утрясены, начался этап разработки прототипов. Их рисовал каждый из участников, так как хотелось сделать продукт, удовлетворяющий потребности каждого из нашей группы. Все прототипы рисовали в Prototyper. Каждый нарисованный экран обсуждался всей группой и мы вносили необходимые корректировки. Параллельно этапу прототипирования велась разработка серверной части и тестового клиента под iPhone. Как только у 50% окон были готовы прототипы - начали рисовать дизайн.

Этап 5 — Дизайн

Начался этап отрисовки дизайна. Опыт промышленной разработки был не у всех, а соблюдать некоторые правила хотелось. Не было единой базы компонентов дизайна, в итоге некоторые окна отличались по цветам и стилю. Изначально дизайн рисовали под iOS 6, так что приложение имело кожаную текстуру. Но в процессе отрисовки концепция дизайна приложения изменилась, решили делать приложение в легком стиле. На тот момент iOS 7 еще не было, так что идея интерфейса была позаимствована у Windows Phone-приложений. Через некоторое время произошла демонстрация iOS 7, тогда-то мы и поняли, что тренд был верный. Пусть даже из-за резкой смены стиля было потеряно время, результатом нового дизайна все остались довольны.

Этап 6 — Разработка

Шестой этап растянулся на длительный срок. Произошло это из-за огромных изменений в составе команды. В результате приложение после этапа дизайна было завершено только через полгода. В течение этого периода бизнес-модель была изменена с freemium на полностью бесплатное приложение.

Что было сделано и какие технологии использовались:

— Полностью переехали с Jira на bitbucket;
— Web-Сервер запустили на Windows Azure, используя рабочую роль и веб роль (в качестве фреймоврка используется ASP.Net Web API);
— Естественно использовали SSL-сертификат и доступ к сервису проходил через HTTPS;
— Внедрили CI в TFS online, таким образом при каждом изменении в git имели новую версию на staging среде;
— Процесс разработки клиента под iPhone происходил достаточно гладко. Единственное, что можно отметить, — это сложность компонента выбора категорий и подкатегорий, так как UICollectionView имеет достаточно количество багов в фреймворке.

Этап 7 — Публикация проекта и его поддержка

Процесс публикации прошел гладко:

— Staging-среда была трансформирована в Production с внесением соответствующих изменений в конфигурацию;
— iPhone-приложение пропустили с первого раза. Время на утверждение - около семи дней;
— Был подготовлен сайт, на котором опубликованы скриншоты из приложения и описание;
— Для пожеланий и предложений была создана специальная страница;
— Созданы группы в VK, Facebook, Twitter.

Moneygmnt История разработки

Результаты запуска и дальнейшие планы

После недели на в App Store приложению удалось попасть в топ новых категории финансы. Там оно продержалось около четырех недель. Дальше загрузки стали опускаться. Это с условием того, что продвижение приложения осуществлялось только через друзей в социальных сетях. Что касается дальнейших планов, уже ведется разработка приложения под Android, а также мы планируем запустить Web-версию.

Основные отличия от конкурентов

При проектировании приложения много внимания уделялось удобству использования. Таким образом удалось получить добавление операции с полной информацией по категории/подкатегории всего в четыре клика. Еще одно очень важное отличие — возможность начать работать с приложением без регистрации. Пользователь может начать вести учет финансов сразу после установки приложения - достаточно только нажать кнопку «Вход без регистрации». При этом уже будет готов шаблонный список категорий/подкатегорий и двух счетов.

Moneygmnt История разработки

Организационные проблемы

Как и любой проект, Moneygmnt потерпел много изменений и неудач в ходе реализации, ниже указаны основные. Возможно, кому-то это понадобится, чтобы избежать подобных проблем при реализации своего продукта.

Проблема #1: Свободного времени очень мало, особенно если проектом не «горишь». Обязательно договаривайтесь о конкретных часах работы на проекте в неделю, иначе будут возникать ситуации с застоем в работе. В нашем случае это выливалось в недовольство, так как заинтересованность некоторых участников была гораздо выше остальных членов команды и, конечно же, ожидания были выше возможностей.

Проблема #2: Не работайте над одной и той же задачей всей группой. Назначайте людей зоны ответственности - пусть они принимают решения.

Проблема #3: Утвердите с командой план работы и график и придерживайтесь его.

Проблема #4: Определите стандарты дизайна, опишите их. В случае простого дизайна достаточно описать это в текстовом виде, с указанием используемых цветов, отступов и так далее.

Проблема #5: Доверяйте задачи другим людям, не пытайтесь сделать все в одиночку. Люди должны чувствовать важность в проекте, иначе они быстро угасают.

Проблема #6: Если это возможно, периодически вносите изменения в работу других людей, предлагайте новые интересные задачи. Все знают, что работать долгое время над одной и той же задачей скучно и нудно. Предлагайте творческие и аналитические задачи, которые помогут разнообразить работу. Делайте вылазки из дома и собирайтесь в кафе или парках для совместной работы. Во-первых, это продуктивно. Во-вторых, это поможет развеяться и разнообразит работу.

Проблема #7: Надоело или устали. Если помимо разрабатываемого проекта есть еще и основная работа, то войти в состояние «надоело» или «устал» очень легко. В данном случае конкретного решения нет. Но если проект действительно интересный, всегда найдется время и желание его доделать. В нашем случае паузы в проекте был и три раза.

Проблема #8: Серьезно исследуйте рынок перед началом работ, определите целевую аудиторию и бизнес-план.

Проблема #9: Не тратьте много времени на поиск идеальных инструментов для работы на длительный срок. Найдите тот сервис, который нужен вам в настоящее время для решения текущих задач. Это не означает, что не нужно анализировать сервисы на рынке вообще. Постоянно появляются новые сервисы, которые кажутся лучше существующих. Вполне возможно, что сейчас это вам не нужно. Сосредоточьтесь на плане проекта.