Как Вы обрабатываете пул несвязанных небольших ошибок в Толпе? [закрытый]

Ниже приведено краткое описание шагов, которые необходимо выполнить, и параметров, которые необходимо передать при создании ipa с использованием terrminal:

  1. Перейдите в папку, в которой находится файл MyApp.xcodeproject, в терминал

  2. Используя приведенную ниже команду, вы получите все цели приложения

    /usr/bin/xcodebuild -list 
    
  3. После выполнения вышеуказанной команды: вы получите список целей, из которых вы должны выбрать конкретную цель, которую вы хотите сгенерировать .ipa

    /usr/bin/xcodebuild -target $TARGET -sdk iphoneos -configuration Release
    
  4. Приведенная выше команда создает проект и создает файл .app. путь к файлу .app: ./build/Release-iphoneos/MyApp.app

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

    /usr/bin/xcrun -sdk iphoneos PackageApplication -v “${TARGET}.app” -o “${OUTDIR}/${TARGET}.ipa” –sign “${IDENTITY}” –embed “${PROVISONING_PROFILE}”
    

Объяснение каждого параметра в вышеприведенном синтаксисе:

${TARGET}.app                == Target path (ex :/Users/XXXXXX/desktop/Application/build/Release-iphoneos/MyApp.app)
${OUTDIR}                    == Select the output directory(Where you want to save .ipa file)
${IDENTITY}                   == iPhone Developer: XXXXXXX (XXXXXXXXXX)(which can be obtained from Keychain access)
${PROVISONING_PROFILE}   == Path to the provisioning profile(/Users/XXXXXX/Library/MobileDevice/Provisioning Profiles/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.mobileprovision”)
  1. ipa будет сгенерирован в выбранном выходном каталоге « $ {OUTDIR } "
7
задан kmorris511 23 June 2009 в 17:52
поделиться

8 ответов

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

Вот что мы делаем:

  • Все истории в рамках спринта должны быть свободны от дефектов, чтобы их можно было считать «готовыми»
  • . Любые дефекты, обнаруженные во время спринта для ранее завершенной истории, регистрируются и помещаются в бэклог. Они оцениваются так же, как и все остальное, и устанавливаются в приоритете владельцем продукта. Если владелец продукта ставит новые функции выше дефектов, он предпочитает функциональность качеству и наоборот.
  • Мы не делаем ' Мы присваиваем баллы истории дефектам, но мы оцениваем каждый дефект по мере его принятия в спринт в рамках планирования. Команде не следует признавать нарушенную функциональность, но в то же время необходимо учитывать время, необходимое для их исправления - это позволяет решить обе задачи.

Вот проблема с другими вашими решениями:

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

Опять же, см. выше. Вы хотите избежать пустых ведер работы, которые могут быть заполнены во время спринта. Это противоречит цели определенных обязательств со стороны команды. Как команда может совершить то, о чем они не знают или не оценили?

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

Придумайте историю размера, скажем, 8, то есть ВСЕГДА принимается в конце спринта, когда вы исправляете как можно больше ошибок. Это, очевидно, требует большого доверия к тому, что каждый на самом деле делает работу на восьмерку

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

Записывайте ошибки, но не работайте над ними до следующего спринта. Их можно указывать индивидуально или в группе. Это дает преимущество в том, что это больше похоже на «схватку», но вызывает трехнедельную задержку для исправлений, которые, по сути, являются 1-часовыми.

Вы делаете интересный момент, и мы тоже обеспокоены этим. Однако это 1-часовое исправление (независимо от того, насколько оно быстро) может быть потрачено неэффективно, если сравнивать его с другими делами в очереди. Суть в том, что вы хотите довести эти решения до владельца продукта и дать ему свободу расставлять приоритеты ВСЕМ, над чем команда тратит усилия.

это 1-часовое исправление (независимо от того, насколько оно быстро) может быть потрачено неэффективно, если сравнивать его с другими делами в очереди. Суть в том, что вы хотите довести эти решения до владельца продукта и дать ему свободу расставлять приоритеты ВСЕМ, над чем команда тратит усилия.

это 1-часовое исправление (независимо от того, насколько оно быстро) может быть потрачено неэффективно, если сравнивать его с другими делами в очереди. Суть в том, что вы хотите довести эти решения до владельца продукта и дать ему свободу расставлять приоритеты ВСЕМ, над чем команда тратит усилия.

13
ответ дан 6 December 2019 в 06:37
поделиться

В моих проектах были успешными следующие политики:

  • Исправление дефектов всегда имеет приоритет над разработкой функций. Цель состоит в том, чтобы всегда иметь нулевые открытые дефекты, при этом 100% работоспособность оценивается по сравнению с почти работоспособными.

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

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

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

  • Если дефект не стоит исправлять (на основе некоторого элементарного анализа затрат и выгод), то он просто игнорируется, чтобы предотвратить загрязнение системы отслеживания ошибок открытыми дефектами.

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

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

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

