Pull to refresh

Comments 21

"Три года назад я пришел в Dodo Pizza в качестве Chief Agile Officer"

А какая квалификация у человека который претендует на роль chief agile officer? Т.е. получается кто-то пришел на громкую должность в компании потом начал учиться методом проб и ошибок и помолом только начал применять самые известные инженерные практики? Или я как-то не так понимаю статью?


В моем представлении на роль chief нужен человек который уже знает как это работает или по крайней мере теоретически как должно, и взятие инженерного долга должно быть просчитанным решением (типа на данном этапе развития нам не надо быстродействия но зато потом мы это наверстаем) но тогда это не стыд и позор.

Придя в компанию, у меня было примерно 10 лет опыта работы в XP/Scrum команде + 3 года работы в SmartStepGroup — на тот момент единственной компанией в России, которая зарабатывала тренингами и коучингом инженерных практик XP. Собственно благодаря нашему опыту мы и стали частью Додо в начале 2017.

К сожалению, к этому времени в Dodo IS уже был накоплен большой технический долг. Но это было не осознанное, не просчитанное решение. Мы жертвовали качеством ради скорости, но не осознавали цену, которую придется за это заплатить. А когда осознали — стало слишком поздно.
13 лет опыта и для вас оказалось новостью что говнокод в большом количестве ведёт к проблемам? Серьезно?
Конечно нет, именно поэтому с самого начала и взялись за инженерные практики. Но к сожалению, количество накопленного долго уже тогда было слишком велико. И поначалу мы недооценивали его последствия, были недостаточно настойчивы в своем праве писать хороший код. Это была ошибка.
Статья скорее о масштабе проблем и об усилиях, которые потребовалось вложить для приведения системы в порядок.

У говнокода есть фантастическое преимущество перед идеальной архитектурой с лучшими решениями. Он уже есть и решает задачу. Херово, но решает. А идеальный код — он в Платоновском мире идеалов и, может быть, его можно попробовать реализовать.


Есть большая разница между "начали писать" и "трогаем работающий продакшен".

Спасибо за статью!
Делиться опытом сложнее всего, т.к. его наверняка покроют кучей "г" диванные критики.


Но опыт дороже золота и его много не бывает!

Спасибо за поддержку :)
первую федеральную рекламную кампанию на ТВ с бюджетом 100 млн. рублей

т.е. заказать одноразовый спам стоит для бизнеса столько же, сколько год работы всей команды? o_O

Ну как одноразовый…
2 недели проката на 6 каналах на ТВ, до этого продакшн и съемка ролика, билборды.
Роликов было несколько, каждый подбирали под контент и даже конкретную передачу.

Странно что Вы не понимали на начальном пути что нужна «пирамида тестов»:) хотя о чем я, протестили на проде. Спасибо за статью! Пойду закажу пиццу у вас:)

Для любителей поздравить друг друга 14 февраля мы делаем специальную пиццу – «Пепперони» в форме сердца.
Совсем как Pizza Hut? :)
А еще у нас была пицца-пирог с брусникой в форме сердца :-P
Такого ни у кого нет :)
Вы пишите «Continuous Integration», как насчет тестов?
Расскажите, пожалуйста, как вы их пишите и как они влияют на развертывание приложения?
4000 юнит тестов, около 400 API тестов, около 100 UI тестов.
Пишем вместе с кодом, некоторые команды пишут код по TDD.
Влияют прямым образом. Перед выкладкой нужно, чтобы все тесты прошли. UI тесты раньше были не совсем качественные, хрупкие, ненадежные, мигающие. Приходилось их запускать несколько раз, это удлинняет выкладку. Во время Stop the Line мы сфокусированно улучшали билд, чинили и переписывали мигающие тесты. Вот тут я писал об этом. Теперь намного лучше, хотя еще можно кое-что поулучшать.
Мы релизили по 20 раз в день.

Бедные пользователи они ведь качали обновление по 20 раз в день.
У нас веб приложение
Прошу прощения, я не совсем понял: проводились изменения в фоновом режиме с дописыванием новой функциональности в том же ритме что и раньше, или когда бизнес ощутил существенную потерю денег, внезапно нашлось время ($) на исправление накопленных ошибок и рефактринг системы в целом?
Другими словами, почему технический долг не исправлялся до фейла? Былы ли ресурсы для этого или ритм работы не позволял отвлечься от новых фич?
Фонового режима не было. Мы полностью остановили бизнес разработку и занимались только архитектурным рефакторингом системы.
Почему техдолг не исправлялся до фейла? — потому что мы недооценивали угрозу, потому что мы прогибались под желание бизнеса сделать больше фич, и не отстаивали свое право на чистый код.

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

Все правильно, не было бы. Монолитное решение было правильным выбором на первом этапе. Его и разрабатывать, и выкатывать, и тестировать проще всего.
Sign up to leave a comment.