Многие организации борется с кажущейся несовместимостью между Agile и Release Management, и они борются с планированием выпуска и предсказуемой доставкой.
TL; DR;
Без рабочего программного обеспечения вы не можете построить доверие, и вы не знаете, когда вы получите следующую часть рабочего программного обеспечения.
Любое программное обеспечение, которое вы создаете, является организационным активом и решениями для снижения качества необходимо отражено на счетах вашей компании, и в качестве таких этих решений необходимо сделать вашим исполнительным руководством и не должно производиться командой разработки. Как только вы принимаете это, и качество становится не договорным, ваш Команда развития Может сосредоточиться на создании сдвигаемых приращений рабочего программного обеспечения. После того, как у вас есть сдвижные приращения рабочего программного обеспечения, вы можете потом начать рассматривать интерес к достижению прогресса на функциях и целях.
Без регулярной частоты доставки рабочего программного обеспечения на любую убеждение, что вы получите рабочее программное обеспечение в лучшем случае. Профессиональные команды разработки создают рабочее программное обеспечение.
Планирование выпуска и предсказуемая доставка
Несовместимость между предсказуемой доставкой и ловкостью является фиктивным ( Tweet это ) И пока обычно создается организацией и структурой, которая не желает отпускать старые способы и охватить арендаторам Agile, это также может быть результатом командных земель, чтобы преодолеть себя всем, что приведет к предыдущему планированию. Недостаточно понимает, что Agile и путь к ловкости гораздо больше, чем просто изменение в том, как вы создаете программное обеспечение, это фундаментальный сдвиг таким образом, чтобы вы запускали свой бизнес. Как и постное движение в производстве, компании, которые обняли его искренне, были теми, которые в конечном итоге видят конкурентное преимущество, которое оно обеспечивает. Если кто-то не желает отпустить старые способы, то не может достичь ценности нового. Это изменение потребуется тяжелая работа и мужество, поскольку основная прозрачность, необходимая для проверки и адаптации эффективно, является шанс с мерами прошлого. Отсутствие предсказуемости разработки программного обеспечения является ключом к пониманию новой модели.
Почему программное обеспечение так непредсказуемо
Все разработки программного обеспечения — разработка продукта. В постном производстве мы можем оптимизировать производство предварительно разработанных продуктов посредством природы его предсказуемого производства. Каждая единица работы занимает такое же количество материалов и времени для достижения так любых изменений, которые мы принимаем к процессу, времени, или материалам, могут быть легко квалифицированы, и преимущество продемонстрировано. Изготовление живет в прогнозе мира.
С программным обеспечением все, что мы создаем, занимает свое количество времени: вы действительно можете знать, как долго что-то заняло после того, как он был завершен. Даже в изготовлении, если вы спросите инженера, сколько времени потребуется для разработки нового типа работы, которую они не смогут рассказать вам с какой-либо уверенностью. Как только они разработали это, однако, они могут точно сказать вам, сколько времени потребуется, чтобы сделать каждый из них, а затем систематически оптимизировать процесс, который вы используете, чтобы сделать его. В разработке программного обеспечения мы всегда выполняем новый дизайн продукта, поэтому у нас нет уверенности … И это часто приводит к хаосу. Программное обеспечение живет в эмпирическом мире.
Все не потеряно, однако, как мы можем, посмотрев на нашу историю доставки для подобных вещей, сделать довольно хорошую Прогноз …..
Лучшее, что мы можем сделать, — это потратить усилия, чтобы сделать этот прогноз как можно точнее, при принятии того, что больше времени запланированного планирования не обязательно влияет на точность этого прогноза.
Фигура: Убывающая отдача от Agile оценки — оценка подходов
В конечном итоге разработка программного обеспечения является творческим стремлением и имеет такое же отсутствие предсказуемости, которая рисует картину, написание книги или выработки фильма. И все же фильмы сделаны все время. Как это может быть! Ну, у них есть режиссер (владелец продукта), который имеет кучу денег и плана для доставки, продюсера (Scrum Master), чтобы убедиться, что у каждого есть навыки, знания и активы, доступные в нужное время и место и один или несколько Единицы (команды разработчиков), которые имеют все навыки, необходимые для повернуть идеи директоров в рабочий фильм. Они создают расслаиватели того, что они ожидают создавать, чтобы они могли пройти через заинтересованные стороны и получить отзыв. Они берут эти разорватели в подразделения, которые совместно работают вместе с трюком, опоры, освещением, камерой, звуковыми и гардеробами, чтобы получить оценки и затраты и в конечном итоге координацию для создания фильма. Иногда они не знают, как делать вещи, и просто нужно идти и посмотреть, что они получают.
Создание фильма просто похоже на строительство программного обеспечения, вам нужен бюджет, вам нужен план, и вы пытаетесь достичь даты корабля. И просто как создание программного обеспечения, вы должны заработать деньги в конце дня, чтобы вы могли сделать это снова.
Принять отсутствие предсказуемости
Хотя я надеюсь, что теперь вы понимаете, что отсутствие предсказуемости является частью характера строительного программного обеспечения, есть много вещей, которые мы можем сделать, чтобы уменьшить влияние этого хаоса. Действительно, если бы вы должны были оценить все сдержанные вещи, которые вам нужно сделать, чтобы достичь цели (позвольте нам позвонить им товары) в маленьком, среднем и большим, что будет ваше стандартное отклонение фактических часов? Я бы ставил, что это довольно большой. На самом деле, на самом деле, что по крайней мере половина всех средств средств будет более точно классифицирована как большая. Но эта реклассификация может быть сделана только с задним числом. Это действительно один из арендаторов движения без оценки, так как на самом деле есть только три классификации размеров: тривиальный, подходит в спринте или слишком большой вписаться в спринт.
Эта трудность в оценке нормальная для организаций, которые движутся к ловкости как прозрачность, которую она приносит, раскрывает такие проблемы. Чтобы увеличить точность наших прогнозов, существует ряд простых видов деятельности, которые мы можем выполнить. Эти мероприятия, в то время как легко понять, очень трудно сделать, поскольку им требуется смещение культуры в вашей организации, а также смелость участников, чтобы заставить их работать.
Сосредоточиться на постоянном качестве
Большинство программных программ не хватает качества по той простой причине, которую вы не можете легко увидеть качество в программном обеспечении, как будто вы можете с таблицей или картиной. Я не говорю о качестве пользовательского интерфейса, а качество под крышками; качество кода.
Если вы поместите разработчиков под давлением, чтобы доставить, они будут постоянно и все более сократить качество, чтобы удовлетворить сроки. -Неизвестный ( Tweet это )
Отсутствие качества кода приводит к увеличению технического долга (или точнее неудовлетворенного фонда), который, в свою очередь, приводит к двум настям. Во-первых, команда все чаще приходится тратить больше времени, борющуюся со сложностью вашего программного обеспечения, а не на новые функции. Если вы все еще выталкиваете свои команды, чтобы доставлять тот же уровень функций каждый год, вы только поощряете их, чтобы их вырезать на более качественное качество и, таким образом, несущие более технические долги, которые становятся порочным циклом. Второе — все большее количество ошибок, найденных в производстве. Ошибки, найденные в производстве, также непосредственно влияют на количество функций, которые команда может доставить и любую ошибку, независимо от того, насколько маленькими стоит десять раз и многое, чтобы исправить в производстве, чем в развитии.
Единственный способ обрабатывать технические долги — прекратить создание его, а затем заплатить немного обратно на каждую итерацию. Однако, если вы так утопляете в техническом долге, что вы не можете создать рабочее программное обеспечение в конце итерации, то:
- Создать Короткий измеримый контрольный список которые отражают минимальный съемный продукт (определение сделано)
- Прекратите добавлять новые функции и Сделайте ваш продукт встретить этот контрольный список и выпустить ваш продукт
- Пока у вас есть приращение рабочего программного обеспечения (Sprint)
- Работа, чтобы создать что-то ценное (увеличение)
- Работайте по отношению к новой цели, встречаясь на дождестве (спринт)
- Оставить вещи лучше, чем вы нашли их (инженерное совершенство)
- Просмотрите эту вещь стоимости с вашими заинтересованными сторонами (обзор SPRINT, адаптация отставания)
- Получить обратную связь по крайней мере на одну новую вещь для заинтересованных сторон
- Обновите отставание, чтобы отразить эту новую информацию
- Подумайте о том, как вы работали со всей вашей командой (Retrospected Sprint, Kaizen)
- Увеличение качества?
- Увеличивается ли DoD?
- Что мы можем изменить, чтобы сделать вещи лучше?
- Перейти к # 1
Вы можете позвонить в действие, которая приводит к выпаданию из цикла Prope Proofform, чтобы быть Смыслить ; Вам нужно перестать снимать больше функций на вершине функций, которые не работают и не устраняют вещи, чтобы вы могли сделать новые вещи. В конечном итоге Профессиональные команды создают программное обеспечение, которое работает Отказ
Существует ряд стратегий, которые могут помочь вам оба прекратить создавать и начать платить обратно техническим долгом:
- Достаточные требования — Если у вашего отставания есть вещи в этом, которые слишком велики или слишком расплывчаты, то ваша команда не сможет их понять, и это, в свою очередь, создает множитель для неопределенности. Следуйте по инвестирующим (независимым, договорным, ценным, оцененным, небольшим, оправданным) моделью для каждой вещи, которую вы просите команду доставить. Если вы инвестируете в вас отставание таким образом, вам настолько легче доставить содержимое и таким образом предсказывать эту доставку. Это потребует всего, чтобы вы потратить значительное количество времени в утонченности. Уточнение отставания — это ключ для облегчения потока действующих элементов отставания в вашей команде.
- Команда разработки выбирает то, что они могут доставить — Это подразумевает, что команда разработки может отклонить любой предмет на отставке, который они не понимают. Если мы прием, что каждая команда разработчиков пытается сделать все возможное, чтобы доставить для своего владельца продукта, то единственная причина отклонить все, если товар слишком большой или не имеет достаточно подробностей для понимания. Эти элементы отставания могут быть включены в очередь для уточнения и уточнения на следующий спринт. Помните, что есть Нет такой вещи, как отклоненный пункт отставания только действующие обратная связь и постоянное улучшение.
- Определение сделано (DOD) — наряду с достаточными требованиями, один крупнейший блокировщик предсказуемости является отсутствие общего понимания проведенного. Сделано для команды разработки, должна равняться тому, что значит заполнить товар без дальнейшей работы, необходимой для его отправки. Если Вы не можете судить Рабочее программное обеспечение Затем вам нужно прекратить Sprinting, Scrumble и сосредоточиться на получении вашего программного обеспечения в форму, которая может быть доставлена в Sprint.
- Испытание первым — Сосредоточиться на Проверьте первые практики, такие как TDD или ATDD Чтобы помочь вам убедиться, что ваши инженеры не только создают то, что они ожидают, но вы в конечном итоге в конечном итоге построили то, что ожидает клиента.
- Фиксированная длина итерации — Если у вас есть переменная длина итерации, вы не можете быть уверены, что вы можете сделать в определенном таймфрейме. Сколько декомпозиции вам нужно сделать с отставанием? Сколько может доставить команду в одну итерацию? Вы не можете быть уверены, если у вас нет фиксированной итерации длины, а Вы отклоняете идею в шахматных итерациях .
- Нет отдельных команд — Это означает, что нет отдельных тестовых команд, команд управления конфигурацией и определенно не отдельных команд обслуживания. Его трудно для людей, особенно с недавним фокусом на шепов Но если у вас есть отдельные команды, то почему ваша команда разработки, те, кто лучше всего разместил, чтобы исправить любые проблемы, заботиться о проблемах других команд. Наиболее успешными организациями по созданию программного обеспечения имеют команды разработчиков, которые владеют всей жизненным циклом приложения (Amazon AWS | Visual Studio.)
- Управление зависимостями — Управление зависимостями — это тяжелая задача, и мой совет всегда будет минимизировать количество зависимостей, которые у вас есть. Команда разработки должна иметь все навыки, необходимые для доставки того, что вы хотите на уровне качества, который вы хотите. Поэтому, если вам нужно иметь изготовленные базы данных или сценарии для доставки производства, вам может понадобиться DBA или администратор операций или два. Это может быть трудно для многих команд или организаций, но вы будете иметь гораздо меньший успех, создавая такие силосы, как управление конфигурацией или DEVOPS. Скорее добавьте тех людей, которые вам нужны в команде. Однако, если у вас есть зависимость от отдельной команды, возможно, у вас есть приложение, на котором все ваши другие приложения зависят, то вам может понадобиться другой путь. Это не силосовый типов индивидуальных навыков, а домена, и эта команда просто имеет что-то в своем отступлении, на котором вы зависите от. Это зависит от соответствующих владельцев продукции команды до
боротьсядоговориться, когда эти вещи сделаны. - Используйте современную систему контроля источника — А Современная система контроля источника больше, чем просто управление кодом , он должен включать все вкусности, о которых говорили о практиках DevOps и за его пределами.
Если вы можете, сделайте их все и многое другое …
Пост Планирование выпуска и предсказуемая доставка появился первым на Мартин Хиншельвуд — Голая ловкость ООО Отказ
Оригинал: «https://dev.to/nkdagility/release-planning-and-predictable-delivery-2di4»