Антон Непомнящих - 100 лет без авралов или зачем проекту...

24
100 лет без авралов или зачем проекту креативный менеджер Антон Непомнящих Руководитель отдела управления проектами ИСС Арт www.issart.com anton-nix.livejournal.com [email protected]

Upload: happydev

Post on 04-Dec-2014

434 views

Category:

Documents


0 download

DESCRIPTION

Рассказ о развитии проекта объемом 100 человеко-лет с нуля. От BodyShop с четырьмя разработчиками и микроменеджментом к стабильному процессу на 33 человек. Разница между теорией и практикой заключается в том, что, в теории, этой разницы нет. А на практике оказывается, что она есть." (с) Неизвестный автор. Являясь ярым приверженцем процессного подхода, я расскажу, как строил процесс разработки на одном из проектов нашей компании. Объем проекта на данный момент составляет 100 человеко-лет. А выстроенный процесс уже прошел проверку временем и остается практически неизменным на протяжении последних 2х лет. Всё начиналось, как и у многих омских команд, с обычного bodyshop-проекта на 4 разработчика и меня в роли менеджера. Заказчик полностью контролировал работу каждого члена команды. Тотальный микроменеджмент. Но со временем мы доказали заказчику, что можем эффективно организовать работу и отвечать за ее качество. И заказчик передал нам все основные функции по разработке, оставив себе только концептуальную постановку задач. А также, значительно расширил бюджет. На данный момент в проекте участвует 33 человека. Процесс представляет из себя конвеер по поставке новой функциональности для решения различных нужд компании заказчика. От достаточно простых элементов корпоративного портала, до сложных кластерных систем рендеринга графики или своей собственной системы а-ля Dropbox.

TRANSCRIPT

Page 1: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

100 лет без авралов или зачем проекту креативный менеджерАнтон НепомнящихРуководитель отдела управления проектамиИСС Арт

[email protected]

Page 2: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Очень много дефектов

Заказчик – опытный

системный архитектор

Заказчик дает атомарные задачи

Неясно, что разрабатываем

вцелом

Сложно распределять ответственность

разработчиков по модулям продукта

Все работают над всем

кодом

Много разработчиков

Автоматизированное тестирование

Body-shop

Разработчики часто меняют

неизвестный им код

Нет дефектовВсё ещё много дефектов

Page 3: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Любое внедрение дорого стоит и приводит к побочным эффектам.

Антон Непомнящих

Page 4: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Всё ещё много дефектов

Заказчик – опытный

системный архитектор

Заказчик дает атомарные задачи

Неясно, что разрабатываем

вцелом

Сложно распределять ответственность

разработчиков по модулям продукта

Много разработчиков

Автоматизированное тестирование

Body-shop

Разработчики часто меняют

неизвестный им код

Все работают над всем

кодом

Page 5: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Тесты выполняются долго (1 ч)

Тесты должны всегда проходить!

Очень долго комитить код

Bamboo

Несколько тестовых серверов

Зависимости между

тестами

Весь бэкенд покрыт тестами

Автоматизированное тестирование

Page 6: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Всё ещё долго комитить код

Весь бэкенд покрыт тестами

Тесты должны всегда проходить!

Bamboo

Несколько тестовых серверов

Зависимости между

тестами

Тесты выполняются быстрее (0-30 мин)

SeleniumФронтенд на ExtJS

Фронтенд тормозит?

Автоматизированное тестирование

Page 7: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Весь бэкенд покрыт тестами

Тесты должны всегда проходить!

Bamboo

Несколько тестовых серверов

Зависимости между

тестами

Тесты выполняются быстрее (0-30 мин)

Фронтенд не тестируется

Всё ещё много дефектов Очень долго комитить код

Всё ещё долго комитить код

Автоматизированное тестирование

Page 8: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Количество дефектов после внедрения юнит-тестов бэкенда

Page 9: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Сложность интеграции

фич

Очень много дефектовВсё ещё много дефектовНе очень много дефектов

Заказчик дает атомарные задачи

Неясно, что разрабатываем

вцелом

Сложно распределять ответственность

разработчиков по модулям продукта

Ручное тестирование

отдельных фич

Очень сложно тестировать

фичи целиком

Фичи разрабатываются

параллельно

Релизить можно только целиком

законченные фичи

Много разработчиков

Автоматизированное тестирование

Разработчики часто меняют

неизвестный им код

Долго комитить код

Все работают над всем

кодом

Заказчик дает бизнес-задачи

Ясно, что разрабатываем

вцелом

Все работают почти над

всем кодом

Легче распределять ответственность

разработчиков по модулям продукта

Фичи в отдельных

ветках

Легкость интеграции

фич

Merge-plugin

Page 10: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Сложность интеграции

фич

Очень много дефектовВсё ещё много дефектовНе очень много дефектов

Ручное тестирование

отдельных фич

Фичи разрабатываются

параллельно

Релизить можно только целиком

законченные фичи

Много разработчиков

Автоматизированное тестирование

Разработчики часто меняют

неизвестный им код

Все работают над всем

кодом

Все работают почти над

всем кодом

Фичи в отдельных

ветках

Легкость интеграции

