On the
recent Q&A we were told that the reason why specialists don't always work in the job their specialists in is because (bugs aside) the AI will sometimes prioritise assigning colonists to jobs based on the needs of the colony, rather than where they are most efficient based on specialisation. For example, suppose you have only one botanist, but three medics. The game ai might choose to assign a medic to a farm, even though the infirmary has open work slots, because one botanist is not enough to upkeep the food demands of the colony. However, I think that this is one of those cases where the desire to minimise micro-management through ai input actually leads to more unforeseen micro-management. The problem arises because the player is not aware of the ai's decision procedure, and even if they are aware, they may disagree with it. To me this just seems like a bad idea: game mechanics should be transparent, and if the ai is making complex decisions based on colony need, then those mechanics are hidden. The fact that a player may disagree with the ai's decision is an even bigger problem, because its paternalistic and leads to frustration. Given this, I think it's imperative to give the player the option to easily overwrite the ai's decisions. If the colony starts to run badly as a result of overruling the ai's decision then that is the player's fault, and they can always revert if need be. This way the game will actually teach the player how the ai works, which makes the mechanics more transparent.
You are right when you say the game doesn't teach you how to handle this,it should simply tell you that "You have too much work to do and not enough people, and this is BAD", but it rather warn you when you have unemployed people, wich is actually the solution to the problem, and not an issue at all unless you have problems feeding useless people.
When you right click on a worker slot, if there is a worker, he is "fired", if there is none, the slot is closed.
If you are adamant in wanting to overwrite the AI balancing process, this simple function already provides all you actually need to enforce any worker settings :
In your example, you just have to close the uneeded botanist slots to solve the "issue." I put quotes because this kind of problem, when it arise , is the least of your worries.
The AI is forced to balance the works poorly in regard to speciality when you have to many workslots and not enough workforce, having enough workforce , and even a little unemployement which would act as a buffer, should solves any issue regarding microing jobs, because a worker doing the wrong job is still infinitely more efficient than a void slot in term of productivity , the moral malus is negligeable if you provide basic services, and it will solve itslef quite fast with university.
Non specialist become a really good resource once you have an university, a buffer of future specialised people adapted to your actual needs.
edit : It is actually like an Offer/demand issue, just like IRL, if the unemployement is inexistant and the job demand is too high compared to the workforce offer, the job selectivity will drop, as companies will take anyone agreeing to work for them as there is so little people available. When unemployement is high, unspecialized people will struggle hard to find jobs, and company will be more selective and have access to a better pool of workers qualitatively and quantitatively . It's a simplistic analogy only to illustrate the correlation between workforce/job balance, and the adequacy of jobs assignements.
I'm even ok with this as long as the AI swaps people in the right position after the first quick setup.
The case of fulls jobs switching issue may actually be a real bug or a lack of IA reactivity, in my case I succesfully forced it each time I wanted to by pausing the game, and simply firing the two wrongly assigned workers, the IA almost instantly put them back were they belong once the game is unpaused, it is like forcing "the first quick setup."