Подтвердить что ты не робот

Как вы управляете крупным портфелем продуктов?

У нас есть большое отставание от вещей, которые мы должны делать в нашем программном обеспечении, во множестве разных категорий, например:

  • Новые проблемные области для решения наших продуктов.
  • Новая функциональность, поддерживающая существующие проблемные области.
  • Новая функциональность, запрошенная нашими существующими пользователями
  • Юзабилити и улучшения "look".
  • Архитектурные обновления для back-end
  • Исправлены ошибки.

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

Поскольку мы сейчас довольно большие, имеем сложный продукт и множество клиентов, для этого недостаточно базовых решений (электронная таблица, документ google, базовый список). Нам нужен способ группировать вещи по-разному, расставлять приоритеты на постоянной основе, четко понимать, что мы делаем и что происходит, - без этого, требуя, чтобы все время просто управляли каким-то инструментом.

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

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

Вы нашли метод или инструмент, который работает? Если да, пожалуйста, поделитесь! (И если вы хотите узнать ответ тоже, задайте вопрос, чтобы он оставался видимым:)

Добавление: Конечно, сначала исправлять все ошибки, но в реальной системе, которая фактически установлена ​​на компьютерах клиентов, это не всегда практично. Например, у нас может быть ошибка, которая встречается очень редко и что для исправления потребуется огромное количество времени и архитектурных потрясений - мы могли бы оставить это на некоторое время. Или у нас может быть ошибка, когда кто-то думает, что что-то трудно использовать, и мы считаем, что исправление должно ждать большой перестройки этой области. Итак, есть много причин, по которым мы не просто исправляем их все сразу, но держим их открытыми, поэтому мы не забываем. Кроме того, приоритет не-ошибок является самым сложным; просто представьте, что у нас их нет:)

4b9b3361

Ответ 1

Управление большим отставанием агрессивным образом почти всегда расточительно. К тому времени, когда вы попадаете в середину приоритетной кучи, вещи чаще всего меняются. Я бы рекомендовал принять что-то вроде того, что Кори Ладас называет приоритетным фильтром:

http://leansoftwareengineering.com/2008/08/19/priority-filter/

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

Изменить: Аллан спросил, что делать, если задачи имеют разные размеры. В основном, большая часть этой работы - это правильное определение ваших задач. Мы применяем эту приоритизацию к истории пользователей. Истории пользователей обычно значительно меньше, чем "создать сайт сообщества". Я бы подумал, что сайт сообщества немного эпический или даже проект. Его нужно разбить на значительно более мелкие биты, чтобы иметь приоритет.

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

Что касается перемещения wibbles в два пикселя, многие из этих простых вещей могут быть сделаны для "свободных". Вы просто должны быть осторожны, чтобы уравновесить их и делать их только в том случае, если они действительно близки к свободе, и они действительно важны.

Мы рассматриваем ошибки аналогично. Ошибки получают одну из трех категорий: "сейчас", "скоро" или "в конце концов". Мы исправляем ошибки Now and Soon так быстро, как только можем, с той лишь разницей, когда публикуем исправления. В конечном итоге ошибки не получат исправления, если разработчикам не надоедает и им нечего делать, или они как-то становятся более приоритетными.

Ответ 2

Ключом является агрессивная категоризация и приоритезация.

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

Ответ 3

Простым методом является использование матрицы приоритетов.

Примеры:

Также полезны квадранты приоритетов (два измерения: значение, срочность), которые Covey предлагает: http://www.dkeener.com/keenstuff/priority.html. Сосредоточьтесь на важном и неотложном, а затем на важном и не срочном. Неважный материал... ну.. если кто-то хочет сделать это в свое время:-). Вариант квадрантов Covey, который я использовал, имеет размеры важности и простоты. Простота - это хороший способ определить приоритеты задач в квадранте Covey.

Ответ 4

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

Вы можете определить приоритеты:

  • Добавленная стоимость продукта
  • Важность для клиентов, как существующих, так и потенциальных
  • Масштаб задачи

Ответ 5

Сначала вы должны исправить все ошибки и только потом подумать о добавлении к нему новых функций.

Ответ 6

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

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

Ответ 7

Поскольку вы уже делаете что-то проворно, вы можете одолжить некоторые идеи из XP:

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

Таким образом:

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

Дополнительные сведения см. в разделе Планирование экстремального программирования Кент Бех и Мартин Фаулер. Они говорят это намного лучше, чем я когда-либо мог.

Ответ 8

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

Ответ 9

Помимо любого инструмента и процесса, должны быть... некоторые люди;)

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

Между ними два, приоритет может быть установлен как на высоком уровне (функциональные запросы), так и на низком уровне (ошибки и технические проблемы)