Agile о разработке или управлении?

9

Во время дискуссии о том, что такое Scrum, я обнаружил, что, возможно, я совершенно неправильно понял гибкую вещь. Мне кажется, что Scrum (который, безусловно, рассматривается как Agile-процесс) - это все, что касается управления функциями, спринтами, ролями и другими вещами, не имеющими ничего общего с TDD, парным программированием, CI, рефакторингом и другими техниками и практиками, ориентированными на разработчиков, которые я (хотя) ( до сих пор) являются сердцем Agile. Теперь я сталкиваюсь с трудностями!

1) Является ли Scrum независимым от разработчиков гибких методов?

2) Можете ли вы внедрить Scrum в команду, которая не использует автоматизированные тесты? не выполняет рефакторинг или не придерживается практики гибкого программирования?

Ашкан Х. Назарий
источник

Ответы:

19

Распространенной ошибкой считается, что Scrum равен Agile.

Быть проворным следует четырем принципам проворного манифеста . Scrum - это процесс управления проектом, соответствующий этим принципам, но сам по себе он не является гибким. XP (TDD, парное программирование) - это процесс разработки, также соответствующий этим принципам и совместимый со Scrum, но он не является гибким. Непрерывная интеграция, непрерывная доставка, DevOps, все в соответствии с принципами Agile.

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

прецизионный самописец
источник
3
agilemanifesto.org/principles.html подробно описывает манифест.
1
@ ashy_32bit: Никто не может ответить на этот вопрос, не зная команду и проект. Не каждая команда или проект выиграют от гибкости. Тем не менее, я работал в команде, которая занималась Scrum и CI и ничем иным (из трюка Agile), и в этом случае это работало лучше, чем ничего из этого не делал. Но мы стремились улучшить нашу ловкость с течением времени.
фунтовые
1
+1 Спасибо, pdr, меня бесконечно расстраивает то, что все говорят, что agile и означает scrum, что в конечном итоге скрывает пользу от фактических гибких принципов, потому что каждый думает, что agile означает ежедневные споры и спринты и никогда не узнает о манифесте.
Джимми Хоффа
1
@ ashy_32bit Я бы сказал, что мастер схватки поможет команде стать более строгой и эффективной в выполнении хорошего процесса, но тренер-ветеран XP поможет команде стать более строгой и эффективной в написании хорошего кода. Исходя из вашего описания команды, я предполагаю, что они могли бы использовать помощь в написании лучшего кода, если они никогда ранее не писали никаких тестов. Вероятно, они не пишут очень слабо связанный код или обращают внимание на принципы проектирования и т. Д. В этом случае. Конечно, ваша гипотетическая команда тоже явно плохо работает.
Джимми Хоффа
1
Я единственный, кто не думает, что «проворный» должен иметь заглавную букву? Я не просто педант грамматики - это важно. Понимайте гибкость как качество: если ваша команда гибкая, она гибкая, адаптируемая, методичная. Я всегда нахожу замешательство, когда они говорят о «Agile», как будто это название стандартного шаблона или процесса, которого они должны придерживаться.
Тим
6

Является ли Scrum независимым от разработчиков гибких методов?

Скрам - это набор рекомендаций, которые побуждают команду быть гибкой.

Можете ли вы внедрить Scrum в команду, которая не использует автоматизированные тесты? не выполняет рефакторинг или не придерживается практики гибкого программирования?

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

Тим
источник
Коротко и сладко!
Крис Ван Баел
5

Алистер Коберн (один из создателей движения Agile) говорит , что это о Crystal Clear (один аспект его методологии Agile):

Crystal Clear может быть описан слушателю 3-го уровня следующими словами:

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

Это определение гибкости, по общему признанию для опытных разработчиков, которые знают, что они делают, и им можно доверять, чтобы продолжать и делать это. Значит ли это, что вам нужно использовать CI, TDD, парное программирование и все остальные модные вещи? Проще говоря ... Нет.

Agile - это не следование набору процессов, а эффективность. Что это значит для вас, зависит от вашей команды и от того, как она работает, что вы считаете полезным для вас. Если TDD не поможет вам создать работающий код, то прекратите слушать меньшие источники света, которые кричат ​​об этом в Интернете и не используют его! Если парное программирование действительно помогает вашей команде сконцентрироваться и выполнить задание, тогда не обращайте внимания на тех, кто считает, что это пустая трата времени, и организуйте свою команду, как трехногую гонку в школьный спортивный день.

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

Алистер также говорит это о Кенте Беке:

На вопрос о XP и пяти уровнях «Модели зрелости возможностей» Института разработки программного обеспечения, он ответил тремя уровнями зрелости XP:

  1. Делай все как написано.

  2. Сделав это, поэкспериментируйте с изменениями в правилах.

  3. В конце концов, все равно, делаете ли вы XP или нет.

В конце концов, все равно, делаете ли вы XP или нет ... мудрые слова, которые должны напоминать вам не попадать в эту ловушку .

gbjbaanb
источник
ХАХА, что ловушка на дне это смешно и так верно. Спасибо за смех. Также +1 я не могу согласиться больше. К сожалению, вся техника, предписанная здесь, полностью основана на наличии хороших разработчиков (или тех, кто хочет быть по крайней мере хорошим) для начала. Многие инженеры не заинтересованы в том, чтобы быть хорошим, когда быть плохим легче. На самом деле это относится, вероятно, ко многим людям, а не только к инженерам.
Джимми Хоффа
0

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

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

Ryathal
источник
0

Agile о разработке или управлении?

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

Однако для достижения этой гибкости команда разработчиков должна практиковать Agile-программирование .

Описание от Wiki относительно разработки программного обеспечения Agile :

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

введите описание изображения здесь

Юсубы
источник
0

Фактически, вы можете использовать scrum в проектах, которые не имеют ничего общего с разработкой программного обеспечения. Это метод управления проектом / управления командой.

Rense
источник
-2

1) НЕТ !!!! Scrum - это Agile, то есть методы гибкой разработки (TDD, парное программирование, CI, рефакторинг и т. Д.) Очень важны для всех аспектов проекта Scrum. Будет гораздо сложнее выяснить скорость бега ваших команд, оценить работу, установить соответствующий размер спринта и т. Д., Если вы не используете эти практики.

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

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

str8killinit
источник
1
Пожалуйста, не используйте такие термины, как «Scrum / Agile», они очень далеки от взаимозаменяемых терминов, я думаю, что вы это знаете, но вы все еще увековечиваете мысль о том, что они есть, когда вы используете их таким образом.
Джимми Хоффа
Скрам ловкий. Строчная «а». Agile - это прилагательное, а не название вещи. Кроме того, я думаю, что этот ответ имеет смысл.
Тим
2
@Tim agile - слово прилагательное, но в данном случае Agile ссылается на название «Agile Software Development», как оно определено на agilemanifesto.org, и поэтому оно не прилагательное, а существительное. Это моя жалоба на людей, называющих scrum гибкими, люди думают: «Scrum is agile», а затем никогда не узнают о гибком манифесте, из которого и возникло все это «гибкое» модное словечко, и об истинном определении «Agile». , Ссылаясь на то, что прилагательное является гибким, просто неоднозначно, манифест не двусмыслен, он принципиален и специфичен.
Джимми Хоффа