Agile Pizza #48 Дмитрий Ефименко рассказывает о хождении по граблям - публикую набор цитат. Алексей Ященко (tuxslayer@grammarly) с, как всегда, интересным рассказом о построении культуры tech excellence

 
  • Дмитрий Ефименко - длинная дорога через грабли
    • Лучший kpi - жизненный цикл фичи - time to market - показатель скорости реакции на изменения
    • OPD model - outsourcing product development
    • Жизненный цикл команды 1-3 года, потом обновление.
    • Если вам через год нравятся ваши процессы - то у вас двойные стандарты
    • Вопрос на собеседовании - что тебе не нравится, какие у тебя ограничения
    • Fuckup Driven Development
      • Не спешите впрягаться, попытайтесь решить проблему, как инженер
    • Оценка фич не только реализацией, но и сколько стоит в поддержке, как трассировать требования, ЖЦ включает смерть фичи. Если вы остановились на продакшн - думайте еще. А что поддержкой...
    • У заказчика понятие готово одно - "я взял, развернул и начал на этом зарабатывать"
    • Любой Джун менеджер своего маленького проекта
    • Крутейший продукт требует крутейшего devops
      • Скрипты мониторинга, сетевой связанности...
    • Сопротивление изменениям f(n*m) n-количество сотрудников m-уровни менеджмента
    • Результаты груминга и ретроспектива выливаются в to do листы - если у вас плодятся - значит делается неправильно
      • Квадрат кантора risk/value/cost
      • Иногда длинные деньги значительно приятнее
    • Хорошие тестировщики более редкие чем программисты. Поэтому 1 тестировщик на 2 программиста
 
  • Алексей - техническая культура в Grammarly
    • 5M users with 60 engineers
    • the only way is intensive growth
      • Организационный долг
    • культура штука хорошая - позволяет многие вещи автоматизировать на уровне человека
    • technical excellence - Just excellence 'all the time' is hard.
      • если его постоянно пытаться достигать - это боль
      • чтобы он стал реальностью - он должен стать культурой
    • Техническое совершенство нужно стоить на чем-то
      • оргструктура - TEC - технические способы
    • Time Eaters
      • Low development pace
        • Buggy releases
          • Regular outages
            • Tired developers
    • Что-то чтобы команды были
      • кросс функциональными
      • инженеры несли ответственность за то, что они делают
      • tools solve all the hassle
    • Story #1
      • Cross-functional teams - QA => SE in Test => Feature Teams
    • Сделали из QA -> software engineering test
      • Catch bugs -> Build for quality, Write code, well... catch bugs...
    • XP
      • pair programming
      • defensive programming
      • code review
      • test for new code

    • CI/CD release often
      • Feature branches on git
      • CI Server (TeamCity)
      • Unit / Integration / Load / ... test
      • Continuous Deployments
    • UI Bitmap testing - делать скриншоты и сравнивать с предыдущими
    • Чтобы все работало нужна отдельная телега - monitoring в grammarly
      • make it engineering practice
      • measure everything - choose what to monitor
      • validate monitoring data
      • logs: back-end and front-end
      • time-series metrics: counters, timers
        • пример метрики - количество accept corrections - чтобы пользователи нажимали на accept correction должно очень много должно происходить.
      • сезонность - производные и сравнение логарифмически с предыдущими периодами.
    • Результаты упражнений
      • zero ping-pong between teams
      • developers release "at will"
      • QA people are involved from day 1
      • Everybody writes tests
      • Everybody can fix a bug
      • time to release from 1-2h to 1-10min
      • Rollback instead of fixing => Short outrages
      • Whole team does not get distracted by outages
    • Story #2
      • ORG: no-Ops
      • Platform team
      • Embedded ops in Teams
      • Tech: containers
        • docker
        • rocker
        • terrafrom
      • Not a "service" team
      • PaaS
      • Strategic rather than tactical
      • Software devs as Devops
      • конфигурация лежит вместе с кодом. девелоперы сами делают контейнер
      • Configuration as a code (versioning, automatizing, templateing)
      • multi service deployments
    • Foundation
      • Optimize every single phase of dev cycle
      • Create an env for dev practices
      • Apply best practices
        • Stop fire fighting and free more time and mindset for improvements.
    • Culture
      • Hire the best
      • Fun days
      • Free books
      • internal hackathon
      • Mentorship
      • Courses and conferences
    • Build Excellence
      • Definition of Done
        • позволяет быстро отсечь разговоры - пусть полежит - давайте релизнем...
      • Tech Ecellence check lists (forever)
      • SLOs (service level objectives) /SLAs
    • Самая важная часть в построении культуры - похвала людей, которые делают хорошо...
    • Create more space for communication