Митап «Теория и практика Agile» c Кристиной Очкиной: материалы встречи

Кристина Очкина. Фотограф: Мария Викторова
28 октяб­ря про­шёл митап на тему «Тео­рия и прак­ти­ка Agile» с Кри­сти­ной Очки­ной, сер­ти­фи­ци­ро­ван­ным SCRUM-масте­ром в ком­па­нии iDecide.

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

Agile – (англ. Agile software developmentagile-мето­ды) — серия под­хо­дов к раз­ра­бот­ке про­грамм­но­го обес­пе­че­ния. Agile – это опре­де­лён­ная систе­ма цен­но­стей, фило­со­фия, кото­рая помо­га­ет по-дру­го­му посмот­реть на про­цесс раз­ра­бот­ки про­дук­та.

Исто­рия Agile пока­зы­ва­ет, как в мире IT реша­лась дилем­ма «про­цесс про­из­вод­ства или люди». Что лег­че: чело­ве­ку адап­ти­ро­вать­ся под рабо­чий про­цесс или поме­нять про­цесс, что­бы чело­ве­ку было ком­форт­но рабо­тать?

Agile – это не руко­вод­ство к дей­ствию, а ско­рее образ мыс­ли, вли­я­ю­щий на ваше отно­ше­ние к рабо­те.

Принципы Agile

Agile-манифест. Фрагмент с сайта //agilemanifesto.org/iso/ru/
Agile-мани­фест. Фраг­мент с сай­та //agilemanifesto.org/iso/ru/
  • Люди и взаимодействия между людьми важнее процессов и инструментов

Важ­но не оттал­ки­вать­ся от про­цес­са про­из­вод­ства, а исхо­дить из орга­ни­за­ции ком­форт­ной рабо­ты для людей. Напри­мер, в неко­то­рых ком­па­ни­ях есть жёст­кие усло­вия гра­фи­ка рабо­ты (с 9 до 18), одна­ко совре­мен­ные мето­ды орга­ни­за­ции рабо­ты скло­ня­ют­ся к более гиб­ко­му гра­фи­ку и лояль­но отно­сят­ся к нача­лу рабо­че­го дня в 11 утра, пото­му что от чув­ства ком­фор­та напря­мую зави­сит про­дук­тив­ность чело­ве­ка.

  • Рабочий продукт важнее исчерпывающей документации

Мож­но пол­го­да писать тех­ни­че­ское зада­ние (ТЗ) на 500 стра­ниц, кото­рое в ито­ге не при­ве­дёт вас к финаль­но­му про­дук­ту. Поэто­му намно­го важ­нее про­яв­лять осо­знан­ность при чте­нии ТЗ и спо­соб­ность ска­зать заказ­чи­ку, что нари­со­ван­ная кноп­ка на про­то­ти­пе сай­та не нуж­на.

  • Сотрудничество с заказчиком важнее согласования условий контракта

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

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

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

В ТЗ может быть про­пи­са­на плат­фор­ма, поне­дель­ные пла­ны дей­ствия, одна­ко если воз­ни­ка­ет момент, когда коман­да пони­ма­ет бес­смыс­лен­ность сво­их дей­ствий, то луч­ше сде­лать шаг назад, чем про­дол­жать рабо­ту. Ана­лиз рабо­ты про­ис­хо­дит во вре­мя еже­днев­ных встреч (Daily-meeting), на кото­рых мож­но (нуж­но) зада­вать вопрос: «Как твоё настро­е­ние?», – и ответ на него даст боль­ше поч­вы для раз­мыш­ле­ний, чем дирек­тив­ный «раз­бор полё­тов».

Agile – это образ мыш­ле­ния, это про то, как полу­чать удо­воль­ствие от рабо­ты. И, воз­мож­но, если бы я была впи­са­на в какие-то более жёст­кие рам­ки, про­цес­сы ком­па­нии, где все дела­ют всё толь­ко ради денег, то мне было бы тяже­ло, и я бы не смог­ла так рабо­тать.

Кристина и госит митапа. Фотограф: Мария Викторова
Кри­сти­на и госит мита­па. Фото­граф: Мария Вик­то­ро­ва

Исто­рия про сне­го­ви­ка, или поче­му важ­но часто общать­ся с заказ­чи­ком

Пред­ставь, что тебя поста­ви­ли в одну ком­на­ту, а коман­ду оста­ви­ли в дру­гой. И ты гово­ришь им, ухо­дя: «Ребя­та, сле­пи­те сне­го­ви­ка». Коман­да дела­ет там что-то, ска­та­ла 3 шара, зовёт тебя и гово­рит: «Иди, мы там сне­го­ви­ка сле­пи­ли! Но нам ещё сне­га надо». Ты захо­дишь, видишь 3 раз­дель­ных шара лежат и не пони­ма­ешь, что про­ис­хо­дит. «Ребя­та, я вас пол­го­да ждал, вы мне 3 шара пока­зы­ва­е­те и ещё сне­га про­си­те». И это нор­маль­но, а как чело­век дол­жен реа­ги­ро­вать?

Вот если бы коман­да выбе­га­ла поча­ще и гово­ри­ла: «Посмот­ри, что у нас со сне­го­ви­ком!». Ты захо­дишь, видишь 2 шара и гово­ришь: «Не-е-ет, эти 2 шара друг на друж­ке долж­ны быть, а руки посе­ре­дине». А может слу­чить­ся, что коман­да выбе­жит и ска­жет: «У нас вед­ра нет для сне­го­ви­ка, может повя­жем шар­фик?». И ты смот­ришь, что вро­де сим­па­тич­ный сне­го­вик полу­чил­ся, согла­ша­ешь­ся, и все в плю­се ока­зы­ва­ют­ся.

В чём различия между SCRUM и Agile

Если Agile – это боль­ше фило­со­фия и прин­ци­пы рабо­ты, то SCRUM – метод, помо­га­ю­щий вам эффек­тив­нее и быст­рее сде­лать конеч­ный про­дукт, а не нахо­дить­ся в посто­ян­ном про­цес­се раз­ра­бот­ке.

Слайд с презентации Кристины Очкиной
Слайд с пре­зен­та­ции Кри­сти­ны Очки­ной

В SCRUM есть 3 роли: Product Owner (заказ­чик), Scrum-master, The Team (коман­да).

Product Owner (заказ­чик) – чело­век, ответ­ствен­ный за про­дукт, кото­рым будут все поль­зо­вать­ся. В его зада­чи вхо­дит иссле­до­ва­ние и ана­лиз рын­ка. Он фор­ми­ру­ет виде­ние про­дук­та и пони­ма­ние того, чем его про­дукт будет отли­чать­ся от суще­ству­ю­щих. Его роль рас­ста­вить при­о­ри­те­ты в выпол­не­нии задач и согла­со­вать с коман­дой сро­ки их выпол­не­ния, вре­мя сприн­та.

Спринт – это то коли­че­ство вре­ме­ни, за кото­рое коман­да дела­ет что-то конеч­ное рабо­чее, что мож­но выпу­стить и пока­зать заказ­чи­ку.

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

The Team (коман­да) обла­да­ет дву­мя важ­ны­ми каче­ства­ми: крос­с­функ­ци­о­наль­ность и само­ор­га­ни­за­ция.

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

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

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

На мита­пе мы позна­ко­ми­лись толь­ко с базо­вы­ми поня­ти­я­ми Agile, и для жела­ю­щих поболь­ше узнать про эту мето­до­ло­гию мож­но почи­тать ряд книг:

Презентация Кристины Очкиной