Наработанный опыт позволяет нам как использовать и адаптировать готовые решения для ускорения процесса разработки, так и проводить полный цикл разработки, с самого начала и до релиза, а в дальнейшем — сопровождать полученное решение.
Почему именно мы?
- Мы не боимся так называемого «Legacy» кода и можем «вписать» новый код в существующую экосистему программного обеспечения заказчика с минимально возможным уровнем риска для заданных условий
- Мы имеем опыт работы с Continuous Integration и Continuous Delivery и можем позволить себе обновлять программное обеспечение так часто, как пожелает клиент (в пределах возможностей технического решения)
- Мы готовы спроектировать и сопровождать базы данных любого типа и любой сложности, при этом сводя к минимуму риски потери данных
- Наши специалисты постоянно следят за тенденциями в сферах безопасности, современного программирования, аппаратных средств и управления проектами
- В нашем активе есть системы, сопровождаемые и работающие на десятках виртуальных и реальных серверов более десяти лет
- При выполнении работы мы всегда используем автоматические тесты и проводим нагрузочное тестирование, чтобы убедиться в работоспособности решения
- Мы умеем строить и поддерживать сложную сетевую инфраструктуру, а также заботимся о её быстродействии и безопасности
- Обычно сопровождаем свои проекты сами, поэтому мы пишем проекты «как для себя»
Как мы это делаем
В процессе разработки мы используем набор Agile и Kanban-практик, точный состав которых может меняться от проекта к проекту. Это позволяет нам сбалансировать три цели в разработке каждого конкретного проекта:
- Иметь чётко формализованный процесс для разработки проекта
- Оперативно реагировать на меняющиеся требования, обстоятельства, потенциальные проблемы, возникающие технические и коммуникационные ограничения и другие изменения
- Прагматично подходить к процессу разработки, минимизируя некритичные дополнительные работы
Основными практиками, постоянно использующимися в каждом проекте являются:
- Итерационный характер разработки, предполагающий регулярную актуализацию требований и подробное планирование работ на ближайшую итерацию — обычно одну или две недели
- Автоматическое юнит-тестирование кода, не только проверяющее корректность написанного кода, но и позволяющее дальнейшее внесение изменений без риска случайно внести дефекты в уже реализованный код
- Refactoring, позволяющий адаптацию архитектуры проекта под новые реализуемые требования и дальнейшее сопровождение системы
- Continuous Integration, обеспечивающий раннее обнаружение проблем, связанных с конфликтующими изменениями в одну и ту же область системы со стороны разных членов команды
Также в зависимости от проекта по необходимости применяются и другие практики: Continuous Delivery, парная разработка, перекрёстные review, ретроспективы, Kanban-визуализации и лимиты и т. д.