Немного о сложном или как сделать проект успешным а разработку полезной?

banner-01.png

О технологиях

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

Хочется рассказать доступно о нашем подходе к реализации проектов по разработке IT решений: независимо,  разработка ли это мобильных и Web-приложений или разработка на С++или решения для программ 1С.

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

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

  • Это может быть необходимость в быстрой разработке красивого мобильного приложения,
  • может быть требуется внедрить продукт 1С, а перед этим попросить помощи в выборе наиболее оптимальной конфигурации
  • Разработать драйвер на Си ++ для интеграции 1С Предприятия с нестандартным оборудованием
  • Исправить ошибки внедрения 1С: неправильный расчет себестоимости, не закрываются периоды, отрицательные остатки - по сути разработать решение по недопущению таких ошибок.
unnamed-3.png

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

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

1.     Разработка мобильного приложения

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

Сначала определим общие рамки, возьмем наиболее популярный формат:

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

Что у нас есть  по имеющимся наработкам:

  1. Многообразие витрин, готовые механизмы. Но … это лицо магазина и каждый хочет свои плюшки.
  2. Онлайн-оплата – есть отработанные техники, но зависит от эквайра: может быть платежный сервис - агрегатор или конкретный банк.
  3. Личный кабинет – масса вариантов как готовых так и кастомных
  4. Остальное – дополнительные сервисы, присутствующие почти в каждом магазине, которые мы делали.

Как будем определять технологию реализации.

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

Для такого проекта лучше подойдет итерационный процесс. Почему?

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

Наглядный пример итерационного подхода

Наглядный пример итерационного подхода

2.     Доработка или исправление программ на платформе 1С:Предприятие

Пожалуй, самый массовый  сегмент в нашем портфеле заказов.

В наличии:
Требование по разработке некого логистического функционала с отражением в финансовом и бухгалтерском учете, отсутствующего в типовом решении 1С: Комплексная автоматизация 2.
Имеем: обширный опыт в разработке решений в области логистики, бухучета, управленческого учета и бюджетирования, отличное знание конфигурации 1С: Комплексная автоматизация 2, проверенные технологии разработки расширений конфигураций 1С:Предприятие, доработки конфигураций,отличное знание внутренних механизмов платформы 1С. 
 
Пожалуй, такую систему можно отнести к «простым». Не потому что просто разрабатывается, потому что имеется огромный опыт, практически во всех предметных областях от простых задач до сложных систем. Нет практически ничего, где нужно экспериментировать и придумывать что-то новое для решения.
Для такой задачи самое оптимальное – применить Водопадный процесс (или каскадный).
  1. Анализируем бизнес, определяем цели, реально необходимые бизнесу.
  2. Формулируем функциональные требования
  3. Делаем детальное ТЗ
  4. Реализуем
  5. Тестируем
  6. Запускаем.
Да, иногда возможны «отскоки» на ступень назад, но чаще всего они не несут существенных архитектурных изменений решения. 

3.     Разработка web-приложения на блокчейн-платформе Rippple

Да, бывают и такие нестандартные задачи. Самые интересные.

Что требуется:

Задача по разработке приложения для торговли криптовалютой. Требуется «горячий» кошелек, торговое ядро, средства визуализации в форме web-интерфейса, ведение истории торгов и операций, чат с администрацией платформы и другими участниками, новостная лента, «стакан», журнал ордеров, личный кабинет с настройками.

Что имеем:

Некоторый опыт в разработке на блокчейн-платформе, опыт разработки приложений для трейдинга, обширный опыт в web-приложениях.

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

На лицо «комплексная система». В ней требуются исследования в разработке взаимосвязанных решений, в которых есть опыт разработки по отдельным компонентам.

Оптимальный подход – Agile, или гибкая методология. Идем небольшими итерациями, пробуем, на ходу корректируем требования и функциональность, двигаемся от малого и частного к большому и общему.

Нужна консультация? Обращайтесь!