Что такое SCRUM

Эта замет­ка об управ­ле­нии про­ек­та­ми в раз­ра­бот­ке (и в дру­гих обла­стях жиз­ни). Она пона­до­бит­ся тем, кому при­дёт­ся рабо­тать в ИТ-компаниях или кто сам будет управ­лять командами. 

Скрам вкратце

  • SCRUM — это спо­соб управ­лять про­ек­та­ми. Не един­ствен­ный и не уни­вер­саль­ный, про­сто один из мно­гих. Часто исполь­зу­ет­ся в раз­ра­бот­ке софта. 
  • В скра­ме рабо­та наре­за­ет­ся на неболь­шие цик­лы — итерации.
  • В резуль­та­те ите­ра­ции дол­жен полу­чать­ся ста­биль­ный рабо­та­ю­щий про­дукт, кото­рый стал луч­ше, чем раньше. 
  • В кон­це ите­ра­ции про­ис­хо­дит ретро­спек­ти­ва: люди обсуж­да­ют про­шед­шую рабо­ту и дума­ют, как ее улуч­шить. Так заведено.
  • В скра­ме мно­го вни­ма­ния уде­ля­ет­ся орга­ни­за­ции тру­да — что­бы всем было удоб­но рабо­тать, кон­флик­ты раз­ре­ша­лись зара­нее и т. д. 
  • Скрам поле­зен в ИТ и для поша­го­вой раз­ра­бот­ки про­дук­та. Но это не вол­шеб­ная таблетка. 

Для этой ста­тьи нам пона­до­бит­ся чебурек:

Дети, это чебурек 

Наша зада­ча — вме­сто обыч­но­го чебу­ре­ка при­ду­мать уни­каль­ное фир­мен­ное блю­до, кото­рое долж­но понра­вить­ся боль­шин­ству кли­ен­тов. Назо­вём это блю­до суперчебуреком. 

Если пере­ве­сти эту мета­фо­ру в раз­ра­бот­ку — у нас есть некая вер­сия наше­го при­ло­же­ния и нам нуж­но сде­лать более совер­шен­ную вер­сию это­го же при­ло­же­ния: дора­бо­тать, доба­вить, улуч­шить, про­ка­чать. Как это делать?

Для этой зада­чи нам не под­хо­дит кан­бан, посколь­ку мы пока не зна­ем, каким будет супер­че­бу­рек или наше новое при­ло­же­ние. Вме­сто это­го мы можем вос­поль­зо­вать­ся мето­дом скра­ма, кото­рый как раз и при­ду­ман для подоб­ных слу­ча­ев. Давай­те раз­би­рать­ся, что такое скрам и как им пользоваться. 

Что есть SCRUM

Скрам, он же SCRUM — это один из спо­со­бов управ­ле­ния про­ек­том. Поми­мо скра­ма про­ект мож­но делать в поряд­ке поста­нов­ки задач, в алфа­вит­ном поряд­ке, по сте­пе­ни важ­но­сти задач, в авраль­ном режи­ме, хао­тич­но; мож­но делать про­ект с вось­ми утра до пяти вече­ра или круг­ло­су­точ­но; мож­но делать про­ект, пока не сго­ришь; мож­но — по гра­фи­ку «два через два».

Скрам — про­сто ещё один спо­соб струк­ту­ри­ро­вать рабо­ту над про­ек­том. Смысл скра­ма — раз­бить рабо­ту на несколь­ко малень­ких кусоч­ков, делать их после­до­ва­тель­но и после каж­до­го кусоч­ка полу­чать понят­ное и види­мое улуч­ше­ние продукта. 

Ещё в скрам вхо­дят все­воз­мож­ные риту­а­лы, арте­фак­ты и закли­на­ния, но это лишь под­спо­рье для основ­ной мыс­ли: мы улуч­ша­ем про­ект малень­ки­ми рывками.

Теперь посмот­рим на основ­ные ком­по­нен­ты скрама. 

Бэклог — «что будем делать»

Рабо­та в скра­ме начи­на­ет­ся с фор­ми­ро­ва­ния бэк­ло­га — спис­ка задач, необ­хо­ди­мых для раз­ра­бот­ки про­дук­та. Эти зада­чи назы­ва­ют­ся поль­зо­ва­тель­ски­ми исто­ри­я­ми, и у них две осо­бен­но­сти: они долж­ны рас­став­лять­ся по при­о­ри­те­ту и нахо­дить­ся на скрам-доске — физи­че­ском или вир­ту­аль­ном про­стран­стве с колон­ка­ми «Что сде­лать», «В про­цес­се» и «Гото­во». 

