Менеджери в Agile проектах

Всім привіт.

Після бурхливої ??дискусії про зарплати менеджерів і девелоперів мені стало очевидно, що тема побудови горизонтальних взаємовідносин у проекті зацікавила багатьох і відхилилася від початкового русла колонки Святослава. Тому я спробую розкрити її у своїй колонці.

(Тут була картинка для привернення уваги, але я вирішив обійтися без неї).

Трохи про себе: в IT з 2001 року, колишній девелопер, перейшов у бізнес-аналітики, тому що зрозумів, що «interactions and people» мені цікавіше і важливіше «processes and tools». Зараз працюю в Люксофт України. Детальніше, кому цікаво, в LinkedIn .

Проект

Тепер про проект, в якому я зараз працюю: розробка більшої системи для clearing and settlement (C & S) угод по цінних паперах (конкретно, cash equities) в інвестиційному банку UBS Investment Bank . У деталі системи і використовує її бізнесу я не можу вдаватися через NDA, зате про процеси можу розповісти все.

Над проектом працює 120 + людина в 5 локаціях, об'єднані в 12 Scrum-командах (кількість періодично змінюється, тому що деякі команди реформуються, деякі створюються, а деякі - припиняють роботу). Розробка йде 5-й рік, 99% необхідного функціонала вже в продакшені, зараз йде фінальна «обробка напилком».

Чим наш проект цікавий і показовий? Тим, що без жорсткої вертикальної структури менеджменту він зберігає фокус спонсорів програми, показує стабільні результати з короткими циклами релізів і швидко адаптується до змін вимог.

Процес

Команди кроссфункціональни, тобто, в кожній команді є люди з скіллом BA, QA і development. Навіть якщо роль BA або QA займає виділений людина, зазвичай він/вона виконує якісь суміжні активності. Це дозволяє, по-перше, підтримувати всю команду під «включеному» стані (тобто, члени команди активно спілкуються), по-друге, підвищити Truck Number (кількість членів команди, яких потрібно «задавити вантажівкою» для припинення ефективної роботи) .

Згідно з принципами Agile Manifesto , команди спілкуються із замовником (людьми з бізнесу) безпосередньо, причому робить це не тільки бізнес- аналітик, а й усі інші члени команди під час PBR (product backlog refinement workshops).

Команди, природно, працюють за якимось планом, і цей план - product backlog (у нас їх декілька, тому що є кілька напрямків роботи по продукту). У кожного беклога є Product Owner, над кожним беклогом може працювати одночасно кілька команд. Завдання розподіляються по командам під час Joint PBR, на якому PO коротко пояснює суть пріоритетних завдань і команди по черзі розбирають їх для подальшого вивчення, уточнення вимог, взаємозалежностей і т.д.

Таким чином, до початку чергової ітерації у кожної команди є цілком актуальний sprint backlog, в якому для кожної user story є:

З технічної точки зору якість забезпечується:

А тепер про те, хто ж це все менедж.

З чотирьох типів менеджерів у нас реально є лише дві ролі:

В принципі, частину функцій «менеджера проекту» лежить на PO, але це стосується тільки пріоритизації вимог і, частково, їх декомпозиції (зазвичай разом з командою). Розбиття на завдання, effort estimation та оновлення burndown charts - завдання команди (з якою вони справляються). Природно, в команді є ScrumMaster, який стежить за дотриманням процесу і, в потрібний момент, може підказати команді практику для більш ефективної роботи. З іншого боку, з часом необхідність в такій ролі в більшості команд відпала по ходу їх спільної роботи.

Крім того, ми активно залучаємо зовнішніх консультантів для аналізу та покращення наших процесів (таких, як Craig Larman, Portia Tung, Gojko Adzic і т.д.). Природно, питання виділення бюджету на такі речі, так само, як і на навчання/сертифікацію/участь у конференціях вирішують спільно delivery managers з боку як Люксофт, так і UBS. Але важливим фактором, що впливає на прийняття рішень, є, знову-ж, фідбек від команд.

Детальніше про проект можна подивитися у виступі моїх колег на QCon London 2011 .

Таким чином, ми підходимо до жартівливого питання, яке я озвучив в коментарях до колонки Святослава: Чи повинен у команди бути менеджер?

Я, звичайно ж, злукавив. Менеджер у проекту (не у команди!) Бути повинен. Але от чого він не повинен робити - так це «менедж», а саме - «мікроменеджіть».

Завдання хорошого менеджера, як і хорошого, наприклад, адміна, - організувати роботу таким чином, щоб він був не потрібен у повсякденних завданнях і міг займатися більш високорівневими завданнями (для аутсорсингу - залучення нових клієнтів, для продуктових компаній - участь у стратегічному плануванні).

Як це зробити? Підбирати правильних людей, вчитися самому і вчити їх. Не шкодувати коштів на поліпшення комунікацій (від відряджень до інтерактивних дощок). Слухати команди і чути їх. Загалом, inspect and adapt!

Буду радий вислухати ваші коментарі і відповісти на питання.

Опубліковано: 19/08/11 @ 03:46
Розділ Різне

Рекомендуємо:

Дослідження: наскільки «соціалізовані» топові сайти у видачі Yandex і Google?
Помилка плагіна Popularity Contest на WordPress 3.2
Проблема з плагіном Quick Cache
Як зробити презентацію, яку буде цікаво дивитися - відеоурок
Чи повинен програміст отримувати більше свого менеджера?