We have an app that allows the user to add multiple services. Example, as a user, I'm able to add multiple "Teachers" to a job that I've created. So essentially, these teachers will be working on one this one job that I created.

The first teachers will default as the "Primary" service.

Sometimes, we need to cancel a teacher if they are no longer able to make it to the job.

If there are only 2 teachers and the primary one gets cancelled, the 2nd teacher assumes primary status (because obviously, that's the only remaining one).

If there are 3 teachers though and the primary one gets cancelled, what's the best approach?

  1. Disallow the user to cancel the primary teacher until they select a new primary teacher between the 2 remaining ones

  2. Automatically assign primary to the teacher that was created next/soonest

  • 1
    Does the user ever get to select between primary and alternate teachers for a job, or does the system do assignments? There could be a difference in context between "send a new painting teacher to my lesson" or "assign a new teacher for my child in the third grade." Thanks!
    – Izquierdo
    Jul 7, 2022 at 21:04
  • This really sounds like an "ask the user" problem — I don't see how else this can be solved but asking the user. Ratings might be okay but then some people might have a preferred alternate teacher that doesn't have a higher rating for whatever reason, etc. Jul 8, 2022 at 1:46
  • What does "primary" actually mean? Is this important for the service/system or for the user? If it is important to the user, add the services in order and let the user reorder them. Otherwise randomize it, or follow business requirements.
    – jazZRo
    Jul 8, 2022 at 8:17

2 Answers 2


Ask the user at the moment they're attempting to delete the existing primary which should be the new primary service.

Delete confirmation modal with a select menu to choose a new primary


Dont you have teachers rating. As ideally how can you assign a teacher primary status unless you know who is the best.

Having a rating will let the system choose on its own whom to assign primary status. But if that is missing, I guess the default should be random as then all teachers are equally likely.

  • Unfortunately, there are no ratings or anything of that sort for now. Date/time created is all we have.
    – J Bo
    Jul 7, 2022 at 23:17
  • then the selection of primary teacher should be random Jul 8, 2022 at 12:48
  • I disagree that randomness is a good solution here. The user is never going to be able to expect what's going to happen next. (Also, hypothetically, if the selection of a teacher initiates other downstream events—for example, sending notifications, updating calendars/schedules/payroll, etc.—then this could spur unexpected/undesired side effects.) I think it'd be much neater for this to be handled in a controlled manner. The user performing the deletion should also likely be a user who knows enough about the system to be able to make an informed decision on a replacement. Jul 8, 2022 at 15:21
  • You are assuming the primary teacher is well versed with the quality of other teachers,and he/she can assign his/her status to anyone. you might be correct, but thats a speculation right Jul 8, 2022 at 18:32
  • @Beans If I were you, I would still put a logic to primary allotment than a random one. Some ways to do it would be 1. Assuming that the longer a teacher is on the platfom he/she is more experienced and based on the time pressence on platform assign her/him the primary status. 2. You can build an AI on the backend where you track users browsing behaviour and see which teacher is selected the most by the students. 3. Best option would be to add simple star ratings on the application, and give weightage to star rating means a 5 star is good but is dependent on number of users as well Jul 8, 2022 at 18:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.