Бэк­лог состав­ля­ет product owner — чело­век, кото­рый выслу­ши­ва­ет поже­ла­ния заказ­чи­ка, пере­да­ёт их коман­де и отве­ча­ет за выпуск про­дук­та. Он же зани­ма­ет­ся оргво­про­са­ми и сле­дит за тем, что­бы меж­ду сто­ро­на­ми не воз­ни­ка­ло кон­флик­тов. В мета­фо­ре чебу­ре­ка мож­но пред­ста­вить, что есть бизнес-заказчик — дирек­тор ресто­ра­на. И есть оунер — шеф-повар. Дирек­тор зна­ет, что ему нужен супер­че­бу­рек. Шеф отве­ча­ет за то, что­бы этот супер­че­бу­рек случился. 

Что за сценарий

Хоро­шая прак­ти­ка — хра­нить в бэк­ло­ге не отдель­ные кноп­ки, фиш­ки и воз­мож­но­сти про­дук­та, а имен­но сце­на­рии. Напри­мер, если это мобиль­ное при­ло­же­ние, то «поль­зо­ва­тель может поде­лить­ся фото­гра­фи­ей с дру­зья­ми» или «поль­зо­ва­тель может вой­ти через соцсети». 

Когда мы пилим про­дукт по сце­на­ри­ям, мы можем выпус­кать их отдель­но: напри­мер, сде­ла­ли «поль­зо­ва­тель вхо­дит через соц­се­ти» и выпустили. 

Хуже — когда вме­сто сце­на­рия у нас отдель­ное свой­ство или кусоч­ки про­дук­та. Напри­мер, не «поль­зо­ва­тель может вой­ти через соц­се­ти», а «под­держ­ка пла­ги­на авто­ри­за­ции VK». Это как бы часть сце­на­рия, но не весь сце­на­рий — нуж­но ещё доде­лы­вать интер­фейс, ошиб­ки, под­сказ­ки и дру­гие вещи. Если мы мыс­лим не сце­на­ри­я­ми, а отдель­ны­ми кусоч­ка­ми, то у нас про­дукт все­гда «недо­го­тов­лен». 

Но такое сце­нар­ное мыш­ле­ние воз­мож­но не во всех продуктах.

Для про­сто­ты мож­но думать о сце­на­рии так: «Мож­но ли выпу­стить новую вер­сию про­дук­та для поль­зо­ва­те­лей, если реа­ли­зо­вать толь­ко этот кон­крет­ный набор задач?» Если мож­но — услов­но мож­но назвать это сце­на­ри­ем. При­мер с чебу­ре­ком: мы можем выка­ты­вать в меню сна­ча­ла чебу­рек новой фор­мы, потом чебу­рек с новым цве­том, потом новый раз­мер чебу­ре­ка и т. д.

Скрам-доска с бэк­ло­гом по раз­ра­бот­ке суперчебурека 

Итерации — «рывок» проекта

Когда бэк­лог сфор­ми­ро­ван, коман­да оце­ни­ва­ет силы и опре­де­ля­ет дли­тель­ность одной ите­ра­ции. Ите­ра­ция — это один рабо­чий «рывок», обыч­но в ИТ он зани­ма­ет 1—3 недели. 

Коман­де нуж­но посчи­тать, сколь­ко поль­зо­ва­тель­ских исто­рий вой­дёт в одну ите­ра­цию и какое коли­че­ство ите­ра­ций пона­до­бит­ся. Напри­мер, если у нас пять исто­рий с недель­ной ите­ра­ци­ей, то на про­ект уйдёт пять недель. 

👉 Ите­ра­ции в скра­ме — это то же самое, что и сприн­ты в про­грам­ми­ро­ва­нии. Подроб­но об этом мы рас­ска­зы­ва­ли в отдель­ной статье. 

Перед каж­дой ите­ра­ци­ей коман­да состав­ля­ет план рабо­ты над выбран­ны­ми поль­зо­ва­тель­ски­ми исто­ри­я­ми. Допол­ни­тель­но про­во­дят­ся еже­днев­ные встре­чи, на кото­рых каж­дый участ­ник отве­ча­ет на три вопро­са: что он уже сде­лал, какие про­бле­мы и чем будет зани­мать­ся даль­ше. На встре­чи не долж­но ухо­дить более 15 минут, поэто­му чис­лен­ность скрам-команд все­гда огра­ни­че­на 5—9 участниками. 

Встре­чи ведёт скрам-мастер — опыт­ный член коман­ды. Он высту­па­ет как мене­джер: дела­ет так, что­бы коман­да мог­ла выпол­нить постав­лен­ную зада­чу, коор­ди­ни­ру­ет людей и созда­ёт усло­вия тру­да. Сло­мал­ся ноут­бук — скрам-мастер орга­ни­зу­ет ремонт и най­дёт новый на заме­ну. Про­бле­мы с дед­лай­ном — скрам-мастер заку­пит кофе и поста­вит рас­кла­душ­ку в офис.

Инкремент — результат «рывка»

