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

Почему отдельные работы по техническому обслуживанию от разработки?

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

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

Помимо отбрасывания "старого кода" на меньших смертных, есть ли?

Уроки, извлеченные из сохранения вашего собственного "мусора", имеют гораздо более высокую ценность? Не устраняет ли дефекты гораздо эффективнее, когда их делают те, кто их начал?

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

4b9b3361

Ответ 1

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

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

Пример использования реальной жизни:

Вам был назначен 1500-часовой проект разработки, который также отвечает за обслуживание и поддержку систем для ваших последних 3 приложений. Во время этого нового проекта вы прерываете 7 раз в неделю в среднем, чтобы поддерживать эти 3 приложения. Каждый раз, когда вы начинаете работать над другими 3 приложениями, вы тратите 20 минут, чтобы ваш разум обернулся вокруг проблемы. После исправления проблемы, вы затем потратите 20 минут, чтобы ваш ум обернулся вокруг кода, который вы последний раз коснулись вашего нового приложения. Это общая стоимость 40 минут на прерывание или 280 минут в неделю. Это означает, что вы потеряли 2,67 часа производительности в неделю, просто переключившись на поддержку этих приложений.

Ответ 2

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

Возьмите, к примеру, Bentley Microstation. Его проектное приложение для 3d (архитектура, дизайн завода, рельсовые дорожные мосты и т.д.). Теперь скажем, что у нас есть v8, v9, v10 на рынке. Они имеют разные функции, и формат файлов значительно изменился по сравнению с версиями. Но проекты настолько огромны (или клиенты так важны), что вам нужно поддерживать клиентов v8 и клиентов v9, а также развивать v10. Поэтому для компании необходимо иметь команду поддержки (или время), выделенную для предыдущих версий. Кроме того, обычно эти команды называются группами настройки, если ваш продукт поддерживает настройку и вышеупомянутый сценарий.

Ответ 3

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

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

Ответ 4

Проблема более практична, я полагаю:

  • старый код был написан людьми, которые больше не находятся в компании или команде;
  • старый код был написан внешними разработчиками;

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

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

Ответ 5

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

Ответ 6

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

Я предполагаю:

  • Делает новое развитие более предсказуемо, легче графику: потому что разработчики не отозваны это исправить некоторые неизвестные в своем заранее ряд вопросов охранения

  • Возможность обучения новых разработчиков (например, меня)

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

... Подзаголовок для вашего ОП, кажется, "Человек, этот код воняет! Хотелось бы, чтобы я мог получить оригинального разработчика, и втираю его в нос: это узнает его!"

Итак, когда код хорошо написан, этот аргумент (обучение исходных разработчиков) неприменим.

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

[Я проанализировал бы и диагностировал бы проблему, и закодировал бы исправление; и человек с QA добавит новый соответствующий тестовый пример в автоматизированный набор тестов.]

Ответ 7

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

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