Slide 1

Slide 1 text

Люди и конфликты в DevOps Шериев Ахмед

Slide 2

Slide 2 text

Обо мне • Разработчик • Архитектор • Тимлид • Директор по разработке • Руководитель отдела 2

Slide 3

Slide 3 text

О чем доклад • Трактовки DevOps • Межкомандная коммуникация • Мало про технологии и инструменты • Много про работу со конфликтами и сопротивлением 3

Slide 4

Slide 4 text

Что же такое DevOps?

Slide 5

Slide 5 text

Разработка + Администрирование? Development Operations DevOps 5

Slide 6

Slide 6 text

Временные должности DevOps • DevOps инженер • DevOps команда • DevOps директор • Имеет смысл только в крупных компаниях 6

Slide 7

Slide 7 text

Development Operations DevOps Test 7

Slide 8

Slide 8 text

8

Slide 9

Slide 9 text

9

Slide 10

Slide 10 text

10

Slide 11

Slide 11 text

А как же Agile? Agile Continuous Integration Continuous Deployment DevOps Value 11

Slide 12

Slide 12 text

Заблуждения DevOps • Docker, k8s ≠ DevOps • DevOps инженер ≈ Agile разработчик 12

Slide 13

Slide 13 text

Книги 13

Slide 14

Slide 14 text

Когда хотят внедрять DevOps?

Slide 15

Slide 15 text

Стадии разработки Баги № Версии Доверие Время релиза Требования Документирование Закрытие 15 KPI DevOps

Slide 16

Slide 16 text

Конфликты

Slide 17

Slide 17 text

Разработчики • Менеджеры не знают чего хотят • Слишком часто меняются требования • Требования не понятны • Не дают время на рефакторинг и тесты • «Глупый»/непродуманный дизайн. 17

Slide 18

Slide 18 text

Менеджеры • Разработчики срывают все сроки • Чинят одно ломают то, что работало • Не думают о пользователях 18

Slide 19

Slide 19 text

Тестировщики • Разработчики даже не запускают то что нам дают на тест • Дизайн, требования, реализация не сходится 19

Slide 20

Slide 20 text

Дизайнеры • Мы не аналитики что бы думать о пользователях • Нам некогда перерисовывать под каждый чих • Мы задаем концепт • У нас уникальный дизайн, который не систематизируется 20

Slide 21

Slide 21 text

Конфликты внедрения DevOps

Slide 22

Slide 22 text

Структура конфликтов и возражений • Я останусь без работы (автоматизация) • Дешевле сделать руками (отказ от автоматизации) • Не моя работа (не хочу учиться) • Не трогайте меня! (отказ от сотрудничества) • Чушь какая то (бесполезно) • Кто будет виноват? (отказ от ответственности) • У нас уникальный случай (полезно но не наш случай) 22

Slide 23

Slide 23 text

Рассматриваемые роли Разработчики Администраторы Тестировщики Менеджеры И многие другие Дизайнеры 23

Slide 24

Slide 24 text

Базовый конфликт Development Operations DevOps Изменения Стабильность 24

Slide 25

Slide 25 text

Не моя работа • 1+1 ≠ 2 • Без сотрудничества 1+1 < 2 • При сотрудничестве 1+1 > 2 • Docker, ci/cd 25

Slide 26

Slide 26 text

Нас хотят заменить? • Обслуживание и ответственность за боевые сервера все еще за администраторами • Оплата Курсов 26

Slide 27

Slide 27 text

Кто будет виноват? • Все • Коллективная ответственность = коллективная безответственность • У каждой проблемы есть ФИО • … и чаще всего это руководитель 27

Slide 28

Slide 28 text

Дешевле сделать руками • Посчитайте потраченное время • Посчитайте цену инструментов • Посчитайте экономический эффект 28

Slide 29

Slide 29 text

Тестирование + разработка Development Testing DevOps Изменения Стабильность Соответствие требованиям 29

Slide 30

Slide 30 text

Не моя работа • Разработчик отвечает за качество кода • Тестировщики отвечают за качество на проде 30

Slide 31

Slide 31 text

Нас заменят автоматизаторы • Автоматизируются тестирование стабильных фич/сервисов • Любые фичи/сервисы в разработке тестируются вначале вручную 31

Slide 32

Slide 32 text

Нас заменят автоматизаторы Auto UI End-to-End Integration Unit 32

Slide 33

Slide 33 text

33

Slide 34

Slide 34 text

