Как часто следует выпускать обновления программного обеспечения?

Несколько минут назад Джефф Этвуд сказал в твиттере следующее:

Послушайте, я люблю быстрые выпуски новых программ, но частота выпусков WordPress просто смешна.

Это заставляет меня задуматься: как часто нужно выпускать обновления программного обеспечения?

  • Ежедневно?
  • Еженедельно?
  • Ежемесячно?
  • Ежегодно?

Какая стратегия выпуска лучшая?


person GateKiller    schedule 11.12.2008    source источник


Ответы (15)


В конкретном случае WordPress я бы сказал, они объединяют «обновления безопасности» и «обновления функциональности». Это плохо.

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

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

person Jeff Atwood    schedule 11.12.2008
comment
v2.7 имеет автоматическое обновление ... надеюсь, это упростит задачу. - person Jon Tackabury; 11.12.2008

Частота выпусков Wordpress настолько высока, потому что они заботятся о безопасности и выпускают обновления, которые исправляют известные уязвимости как можно быстрее. Обновления функциональности Wordpress происходят гораздо реже, я думаю, в диапазоне от 4 до 6 месяцев.

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

person Rob Prouse    schedule 11.12.2008
comment
Я не согласен. Никто не жалуется, что Wordpress быстро устраняет проблемы безопасности, они жалуются, что они перешли с 2.5 на 2.6 и вскоре на 2.7, функциональные выпуски, которые потенциально могут сломать плагины, слишком быстро. - person Paul Tomblin; 11.12.2008
comment
Что-то принципиально не работает, когда даже у вашего текстового процессора могут быть проблемы с безопасностью. - person skiphoppy; 11.12.2008
comment
skiphoppy, Wordpress - это движок для блогов, а не текстовый процессор. У любого веб-приложения могут быть проблемы с безопасностью. - person Paul Tomblin; 11.12.2008

Предлагаю следующее:

updateTime (в секундах) - среднее время, необходимое пользователю для выполнения обновления

releaseDelta (в днях) - минимальное время между релизами

releaseDelta = updateTime/((1/365)*(60*60*8))

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

Это также позволяет частое обновление, если обновления выполняются прозрачным образом, не отвлекая конечного пользователя.

person chills42    schedule 11.12.2008
comment
приблизительно releaseDelta = 0,01 * updateTime - person hexicle; 17.06.2013

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

person BobbyShaftoe    schedule 11.12.2008

Реже обновляется iTunes.

person MusiGenesis    schedule 11.12.2008
comment
Я был бы не против частых обновлений iTunes, если бы они потом не заставляли меня перезагружаться. Почему для обновления музыкального плеера требуется перезагрузка? - person Paul Tomblin; 11.12.2008
comment
И эти бессмысленные обновления .mac и safari, которые я не использую, действительно раздражают. - person Artur Carvalho; 11.12.2008
comment
Ах. Мне нравится этот ответ. +1, когда я снова получаю голоса. - person George Stocker; 11.12.2008
comment
Я больше всего ненавижу тот факт, что iTunes требуются годы, чтобы проверять наличие обновлений, когда вы его запускаете, и они даже не показывают небольшой экран-заставку, чтобы вы знали, что вы даже щелкнули его правильно. - person MusiGenesis; 11.12.2008
comment
@MusiGenesis - у вас должна быть Windows. На Mac он интегрирован с обновлением ОС, поэтому время от времени я получаю всплывающее сообщение о том, что следующие обновления были загружены, щелкните здесь, чтобы установить их. - person Paul Tomblin; 11.12.2008
comment
@ Пол: да, iTunes для Windows. Не рассказывайте мне, как раздражает наличие приложения, которое действует как приложение Mac, плавающее в моем мире Windows. Поскольку я не могу щелкнуть правой кнопкой мыши, как обычно, по крайней мере, я могу использовать свой средний палец, чтобы выразить свою признательность Apple. - person MusiGenesis; 11.12.2008
comment
@musicGenesis: боже, нет, пожалуйста, боже, нет, не больше заставок. Мы прошли через эти миазмы еще в 90-х с Windows95, и в основном все прошло (за исключением Portableapps.com, WTF с этим справился). Я вообще не хочу к этому возврата! Всегда! Я бы предпочел, чтобы оставшаяся часть моего тестового корневого канала была удалена - person Chris K; 28.07.2009
comment
@darthcoder: Я чувствую вашу боль (попробуйте WavePad, если вы действительно хотите почувствовать желание ударить программиста за нелепую заставку). Но iTunes в Windows не показывает вам АБСОЛЮТНО ЧУЖИЕ НИЧЕГО в течение минуты, когда вы его запускаете. - person MusiGenesis; 28.07.2009

