1.4.3 Языковой аспект
Знакомство с новой культурой начинается с новых слов. И Scrum имеет свой язык.
Чтобы помочь разобраться в значении тех или иных терминов, я добавил глоссарий в конце книги. Много неологизмов пришли из английского языка. При распространении Scrum во Франции некоторые утвердились в английском варианте, другие же были переведены.
Словарь значительно расширился за десять лет и продолжает развиваться.
• Не переведенные термины
Такие слова, как, например, спринт, уже давно нашли место во французском словаре. И в английском, и во французском они означают одно и то же.
В этой книге я не переводил ряд английских терминов, связанных со Scrum/Agile. Это не значит, что не было попыток их перевода. По большей части перевод терминов был предложен, но не принят пользователями.
В этом списке следующие слова: бэклог, Scrum-мастер, эпик. Я объясняю, почему эти термины не переведены, в соответствующих главах [12 - Тем не менее, калькированный перевод этих слов на французский есть в Квебеке – Прим. авт.].
• Переведенные термины
Другие термины Scrum используются в переводе. Некоторым такое использование важно, но, к сожалению, как мне кажется, это никак не закреплено правилами. В повседневной речи, а иногда даже в письменном виде можно встретить: definition of done, sprint planning meeting, sprint review, impediment. Я трепетно защищаю использование французского языка, поэтому, соответственно: критерии завершенности, встреча по планированию спринта, обзор спринта, препятствие.
Иногда появляются смешанные термины, например, приемочный тестинг, а не приемочное тестирование.
Словарь развивается с помощью терминов, которые приобретают все большее значение. Я имею в виду, в частности, такие слова как stakeholder или backlog refinement, для которых рекомендую использовать заинтересованные стороны и доработка бэклога. В этой редакции книги больше не говорю feature – теперь это функциональность.
Поскольку французский является живым языком, можно полагать, что некоторые слова из сферы Scrum, как, например, бэклог, войдут в состав языка. Люди задумаются, какого это слово рода, почему не женского? Среди таких неологизмов есть слово аджайлист для адепта Agile-методов.
Мы не используем ни скраммер, ни скрамист, когда говорим о приверженцах Scrum. Однако таких много.
Чтобы идти дальше
Книги [13 - Здесь и в последующих главах названия книг, не переведенных на русский язык, и имена их авторов приводятся на языке оригинала. – Прим. ред.]
? Steven Denning, Radical Management, Jossey & Bass, 2010
2
Разделение процесса на спринты
Я принял участие в десятках проектов в качестве разработчика или консультанта, и ни один из них не был похож на предыдущий, хотя используемые процессы и методы иногда совпадали.
Проекты по-разному развиваются с течением времени, и у каждого – свой собственный цикл разработки (или жизненный цикл). Цикл составляют стадии и контрольные точки. Стадии следуют друг за другом, а контрольные точки определяют переход к следующему этапу. Стадия преследует определенные цели. Контрольная точка служит для проверки того, что данный набор целей достигнут.
Рисунок 2.1 – В традиционном цикле стадии различаются
2.1 Изменение парадигмы
Течение цикла зависит от используемой модели (или процесса). Во Франции по-прежнему распространена V-модель, но компании, особенно крупные, обычно берут ее за основу для дальнейшей адаптации к их контексту и создания уже своей собственной модели.
В некоторых компаниях применение моделей является не просто рекомендуемым, а обязательным, в то время как в других организациях командам предоставляется больше возможностей.
И все же я часто отмечаю большой разрыв между моделью и ее реализацией в проектах, вне зависимости от того, была она рекомендована или навязана команде.
Этому есть причины:
? Модель разработана методологами-теоретиками и оказывается слишком удалена от реальности и неприменима на практике.
? Контрольные точки оказываются неэффективными, потому что для осуществления проверок и тестирования необходимо обратиться к огромному множеству документов, некоторые из которых – в сотни страниц.
? Команда пропускает контрольные точки – и накапливает работу, не выполненную на предыдущих этапах. Это создает неудобства в дальнейшем.
Все это давно известно.
В начале 1980-х годов была предложена альтернатива итеративной и поэтапной разработке, чтобы избежать подобных ситуаций. Эта идея была реализована частично и без привязки к Agility: одни команды быстро производят прототипы, другие их реализуют.
В то же время возникла противоположная идея индустриализации процессов, и пришлось подождать, пока она провалится на практике.
Scrum и Аgile-методы взяли предшественников за точку отсчета и пошли дальше с моделью цикла разработки, основанной на последовательном повторении одной стадии. В Scrum эта стадия называется спринт.
Спринт с точки зрения времени – повторяющаяся стадия фиксированной продолжительности.
Рисунок 2.2 – Повторение спринта
Все спринты протекают по одной схеме. В этом основное отличие от традиционных подходов, где каждый этап предполагает работу разного характера.
Еще одно фундаментальное отличие заключается в том, что Scrum – это не более чем фреймворк. Он не определяет наполнение каждого спринта: за это отвечает команда.
2.2 Итеративный и инкрементальный подход
Scrum основывается на итеративном и инкрементальном подходе к разработке продукта. Давайте разберемся, что это значит.
2.2.1 Инкрементальная разработка
Инкрементальная, то есть поэтапная разработка – стратегия, при которой развитие продукта отмечается в конце каждого спринта. Инкрементальный подход позволяет создавать продукт по частям, где каждая новая часть добавляется к предыдущей.
Это контрастирует с традиционным подходом к проекту, где до завершения разработки ничего не готово. Хотя ничего – это тоже неправильно, так как появляются документы, созданные во время промежуточных контрольных точек. Но этого недостаточно, чтобы избежать туннельного эффекта.
Пока я писал эту книгу, использовал инкрементальный подход: сделал изначальный план (в виде карты мыслей), а затем писал главу за главой, не ориентируясь на порядок в плане.
Использование инкрементального подхода широко распространено в компаниях, которые занимаются разработкой продуктов. Часто можно слышать о поставках (то есть, частях системы, или инкрементах), которые значатся в контрактах с клиентами. Обычно такое деление на части носит технический характер, и ничего не работает до момента, когда все инкременты не состыкуются в единое целое.
Рисунок 2.3 – Густав Эйфель, инженер, практиковавший инкрементальный подход
2.2.2 Итеративная разработка
Итерация – это процесс повторения. В математике и физике итерация представляет собой повторяющийся вычислительный процесс, который позволяет, например, решить уравнение путем последовательных приближений.
В сфере разработки ПО термин итерация используется для обозначения периода времени, в течение которого выполняются действия, которые будут повторяться в следующих итерациях. Этот термин часто соотносят с процессом.
Итеративный процесс позволяет проанализировать, что было сделано – с целью дальнейшего улучшения или завершения работы. Он основывается на идее, что трудно (если не невозможно) преуспеть в чем-то с первого раза. Обратная связь, собранная по результатам одной итерации, помогает вносить улучшения в следующую. Итерации прекращаются, когда достигнутый результат оценивается как удовлетворительный.