Полный цикл разработки ПО. Мобильные приложения. Серверные сервисы. Web-сервисы.

Подготовка

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

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

Сбор первичной информации

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

Предварительное планирование этапов работ

На этом этапе просиходит первичная декомпазиция задачи на основные вехи. Формируется взаимосвязь вех и подзадач. Для каждой подзадачи оценивается значимость каждой атомарной задачи для реализации проекта в целом м расставляются приоритеты. Составляется первичный план этапов внедрения с привязкой вех к этапам.
Правильная декомпозиция и оценка этапности позволяет поступательно разрабытавать и внедрять сложные решения от более фундаментальных функций к менее значимым. Это также сокращает время получения первичных рабочих прототипов.

Предварительный макет ПО

На основании полученных первичных данных и данных этапности строиться предварительный макет всего решения.
Макет включает в себя:

  1. Макет интерфейса. Расположение рабочих элементов и элементов взаимодействия. Наборы полей, кнопок и иных элементов UI.
  2. Макет структуры экранов, структуры переходов между экранами и переходы в рамках взаимодействия с интерфейсом.
  3. Описание и схемы бизнеспроцессов.
  4. Схема данных и структура их представления.
  5. Схема M2M взаимодействия.
  6. Схема автомата состояний протоколов взаимодействия и снутренних алгоритмов решения.

Разработка проектного задания

На основе первых этапов, имея вводные данные, этапность работ, декомпозированную структуру атомарных задач и предварительные макеты и схемы составляется проектное задание. Таким образом идея превращается в проект с описанием этапов, вех и основных требований и концепций.

Проектирование

Проектирование - этап превращающий проектное задание в максимально четкий и конкретный набор документов - Проектную документацию.

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

Разработка технической концепции

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

  1. Программная и аппаратная среда.
  2. Среда разработки.
  3. Среда и структура развертывания и управления.
  4. Технологии и фреймворки для разработки.

Разработка технического задания

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

  1. Все технологические требования к проекту и решению.
  2. Все основные и ключевые аспекты работы решения.
  3. Требования ко всем реализуемым бизнеспроцессам.
  4. Требования ко всем техническим решениям.
  5. Общие требования по взаимодействию с другими инфраструктрами и решениями.
  6. Требования к качеству работы.
  7. Перечень, структуру и наполнение критериев оценки качества.
  8. Сохраненную этапность и порядок ввода в эксплуатацию этапов по мере их завершения.
  9. Объем и наполнение тестирования и приемных испытаний. Предполагаемые результаты.

Разработка дизайна

На основе макетов интерфейса и структуры экранов разрабатывается законченное дизайнерское решение. Полноенный дизайн проект всего решения.
Решение разрабатывается на основе пожеланий и согласований макетов сформированных ранее. Макеты превращаются в законенные структуры в едином стиле оформления. Дизайн проект подразумевает разработку полного набора дизайнерских и стилистических решений и материалов как самого приложения или системы, так и всех сопуствующих материалов маркетингового, обучающего и прочего внутрикорпоративного характера.
Дизайн проект включает в себя:

  1. Разработку фирменной стилистики. Цветовых решений и стандартов оформления.
  2. Разработку логотипа и отличительных графических элементов.
  3. Отрисовку всех элементов управления и экранов с учетом общей стилистики в составе уже окончательных элементов интерфейса.
  4. Иконки и внешние графические элементы.
  5. Цветовые схемы для оформления маркетинговых материалов и презентаций.

Разработка сметы

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

Разработка

Разработка - этап превращающий проектную документацию в программный код.

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

Дизайн

На основе дизайн проекта рпзрабатываются дизайн всех экранов с конечным расположением всех реально существующих данных и элементов.
В чистовом виде разрабатываются макеты для верстки интерфейсов и все необходимые для реализайции графические ресурсы:

  1. Иконки и ярлыки для всех ОС в соответсвии с требованиями и стандартами ОС.
  2. Графические ресурсы и изображения используемые в интерфейсе решений и проектов.
  3. Графические ресурсы для маркетинговых материалов в высоких разрешениях.
  4. Ресурсы и изображения для размещения на общедоступных площадках дистрибуции.

Разработка

Реализация технического задания а коде.
На этапе разработки верстаются все макеты интерфейсов в раельный программный интерфейс. Реализуется анимация и логи внутренних переходов. Реализуются:

  1. Протоколы взаимодействия.
  2. Внутренняя логика работы с данными.
  3. Модели и представления данных.
  4. Взаимодействие с пользователем.
  5. Взаимодействие с внешними системами.
  6. Метрики и системы мониторинга.

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

Тестирование

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

Документирование

После успешных испытаний и тестирование, когда решение признается пригодным к внедрению и удовлетворяющим всем требованиям технического задания, формируется комплект рабочей и справочной документации.
Глубина и подробность документирования согласовывается заранее, тем не менее в любом случаи документация включает:

  1. Общие сведения об архитектуре решения.
  2. Сведения о протоколах внешнего взаимодействия.
  3. Сведения о методиках и способах взаимодействия с внешними системами. Интеграции с источниками данных.
  4. API сестемы.
  5. Справочная документация для эксплуатантов системы (администраторов).
  6. Справочная информация для пользователей системы, включая инструкции и описание процедур взаимодействия с системой. Сами реализуемые бизнеспроцессы.

Поддержка

Поддержка разработанного решения оказывается от первичного пилотного внедрения до сопровождения конечных пользователей.

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

Внедрение

Разработанная и протестированная система внедряется на мощностях заказчика. Подготавливается система развертывания и управления системой для дальнейшего самостоятельного обслуживаниями силами заказчика.
Первичное внедрение осуществляется в пилотном режиме для проведения тестирования на реальных пользователях и нагрузках. Также подготовка окружения заказчика и нагрузочное тестирование оборудования и сред, которые учавствую в работе системы.
Далее происходит масштабирование решение на конечное количество пользователей и подготовка систем и окружения к дальнейшиему росту нагрузок.
На этом этапе устраняются также шероховатости в поведении системы выявленные в процессе реальных испытаний. Формируется пул доработок, если в этом есть необходимость.

Обучение

Обучение состоит из двух основных этапов:

  1. Обучение администраторов и ответсвенных сотрудников заказчика.
  2. Обучение конечных пользователей.

Обучение администраторов и отвественных сотрудников. Предполагается обучение сотрудников методикам и процессам мониторинга за системами и основным процессам администирования:
  1. Развертывание системы.
  2. Масштабирование системы.
  3. Развертывание тестовых копий системы.
  4. Резервное копирование и восстановление.
Ознакомление с рабочей и технической документацией с комметариями разработчиков. Разбор основных принципов и методик взаимодействия.

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

Сопровождение

Любой продукт и любое решение, как бы хорошо оно не было продумано и реализованно будет иметь недостатки, которые можно выявить только в процессе промышленной эксплуатации.
Это могут быть недостатки абсолютно любого рода. Начиная с банальных ошибок, которые не были обнаружены в процессе тестирования и заканчивая не оптимальностью эргономики или несоответсвием эргономики реальным течениям бизнеспроцессов.
Недочеты подобного рода устраняются в процечче поствнедренческого сопровождения.

Поддержка пользователей

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