Я стараюсь использовать следующее, надеюсь, простое руководство, состоящее из двух частей:

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

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

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

person Joseph Ferris    schedule 11.12.2008

Это зависит от подхода заказчика к управлению конфигурацией.

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

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

Клиенты с SOE (стандартные операционные среды) ненавидят обновления.

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

Некоторые клиенты захотят / должны будут проводить собственное обеспечение качества; зависит от заказчика и вида программного обеспечения.

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

Например: 2 недели на тестирование, выпуск не чаще, чем каждые 8 ​​недель.

Тестирование выпуска критически важного программного обеспечения может занять у клиента несколько месяцев. Они делают ставку на результат и оправданно проявляют осторожность. Так что выпуски происходят каждые 6 месяцев или около того.

В критически важном для безопасности программном обеспечении это может занять МНОГО месяцев. Ежегодно или примерно каждые 18 месяцев - не редкость. Еще реже - это вполне нормально.

person Tim Williscroft    schedule 11.12.2008

Нет правильного ответа, это действительно зависит от продукта.

Я говорю, самое большее, ежемесячно. Еженедельно / Ежедневно слишком часто, если, конечно, обновления приложений не выполняются автоматически и прозрачно, например Система обновлений Firefox

person revs    schedule 11.12.2008

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

person Roger Lipscombe    schedule 11.12.2008

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

person Galwegian    schedule 11.12.2008
comment
Я должен сказать, что это очень сильно зависит от программного обеспечения. Приведу очевидный пример: если бы серверное программное обеспечение на производственном компьютере, которым я управлял, автоматически обновлялось, я бы испугался. Людям нужна возможность контролировать свое программное обеспечение. - person dave mankoff; 12.12.2008

Для области, в которой я работаю, промышленного контроля, очень редко. Обычно мы делаем основной релиз примерно через 2 года. Незначительные выпуски могут быть каждые 3-6 месяцев. Баг-патчи - это конечно отдельная история, они выпускаются по мере надобности. Даже в этом случае немногие клиенты будут модернизировать существующие системы. Конечно, в других доменах обновления более приемлемы.

person Jim C    schedule 11.12.2008

Конечно, когда у вас появятся новые функции / исправления ошибок, стоит выпустить ?? Почему это по расписанию?

person Community    schedule 11.12.2008
comment
Вам когда-нибудь приходилось делать что-то, что называется планированием ресурсов? - person Mat Nadrofsky; 26.05.2010

У меня нет возражений против исправления ошибок безопасности сразу после их обнаружения - хотя я бы хотел, чтобы они в первую очередь написали более надежный код. Я возражаю (по крайней мере, в отношении Wordpress), так это выпуски улучшений, которые потенциально могут слишком быстро сломать плагины. Сколько времени прошло, чтобы перейти с 2,5 на 2,6? И 2.7 тоже очень скоро выйдет.

Автоматическое или полуавтоматическое обновление могло бы смягчить некоторые из этих проблем, но только если разработчики плагинов также обновятся или если они отделили исправления безопасности от изменений функциональности, чтобы я мог, скажем, придерживаться версии 2.5, но все еще быть в курсе с безопасностью патчей, пока я не был уверен, что все плагины, которые я использую, работают с 2.6, 2.7 или (к тому времени) 4.0.

person Paul Tomblin    schedule 11.12.2008

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

person John T    schedule 11.12.2008

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

Если это веб-сайт, вы можете обновляться каждый день, если ничего не сломаете.

Если это бесплатное обновление безопасности, всегда приветствуется как можно скорее.

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

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

person Mark Ransom    schedule 12.12.2008