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

Из ленты: Михаил Смирнов

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

Обычно они не имеют доступа как к данным, размещенным в этих системах, так и к различным сервисам и настройкам.

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

Обновление, настройка и мониторинг рабочих систем в этом случае, как правило, выполняется администраторами.

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

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

А именно:

  1. Часто у рабочей группы в этом случае нет возможности работать с тестовыми данными или действиями пользователей или средой идентичными рабочим. Причем, часто характер этих данных или действий может быть такой, что может быть довольно трудно осуществить генерацию таких тестовых данных, чтобы они по своему характеру могли соответствовать реальным. Это может приводить к разработке не самых оптимальных решений, созданных без учета реальной картины.
  2. У рабочей группы нет возможности осуществлять обнаружение и устранение проблем еще до момента их появления. Мониторинг работы систем, выполняемый администраторами, как правило работает уже по факту появления проблем, а не для их предотвращения заранее. Особенно это касается вопросов производительности, оптимизации и тому подобных вещей.
  3. У рабочей группы нет возможности корректировать действия пользователей, анализируя ту ситуацию с данными, которая у них сложилась. Особенно это касается систем с большим объемом пользовательских данных.
  4. Такой подходит снижает скорость и качество устранения проблем. Информация о проблемах, передаваемых от администраторов или службы поддержки, часто бывает неполной или искаженной и не дает возможности проанализировать и устранить проблему. Это проводит к запросам дополнительной информации о проблеме и т.д.
    В результате время работы над проблемой увеличивается.

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

Конечно, в ряде случаев, рабочие системы содержат данные, которые не желательны к распространению. Но все-равно, невозможно на все 100% закрыть доступ к этим данным. Кто-то (администраторы, служба поддержки) все равно смогут при желании получить к ним доступ. Так что здесь уже возникают вопросы доверия своей команде и юридического оформления неразглашения.

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

Источник