Наверное, есть некоторая проблема
> Теперь я - тимлид, но почему мне
так плохо?
Slide 7
Slide 7 text
Наверное, есть некоторая проблема
> Теперь я - тимлид, но почему мне
так плохо?
> Как вырасти из разработчика в
тимлида и жить с этим дальше
Slide 8
Slide 8 text
Наверное, есть некоторая проблема
> Теперь я - тимлид, но почему мне
так плохо?
> Как вырасти из разработчика в
тимлида и жить с этим дальше
> Как я не усидел на двух стульях и
нашел третий
Slide 9
Slide 9 text
Наверное, есть некоторая проблема
> Теперь я - тимлид, но почему мне
так плохо?
> Как вырасти из разработчика в
тимлида и жить с этим дальше
> Как я не усидел на двух стульях и
нашел третий
> Кто такие тимлиды, и какова их
реальная задача?
Slide 10
Slide 10 text
Мой доклад для тех,
кто вынужден
управлять.
Но хочет остаться
инженером!
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
О чем поговорим со
страдающими инженерами?
Slide 13
Slide 13 text
О чем поговорим со
страдающими инженерами?
> Про основу автоматизации
управления
Slide 14
Slide 14 text
О чем поговорим со
страдающими инженерами?
> Про основу автоматизации
управления
> Слухи, скандалы, сплетни и домыслы
Slide 15
Slide 15 text
О чем поговорим со
страдающими инженерами?
> Про основу автоматизации
управления
> Слухи, скандалы, сплетни и домыслы
> Реальные проблемы на пути
Slide 16
Slide 16 text
О чем поговорим со
страдающими инженерами?
> Про основу автоматизации
управления
> Слухи, скандалы, сплетни и домыслы
> Реальные проблемы на пути
> Разбор типичных ситуаций
Slide 17
Slide 17 text
>_
X
Чем занимаются
инженеры?
Slide 18
Slide 18 text
Инженеры –
автоматизируют
задачи, которые
мешают работе
Slide 19
Slide 19 text
Но как нам
автоматизировать
управление?
Slide 20
Slide 20 text
Чтобы
автоматизировать,
нужно измерить
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
Задача на неделю
Slide 24
Slide 24 text
Задача на неделю Задача на час
Slide 25
Slide 25 text
Задача на неделю
Slide 26
Slide 26 text
Задача на неделю
> Может занять две. Или три. Или год
Slide 27
Slide 27 text
Задача на неделю
> Может занять две. Или три. Или год
> Будет конфликтовать с другими
Slide 28
Slide 28 text
Задача на неделю
> Может занять две. Или три. Или год
> Будет конфликтовать с другими
> Может сожрать лишние ресурсы
Slide 29
Slide 29 text
Задача на неделю
> Может занять две. Или три. Или год
> Будет конфликтовать с другими
> Может сожрать лишние ресурсы
> Непрозрачна: нужен наш контроль
Slide 30
Slide 30 text
No content
Slide 31
Slide 31 text
Задача на час
Slide 32
Slide 32 text
Задача на час
> Маловероятно займет больше
Slide 33
Slide 33 text
Задача на час
> Маловероятно займет больше
> Не будет конфликтовать с другими
Slide 34
Slide 34 text
Задача на час
> Маловероятно займет больше
> Не будет конфликтовать с другими
> Очень скромная по ресурсам
Slide 35
Slide 35 text
Задача на час
> Маловероятно займет больше
> Не будет конфликтовать с другими
> Очень скромная по ресурсам
> Прозрачна: наш контроль не нужен
Slide 36
Slide 36 text
1 час
Slide 37
Slide 37 text
Прогрессивная шкала
оценки
Slide 38
Slide 38 text
15
30
60
120
Задачи в минутах
Slide 39
Slide 39 text
Деревья задач
Slide 40
Slide 40 text
Task Chains
Slide 41
Slide 41 text
Task Chains
> Последовательность
Slide 42
Slide 42 text
Task Chains
> Последовательность
> Блокировки
Slide 43
Slide 43 text
Task Chains
> Последовательность
> Блокировки
> Приоритеты и сроки
Что можно делать с
прозрачностью?
> Мотивировать людей
Slide 50
Slide 50 text
Что можно делать с
прозрачностью?
> Мотивировать людей
> Собирать статистику и
предсказывать
Slide 51
Slide 51 text
Что можно делать с
прозрачностью?
> Мотивировать людей
> Собирать статистику и
предсказывать
> Общаться с заказчиками
Slide 52
Slide 52 text
Что можно делать с
прозрачностью?
> Мотивировать людей
> Собирать статистику и
предсказывать
> Общаться с заказчиками
> Настраивать нотификации и быть
спокойным
Slide 53
Slide 53 text
>_
X
Слухи и сплетни
Slide 54
Slide 54 text
Слух: работа с
маленькими задачами
требует супер крутых
менеджеров
Slide 55
Slide 55 text
Работать с
маленькими задачами
– очень просто
Slide 56
Slide 56 text
Берешь и создаешь!
Slide 57
Slide 57 text
Исполнитель может
оценить задачу лучше
всех
Slide 58
Slide 58 text
Но может
потребоваться
тренировка
Slide 59
Slide 59 text
No content
Slide 60
Slide 60 text
Слух: работа с
маленькими задачами
на самом деле микро-
менеджмент
Slide 61
Slide 61 text
Нет, обычно в работу
человека никто не
вмешивается. Но
каждый ССЗБ
Slide 62
Slide 62 text
Слух: я могу
просидеть над
часовой задачей
много дней из-за
неверной оценки
Slide 63
Slide 63 text
Definition of Ready
Slide 64
Slide 64 text
Definition of Done
Slide 65
Slide 65 text
Задача может и
должна заканчиваться
не только кодом!
Slide 66
Slide 66 text
Задача может и
должна порождать
новые задачи!
Slide 67
Slide 67 text
Слух: значит я могу
ничего не делать!
Slide 68
Slide 68 text
Прозрачность +
человек = страшная
сила
Slide 69
Slide 69 text
Что на самом деле сложно?
Slide 70
Slide 70 text
Что на самом деле сложно?
> Управлять большим количеством
задач
Slide 71
Slide 71 text
Что на самом деле сложно?
> Управлять большим количеством
задач
> Гонять CI, делать ревью кода
Slide 72
Slide 72 text
Что на самом деле сложно?
> Управлять большим количеством
задач
> Гонять CI, делать ревью кода
> Архитектура
Slide 73
Slide 73 text
Что на самом деле сложно?
> Управлять большим количеством
задач
> Гонять CI, делать ревью кода
> Архитектура
> Сохранять стабильность сборки
Slide 74
Slide 74 text
Что на самом деле сложно?
> Управлять большим количеством
задач
> Гонять CI, делать ревью кода
> Архитектура
> Сохранять стабильность сборки
> Деплоить и откатывать, мониторить
Slide 75
Slide 75 text
>_
X
Управляем
задачами
Slide 76
Slide 76 text
44
Slide 77
Slide 77 text
4,5 своих продукта,
которые худо-бедно
умеют управлять
программистами. Но
все еще плохо!
Slide 78
Slide 78 text
Основные требования
Slide 79
Slide 79 text
Основные требования
> Удобно создавать Task Chains
Slide 80
Slide 80 text
Основные требования
> Удобно создавать Task Chains
> Выставить свой статус
Slide 81
Slide 81 text
Основные требования
> Удобно создавать Task Chains
> Выставить свой статус
> Отказаться от задачи
Slide 82
Slide 82 text
Основные требования
> Удобно создавать Task Chains
> Выставить свой статус
> Отказаться от задачи
> Настроить напоминалки
Slide 83
Slide 83 text
Основные требования
> Удобно создавать Task Chains
> Выставить свой статус
> Отказаться от задачи
> Настроить напоминалки
> Настроить таймауты
Slide 84
Slide 84 text
No content
Slide 85
Slide 85 text
TODO != задача
Slide 86
Slide 86 text
No content
Slide 87
Slide 87 text
И целая
инфраструктура
вокруг!
github.com/wemake-services/kira
Slide 88
Slide 88 text
Необходимый список ботов
Slide 89
Slide 89 text
Необходимый список ботов
> Бот для релизов
Slide 90
Slide 90 text
Необходимый список ботов
> Бот для релизов
> Бот для rebase
Slide 91
Slide 91 text
Необходимый список ботов
> Бот для релизов
> Бот для rebase
> Бот для работы с задачами
Slide 92
Slide 92 text
Необходимый список ботов
> Бот для релизов
> Бот для rebase
> Бот для работы с задачами
> Бот для управления программистами
Slide 93
Slide 93 text
Необходимый список ботов
> Бот для релизов
> Бот для rebase
> Бот для работы с задачами
> Бот для управления программистами
> Бот для ревью кода
Slide 94
Slide 94 text
>_
X
Гоняем CI все
время
Slide 95
Slide 95 text
No content
Slide 96
Slide 96 text
No content
Slide 97
Slide 97 text
No content
Slide 98
Slide 98 text
CI становится узким
местом
Slide 99
Slide 99 text
CI становится узким
местом
Время
0
10
20
30
40
Июль
Slide 100
Slide 100 text
CI становится узким
местом
Время
0
10
20
30
40
Июль
Время: 15 минут
Slide 101
Slide 101 text
CI становится узким
местом
Время
0
10
20
30
40
Июль
Время: 15 минут
Время: 15 минут
Slide 102
Slide 102 text
CI становится узким
местом
Время
0
10
20
30
40
Июль
Время: 8 минут
Время: 15 минут
Время: 15 минут
Slide 103
Slide 103 text
test:
script:
- docker-compose run --rm web test
Slide 104
Slide 104 text
test:
script:
# Building test image and saving the cache:
- docker pull "${IMAGE_NAME}:dev"
- docker tag "${IMAGE_NAME}:dev" "${PROJECT_NAME}:dev"
# The logic itself:
- docker-compose build
- docker-compose run --rm web test
# Pushing back the result for future runs:
- docker tag "${PROJECT_NAME}:dev" "${IMAGE_NAME}:dev"
- docker push "${IMAGE_NAME}:dev"
Slide 105
Slide 105 text
test:
script:
# Building test image and saving the cache:
- docker pull "${IMAGE_NAME}:dev"
- docker tag "${IMAGE_NAME}:dev" "${PROJECT_NAME}:dev"
# The logic itself:
- docker-compose build
- docker-compose run --rm web test
# Pushing back the result for future runs:
- docker tag "${PROJECT_NAME}:dev" "${IMAGE_NAME}:dev"
- docker push "${IMAGE_NAME}:dev"
Slide 106
Slide 106 text
test:
script:
# Building test image and saving the cache:
- docker pull "${IMAGE_NAME}:dev"
- docker tag "${IMAGE_NAME}:dev" "${PROJECT_NAME}:dev"
# The logic itself:
- docker-compose build
- docker-compose run --rm web test
# Pushing back the result for future runs:
- docker tag "${PROJECT_NAME}:dev" "${IMAGE_NAME}:dev"
- docker push "${IMAGE_NAME}:dev"
Slide 107
Slide 107 text
test:
script:
# Building test image and saving the cache:
- docker pull "${IMAGE_NAME}:dev"
- docker tag "${IMAGE_NAME}:dev" "${PROJECT_NAME}:dev"
# The logic itself:
- docker-compose build
- docker-compose run --rm web test
# Pushing back the result for future runs:
- docker tag "${PROJECT_NAME}:dev" "${IMAGE_NAME}:dev"
- docker push "${IMAGE_NAME}:dev"
Проводим исследования
> Понять, какие зависимости можно
удалить: github.com/wemake-services/
wemake-python-styleguide/issues/1139
> Добавить полезное из другой
библиотеки: github.com/wemake-
services/wemake-python-styleguide/
issues/422
> Проверить, что зависимости работают с
python3.8: github.com/wemake-services/
wemake-python-styleguide/issues/1138
Slide 173
Slide 173 text
Architecture
Decision Record
Slide 174
Slide 174 text
No content
Slide 175
Slide 175 text
No content
Slide 176
Slide 176 text
>_
X
Выводы
Slide 177
Slide 177 text
Если вы не хотите
управлять (но надо),
перекладывайте все
на автоматику
Slide 178
Slide 178 text
Чтобы
автоматизировать
управление, нужна
единица работы
Slide 179
Slide 179 text
Маленькие задачи –
ваши лучшие друзья
Slide 180
Slide 180 text
Полезные ссылки
> Microtasks at GitHub: dev.to/mscccc/
how-we-use-ship-small-to-rapidly-
build-new-features-at-github-5cl9
> Microtasks at Google:
google.github.io/eng-practices/
review/developer/small-cls.html
> Program development by stepwise
refinement: dl.acm.org/doi/
10.1145/362575.362577