После каж­дой ите­ра­ции коман­да долж­на выдать инкре­мент — про­ме­жу­точ­ную вер­сию про­дук­та, кото­рая выно­сит­ся на обсуж­де­ние с заказ­чи­ком. На встре­че каж­дый участ­ник коман­ды отчи­ты­ва­ет­ся о про­де­лан­ной рабо­те, отве­ча­ет на вопро­сы и пред­ла­га­ет идеи по улуч­ше­нию. В резуль­та­те заказ­чик может при­нять инкре­мент, отпра­вить его на дора­бот­ку или досроч­но закрыть проект. 

👉 В иде­аль­ной ситу­а­ции инкре­мент дол­жен быть ста­биль­ной и рабо­чей вер­си­ей про­дук­та. Недо­пу­сти­мо, что­бы из-за новых сце­на­ри­ев в про­дук­те нача­ли отва­ли­вать­ся ста­рые воз­мож­но­сти (как это часто быва­ет). Поэто­му тести­ро­ва­ние и отлад­ка про­дук­та тоже закла­ды­ва­ет­ся в ите­ра­цию. Луч­ше сде­лать мень­ше, но более ста­биль­но, чем взять мно­го сце­на­ри­ев и полу­чить сырой глюч­ный продукт. 

Это всё, конеч­но, в иде­а­ле. В жиз­ни быва­ет по-всякому.

Инкре­мен­том пер­вой ите­ра­ции ста­ли раз­ные фор­мы супер­че­бу­ре­ка. Выби­ра­ем тот, что покруглее 

Ретроспектива

После пер­вой ите­ра­ции появ­ля­ет­ся обрат­ная связь от заказ­чи­ка — про­ще гово­ря, «пра­воч­ки». Для её обсуж­де­ния преду­смот­ре­но отдель­ное команд­ное собра­ние — ретро­спек­ти­ва. Для мно­гих раз­ра­бот­чи­ков это самая нена­вист­ная часть скра­ма, пото­му что здесь тебе будут что-то гово­рить про твою рабо­ту, не все­гда приятное. 

Ретро­спек­ти­ва состо­ит из четы­рёх частей и про­хо­дит по сле­ду­ю­ще­му плану: 

  1. Коман­да обо­зна­ча­ет все поло­жи­тель­ные момен­ты преды­ду­щей ите­ра­ции. Напри­мер, про­дукт выпу­щен вовре­мя. В ста­тье это может казать­ся оче­вид­ным, но в жиз­ни даже это само по себе может быть пред­ме­том для гордости. 
  2. Обсуж­да­ем про­бле­мы. В нашем слу­чае хоте­ли пред­ло­жить заказ­чи­ку десять вари­ан­тов фор­мы чебу­ре­ка, а успе­ли под­го­то­вить толь­ко три. 
  3. Наки­ды­ва­ем идеи по улуч­ше­нию рабо­че­го про­цес­са. Напри­мер, не давать таких опти­ми­стич­ных обещаний. 
  4. В кон­це состав­ля­ет­ся план по внед­ре­нию при­ня­тых идей.

Мож­но ска­зать, что зада­ча ретро­спек­ти­вы — понять, что пошло не так в рабо­чем про­цес­се, и испра­вить это. Фокус не на том, что кто-то про­пу­стил баг на тести­ро­ва­нии или непра­виль­но обо­звал пере­мен­ную, а имен­но на том, как ста­вят­ся зада­чи и пла­ни­ру­ют­ся сле­ду­ю­щие итерации. 

Во вре­мя ретро­спек­ти­вы коман­да не ищет винов­ных — по умол­ча­нию счи­та­ет­ся, что каж­дый участ­ник сде­лал всё воз­мож­ное для полу­че­ния луч­ше­го резуль­та­та. Если что-то не полу­чи­лось, то при­чи­на в обсто­я­тель­ствах. Их нуж­но менять. 

Ретро­спек­ти­ва про­ис­хо­дит после каж­дой ите­ра­ции. При этом важ­но, что­бы во вре­мя каж­дой сле­ду­ю­щей ретро­спек­ти­вы учи­ты­ва­лись резуль­та­ты преды­ду­щей — это помо­жет сле­дить за тем, что­бы про­дук­тив­ность повы­ша­лась не толь­ко на бумаге.

Инкре­мент вто­рой ите­ра­ции — цве­та супер­че­бу­ре­ка. Самым стиль­ным выгля­дит чёр­ный цвет 

Диаграмма сгорания

Для отсле­жи­ва­ния про­грес­са в скра­ме исполь­зу­ет­ся диа­грам­ма сго­ра­ния — это гра­фик, на кото­ром вид­но, как быст­ро мы долж­ны были испол­нять зада­чи и как быст­ро мы их испол­ня­ем на самом деле. Мож­но было рисо­вать как угод­но, но в скра­ме — так.

