Марина Мельник, Exigen Services - про Scrum, Distributed Scrum і Agile

Бесіда з Мариною Мельник, керівником Agile Center of Excellence компанії Exigen Services про базові особливості застосування гнучкої методології Distributed Scrum.

- Марина, для тих, хто не зовсім в темі, розкажіть трохи про історію Agile і про Scrum-підході.

- Agile Manifesto, «» був випущений в лютому 2001 року в штаті Юта, США. Причиною його появи стало бажання розробників знайти альтернативу «важким» практикам розробки програмного забезпечення, обтяженим тоннами документації. Саме таким був «метод водоспаду», прийнятий стандартом розробки в ті роки.

Гнучкі методики розробки використовувалися і раніше, але на зустрічі в Юті вони вперше були формалізовані і почали активно впроваджуватися в широкій середовищі розробників.

У своїй роботі ми використовуємо Scrum і XP - дві основні методики гнучкого підходу до розробки. Екстремальне програмування приділяє більше увагу інженерної стороні розвитку продукту, це системний підхід. Методика XP сконцентрована на процесі виробництва, а Scrum фокусується на управлінні і випуску.

Багаторічна практика роботи з глобальними компаніями-клієнтами стала для нас відправною точкою переходу від класичного Scrum до розподіленого.

- А що таке класичний Scrum?

- При класичному Scrum команда включає в себе від 5 до 7 осіб, які зазвичай знаходяться в одному приміщенні. Це називається сollocated team . Цей головний принцип озвучив Кен Швабер ще в 2001 році - команда повинна базуватися в одному місці. Такі проекти, як правило, розраховані на невеликі вузькоспеціалізовані програми і тривають від двох до п'яти місяців. Поставки продукту замовнику проводяться кожні 2-3 тижні.

- У чому ж відмінність розподіленого Scrum від класичного?

- Його основна відмінність від класичного саме в тому, що команда, вірніше, команди розташовані в різних центрах розробки, або навіть в різних країнах. Але при цьому основні Agile-принципи дотримуються.

- Навіщо все так ускладнювати?

- При розробці складних, великомасштабних систем, робота над проектом може тривати до року і більше, а кількість розробників доходить до сотні. У цьому випадку неможливо швидко і без зайвих витрат зібрати collocated team , яка б задовольняла всім необхідним вимогам. Наймати нових людей в одному офісі з великою швидкістю не дозволяє ринок. Розподілений Scrum - прагматичний підхід, що дозволяє балансувати використання існуючих і наймання нових талантів.

- Деякі компанії прагнуть до зростання центрів розробки, ви, судячи з усього, мислите по-іншому ...

- Непродумано активний наймання персоналу призводить до зростання так званого «Бенча», збільшення витрат на його утримання і, як наслідок, малоприємним кроків щодо його скорочення. Ми за ефективний розподіл ресурсів, бережливе виробництво, що в кінцевому підсумку заощаджує і ресурси замовників.

Ми, безумовно, набираємо нових людей, але робимо це ретельно, попередньо зваживши всі варіанти розподілу наявних фахівців.

- Які ще переваги отримує компанія-розробник від використання розподіленого Scrum?

- Використання такого підходу дозволяє розробникам осягнути майже неосяжне. Маючи розподіленими ресурсами і гнучко комбінуючи їх для роботи в проектах, компанія може підвищити рівень складності виконуваних проектів за гнучкого залучення експертів з різних центрів розробки. Також збільшуються шанси доступу до глобального пулу проектів. Значно зменшуються ризики, пов'язані з персоналом. У разі необхідності ви завжди можете залучити аналогічного фахівця з іншої команди або центру розробки. При грамотному управлінні ресурсами значно скорочується розмір Бенч, а, значить, зростає прибуток компанії.

- Плюси для розробників очевидні. А що компанія-замовник виграє від використання розподіленого Scrum при розробці рішення?

- Ми живемо в світі великих швидкостей і постійних змін. Процеси навколо нас або адаптуються, або відмирають. Зараз замовники ПО вимагають все більш складні і багатофункціональні продукти, терміни проектів збільшуються, розміри команд зростають. У той же час замовники прагнуть всіма шляхами скоротити витрати і час виходу систем в експлуатацію. Що ж, наша задача - допомагати їм у цьому. І розподілений Scrum є інструментом, який дозволяє це реалізувати.

- Які проблеми ви могли б назвати в організації проекту, який буде працювати за методологією розподіленого Scrum?

- Питання про наболіле ... Різниця часових поясів, що призводить до збільшення періоду відгуку. Мовний бар'єр, який сковує, ускладнює розуміння, не стимулює до спілкування. Амбіції членів команд: з'являється якась змагальна атмосфера, що ускладнює пошук оптимальних рішень. Менеджерам досить складно правильно побудувати ефективну ієрархію взаємодії. Безумовно, є проблема безпеки. Вона вирішується технологічними методами та адміністративними регуляторами.

Коротше, багато. Але ми боремося, і для того, щоб акумулювати найкращі напрацювання та мати можливість їх успішного перевикористання, ми організували Центр професійної експертизи Agile (Agile Center of Excellence).

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

- Як саме розвиваєте?

- Застосовувати гнучкі методики в процесі розробки треба вчитися. Необхідно освоїти всі техніки, щоб мати певний навик і застосовувати гнучкі методики на практиці. У нас існують внутрішні і зовнішні програми навчання. Внутрішні програми спрямовані на навчання і розвиток фахівців у галузі Agile, які включать в себе тренінги, сертифікації, майстер-класи і, так звані «мости» - віртуальні круглі столи для фахівців різних офісів.

Зовнішня програма називається Exigen Agile Practices - це академічна програма навчання, метою якої є розвиток у студентів та молодих спеціалістів знань і навичок, необхідних IT-бізнесу в сучасних умовах. В ході такого навчання можна за короткий час набути практичних навичок щодо використання Scrum.

Є й інші програми, але вони вже не належать до розподіленого Scrum.

Опубліковано: 16/04/12 @ 08:47
Розділ Різне

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

21 квітня, Київ - Київ Java Saturday
Тепер на YouTube можуть заробити все
Заробіток за допомогою власного сайту
Що таке пошукова система
Програміст засуджений за сайт про кіно