Вы правы, вопрос не только технический. Ниже привожу общий план действий; напоминаю, что для вашей конкретной ситуации нужно обращаться к законодательству и вашему консультанту.
Первый шаг — это инвентаризация. Какие персональные данные, с какой целью, на каком правовом основании вы обрабатываете; где они хранятся, кто имеет доступ, как долго хранятся, кому передаются. Без этой таблицы любые дальнейшие шаги будут неэффективны.
Второй шаг — цель и соразмерность. Самая частая ошибка в софт-проектах, которую я вижу, — сбор лишних полей «на всякий случай». Данные, которые не собираются, не нужно и защищать. У каждого поля в форме должно быть обоснование.
Третий шаг — информирование и, если требуется, явное согласие. То, когда и как они собираются, — часть интерфейса, а не галочка, добавленная потом. Поэтому с разработчиком нужно обсуждать это на раннем этапе.
Четвертый шаг — хранение и уничтожение. Должно быть прописано, сколько времени хранятся данные и что происходит по истечении срока, и это должно быть реализовано в софте. В системе без функции удаления политика уничтожения остается только на бумаге.
Пятый шаг — обращения субъектов данных. Нужно определить, кто, в какие сроки и по какому каналу будет реагировать, если человек запросит свои данные или попросит их удалить. Проверьте, поддерживает ли софт это, и пропишите в ТЗ.
И наконец, в договор с разработчиком нужно включить положения об обработке данных; если у вашего подрядчика есть доступ к данным, рамки этого взаимодействия должны быть зафиксированы письменно.