Леруа Мерлен пишет о трудностях разработки
19.07.2019
Три года московский клуб программистов собирался в антикафе CheckPoint, иногда бывая в гостях у разных IT-компаний.
А весной нас пригласила к себе компания Leroy Merlin, и пригласила на длительный срок. Теперь мы встречаемся в аудитории с проектором, флип-чартом и чаем. Качество и количество докладов в клубе выросло просто за счёт нормального оборудования.
Зачем большой торговой компании такая благотворительность? На этот вопрос вы ответите сами, если бывали в магазинах Leroy Merlin.
Они огромные, их пять только в Москве, и сто — по всей России. Я не знаю, насколько велик ассортимент, но, вспоминая бесконечные полки, подозреваю, что речь идёт о десятках тысяч наименований. Представьте, какие организационные трудности приходится преодолевать компании, чтобы обеспечить логистику и учёт такого количества товаров.
Конечно, преодоление этих трудностей невозможно без работы программистов. Попробуем представить, о каких решениях идёт речь. Во-первых, магазины должны работать независимо, значит, хранилище данных должно быть распределённым. Часть данных хранится локально, и синхронизируется с центральным хранилищем.
Как обеспечить согласованность изменений в таких условиях? Задача не из простых. А как сделать, чтобы в магазине всегда было достаточно товара? Закончиться могут и гайки, и огромные мебельные щиты, их надо доставлять на одних и тех же грузовиках. Нужно решать задачу о рюкзаке, которая относится к NP-полным и на сегодняшний день не имеет эффективного решения в общем случае. Надо опираться на эвристики, и придумывать эффективные алгоритмы для частных случаев. Очевидно, такая работа требует высокого мастерства.
Подобные программы пишут не гениальные одиночки, а сильные команды, работа которых тоже должна быть организована. Но сильные команды состоят из сильных индивидуальностей. Где их искать? В современном IT классические методы поиска сотрудников не работают: все работодатели предлагают приблизительно одинаковые условия. На что опираться программисту при выборе?
Сильных программистов интересуют сложные задачи, им нравится работать в сильной команде, которая провоцирует профессиональный рост, им нравится, чтобы за них решали организационные вопросы, оставляя им то, в чём они разбираются лучше всего — техническую часть.
Чтобы привлечь сильных технарей, компании раскрывают свою кухню, рассказывают о своих задачах и показывают свои решения. Удивительно, но Leroy Merlin — не IT-компания — в плане общения с разработчиками обгоняет многие технические компании. Её сотрудники давно и активно выступают на конференциях. В компании есть свой DevRel — Анна Бочарова, которая наладила работу с IT-сообществами.
Недавно Leroy Merlin открыли блог на Хабре, где сотрудники делятся техническими кейсами, организационными проблемами, методами их решения. Блог интересен даже как источник технических ответов. Вот, например, пост Валерия Лаптева, посвящённый согласованной разработке большим количеством команд не просто из разных регионов, а из разных стран — Бразилии, Франции, России.
Трудно ли так работать? Конечно. Чтобы обеспечить независимую работу команд, приходится аккуратно разграничивать области разработки. Валерий рассказывает, как это сделали в Leroy Merlin. Команды могут работать быстро, но эта возможность ещё не гарантия. Чтобы обеспечить реально эффективную разрботку, надо правильно собирать команду. Валерий рассказывает о структуре команд, которая зарекомендовала себя на практике.
Другой интересный пост — о применении TDD. Мы в клубе программистов проводили опрос, и выяснили, что чистый TDD не применяет никто. Одна из причин видится в том, что подход «сначала тесты, потом код» требует серьёзной перестройки мышления. Автор статьи дважды (с интеревалом в полгода) реализовал микросервисы со схожими требованиям, один из которых был написан без TDD, а второй — с TDD. Мало того, что мы можем практически пошагово ознакомиться с процессом разработки, мы также видим, как раннее написание тестов влияет на архитектуру решения.
Материалы подобного рода встречаются, к сожалению, нечасто, потому что практики пишут программы, а не статьи. Надо, чтобы работодатель понимал ценность этой работы, и с Leroy Merlin это именно так.
Читайте, задавайте вопросы, комментируйте — авторам нужна обратная связь. Растите профессионально и делитесь своими знаниями со своими коллегами. Это важно для всех нас.