Что квалифицируется как обслуживание или добавление новых функций? - PullRequest
6 голосов
/ 29 мая 2009

Где должна проводиться грань между техническим обслуживанием и новыми функциями?

Оксфордский словарь английского языка определяет содержание как:

(7.a) Действия по поддержанию чего-либо в исправном состоянии, ремонте и т. Д .; содержание здания, учреждения, подразделения войск и т. д. путем предоставления средств для оборудования и т. д .; состояние или факт так держать; средства или средства для содержания.

Я работаю с клиент-серверным приложением и обслуживаю клиента. В соответствии с определением, я ожидаю выполнить:

  • Исправление ошибок
  • Адаптации API (незначительные изменения, необходимые для продолжения работы клиента с сервером)
  • Оптимизация для выявления проблем с производительностью

Я бы не ожидал выполнить:

  • Новая разработка (добавление новой функциональности)

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

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

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

Ответы [ 7 ]

6 голосов
/ 29 мая 2009

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

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

4 голосов
/ 29 мая 2009

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

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

2 голосов
/ 20 декабря 2012

На основе спецификации SO / IEC 14764 для обслуживания программного обеспечения и моего опыта работы с веб-сайтами и мобильными приложениями я написал статью, посвященную техническому обслуживанию и разработке новых функций, характерных для цифровых продуктов: http://www.rajiv.com/blog/2012/12/19/maintenance-vs-new-development/

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

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

1 голос
/ 29 мая 2009

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

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

1 голос
/ 29 мая 2009

Исправления ошибок, безусловно, требуют технического обслуживания.

Повышение производительности (скорости) - это техническое обслуживание.

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

Добавляя совершенно новую функцию, я НЕ рассматриваю ее в качестве технического обслуживания.

1 голос
/ 29 мая 2009

Для исправления ошибок по большей части их легко классифицировать как обслуживание.

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

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

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

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

0 голосов
/ 29 мая 2009

Для меня ошибка - это обслуживание, а улучшение - нет.

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...