Как мы работаем

Если кратко, то основные два подхода к созданию ПО можно описать так:

  • Последовательная разработка (Waterfall). Такой подход применяется в случае, когда заказчик точно и в деталях знает, что он хочет получить от продукта, что, на самом деле, встречается не часто. В этом случае перед началом разработки составляется четкое техническое задание. Разработка идет в рамках этого задания.
  • Итеративная разработка. Такой подход применяется в случае часто меняющихся или не до конца проработанных требований. Мы в кратчайшие сроки разрабатываем первую работоспособную версию с самым важным функционалом и отдаем заказчику. Как правило, получив готовый продукт, в процессе эксплуатации пользователь понимает, что он еще хочет получить от системы, а что хочет изменить. Следующая версия выходит также через короткий срок и учитывает новые пожелания заказчика. Таким образом, процесс идет до той поры, до которой желает заказчик.

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

В своей работе мы предпочитаем использовать гибкие методологии, такие как XP. Гибкие методологии предполагают, прежде всего, итеративную разработку.

Также мы используем автоматизированное тестирование. С точки зрения заказчика это в первую очередь означает следующее:

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