Если он добавляет сам, то нужна модерация, после этого другие пользователи смогут выбирать эту профессию, так вы получаете еще и наполнение базы профессий.
Пользователь - это человек, зашедший на сайт и выполняющий какой-либо сценарий его использования, например, вход в личный кабинет, составление плана квартиры и тд
Нужно составить описание системы с точки зрения пользователя (что можно сделать в этой системе), также для анализа технологии понадобится веб разработчик.
можно пространство представить в виде параллелепипедов (одинаковых), затем генерить случайное число в диапазоне индексов таких ячеек и проверять, разместили ли мы туда объект или нет
Есть участники процесса разработки: Заказчик, Руководитель проекта, Бизнес аналитик, Системный аналитик, Разработчик, Тестировщик и тд (возможны еще Дизайнер, Верстальщик, Архитектор). Также возможно совмещение ролей одним человеком. Руководитель проекта должен четко понимать кто из участников за что отвечает. Скажем, Заказчик в простейшем виде описывает бизнес требования к системе (на уровне, хочу, чтобы на сайте был чат), Бизнес аналитик готовит по требованию Заказчика подробное описание сценариев работы функционала (фактически готовит документ бизнес анализа ), Системный аналитик расписывает функционал на уровне системы (то есть понятной разработчику), Разработчик уточняет возникшие вопросы с аналитиками, оценивает сроки доработок, Тестировщик проверяет задачу. Руководитель проекта контролирует все активности участников процесса разработки (трудозатраты, сроки, деньги), отчитывается перед Заказчиком. В качестве методологии разработки можно использовать Scrum, тогда РП может выступить еще и Scrum мастером.