Главное Авторские колонки Вакансии Образование
663 19 В избр. Сохранено
Авторизуйтесь
Вход с паролем

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

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

b_55b2a1ac851f1.jpg

Анализ рынка показал низкую конкуренцию на рынке и было принято решение начать работать над проектом, который планировался к запуску через 7-8 месяцев работы.

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

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

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

  1. Подбор команды и организационная часть;
  2. Подготовка бизнес модели;
  3. Аналитика/Архитектура;
  4. Разработка прототипов;
  5. Дизайн;
  6. Разработка;
  7. Публикация проекта и его поддержка.

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

Была организована команда из 4-ех человек в следующим составе: 2 разработчика, дизайнер/UI-дизайнер и аналитик.

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

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

Команда была собрана и предстояло написать видение бизнес модели.

Для этого каждому из участников рассылалась анкета, с условием её заполнения и последующим обсуждением.

Бизнес модель была основана на Freemium схеме, т.е. часть функционала бесплатно, остальное - за плату.

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

На данном этапе решались основные вопросы по работе приложения. Взаимодействие с сервером и клиентская часть.

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

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

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

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

  1. Рабочая роль - получала информацию по курсам валют с yahoo сервиса и обновляла данные в БД;
  2. Веб роль - предоставляла 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 приложение пропустили с первого раза. Время на утверждение - около 7 дней;
  • Был подготовлен сайт, на котором опубликованы скриншоты из приложения и описание;
  • Для пожеланий и предложений был создан проект: http://moneygmnt.reformal.ru/ ;
  • Созданы группы в vk / fb / twitter.

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

После недели на боевой среде приложению удалось попасть в топ новых-финансы.

Там оно продержалось около 4-ех недель. Дальше скачки стали опускаться.

Это с условием того что продвижение приложения осуществлялось только через друзей в социальных сетях.

Что касается дальнейших планов, то:

- В настоящее время уже ведется разработка приложения под Android.

- Планируется также запустить Web-версию.

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

При проектировании приложения очень много внимания уделялось прежде всего удобству использования.

Таким образом удалось получить добавление операции с полной информацией по категории/подкатегории всего в 4 клика!

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

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

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

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

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

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

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

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

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

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

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

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

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

Полезные ссылки:

Заключение

Данный пост был написан около одного года назад, но опубликован только сейчас. Релиз приложения был осуществлен 16.05.2014. За это время появилось стабильное количество постоянных клиентов и их количество растет с каждым днем!

Чуть позже опубликую аналитическую информацию по сервису.

+1
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
LanguageBoost
Онлайн сервис для изучающих иностранный язык
Tihiro 17917
Спасибо за статью, жаль, скриншотов не дали - посмотреть бы на окна "отличающиеся по стилю". Но с русским вам что-то надо делать.

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


А теперь вопросы по существу:
1) "Изначально была найдена бесплатная система постановки задач которая вполне удовлетворяла нашим нуждам." Какая это среда?
2) А что, можно вот так бесплатно развернуть джиру на своем сервере?
3) "Велась аналитика построения системы клиент-сервер. " Это как понять?
4) "Полностью переехали с Jira на bitbucket" А вот это вообще непонятно, разные инструменты, bitbucket - это система контроля версий, сами ей пользуемся, jira - система управления задачами.
5) Где регистрировали SSL?
Спасибо
Ответить
Badge Keeper
Онлайн-сервис для создания системы достижений
Alexander 21830
Tihiro,

Спасибо за вам за отзыв. Ваши замечания имеют место быть, хотя не содержат ни грамматических, ни пунктационных ошибок.

По поводу скиншотов: в профиле проекта вы можете найти ссылки на соц. группы и ссылку на приложение в App Store (также добавил ссылки в статье, спасибо).

По поводу вопросов:
1) moovia.com;
2) В рамках подписки Bizspark выдавалась лицензия на 1 год. Хотя можно и купить за $10;
3) Здесь имеется ввиду системная аналитика проекта, а точнее: каким образом будет взаимодействовать клиентское приложение и серверное;
4) Тем не менее в bitbucket есть, как вики, так и небольшой баг-трекер. Для маленьких команд самое оно;
5) ssls.com
Ответить
LanguageBoost
Онлайн сервис для изучающих иностранный язык
Tihiro 17917
Спасибо за ответы. Узнала кое-что интересное для себя.

Скриншоты я посмотрела на сайте, но вопрос был о том времени, когда окна "различались по стилю". Или они все еще различаются?

А по поводу ошибок, вы правы, с грамматикой и пунктуацией здесь все в порядке. Но стиль... сами-то неужели не чувствуете, что не по-русски так говорить? ;-)
Даже ваш ответ - смотрите, что написали по сути "ваши замечания ... не содержат ... ошибок", хотя речь явно идет не о моих замечаниях, а о ваших предложениях, содержащих (или не содержащих) ошибки.
Ответить
Badge Keeper
Онлайн-сервис для создания системы достижений
Alexander 21830
Tihiro,

Согласен, само построение фраз местами хромает)
Да, остались еще экраны раннего этапа прототипа.
Сейчас конечно же все окно в одном формате и перед запуском было приведено к одному стилю.

Вот самые первые варианты дизайна.
Ответить
LanguageBoost
Онлайн сервис для изучающих иностранный язык
Tihiro 17917
Спасибо, ничего такие скриншоты, сейчас, конечно, "помоднее", но и старые не ужасны вовсе :)) (кроме кожаного фона)
Ответить
Badge Keeper
Онлайн-сервис для создания системы достижений
Alexander 21830
Была идея сделать дизайн в стиле кожаного кошелька.
Но тогда начали появляться приложение в минималистичном дизайне (еще до iOS 7) и тогда я решил изменить стиль на более простой.
Ответить
Грищёв Сергей
Меня как iOS разработчика со стажем сразу смутило то, что на сайте и в промо-материалах у вас везде используется iPhone 4.

Зашёл на страничку в AppStore - и на тебе, приложение не оптимизировано под iPhone 6/6+ - а это уже довольно большой минус.

И не совсем понятно отличие продукта от таких гигантов рынка как MoneyPro - пользуюсь им сам уже примерно год - никаких нареканий и проблем не возникало.

В любом случае спасибо за ваш опыт, было интересно читать!
Ответить
Показать предыдущие комментарии
LanguageBoost
Онлайн сервис для изучающих иностранный язык
Tihiro 17917
А вы какие технологии мс имеете в виду? У нас сервис написан на asp.net mvc 5, бегает вроде шустро, вообще мы С# любим :))) но мы используем только для бэкэнда, фронтэнд весь на AngularJS
asp и aspx - это позапрошлый век :)
A платформа bizspark позволяет абсолютно на чем угодно развертывать сайты, хоть на PHP
Ответить
Badge Keeper
Онлайн-сервис для создания системы достижений
Alexander 21830
Олег, обновили сайт, разницу почувствовать можно уже сейчас. У нас действительно было одно неверное решение, которое приводило к такому печальному результату.
Ответить
PushAll
Платформа мгновенных уведомлений.
Олег Карнаухов
Да разница видна.
Еще недочеты:
- Статика не кэшируется, причем совсем. Весь бутстрап все стили, картинки и т.д. грузятся каждый раз с нуля, по 70-160 мс лишней обработки и загрузки.
- Reformal грузится как то странно, он останавливает отображение страницы, надо его в async загружать, чтобы пошустрее было.
Ответить
Badge Keeper
Онлайн-сервис для создания системы достижений
Alexander 21830
- Стили, скрипты пофикшено;
- Reformal уже стоял в async, видимо ждет другие потоки.
Про картинки надо почитать, чуть позже тоже поправлю.

Олег, большое спасибо за замечания.
Ответить
PushAll
Платформа мгновенных уведомлений.
Олег Карнаухов
https://www.ssllabs.com/ssltest/analyze.html?d=moneygmnt.com
Вот это еще посмотрите. SPDY еще похоже не включен
Ответить
Айзек
Курсы робототехники и информационных технологий
Анищенко Александр
Понравился стиль изложения материала - четко, по полочкам, без воды и самовосхваления. Чувствуется профессионализм. И возник вопрос: если команда не "горит проектом", то как вы планируете развиваться дальше? Будет ли проект становиться основным для вашей команды или так и останется на уровне "проект в свободное время"?
Ответить
Badge Keeper
Онлайн-сервис для создания системы достижений
Alexander 21830
Александр, спасибо за комментарий.
В настоящее время я работаю над проектом один и в ближайшие неделю-две выйдет новый функционал. Это будет эскпериментальная версия. Если эксперимент окажется удачным, то начнется разработка web-версии проекта, на которую я планирую затратить большую часть своего времени.
Ответить
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.