Лучшие практики для доставки программного обеспечения вовремя

Представьте, что у вас нет проблемы с ползучести функций, у вас есть мотивированная и стабильная команда, четкие определенные проблемы для решения. И вы знаете домен/язык/инструменты, связанные с вашим проектом.

Как вы придерживаетесь графика и выполняете этот рубеж 1.0?
Каков ваш подход к итеративной доставке?

Я бы рекомендовал рекомендации для небольшой команды, где проблем с коммуникацией немного или почти нет.

Ответы

Ответ 1

  • Сосредоточьтесь на функциях, не связанных с реализацией.
  • Работайте в итерациях (например, еженедельно или раз в две недели).
  • Отпустите рабочие функции в вашей промежуточной среде в порядке приоритета.
  • Unit test ваш код, как вы идете, поэтому вы не замедлили ошибку, которая увеличивается геометрически по мере приближения даты выпуска.
  • Будьте готовы сократить масштаб от менее важных функций. Материал всегда занимает больше времени, чем вы думаете.
  • Убедитесь, что вы нарисуете пользовательский интерфейс заранее (если есть пользовательский интерфейс) и покажите его потенциальным пользователям.
  • Тестировать, тестировать и тестировать еще несколько. Это кажется контр-интуитивным, но это экономит больше времени, чем требует.

Ответ 2

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

  • Еженедельная встреча с командой для оценки текущего состояния (PM с командой, если есть PM)
  • Руководитель команды может провести небольшую ежедневную встречу с членами команды, чтобы оценить их статус по вопросам/требованиям, делегированным им. Если есть проблемы, он должен предпринять необходимые шаги для решения проблемы.
  • Отслеживание плана проекта и работающая делегация (руководителю группы необходимо знать индивидуальные сильные стороны каждого члена команды для надлежащего делегирования работы).
  • Тестирование может быть автоматизировано до тех пор, пока технология не позволяет.
  • Собственность на работу каждого члена команды.

Конец дня, это сводится к тому, как страстный человек относится к своей работе.

Только мои 2 пайса; -)

Ответ 3

Вопрос: Как большой программный проект может опоздать на один год? Ответ: Один день за раз!

Это не дает ответа на ваш вопрос, но я думаю, что это указывает на необходимость придерживаться вашего графика - если вы даже на один день отстаете, вам нужно как-то его поймать. (К сожалению, остальная часть The Mythical Man Month рассказывает о том, как в большинстве проектов нет "как-то"...)

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

Ответ 4

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

Ответ 5

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

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

Ответ 6

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

  • слабо определенная область
  • функция ползучести
  • недостаток знаний о домене
  • крупные команды с проблемами связи
  • немотивированные/некомпетентные разработчики

Ответ 7

Знайте, какие критически важные функции для клиента. Защитите прогресс на них. Часто очень верно, что 80% успеха приходится на 20% работы.

Ответ 8

Этап Периодический (ежемесячно? еженедельно?) пошаговые руководства по продуктам с использованием текущей принятой сборки в интересах группы продуктов. Начните их как можно раньше. Демонстрируйте каждую функцию, независимо от ее текущей юзабилити; не пропускайте те, которые отстают.

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

Ответ 9

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

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

http://shipcamp.com