SCRUM: Советы по выживанию для разработчиков

Доброго времени суток. Представлюсь, для тех, кто меня еще не знает. Меня зовут Дима. Я работаю C++ разработчиком уже более 5-ти лет. На данный момент работаю в крупной Gamedev-студии, предыдущее место работы: SK hynix memory solutions Eastern Europe. Помимо работы увлекаюсь созданием образовательного контента для YouTube и Twitch каналов.

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

Не буду вдаваться в подробное описание плюсов и минусов данной методологии на этапе вступления. Для полного понимания происходящего рекомендую ознакомиться со статьёй на Википедии(ссылку я прикрепил выше).

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

1. Давайте пессимистичные эстимейты

Планирование разработки и оценка сроков(эстимейшн) – важнейшая часть работы по скраму. Ведь вы планируете работу на ближайший спринт(см. статью на вики) и от того, как вы это сделаете, зависит то, насколько продуктивно и комфортно будете работать не только вы, но и люди, которые связаны с вашей работой. Самый простой пример – это связка Dev + QA. Вы должны что-то разработать и вашу работу надо протестировать. Если вы дадите слишком маленький эстимейт, то тестировщику в определённый день будет нечем себя занять. Получается, дав оптимистичный эстимейт и по той или иной причине в него не вложившись, вы подставляете другого сотрудника, да и на другие ваши задачи у вас остаётся меньше времени, что опять-таки влечёт за собой проср*нные дедлайны либо же овертаймы.

Как же найти баланс между слишком большим эстимейтом и оптимальным, учитывающим риски? Тут нет однозначного ответа. Данное умение приходит с опытом. Что могу сказать точно, если вам хочется сказать "Вроде изян, 4 часа", но вы по той или иной причине волнуетесь, то лучше скажите: "Вроде изян, но возможно есть подводные камни и лучше взять день/полтора/два и т.д".

2. До последнего не говорите про существование быстрого, но плохого решения

Объявим две переменные в данном уравнении. Есть условный Бизнес – тот, кто придумывает задачи, выставляет сроки и так далее. И есть условный Разработчик – тот, кто эти задачи в поставленные сроки выполняет. Перед разработчиком ставят задачу и просят выставить сроки. Очень часто будет два варианта решения задачи: быстро и некачественно, качественно и долго. Практически всегда Бизнес выберет быстрое решение. Ибо единственное, что волнует Бизнес, – это прибыль проекта. Качественно или некачественно - это уже дело десятое.

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

3. Инициатива наказуема

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

Еще одна ситуация. Вы пишите какой-то код, делаете фичу, исправляете баг и тд. При этом Вы видите возможность исправить какой-то другой функционал, и по времени для Вас это не будет ничего стоить. Прежде чем бросаться, что-то улучшать или исправлять, согласуйте с менеджерами или тестировщиками. Тестировщик не будет в восторге, если вместо запланированных двух дней на тест ему понадобится четыре. Ведь необходимы дополнительные проверки на исправленный функционал. Я попадал в такие ситуации и никто не восторгался моему рвению делать лучше.

4. Продавайте свои идеи

Что же делать, если от вас хотят новых функций, а из-за проблем, описанных в предыдущих пунктах, технический долг сковывает Вас по рукам и ногам?
Нужно продавать разгребание технического долга. Это очень сложная задача, ибо надо объяснить бизнесу, что вот сейчас будет небольшой простой, что вам нужно поработать на перспективу, но зато потом прибыль потечёт рекой. Самое простое в этом – посмотреть на задачи из бэклога и предоставить их сроки выполнения, без процедуры разгребания технического долга и с ней. И в большинстве случаев, если сокращение сроков в перспективе будет перевешивать простой в данный момент, Вам пойдут навстречу.

SCRUM: Советы по выживанию для разработчиков

5. Не закапывайтесь

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

SCRUM: Советы по выживанию для разработчиков

Видите, что задача сложнее, чем казалось на этапе планирования – уведомьте об этом и согласуйте, а нужна ли она вообще?

6. Не закапывайтесь 2

Решил выделить в отдельный пункт. Это относится к любой сфере деятельность в принципе. Не стесняйтесь задавать вопросы, признавать, что вы чего-то не знаете и вообще обращаться за помощью к кому бы то ни было на проекте. Какой бы вы ни были крутой спец, на проекте найдётся человек, знающий в определённой области, модуле больше вашего. Ведь, возможно, кто-то уже делал подобную задачу, а вы еще нет. Признаюсь, несколько раз сталкивался с ситуациями, когда менеджмент реагировал негативно, если вы говорите, что чего-то не знаете или нужно спросить, начинались вопросы в духе, а что ты сам в себе не уверен?? В общем, старайтесь игнорировать подобные вопросы, в большинстве случаев это полный бред.

