I am building a portal for company users or single license users to manage their account for a 3D CAD application.
Due to low resources and lack of information on the project, the architecture was build in a way that we do not allow a a license to not be assigned, so whatever license exists it needs to be always assigned to a user.
If you have 150 licenses (this is a real case) all licenses will be assigned to either account owner or member.
Preliminary testing with MVP:
- Confusion with the license cannot be disconnected from someone
- No indication that license is unassigned.
- It does not inform the administrator (account owner) that the license is free to be given to someone.
- When a team is big, it is even more confusing (I tested myself and I was lost).
Now, the second architecture solution would require significant change (higher dev costs):
To make able for a license to display as unassigned the license would have to be floating, so it still belongs to the company, so it is not used by anyone.
Major complications from this solution: the software uses a security dongle and has lots of security triggers that require the user to unlock (not just first-time run, but every 6 months and also with subscription renewal).
If the license is not assigned, that means the user will get another barrier that didn't exist before (worse experience) and will not be able to use the software he purchased, unless he/she assigns to himself. Including single license users who don't have a team, they will need to assign the license via a portal to allow themselves in order to use it, on top of activating it.
The business model is perpetual but also allows subscription for new features. With limited dev resources, we need to build backward compatibility to support old existing installations that do not want to upgrade.
The current that is running is failing due to technical debt, so major changes in the desktop application to have a bidirectional connection (like a login via software) is not possible.