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
- Regular outages
- Buggy releases
- Low development pace
- Что-то чтобы команды были
- кросс функциональными
- инженеры несли ответственность за то, что они делают
- 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
- Definition of Done
- Самая важная часть в построении культуры - похвала людей, которые делают хорошо...
- Create more space for communication