Дизайн + разработка Development Design DevOps Изменения Свобода творчества Качество дизайна 34

Slide 35

Slide 35 text

Типы дизайнеров • Дизайнер полиграфии • Photoshop • Дизайнер UI (знает дизайн платформы) • Photoshop, Sketch, Figma • Дизайнер UX (знает пользователей) • Sketch, Figma • Дизайн-система (видит логику дизайна) • Визуальный стиль • UI Kit • Атомарный дизайн 35

Slide 36

Slide 36 text

Не моя работа • Дизайн – это не то, как выглядит, а то, как он работает (С. Джобс) 36

Slide 37

Slide 37 text

У нас уникальный случай • Даже в уникальном дизайне есть повторяемые элементы 37

Slide 38

Slide 38 text

Не хочу общаться • Запускаемый проект {name}.UiKit • Web • Android • iOS • Единые компоненты как в дизайне UIKit так и в коде UIKit 38

Slide 39

Slide 39 text

Пример библиотеки paradigm (mail.ru) https://design.mail.ru/ 39

Slide 40

Slide 40 text

Это все чушь • Material Design System • Airbnb Design System • Design System Club • Альфа-Банк • Mail.Ru • Яндекс • Рамблер • и т.д. 40

Slide 41

Slide 41 text

Управление рисками • Опытный дизайнер может увеличить производительность команды разработчиков на порядок • Неопытный дизайнер источник большого количества багов 41

Slide 42

Slide 42 text

Художника обидеть может каждый 42

Slide 43

Slide 43 text

Еще книги 43

Slide 44

Slide 44 text

Разработчики + Разработчики DevTeamA DevTeamB DevOps 44

Slide 45

Slide 45 text

Команда универсалов Спринты Team A A B C D • Каждый в команде Full Stack разработчик Плюсы: • Полная взаимозаменяемость • Storypoint-ы • Хорошо подходит для простых проектов Минусы: • Дорого • Трудно найти разработчиков • Невозможно в сложных проектах • Тестирование все еще отдельно Test A B C D 45

Slide 46

Slide 46 text

Кроссфункциональная команда Backend Дизайнеры FrontEnd Тестировщики 46

Slide 47

Slide 47 text

Кроссфункциональная команда Спринты Team A A B C D Плюсы: • Каждая команда самодостаточна • LeadTime меньше Минусы: • Требователен к скилам каждого • Требуется высокий уровень доверия • Требует опытного архитектора Спринты Team B E F G H 47

Slide 48

Slide 48 text

Разработчики + ПМ Development Product Manager DevOps Изменения Быстрые изменения Надежность 48

Slide 49

Slide 49 text

Продуктовые менеджеры • Проверка гипотез • A/B тесты • Быстрая реакция 49

Slide 50

Slide 50 text

Работа с разработчиками • Изменение требований к проекту это нормально • Тесты нужны! • Тесты не про тестирование калькулятора • Тесты разных типов (Unit, Integration) 50

Slide 51

Slide 51 text

Архитектура • Тесты нужно, но этого мало • SOLID • DDD • DSL • FDD 51

Slide 52

Slide 52 text

Это все чушь! • Откуда формируется мнение? • Авторитет (Все на хабре пишут) • Плавали знаем! • В больших проектах: • Это все действительно нужно • Работа разработчика не в том что бы писать код а работа с существующим 52

Slide 53

Slide 53 text

Не хочу общаться с разработчиками • Разработчики должны понимать зачем • Job Story дополнительно/вместо User Story 53

Slide 54

Slide 54 text

Книги для разработчиков 54

Slide 55

Slide 55 text

Архитектура 55

Slide 56

Slide 56 text

Domain Driven Design 56

Slide 57

Slide 57 text

DDD в ФП 57

Slide 58

Slide 58 text

Разработчики + Клиенты (эмпатия) Development Эмпатия к клиентам DevOps 58

Slide 59

Slide 59 text

Разработчики максималисты • Мы делаем приложение не для дебилов! • Надо выдавать права на пользование компьютером 59

Slide 60

Slide 60 text

Вовлеченность • Демонстрация живого пользования продуктом • Разработчики на Юзабилити тестировании • Job Story вместо/вместе с User Story 60

Slide 61

Slide 61 text

Покупают не дрель, а дырки в стене • Jobs To Be Done фреймворк • За что платят деньги? • Почему выбирают ваш продукт? • С чем конкурирует ваш продукт? 61

Slide 62

Slide 62 text