При­мер слож­ной диа­грам­мы сго­ра­ния, где коман­да отста­ла от дед­лай­на на одну ите­ра­цию. План — зелё­ное, факт — крас­ное. Чем боль­ше оста­лось, тем хуже 

Критерии готовности

Скрам пыта­ет­ся решить одну из самых горь­ких про­блем раз­ра­бот­ки: «Заказ­чик хотел одно, мы это сде­ла­ли, а ока­за­лось, что он хотел дру­гое». В этот момент у раз­ра­бот­чи­ков, дизай­не­ров и всех осталь­ных долж­ны наво­ра­чи­вать­ся слёзы. 

Скрам пыта­ет­ся решить эту про­бле­му, про­пи­сы­вая кри­те­рии готов­но­сти зада­чи. Заказ­чик и скрам-мастер долж­ны поста­рать­ся чёт­ко опи­сать виде­ние резуль­та­та: на что он дол­жен быть похож, как рабо­тать и т. д. 

Но это всё в тео­рии и в иде­аль­ном мире. В реаль­но­сти заказ­чик всё рав­но ска­жет: «Да, я напи­сал, но сей­час ситу­а­ция изме­ни­лась и нуж­но сде­лать по-другому». 

🔥 Критика SCRUM

Скрам кри­ти­ку­ют за излиш­нюю риту­аль­ность: вме­сто того что­бы спо­кой­но рабо­тать и делать задач­ки, люди сидят на встре­чах и зани­ма­ют­ся ретро­спек­тив­ным ана­ли­зом соб­ствен­ной деятельности. 

Скрам кри­ти­ку­ют за мод­ность: все его пыта­ют­ся внед­рить, не вез­де умест­но и не вез­де пра­виль­но. Резуль­тат лег­ко представить. 

Скрам кри­ти­ку­ют за то, что полу­ча­ет­ся, когда его внед­ря­ют негра­мот­ные управ­лен­цы. Когда риту­а­лы заме­ща­ют полез­ную рабо­ту, это дей­стви­тель­но печально.

Но здесь надо пони­мать, что кри­ти­ка скра­ма — это в первую оче­редь кри­ти­ка пло­хой реа­ли­за­ции скра­ма и людей, кото­рые неумест­но его исполь­зу­ют. Донт блейм зе гейм, блейм зе плейа. 

Что там с чебуреком?

В иде­аль­ном мире про­шло пять недель, и наши бой­цы сде­ла­ли супер­че­бу­рек, кото­рый без вопро­сов был при­нят руко­во­ди­те­лем и скрам-мастером. Пре­зен­та­ция чебу­ре­ка раз­ле­те­лась по всем СМИ, тыся­чи людей вста­ли в оче­редь на пред­за­каз, а чебу­реч­ная вышла на IPO.

В реаль­но­сти фаун­дер чебу­реч­ной купил ино­мар­ку, попал на ней в ава­рию, инве­сто­ры отка­за­лись финан­си­ро­вать про­ект, коман­да забра­ла нара­бот­ки и раз­бе­жа­лись кто куда: кто-то в круп­ные ком­па­нии, дру­гие — в стар­та­пы, тре­тьи бро­си­ли эту айтиш­ную жизнь и пере­еха­ли в село.

Пото­му что жизнь слож­нее, чем пред­став­ле­ния скрам-мастера о ней. 

Что дальше

Скрам — это гиб­кая мето­ди­ка, прин­ци­пы кото­рой под­хо­дят под раз­ные про­ек­ты, будь это ИТ-компания или чебу­реч­ная. В ста­тье мы рас­смот­ре­ли общие поло­же­ния, и для погру­же­ния в тему реко­мен­ду­ем сле­ду­ю­щие ресурсы:

  • Scrum.org — это сооб­ще­ство скрам-тренеров, кото­рые делят­ся кон­тен­том и пред­ла­га­ют кур­сы по скрам-подготовке. 
  • Scrumalliance.org — ещё одно круп­ное сооб­ще­ство с бес­плат­ны­ми мате­ри­а­ла­ми, кур­са­ми для сер­ти­фи­ци­ро­ван­ных спе­ци­а­ли­стов и скрам-конференциями по все­му миру. 

Допол­ни­тель­но посмот­ри­те интер­вью Пав­ла Сви­ри­до­ва, кото­рый руко­во­дит бэкенд-разработкой и обра­ща­ет­ся с кол­ле­га­ми как насто­я­щий скрам-мастер.

Текст и чебу­ре­ки:
Алек­сандр Бабаскин

Редак­тор:
Мак­сим Ильяхов

Кор­рек­ту­ра:
Ира Михе­е­ва

Иллю­стра­тор:
Даня Бер­ков­ский

Вёрст­ка:
Маша Дро­но­ва

Соц­се­ти:
Олег Веш­кур­цев