Игнорируемая Заинтересованная сторона, также известная как Системный администратор

StackOverflow https://stackoverflow.com/questions/307353

Вопрос

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

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

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

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

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

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

Это было полезно?

Решение

Различные вещи, включая (но вряд ли ими ограничивающиеся) те, которые не расположены в порядке приоритета:

  • Нет необходимости использовать привилегированную установку
  • Возможность использовать привилегированную установку
  • Опция для распределенной установки (чтобы ее можно было установить на сервер и использовать на других компьютерах)
  • Чистое удаление
  • Разумные схемы обновления
  • Возможность выбора места установки
  • Минимальная зависимость от другого программного обеспечения
  • Минимальный разброс данных по системе (не размещайте данные в /etc, /usr/lib, /var/adm, ...)
  • Никаких постоянно растущих бревен
  • Бесшумная установка
  • Установка по сценарию
  • Онлайновая документация (как на компьютере, так и в Интернете)
  • Возможно, справочные страницы
  • Простота настройки
  • Легко сделать доступным для конечных пользователей
  • Отсутствие рисков для безопасности
  • Отсутствие специальных пользователей или групп (или ограниченное число - не более одного специального пользователя, одна специальная группа является целью, хотя и не всегда достижимой)
  • Либо нет функции "домашний телефон", либо только в том случае, если она явно настроена (не должна быть установлена по умолчанию).
  • Хорошее протоколирование диагностики при возникновении проблемы
  • Хорошая техническая поддержка доступна, если возникнет проблема
  • Нет необходимости получать код активации во время установки
  • Нет необходимости перезагружать компьютер после установки
  • Возможность параллельного запуска старой и новой версий

Многое зависит от того, что это за программное обеспечение и как оно используется.Требования к программе с графическим интерфейсом, работающей в Windows, Linux и macOS X, радикально отличаются от требований к сетевому демону, но целью по-прежнему должно быть стабильное, надежное, легко управляемое программное обеспечение.

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

Другие советы

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

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

  

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

     

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

     

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

(В итоге выяснилось, что проблема в том, что приложение открыло соединение POP3, прочитало всю почту, дождалось, пока пользователь запланирует задачи, а затем отправило команду POP, чтобы удалить почту после того, как все запросы были было запланировано. Если пользователю потребовалось более 15 минут для составления расписания, время POP-соединения истекло, и приложение не смогло восстановиться, поэтому оно умерло. Вместо этого пользователю пришлось повторить планирование, то есть, вероятно, достаточно времени, чтобы снова выйти из режима ожидания ...)

Я думаю, что комбинация из следующих:

1) Порог емкости - > Какие машины требуется для запуска этого программного обеспечения и какие показатели следует использовать, чтобы определить, когда это число может измениться, например, от 2 до 3 серверов баз данных или от 10 до 15 веб-серверов. Насколько мощным должно быть оборудование, и имеет ли значение одна часть больше, чем другая, например, ЦП имеет большее значение, чем ОЗУ, а как насчет конфигурации и места на жестком диске?

2) Устранение неполадок в стиле поваренной книги - > Если что-то пойдет не так, как легко это можно отнести к коду, данным или сетевой ошибке.

3) Схема окружения - > Как выглядят разработчики, тестовые и производственные экземпляры этого программного обеспечения? Работают ли сейчас эти и, возможно, другие среды?

4) Техническое обслуживание - > Существуют ли файлы журналов для анализа отчетов, еженедельные журналы ошибок для отправки или какая-либо служебная работа, связанная с программным обеспечением, например перезагрузите сервер еженедельно.

5) Безопасность - > Нужно ли создавать и управлять учетными записями, а также политику безопасности, чтобы определить, кто обладает определенными полномочиями в системе.

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

Системные администраторы обычно хотят следующего:

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

Что система просто работает, чтобы он мог пойти домой к детям.

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

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

Несколько случайных вещей, которые, я думаю, было бы неплохо иметь в приложении:

  • Значимые аргументы командной строки
  • Какие-то возможности написания сценариев (при необходимости)
  • Любой индикатор прогресса для длительных операций
  • Ведение журнала ошибок
  • Согласованный пользовательский интерфейс

Простое обслуживание пакетов!

Устанавливать и обновлять программное обеспечение должно быть просто умственно, и это касается и зависимостей. Если имеется много зависимостей и под-зависимостей, и вы не склонны осваивать нюансы методологии управления пакетами каждой операционной системы, было бы неплохо предложить версию пакета со всеми необходимыми зависимостями, объединенными в гигантский архив , Запустите скрипт, поместите все это в / usr / local / yourproject и скажите им, где находится скрипт запуска / выключения / перезапуска.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top