1. A method of configuring a software product comprising: determining a specific user role via a configuration controller; accessing a user model via the configuration controller, the user model defining one or more user roles and one or more tasks, each task linked to a role, the user model comprising one or more objects and one or more artifacts, each object defining a concept and linked to at least one task and each artifact defining a physical structure and linked to at least one object; accessing a task to software function map via the configuration controller, the map defining one or more software functions of the software product and one or more tasks, each software function linked to a task; configuring the software product via the configuration controller, so that access to the software product according to the specific user role is via a user interface supporting the software functions linked to the specific role via the tasks; updating the user model via an update facility, and; re-configuring said software product with the updated user model via the configuration controller.