ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.10.2023
Просмотров: 352
Скачиваний: 11
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Глава 6. Внедрение Agile
218
Git — это функциональный и сложный инструмент . И что значит изучить его хорошо? К счастью, работает принцип 80/20 . Достаточ- но малая часть возможностей Git, скажем, процентов 20, поможет вам справиться с более чем 80 % повседневных задач, которые бу- дут встречаться во время управления исходным кодом . Большую часть всего необходимого можно освоить за минуты . Сведения по всему остальному можно найти в Сети .
Простота и эффективность использования Git привели к совер- шенно непредвиденному новому подходу, как создавать программ- ное обеспечение . Линус Торвальдс подумал бы, что использовать
Git как инструмент для быстрого избавления от маленьких ку- сочков кода — сумасшествие, но это именно то, что продвигают сторонники метода Микадо
1
и TCR (Test&&Commit || Revert)
2
И даже, хотя ключевой стороной Git является его способность очень эффективно управлять ветками, бесчисленные команды почти без исключения ведут trunk-based разработку с помощью
Git . Инструмент претерпел экзаптацию
3
, то есть эффективно ис- пользуется способами, которые не предполагали авторы .
Хорошие инструменты выполняют следующие задачи:
z помогают людям достигать своих целей;
z позволяют их достаточно быстро освоить;
z стремятся быть прозрачными для пользователей;
1
Ellnestam O., Brolund D . The Mikado Method . Shelter Island, New York:
Manning Publications, 2014 .
2
Beck K. test && commit || revert . 2018 . URL: https://medium.com/@kentbeck_7670/
test-commitrevert-870bbd756864.
3
Классический пример экзаптации: оперение птиц первоначально использо- валось для регуляции температуры, в дальнейшем оно было адаптировано для полета . — Примеч. ред.
Инструменты Agile
219
z способны адаптироваться и экзаптироваться;
z доступны по стоимости .
Мы приводим Git в качестве примера хорошего инструмента… на 2019 год . Возможно, вы читаете это уже в будущем, и на дворе другой год . Времена меняются, меняются и инструменты .
Физические инструменты Agile
Пользователи Agile известны тем, что используют маркерные доски, клейкую ленту и наклейки разных размеров (маленькие и размером с флипчарт), чтобы работа была наглядной . Эти простые «ручные орудия» обладают всеми качествами хорошего инструмента:
z
Помогают сделать ход работы наглядным и управляемым .
z
Интуитивно понятны и не требуют особой подготовки .
z
Не требуют значительной когнитивной нагрузки . Их можно легко использовать, сосредоточившись на других задачах .
z
Легко экзаптируемы . Ни одно из этих средств не было создано именно для управления ходом разработки ПО .
z
Легко адаптируемы под конкретные потребности . Можно ис- пользовать клейкую ленту или офисный пластилин, прикре- плять картинки или значки, добавлять различные пометки, а еще по-своему использовать различные цвета и значки, чтобы не упустить ни одного нюанса .
z
Все они недороги, и их легко приобрести .
Команды, располагающиеся в одном пространстве, могут легко управлять крупным и сложным проектом с помощью лишь этих простых и недорогих физических инструментов . Вы можете транс- лировать ключевую информацию с помощью листа из флипчар-
Глава 6. Внедрение Agile
220
та, закрепив его на стену клейкой лентой . Такое представление обобщает важные тенденции и факты как для членов команды, так и для спонсоров . С помощью таких представлений можно изо- бражать и представлять новые сведения прямо на лету . Гибкость почти не ограничена .
Но ограничения есть у каждого инструмента . Одно из основных ограничений физических инструментов в том, что они не очень действенны для распределенных команд . Только для сотрудников, находящихся в пределах видимости . Еще физические инструменты не сохраняют историю автоматически, поэтому есть только теку- щее состояние .
А может, автоматизируем?
Проект, в котором впервые применяли экстремальное програм- мирование (Chrysler Comprehensive Compensation System), вели преимущественно с помощью физических инструментов . По мере распространения Agile рос интерес к автоматизированным про- граммным средствам . На это есть вполне разумные основания:
z
Программные средства хорошо позволяют осуществлять сбор данных в однородном виде .
z
С помощью однородных данных можно легко составлять до- клады, графики и схемы, выглядящие профессионально .
z
Легко вести историю и хранить данные .
z
Можно мгновенно делиться данными, вне зависимости от ме- стонахождения адресата .
z
Благодаря средствам вроде электронных таблиц, доступных по сети, можно работать в полностью распределенной команде в режиме реального времени .
Инструменты Agile
221
Некоторым ребятам, больше привыкшим к вылизанным презен- тациям и программам, физические инструменты кажутся чем-то отсталым . И поскольку мы работаем в отрасли разработки ПО, для многих из нас автоматизация всего, чего только возможно, — естественное стремление .
Программные средства в студию!
Или . . . может, не надо? Давайте остановимся и хорошенько подума- ем . В программных средствах может отсутствовать часть функций, которые нужны вашей команде . Если у вас есть инструмент, то путь наименьшего сопротивления — это исходить из возможностей ин- струмента, вне зависимости от того, отвечает ли он потребностям команды .
Команде сперва следует определиться, каким образом она собира- ется вести работы, затем уже подбирать средства именно под свои потребности .
Работники используют инструменты, а не инструменты — ра-
ботников.
Никому не хочется зависеть от чужого мнения . Что бы вы ни дела- ли, вам хочется разобраться в том, как нужно работать, прежде чем что-то автоматизировать . Но вопрос не в том, какие инструменты использовать: физические или программные . Вопрос должен сто- ять так: хорошие инструменты у нас или нет?
Системы управления жизненным
циклом приложений
Вскоре после появления Agile были созданы многочисленные про- граммы для управления проектами, которые ведутся с помощью
1 ... 12 13 14 15 16 17 18 19 20
Глава 6. Внедрение Agile
222
Agile . Существуют самые разные системы управления с жизнен- ным циклом приложений (ALM) на базе Agile, как с открытым исходным кодом, так и в красивой блестящей обертке за при- личные деньги . Они позволяют собирать данные, образующиеся в ходе работы, управлять длинными списками функций и еще не выполненных задач, создавать сложные графики, представлять сводки работы команд в совокупности, а еще выполнять некоторые операции с числами .
Автоматизированные системы, которые помогут справиться с по- добной работой, возможно, упорядочат эти процессы, для нашего же удобства . Помимо своих основных, системы ALM наделены другими полезными функциями . Большая часть ALM позволяет вести удаленное взаимодействие, отслеживать историю, выполнять некоторые рутинные бухгалтерские операции, а еще их можно гибко настроить под требования пользователя . Можно с помощью графопостроителя создавать профессиональные многоцветные графики на листах огромных форматов, которые можно развеши- вать как стенгазеты в пространстве, в котором находится команда .
И все же, несмотря на богатый функционал и коммерческий успех,
ALM невозможно назвать хорошим инструментом . Эта неудача будет нам хорошим уроком .
z
Хороший инструмент можно изучить достаточно быстро. ALM, как правило, громоздки и требуют специальной подготовки перед их использованием (давайте-ка вспомним, когда мы в последний раз были на обучении по индексным карточкам) . Даже несмотря на обучение, команде приходится отвлекаться на поиск в ин- тернете, чтобы выяснить, как выполнить ту или иную простую задачу . Многие нехотя принимают сложность этих систем, пы- таясь вникнуть глубже и во всем разобраться, но в конце концов мирятся с тем, что работа идет медленно и неповоротливо .
Инструменты Agile
223
z
Хорошие инструменты стремятся к прозрачности для пользо-
вателей . Мы постоянно видим, как члены команды выискивают какую-то ведущую логику в попытке разобраться в программе .
Во время работы с карточками с историями они ведут себя слов- но пьяницы, размахивающие кулаками . Они слоняются по веб- страницам, повсюду вставляя скопированный текст, стараются связать истории между собой или с их родительскими эпиками .
Они теряются в историях, задачах и заданиях в попытке выстро- ить их в слаженную систему . Это бардак . Эти средства требуют слишком много внимания .
z
Хорошие инструменты способны адаптироваться и экзап-
тироваться. Хотите добавить поля в виртуальной карточ- ке в ALM? Вам придется найти программиста экспертного уровня, который посвятил (или даже пожертвовал) себя под- держке необходимой программы . Или все закончится тем, что вы отправите запрос на изменение поставщику . Дело пяти секунд при использовании простых физических инструментов оборачивается пятидневной, а может и пятинедельной, за- держкой при использовании ALM . Эксперименты с быстрой обратной связью в ходе работ становятся невозможными .
И, само собой, если вам вообще не нужны дополнительные поля, кто-то должен обратить изменения и перевыпустить программу в измененной конфигурации . Системы ALM плохо адаптируются .
z
Хорошие инструменты доступны по стоимости. Лицензия на
ALM, которая может стоить несколько тысяч долларов в год, — только начало . Установка и использование этих систем может потребовать значительных дополнительных расходов на под- готовку, поддержку и, иногда, настройку под ваши потребности .
Текущее обслуживание и администрирование выльются в до- полнительные затраты к уже немалым имеющимся .
Глава 6. Внедрение Agile
224
z
Хорошие инструменты помогают достигать людям своих целей.
ALM редко работает таким же образом, как ваша команда, а ре- жим по умолчанию частенько не согласован с самими методами
Agile . Например, многие системы ALM считают, что у каждого из членов команды есть свое рабочее задание, что делает невоз- можным их использование командами, члены которых работают совместно, перемежая задания между собой .
В некоторых системах ALM даже есть доски позора, которые по- казывают нагрузку, загруженность и объем выполненных работ
(или нехватку их) для каждого участника команды . Вместо того чтобы мотивировать на ударную работу и поощрять коллектив- ную ответственность, как это на самом деле принято в Agile, ALM становится средством пристыдить программиста и выжать из него все соки . Там, где команда раньше собиралась на утренний стендап- митинг (или ежедневный скрам), теперь она собирается, для того чтобы внести поправки в ALM . Система заменила личное взаимо- действие автоматизированным отчетом о состоянии пользователя .
Хуже того, системы ALM часто не могут транслировать инфор- мацию, в отличие от физических средств . Вам нужно выполнить вход и копаться в данных, чтобы найти нужные сведения . Когда вы находите нужные сведения, они часто идут вместе с кучей не- нужных . Иногда два-три графика или изображения, которые вам нужны, могут находиться на разных страницах . Нет повода думать, что ALM никогда не станут хорошим инструментом . Но если вам нужна доска с карточками и нужно использовать ПО, я бы посо- ветовал какое-нибудь универсальное средство вроде Trello
1
. Оно простое, быстрое, дешевое, расширяемое и неплохо выглядит .
Наши способы вести работы постоянно изменяются . Сначала была SCCS, потом RCS, потом CVS, потом Subversion и потом уже
1
Опять же на 2019 год . Времена меняются .
Коучинг — альтернативный взгляд
225
Git . В течение многих лет мы видели море изменений в способах управления исходным кодом . Похожую эволюцию мы наблюдали на примере инструментов тестирования, средств развертывания и прочего (не будем перечислять) . Вероятно, мы увидим и похожее развитие систем ALM .
Если смотреть на текущее состояние большинства систем ALM, то разумнее и безопаснее начать с простых физических инструментов .
Возможно, позже вы задумаетесь о внедрении ALM . Удостоверь- тесь, что систему легко изучить, она прозрачна для повседневного использования, легко адаптируется и в ваших возможностях ее приобрести и запустить . Самое главное, убедитесь, что с ее по- мощью удастся организовать работу так, как нужно вам, и что вложения будут не напрасны .
КОУЧИНГ — АЛЬТЕРНАТИВНЫЙ ВЗГЛЯД
Автор Дэймон Пул, 14 мая 2019 года
1
Дэймон Пул — это мой друг, который во многом со мной не соглашается . Коучинг в Agile как раз предмет наших разногласий . Вот я и рассудил, что его точка зрения также интересна и будет полезно ее вам поведать .
Дядя Боб
Множество путей к Agile
Можно прийти к Agile разными способами . И на самом деле многие из нас пошли по этому пути непреднамеренно . Кто-то может ут-
1
Используется с разрешения .