фич

Легче распределять ответственность

разработчиков по модулям продукта

Ясно, что разрабатываем

вцелом

Заказчик дает бизнес-задачи

Merge-plugin

Page 11: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Все работают почти над

всем кодом

Всё ещё много дефектов

Много разработчиков

Автоматизированное тестирование

Разработчики часто меняют

неизвестный им код

Не очень много дефектов

Ручное тестирование

отдельных фич

Простои разработчиков?

Фичи в отдельных

ветках

Полное интеграционное и регрессионное

тестирование

Полное тестирование –

долгая процедура

Легче распределять ответственность

разработчиков по модулям продукта

Ясно, что разрабатываем

вцелом

Заказчик дает бизнес-задачи

Merge-plugin

Page 12: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Все работают почти над

всем кодом

Всё ещё много дефектов

Много разработчиков

Автоматизированное тестирование

Разработчики часто меняют

неизвестный им код

Не очень много дефектов

Ручное тестирование

отдельных фич

Простои разработчиков? Легче распределять

ответственность разработчиков по модулям продукта

Ясно, что разрабатываем

вцелом

Заказчик дает бизнес-задачи

Полное интеграционное и регрессионное

тестирование

Полное тестирование –

долгая процедура

Релизная ветка

Фичи в отдельных

ветках

Merge-plugin

Page 13: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Не очень много дефектовМало дефектов

Все работают почти над

всем кодом

Легче распределять ответственность

разработчиков по модулям продукта

Ясно, что разрабатываем

вцелом

Заказчик дает бизнес-задачи

Автоматизированное тестирование

Полное интеграционное и регрессионное

тестированиеРучное

тестирование отдельных фич

Полное тестирование –

долгая процедура

Релизная ветка

Тестирование параллельно с разработкой

Периодические релизы

Разработчики часто меняют

неизвестный им код

Много разработчиков

Фичи в отдельных

ветках

Merge-plugin

Page 14: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

График количества дефектов

Page 15: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Любое внедрение требует времени для того, чтобы его результаты проявились.

Антон Непомнящих

Любое внедрение требует дополнительных усилий от всех участников процесса.

Page 16: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Не очень много дефектовМало дефектов

Все работают почти над

всем кодом

Легче распределять ответственность

разработчиков по модулям продукта

Ясно, что разрабатываем

вцелом

Заказчик дает бизнес-задачи

Автоматизированное тестирование

Полное интеграционное и регрессионное

тестированиеРучное

тестирование отдельных фич

Полное тестирование –

долгая процедура

Релизная ветка

Тестирование параллельно с разработкой

Периодические релизы

Разработчики часто меняют

неизвестный им код

Много разработчиков

Фичи в отдельных

ветках

Daily meetings

Code review

Merge-plugin

Page 17: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

График количества дефектов

Page 18: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Легче распределять ответственность

разработчиков по модулям продукта

Разработчики часто меняют

неизвестный им код

Все работают почти над

всем кодом

Все работают над отдельной областью кода

Распределили ответственность

разработчиков по модулям продукта

Ясно, что разрабатываем

вцелом

Заказчик дает бизнес-задачи

Всё ещё много дефектов

Разработчики редко меняют

неизвестный им код

Мало дефектов

Полное интеграционное и регрессионное

тестированиеРучное

тестирование отдельных фич

Полное тестирование –

долгая процедура

Релизная ветка

Тестирование параллельно с разработкой

Периодические релизы

Наставничество и специализация

Daily meetings

Code review

Автоматизированное тестирование

Фичи в отдельных

ветках

Merge-plugin

Много разработчиков

Page 19: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

График количества дефектов

Page 20: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Исправляйте корневые причины проблемы, а не ее симптомы.

Антон Непомнящих

Page 21: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Легче распределять ответственность

разработчиков по модулям продукта

Разработчики часто меняют

неизвестный им код

Все работают почти над

всем кодом

Все работают над отдельной областью кода

Распределили ответственность

разработчиков по модулям продукта

Ясно, что разрабатываем

вцелом

Заказчик дает бизнес-задачи

Всё ещё много дефектов

Много разработчиков

Разработчики редко меняют

неизвестный им код

Мало дефектов

Полное интеграционное и регрессионное

тестированиеРучное

тестирование отдельных фич

Полное тестирование –

долгая процедура

Релизная ветка

Тестирование параллельно с разработкой

Периодические релизы

Очень мало дефектов

Daily meetings

Code review

Автоматизированное тестирование

Фичи в отдельных

ветках

Merge-plugin

Наставничество и специализация

Page 22: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

График количества дефектов

Page 23: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

1. Любое внедрение дорого стоит и приводит к побочным эффектам.

2. Любое внедрение требует времени для того, чтобы его результаты проявились.

3. Любое внедрение требует дополнительных усилий от всех участников процесса.

4. Исправляйте корневые причины проблемы, а не ее симптомы.

Антон Непомнящих

Page 24: Антон Непомнящих - 100 лет без авралов или зачем проекту креативный менеджер | HappyDev'12

Спасибо за внимание!

Антон НепомнящихРуководитель отдела управления проектамиИСС Арт

[email protected]