7. Снимайте лапшу с ушей

Довольно спорный пункт, но не могу о нём не сказать. Не думаю, что такое активно применяется в аутсорс-компаниях, но насчёт продуктовых я не сомневаюсь. Речь идёт об ангажировании сотрудников. Вам, как работнику, будут часто говорить, что вы часть команды, что вы часть проекта, и нужно потрудиться на благо компании. Не стоит забывать о том, что Вы в первую очередь работаете на себя: ради денег, ради опыта, ради строчки в резюме. Не стоит убиваться ради того, чтобы компании и проекту было хорошо. Особенно, если это никак не оплачивается и всё, что вы получите – это хлопки по плечу и плюсик на ретро.

SCRUM: Советы по выживанию для разработчиков

Заключение

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

Я на других ресурсах

5353
68 комментариев

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

Наш от ответ Агиле и Скрам, - гибкая методика экстремального производства, метод Заступа - Бери больше, кидай дальше, пока летит - отдыхай.     

14
Ответить

Сотрудник продуктовой НЕ геймдев компании исповедующей скрам в треде. 
Не буду утверждать что скрам в чистом виде спасение от всего или что я хоть являюсь каким-то экспертом по скраму, но прочитал пост и появилось желание прокомментировать:)

1.Давайте пессимистичные эстимейты

В этом пункте мне показалось речь идет о том будто тебе как разработчику дают задачу и ты ее как-то в одного оцениваешь. Кажется с точки зрения скрама так не должно быть. QA так же участвует в оценке задачи. Более того, для этого скрам придумал сторипоинты, чтобы задачи оценивались не с точки зрения затраченного времени а с точки зрения сложности (хотя лично я не верю в сторипоинты)

2.До последнего не говорите про существование быстрого, но плохого решения

В этом пункте хочу прокомментировать вот это

Практически всегда Бизнес выберет быстрое решение. Ибо единственное, что волнует Бизнес, – это прибыль проекта. Качественно или некачественно - это уже дело десятое.

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


3. Инициатива наказуема

Я бы назвал этот пункт "бизнес не любит неопределенность". Да, если разработчик взял задачу, в которой была оговорена и оценена одна работа, а начал молча делать что-то еще, это добавляет неопределенности бизнесу, а бизнес это не любит. Если в вашей команде работает правило

потом = никогда

Я бы сказал что это упущение тимлида.

4. Продавайте свои идеи

Это работает просто - если бизнес не дает время на разребание техдолга, в следующий раз когда к вам придут с вопросом "почему задача заняла больше времени чем планировалось", киваете на отказ в работе над техдолгом. 

5. Не закапывайтесь

Тут согласен

6. Не закапывайтесь 2

Вот на этом пункте
менеджмент реагировал негативно, если вы говорите, что чего-то не знаете или нужно спросить, начинались вопросы в духе, а что ты сам в себе не уверен??

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

7. Снимайте лапшу с ушей

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

12
Ответить

Большое спасибо за подробный комментарий.
Могу сказать, что Ваш скрам работает явно лучше нашего. И, на самом деле, очень жаль, что так происходит не всегда.
По поводу эстимейта: у нас создаются сабтаски, клиентщик создаёт свою, тестер свою, серверист свою... по сумме времени получается эстимейт на всю сторю. И, получается, предоставив слишком оптимистичный эстимейт на свою саб таску, можно подставить тестировщика. Также и серверист может подставить клиентщика и тд.
Что касается бизнеса и технического долга. У нас на проекте просто есть кор-команда, которая отвечает за разгребание технического долга и очень много сторей и идей сбрасывается им и откладывается в долгий ящик. Тем не менее, менеджмент пытается решать данную проблему, однако на данный момент всё равно приходится продавать технический долг.
По поводу лапши - тут скорее мой эмоциональный отклик на ситуацию. Слишком много пришлось пройти кранчей и овертаймов, постоянно слыша что-то вроде мы же команда от людей, которые не кранчат, этим я и хочу сказать другим людям, что в стоит думать о себе в первую очередь, потом стоит думать о своей команде(команда это где-то 10 человек в моём случае, вы все в одной лодке) и потом, гораздо позже, уже на благо проекта и прибыли компании.

4
Ответить

SCRUMВыкиньте нахуй. /close

12
Ответить

а что это

Ответить

 Не стоит убиваться ради того, чтобы компании и проекту было хорошо.

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

2
Ответить

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

14
Ответить