Лучшие способы вместить устранение ошибки в процесс Толпы? [закрытый]

Поскольку другие люди упоминают DataInputStream, и Буферы являются, вероятно, API низкого уровня, который Вы после для контакта с двоичными данными в Java.

Однако Вы, вероятно, хотите что-то как Конструкция (страница Wiki имеет хорошие примеры также: http://en.wikipedia.org/wiki/Construct_ (python_library) , но для Java.

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

РЕДАКТИРОВАНИЕ: бит гугления показывает это:

http://javolution.org/api/javolution/io/Struct.html

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

87
задан Montag451 5 June 2014 в 09:07
поделиться

6 ответов

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

  1. Одинаковое рассмотрение всех ошибок с помощью элементов невыполненной работы может показаться хорошей идеей в теории (работа отслеживается в одном месте), но на практике не работает. Ошибки обычно являются низкоуровневыми и более многочисленными, поэтому, если вы создаете индивидуальную пользовательскую историю для каждой ошибки, тогда «настоящие» истории скоро будут скрыты.
  2. Явное указание времени в каждом спринте, зарезервированное для исправлений, допустимо, если сделано так, чтобы это было видно владельцу продукта. Ошибки следует упоминать во время ежедневной схватки, а обсуждение исправленных ошибок должно происходить во время обзора спринта. В противном случае владелец продукта не будет знать, что происходит в проекте.
  3. Помещение всего бэклога в инструмент отслеживания ошибок приводит к тому же набору проблем, что и в 1. Более того, большинство трекеров ошибок не разработаны с учетом Scrum и использование их для этой цели может быть болезненным.

Решение, которое мы нашли наиболее удовлетворительным, заключалось в том, чтобы помещать одну пользовательскую историю под названием «Тикеты» или «Ошибки» на каждый спринт. Затем такую ​​историю можно разделить либо на низкоуровневые задачи, описывающие конкретную ошибку (если они известны во время планирования), либо на мета-задачи, резервирующие заданное количество часов для общего исправления ошибок. Таким образом, владелец продукта видит процесс, а диаграмма выгорания отражает его прогресс.

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

Затем такую ​​историю можно разделить либо на низкоуровневые задачи, описывающие конкретную ошибку (если они известны во время планирования), либо на мета-задачи, резервирующие определенное количество часов для общего исправления ошибки. Таким образом, владелец продукта видит процесс, а диаграмма выгорания отражает его прогресс.

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

Затем такую ​​историю можно разделить либо на низкоуровневые задачи, описывающие конкретную ошибку (если они известны во время планирования), либо на мета-задачи, резервирующие заданное количество часов для общего исправления ошибок. Таким образом, владелец продукта может видеть процесс, а диаграмма выгорания отражает его прогресс.

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

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

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

82
ответ дан 24 November 2019 в 07:49
поделиться

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

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

Мы уже прошли через ряд изменений ранее установка на ошибку как сюжетный подход. Попробуйте разные вещи и воспроизведите их на ретро-встречах команд.

2
ответ дан 24 November 2019 в 07:49
поделиться

На самом деле я думаю, что лучше всего будет ответить jpeacock на этот вопрос Считаете ли вы часы, потраченные на исправление ошибок, до схватки?

Позвольте мне процитировать it:

  • Если ошибку легко / быстро исправить (один liner, etc), then just fix it.
  • If the bug is not trivial, and not a blocker, then add it to the backlog.
  • If the bug is a blocker then add a task (to the current sprint) to capture the work required to fix it, and start working on it. This requires that something else be moved (from the current sprint) to the backlog to account for the new hours because your total hours available hasn't changed.
31
ответ дан 24 November 2019 в 07:49
поделиться

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

1
ответ дан 24 November 2019 в 07:49
поделиться

Первый шаг - определить, что такое ошибка. Я учу, что ошибка является ошибкой только в том случае, если эта функция не работает в производственной среде, как это было задумано / разработано. Они становятся PBI типа ошибок, которые должны иметь приоритет перед новыми разработками. Отсутствие функциональных возможностей в производственной среде является функцией и становится обычным элементом невыполненной работы продукта. Любой дефектный код, обнаруженный во время спринта, считается неполной работой, и поскольку вы не переходите к следующей истории, пока текущая не будет завершена; нет необходимости отслеживать эти дефекты в спринте, поскольку команда всегда работает над ошибочным кодом. Наклейки могут быть очень удобными для быстрых напоминаний между товарищами по команде. Исправление неработающего кода всегда имеет приоритет перед написанием нового кода. Если дефекты вызваны неправильным пониманием истории, вам необходимо поработать над условиями принятия, прежде чем начинать рассказ.

Инвентарь - это пустая трата. Отслеживание ошибок - это инвентарь. Отслеживание ошибок - пустая трата времени.

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

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

24
ответ дан 24 November 2019 в 07:49
поделиться

Не отслеживайте дефекты в списке, не ищите их и не исправляйте - Мэри Поппендик

Действительно, если инвентарь - это отходы, как насчет инвентаризации дефектов ...

Вот почему я всегда попробуйте реализовать менталитет Stop-the-Line с разработкой на основе тестирования и непрерывной интеграцией, чтобы мы находили и исправляли большинство дефектов вместо того, чтобы вносить их в список доработок.

И когда дефекты устраняются. , мы их исправляем перед написанием нового кода (истории с ошибками все равно не делаются). Потом,

6
ответ дан 24 November 2019 в 07:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: