Антон Непомнящих - 100 лет без авралов или зачем проекту...
DESCRIPTION
Рассказ о развитии проекта объемом 100 человеко-лет с нуля. От BodyShop с четырьмя разработчиками и микроменеджментом к стабильному процессу на 33 человек. Разница между теорией и практикой заключается в том, что, в теории, этой разницы нет. А на практике оказывается, что она есть." (с) Неизвестный автор. Являясь ярым приверженцем процессного подхода, я расскажу, как строил процесс разработки на одном из проектов нашей компании. Объем проекта на данный момент составляет 100 человеко-лет. А выстроенный процесс уже прошел проверку временем и остается практически неизменным на протяжении последних 2х лет. Всё начиналось, как и у многих омских команд, с обычного bodyshop-проекта на 4 разработчика и меня в роли менеджера. Заказчик полностью контролировал работу каждого члена команды. Тотальный микроменеджмент. Но со временем мы доказали заказчику, что можем эффективно организовать работу и отвечать за ее качество. И заказчик передал нам все основные функции по разработке, оставив себе только концептуальную постановку задач. А также, значительно расширил бюджет. На данный момент в проекте участвует 33 человека. Процесс представляет из себя конвеер по поставке новой функциональности для решения различных нужд компании заказчика. От достаточно простых элементов корпоративного портала, до сложных кластерных систем рендеринга графики или своей собственной системы а-ля Dropbox.TRANSCRIPT
![Page 1: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/1.jpg)
100 лет без авралов или зачем проекту креативный менеджерАнтон НепомнящихРуководитель отдела управления проектамиИСС Арт
![Page 2: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/2.jpg)
Очень много дефектов
Заказчик – опытный
системный архитектор
Заказчик дает атомарные задачи
Неясно, что разрабатываем
вцелом
Сложно распределять ответственность
разработчиков по модулям продукта
Все работают над всем
кодом
Много разработчиков
Автоматизированное тестирование
Body-shop
Разработчики часто меняют
неизвестный им код
Нет дефектовВсё ещё много дефектов
![Page 3: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/3.jpg)
Любое внедрение дорого стоит и приводит к побочным эффектам.
Антон Непомнящих
![Page 4: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/4.jpg)
Всё ещё много дефектов
Заказчик – опытный
системный архитектор
Заказчик дает атомарные задачи
Неясно, что разрабатываем
вцелом
Сложно распределять ответственность
разработчиков по модулям продукта
Много разработчиков
Автоматизированное тестирование
Body-shop
Разработчики часто меняют
неизвестный им код
Все работают над всем
кодом
![Page 5: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/5.jpg)
Тесты выполняются долго (1 ч)
Тесты должны всегда проходить!
Очень долго комитить код
Bamboo
Несколько тестовых серверов
Зависимости между
тестами
Весь бэкенд покрыт тестами
Автоматизированное тестирование
![Page 6: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/6.jpg)
Всё ещё долго комитить код
Весь бэкенд покрыт тестами
Тесты должны всегда проходить!
Bamboo
Несколько тестовых серверов
Зависимости между
тестами
Тесты выполняются быстрее (0-30 мин)
SeleniumФронтенд на ExtJS
Фронтенд тормозит?
Автоматизированное тестирование
![Page 7: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/7.jpg)
Весь бэкенд покрыт тестами
Тесты должны всегда проходить!
Bamboo
Несколько тестовых серверов
Зависимости между
тестами
Тесты выполняются быстрее (0-30 мин)
Фронтенд не тестируется
Всё ещё много дефектов Очень долго комитить код
Всё ещё долго комитить код
Автоматизированное тестирование
![Page 8: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/8.jpg)
Количество дефектов после внедрения юнит-тестов бэкенда
![Page 9: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/9.jpg)
Сложность интеграции
фич
Очень много дефектовВсё ещё много дефектовНе очень много дефектов
Заказчик дает атомарные задачи
Неясно, что разрабатываем
вцелом
Сложно распределять ответственность
разработчиков по модулям продукта
Ручное тестирование
отдельных фич
Очень сложно тестировать
фичи целиком
Фичи разрабатываются
параллельно
Релизить можно только целиком
законченные фичи
Много разработчиков
Автоматизированное тестирование
Разработчики часто меняют
неизвестный им код
Долго комитить код
Все работают над всем
кодом
Заказчик дает бизнес-задачи
Ясно, что разрабатываем
вцелом
Все работают почти над
всем кодом
Легче распределять ответственность
разработчиков по модулям продукта
Фичи в отдельных
ветках
Легкость интеграции
фич
Merge-plugin
![Page 10: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/10.jpg)
Сложность интеграции
фич
Очень много дефектовВсё ещё много дефектовНе очень много дефектов
Ручное тестирование
отдельных фич
Фичи разрабатываются
параллельно
Релизить можно только целиком
законченные фичи
Много разработчиков
Автоматизированное тестирование
Разработчики часто меняют
неизвестный им код
Все работают над всем
кодом
Все работают почти над
всем кодом
Фичи в отдельных
ветках
Легкость интеграции
фич
Легче распределять ответственность
разработчиков по модулям продукта
Ясно, что разрабатываем
вцелом
Заказчик дает бизнес-задачи
Merge-plugin
![Page 11: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/11.jpg)
Все работают почти над
всем кодом
Всё ещё много дефектов
Много разработчиков
Автоматизированное тестирование
Разработчики часто меняют
неизвестный им код
Не очень много дефектов
Ручное тестирование
отдельных фич
Простои разработчиков?
Фичи в отдельных
ветках
Полное интеграционное и регрессионное
тестирование
Полное тестирование –
долгая процедура
Легче распределять ответственность
разработчиков по модулям продукта
Ясно, что разрабатываем
вцелом
Заказчик дает бизнес-задачи
Merge-plugin
![Page 12: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/12.jpg)
Все работают почти над
всем кодом
Всё ещё много дефектов
Много разработчиков
Автоматизированное тестирование
Разработчики часто меняют
неизвестный им код
Не очень много дефектов
Ручное тестирование
отдельных фич
Простои разработчиков? Легче распределять
ответственность разработчиков по модулям продукта
Ясно, что разрабатываем
вцелом
Заказчик дает бизнес-задачи
Полное интеграционное и регрессионное
тестирование
Полное тестирование –
долгая процедура
Релизная ветка
Фичи в отдельных
ветках
Merge-plugin
![Page 13: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/13.jpg)
Не очень много дефектовМало дефектов
Все работают почти над
всем кодом
Легче распределять ответственность
разработчиков по модулям продукта
Ясно, что разрабатываем
вцелом
Заказчик дает бизнес-задачи
Автоматизированное тестирование
Полное интеграционное и регрессионное
тестированиеРучное
тестирование отдельных фич
Полное тестирование –
долгая процедура
Релизная ветка
Тестирование параллельно с разработкой
Периодические релизы
Разработчики часто меняют
неизвестный им код
Много разработчиков
Фичи в отдельных
ветках
Merge-plugin
![Page 14: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/14.jpg)
График количества дефектов
![Page 15: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/15.jpg)
Любое внедрение требует времени для того, чтобы его результаты проявились.
Антон Непомнящих
Любое внедрение требует дополнительных усилий от всех участников процесса.
![Page 16: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/16.jpg)
Не очень много дефектовМало дефектов
Все работают почти над
всем кодом
Легче распределять ответственность
разработчиков по модулям продукта
Ясно, что разрабатываем
вцелом
Заказчик дает бизнес-задачи
Автоматизированное тестирование
Полное интеграционное и регрессионное
тестированиеРучное
тестирование отдельных фич
Полное тестирование –
долгая процедура
Релизная ветка
Тестирование параллельно с разработкой
Периодические релизы
Разработчики часто меняют
неизвестный им код
Много разработчиков
Фичи в отдельных
ветках
Daily meetings
Code review
Merge-plugin
![Page 17: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/17.jpg)
График количества дефектов
![Page 18: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/18.jpg)
Легче распределять ответственность
разработчиков по модулям продукта
Разработчики часто меняют
неизвестный им код
Все работают почти над
всем кодом
Все работают над отдельной областью кода
Распределили ответственность
разработчиков по модулям продукта
Ясно, что разрабатываем
вцелом
Заказчик дает бизнес-задачи
Всё ещё много дефектов
Разработчики редко меняют
неизвестный им код
Мало дефектов
Полное интеграционное и регрессионное
тестированиеРучное
тестирование отдельных фич
Полное тестирование –
долгая процедура
Релизная ветка
Тестирование параллельно с разработкой
Периодические релизы
Наставничество и специализация
Daily meetings
Code review
Автоматизированное тестирование
Фичи в отдельных
ветках
Merge-plugin
Много разработчиков
![Page 19: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/19.jpg)
График количества дефектов
![Page 20: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/20.jpg)
Исправляйте корневые причины проблемы, а не ее симптомы.
Антон Непомнящих
![Page 21: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/21.jpg)
Легче распределять ответственность
разработчиков по модулям продукта
Разработчики часто меняют
неизвестный им код
Все работают почти над
всем кодом
Все работают над отдельной областью кода
Распределили ответственность
разработчиков по модулям продукта
Ясно, что разрабатываем
вцелом
Заказчик дает бизнес-задачи
Всё ещё много дефектов
Много разработчиков
Разработчики редко меняют
неизвестный им код
Мало дефектов
Полное интеграционное и регрессионное
тестированиеРучное
тестирование отдельных фич
Полное тестирование –
долгая процедура
Релизная ветка
Тестирование параллельно с разработкой
Периодические релизы
Очень мало дефектов
Daily meetings
Code review
Автоматизированное тестирование
Фичи в отдельных
ветках
Merge-plugin
Наставничество и специализация
![Page 22: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/22.jpg)
График количества дефектов
![Page 23: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/23.jpg)
1. Любое внедрение дорого стоит и приводит к побочным эффектам.
2. Любое внедрение требует времени для того, чтобы его результаты проявились.
3. Любое внедрение требует дополнительных усилий от всех участников процесса.
4. Исправляйте корневые причины проблемы, а не ее симптомы.
Антон Непомнящих
![Page 24: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12](https://reader033.vdocuments.site/reader033/viewer/2022061205/54804430b479593c578b4666/html5/thumbnails/24.jpg)
Спасибо за внимание!
Антон НепомнящихРуководитель отдела управления проектамиИСС Арт