The SimSpace platform allows organizations to create cyber ranges – virtualized scale models of network environments used for training and testing. Using a cyber range (and therefore using SimSpace) requires virtual computing resources (e.g., vCPU and vRAM). To better manage the use of resources within their organization, our largest customer asked that we build a quota system, which would enable usage limits on the groups within the organization, and also allow the leaders within those groups to impose usage limits on subgroups if needed.
I worked with another designer on a cross-functional product team, consisting of:
To start, we worked with our customer to better understand the problem and their needs. In this case, the customer was already attempting to impose resource quotas in a manual fashion, so we were able to discuss their process and its shortcomings. I worked with another designer and a product manager to come up with our initial set of questions, and we had a couple of calls with the customer for discussion.
Our key takeaways were:
After working with the customer to understand the problem space, we worked as a team to break down the problem. This involved a lot of collaboration with the engineering team, as we had to work with existing “Resource Manager” code for the project. Our primary output was a user flow diagram. This user flow established the basic model for resource quotas – a given resource could be allocated or placed “on hold,” meaning nobody can use it). Resources that are allocated can be guaranteed to a specific subgroup, meaning only that group can use them. Any resources that are allocated but not guaranteed to a particular group are placed in a “community pool,” meaning that any subgroup can use them on a first-come-first-served basis. We validated this approach with our customer before proceeding with designs.
I also created some more conceptual diagrams which helped to communicate our design intent with the quota system. These were helpful in providing a shared artifact during frequently abstract conversations about potential system behavior.
One particularly important user flow was the “adjust quotas” flow. This enables a Resource Manager to adjust a quota for a particular resource type within a specified date range (or indefinitely, if they wish). Based on the user flow, I did some initial pencil and paper sketching and LoFi designs using Balsamiq, and iterated based on design critique feedback.
Based on stakeholder feedback, I created a high fidelity clickable prototype of the adjust quotas flow.
The prototype snippet below shows some of the core interactions within the flow – making resources available or placing on hold, switching between percentages and units, and the automated validation within the adjust quotas page. As the total amount of allocated resource is updated (by clicking the green and red slider at the top of the page), the guaranteed values are automatically updated. Temporary blue highlighting indicates which values have been updated.
Our Resource Quotas solution was delivered to the customer, and so far we received positive feedback about the flexibility the system affords. We also received requests for additional functionality that are in a planning phase at the time of writing.