Эргономичный подход

Эргономичный подход (ЭП) - это простая методика разработки бакендов, которая помогает команде систематически обеспечивать высокое качество и скорость решения задач на протяжении всего срока жизни проекта.

Методика включает в себя:

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

Характерными чертами проектов, разработанных в соответствии с Эргономичным подходом, являются:

  • Декомпозиция на базе эффектов*;
  • Функциональная архитектура;
  • Эргономичная структура;
  • Классическая школа автоматизации тестирования;
  • Фокус на автоматизации функционального тестирования.

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

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

Кейсы

Geoservices

Geoservices — проект, выполненный по последней версии Эргономичного подхода. Это система для обновления информации о филиалах X5 Retail Group в Яндекс.Картах, 2Гис и Google.Maps. Система выполняет сбор данных о филиалах из нескольких внутренних источников, обеспечивает хранение и управление фотографиями филиалов и на периодической основе выполняет обновление соответствующей информации в геосервисах.

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

Я Евгений Тимофеев — руководитель проектного офиса в компании Амаркон, международной компании, предлагающей корпоративные решения и услуги для крупного бизнеса в ритейле. В 2022 году с Алексеем работали над созданием сервиса, выгружающего сведения магазинов в ГИС: Яндекс.Карты, 2ГИС, Google.Maps. Это проект для X5 Retail Group — ведущей российской продуктовой розничной компании. Я занимал должность руководителя проекта, а Алексей архитектора и ведущего бэкенд-разработчика. В нашей команде был ещё один разработчик. Алексей продемонстрировал свой профессионализм и экспертизу в разработке сложных корпоративных информационных систем.

Алексей разработал архитектуру сервиса, используя авторский метод "Эргономичный подход". Фундамент, заложенный методикой, предопределил ход разработки, подготовки технической документации. Что, в свою очередь, позволило спроектировать простую систему, сократить срок разработки, минимизировать объём дефектов. На этом проекте Эргономичный подход прошёл боевое крещение и доказал конкурентоспособность, право на применение и развитие для систем любого класса. Отмечу, работая в паре с опытным разработчиком, Алексей занял роль ментора и передал знания по методу, что позволило продолжить коммерциализацию авторской методики в новых проектах.

Евгений Тимофеев

Кэмп

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

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

Команда бакэнда вела разработку в соответствии с Эргономичным подходом, и результатом стала следующая обратная связь от руководителя проекта:

К бэку у меня вообще претензий нет. Он просто работает.

Дмитрий Семёнов

Проект Л

Проект Л — это первый проект, в котором бакэнд был выполнен целиком по одной из ранних версий ЭП. Это проект по проверке бизнес-гипотезы об эффективности новой механики представления результатов онлайн-лотереи.

Отзыв руководителя проекта:

Алексей - один из лучших разработчиков, с которыми я работал. Работой с ним я удовлетворён на 10 баллов из 10, потому что он практически всегда попадает в озвученные сроки, и в работе с ним не приходится накидывать 50% на всякий пожарный.

Денис Исаев

Реинжиниринг модуля маршрутизации клиентских обращений в Threads

Threads (теперь Чат-центр edna) - комплексное решение для организации взаимодействия с клиентами в чатах и мессенджерах. Этот проект послужил первой площадкой для апробирования идей ЭП.

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

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

Отзыв CTO компании-разработчика Threads, по результатам реинжиниринга:

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

Николай Макаров

Об авторе

Меня зовут Алексей Жидков. Я занимаюсь коммерческой разработкой ПО с 2005 года и преподаю на ФИТ НГУ и ВКИ НГУ с 2007 года.

За это время я был разработчиком или техлидом/архитектором 30 проектов для различных отраслей - от встроенного ПО для приставок кабельного телевидения и систем промышленного видеонаблюдения до АИИС КУЭ для ПАО "Транснефть" и проекта по анализу больших данных в финтехе.

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

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

Если у вас появились вопросы по Эргономичному подходу - буду рад ответить на них:

  1. Email: me@azhidkov.pro
  2. Telegram: d-r-q