Ideally, users are put into groups that somehow match the organizational structure and their job roles. Then, their group is assigned various permissions to access company assets, allowing them to perform their jobs. This sounds like a very logical way of working, but it has its limitations (and dangers).
Often, the permissions assigned to the ‘role group’ are based on consensus. Which means that some ‘special cases’ need some extra permissions. This could be a Subject Matter Expert (SME) in an area, who tests things before they are deployed to the rest of the team, someone with dedicated geographic responsibilities, or one person working part-time in two roles. The danger is that, when they change roles, they take these special permissions with them. Over time, they can build up a lot of special permissions (a phenomenon known as ‘Permissions Creep’). These edge cases build up throughout an organization, and it is inherently hard to assess their impact.