Разработчики + Руководство Development Management DevOps Не бывает плохих солдат, бывают плохие генералы 62

Slide 63

Slide 63 text

Типичный руководитель бизнеса • Большой опыт в разных сферах деятельности • Большой опыт операционной деятельности • Большой опыт управления людьми • Успешный опыт применения KPI • Успешный опыт применения KPI и в IT проектах 63

Slide 64

Slide 64 text

Особенности операционной деятельности • Рутинная однообразная работа • Демотивация • Прогнозируемость 64

Slide 65

Slide 65 text

Проблемы проектной и продуктовой разработки • Мало рутинной работы • Возможно R&D • Отсутствие опыта • При большом количестве R&D или отсутствии опыта невозможно спрогнозировать • Проблема отсутствия опыта 65

Slide 66

Slide 66 text

Типичные ошибки руководителя бизнеса • Путает отсутствие опыта и нежелание работать • Пытается применить стандартные системы мотивации • Пытается применить стандартные системы планирования работ 66

Slide 67

Slide 67 text

KPI • Хорошо подходит для операционной деятельности • Плохо подходит для проектной и продуктовой разработки 67

Slide 68

Slide 68 text

Что делать? • Просите доверять вам • Спрашивайте что надо получить в итоге • Просите ответственности • ИЗМЕРЯЙТЕ, ИЗМЕРЯЙТЕ И СНОВА ИЗМЕРЯЙТЕ! 68

Slide 69

Slide 69 text

Пример 1. Затрачено 300 человеко-часов ≈ 150 тыс. рублей 2. Из них баги на 200 человеко-часов были обнаружены инструментами 3. SonarQube ≈ 15 тыс. рублей в месяц 4. PVS-Studio ≈ 15 тыс. рублей в месяц 5. Экономия 120 тыс. рублей 69

Slide 70

Slide 70 text

Советы руководителю 70

Slide 71

Slide 71 text

Работа с критикой 71

Slide 72

Slide 72 text

Критиковать нормально • Критиковать работу нормально • Критиковать человека нельзя • Критика работы не значит критика личности 72

Slide 73

Slide 73 text

Как критиковать? • Найдите за что похвалить • Сарказм, насмешки, издевки, шпильки недопустимы • Уберите негативные эмоции 73

Slide 74

Slide 74 text

Токсичность 74

Slide 75

Slide 75 text

Мат • Мат все таки недопустим • Оскорбления и унижения наносят ущерб • Токсичность влияет на измерения 75

Slide 76

Slide 76 text

Что почитать? 76

Slide 77

Slide 77 text

Узкая командная культура 77

Slide 78

Slide 78 text

Он нам не подходит, потому что • Не курит • Не пьет • Тату • Возраст • Пол • ВУЗ • И т.д. 78

Slide 79

Slide 79 text

Опыт 79

Slide 80

Slide 80 text

Ему будет у нас скучно • Нанимайте людей опытнее себя • Берите тех кто может самостоятельно работать • Не надо боятся что вас подсидят 80

Slide 81

Slide 81 text

Доверие 81

Slide 82

Slide 82 text

Доверяй! • Доверяй но… измеряй! • Давайте фидбек • Закладывайте в риски право на ошибку 82

Slide 83

Slide 83 text

Мотивация 83

Slide 84

Slide 84 text

Работа с мотивацией • Просите делиться опытом • Организуйте митапы • Обеспечьте участие в митапах и конференциях • Выступайте сами • Не платите за выступления! 84

Slide 85

Slide 85 text

Зарплата 85

Slide 86

Slide 86 text

Я готов работать хорошо за повышение • Обсуждение текущих проблем • План развития • План повышения по итогам 86

Slide 87

Slide 87 text

Управление рисками Долго сидел на рутинной работе: 1. Если учится ради повышения з/п то это редко приводит к успеху 2. Недовольство собой растет 3. Нарастает токсичность и депрессия 4. Демотивация и увольнение 87

Slide 88

Slide 88 text

Управление рисками 1. Проводите 1-1 2. План развития 3. Достижимые цели развития 4. Фидбек 88

Slide 89

Slide 89 text

Резюме • Доверяйте, измеряйте, давайте фидбек • Будьте честны • Будьте открыты к критике и научитесь критиковать • Вкладывайте в обучение и мотивацию • Измеряйте, измеряйте и еще раз измеряйте • Не злоупотребляйте измерениями 89

Slide 90

Slide 90 text

Шериев Ахмед: t.me/AkhmedSheriev [email protected]