1
ответ дан 6 December 2019 в 06:37
поделиться

Я твердо верю, что процесс хорош лишь в той мере, в какой он способен улучшить ситуацию. Этот процесс должен работать на вас, а не наоборот.

Если следование процессу Agile Scrum до «Т» приносит больше вреда, чем пользы, в этой ситуации, то пора найти лучшее решение за пределами Процесс Scrum.

Мы создали мини-спринт «QA», который прикрепляется к концу каждого спринта. Это после завершения кода, но до выпуска. В течение этого короткого периода времени вопросы тщательно изучаются и могут быть одобрены для включения в зависимости от степени риска и критичности. Проблемы, исправленные в этот период времени, требуют некоторого дополнительного уровня пользовательского процесса проверки, но работают в основном за пределами определенного процесса Scrum.

5
ответ дан 6 December 2019 в 06:37
поделиться

Кто занимается поддержкой кода, который вы запускаете в производство? Если ваша команда обрабатывает запросы в службу поддержки, то эти опечатки и другие косметические проблемы попадают в эту категорию и обрабатываются соответствующим образом. Если нет, то вам, возможно, придется иногда проводить спринт, похожий на спринт с «исправлением», когда не добавляются новые функции, но исправляются многие старые вещи, а технический долг сокращается до разумного уровня. Или объедините ошибку с небольшими ошибками в один рассказ о том, чтобы сказать «Исправление всех опечаток на сайте» для идеи.

Если вы введете в Google «технический долг» или «разбитые окна» со Scrum, чтобы увидеть, как другие справляются с этим, могут быть другие идеи.

1
ответ дан 6 December 2019 в 06:37
поделиться

Определили ли вы во время ретроспективы причину этих ошибок? Используете ли вы инженерные методы (XP), то есть выполняете разработку на основе TDD-тестов, автоматические функциональные тесты будут ежедневно выполнять полное регрессионное тестирование вместе с сопряженными и историческими картами с критериями приемки.

Когда обнаружен дефект, определяется его первопричина и Добавлен ли к вашим средствам тестирования автоматизированный модульный и функциональный тест, чтобы выявить такой дефект, если он возникнет снова?

Насколько я понимаю, ваш уровень дефектов слишком высок. Если выполнять TDD и полные функциональные регрессионные тесты по крайней мере ежедневно, нередко можно достичь нулевого уровня дефектов во время UAT.

В краткосрочной перспективе, вы можете поручить команде x количество единиц / точек работы для исправления дефектов (посмотрите на свою предыдущую итерацию, и если для устранения мелких ошибок требуется x количество часов на итерацию, вычтите это время из возможностей вашей команды). термин, сосредоточьтесь на первопричине и улучшите инженерную практику вашей команды.

Измеряя стоимость исправления дефектов, мы увидели следующую взаимосвязь. Если дефект стоил 1x во время разработки, он стоил 2x для исправления во время функционального теста, 3x для исправления во время UAT и 4x для исправления в производственной среде. Написав карточки-истории с критериями приемки, разработав пары, разработав на основе тестов и автоматизировав функциональное тестирование, по крайней мере, с ежедневным полным регрессионным тестированием, вы улучшите качество и значительно снизите затраты. В результате вам не нужно будет вычитать время из своей команды »

3
ответ дан 6 December 2019 в 06:37
поделиться

Это прекрасный пример острой необходимости в практиках звуковой инженерии в проектах Scrum.

«[мы] сталкиваемся с проблемами из-за кучи мелких ошибок, которые появляются после того, как код принято »

Это говорит о том, что ваше« определение готового »недостаточно строго.

« Сюда входят такие вещи, как орфографические ошибки »

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

Что делать с дефектами: 1) исправить их прямо сейчас, 2) настроить систему так, чтобы похожие дефекты были обнаружены раньше в следующем время и 3) улучшить ваш процесс, чтобы вероятность возникновения ошибки, ведущей к дефекту, в будущем была меньше. Это все технические проблемы.

3
ответ дан 6 December 2019 в 06:37
поделиться

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

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

  • Ежедневно команда сосредотачивается на Цели Спринта, но имеет «буфер» времени (Условие) для решения внешних проблем. На ежедневной стойке заказчик может сообщать о ежедневных поступающих проблемах, и члены команды, выполнившие задачу спринта (чтобы не было прерывания), в конечном итоге возьмут на себя одну из проблем, чтобы исправить.

  • Время - это то, что забронировано для

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

1
ответ дан 6 December 2019 в 06:37
поделиться

Если из-за ошибок вы перестаете работать над целями спринта, вы все равно можете отменить итерацию и перепланировать. Но это довольно трудное решение.

0
ответ дан 6 December 2019 в 06:37
поделиться