Today we have a bit of an "inside-baseball" update. It's been weeks in development but will have a very minimal impact on the user experience.
The headline is that nothing much has changed except that the page that you can view a user at has changed from something like
/teams/11/memberships/396 to something like
The Long version
The back story is that when we first came up with the architecture behind Progression we assumed that user management would be centered around the idea of a
Team would have an owner and would manage the other people in the team as well the framework content.
From this we created the concept of a
Membership which represented a person's relationship with a
Membership specified the position the user had in the team and the user's manger.
This lead to some unintended consequences, where in order to have a manger, a user had to be a member of team and a user's manager had to be in the same team. As we've taken on more customers we've realised this doesn't represent how their teams are structured.
We also discovered that the notion of reporting lines were nearly always more relevant to permissions than teams. For new features we've almost always created permissions based on a reporting lines rather than by team membership.
In this update we moved the manager relationship off the
Membership and on to what we call the
org_user a record which represents a user's connection to an
The rollout of this change helps us better define the
Team owner role as the person that looks after the framework and position content but not a person that can manage others, unless they happen to be another user's manager. (We appreciate the roles and permissions can get confusing so we'll shortly be rolling out a matrix view of these as part of our help docs.)
As well as the re-architecture, we've also taken this opportunity to increase the number and surface area of automated tests. All of which will be a solid foundation for future product development and help provide a more stable service.