In the course, when using when conditions to determine when to skip a process or stage, we use reverse logic, for example Selecting when Remote Employee is False versus True. Why do we sometimes use reverse logic in these comparators?
The logic is generally driven by the business need. The system is evaluating the statement "if [condition] is true, then skip this process", but that condition can be manipulated with Boolean operators, such as AND, OR, and NOT.
Consider a situation where there are four employee statuses, but only one status doesn't require an additional process to assign a permanent cubicle - for example the employee might:
Base out of a single office, requiring an assigned cubicle in that "home office".
Switch between two offices, requiring an assigned cubicle in each "home office".
Travel a significant amount of time, but still requires an assigned cubicle in their "home office".
Work remotely 100% of the time, and not have any "home office".
If the case contains a process for assigning the employee to a specific cubicle in a home office, then only one condition would warrant skipping that process - condition 4, where the employee is truly remote and is not assigned a cubicle. In this case, you would test the condition "if employee is remote", and if that condition is true, then skip the process.
Now, let's say that the company changes its policy so that employees who meet conditions 2 and three are no longer assigned a permanent cubicle. Instead, they're expected to work out of a common "hoteling" space in their current location. Now, only employees who meet condition 1 require a permanent cubicle assignment.
In this case, you have two options for configuring the logic: you can identify the three conditions that return a TRUE result (the justification for skipping the process), or you can identify the one condition that returns a FALSE result, and do a Boolean NOT operation to return a TRUE result when that condition is not satisfied. In other words:
Is 2 or 3 or 4 = Is NOT 1
So, the decision comes down to which set of logic is more maintainable. For example, an insurance company underwriting policies in the United States may need to account for variations the process on a state-by-state process. If California requires a unique standard, and the remaining 49 states require a different, common standard, then it's more maintainable to test whether or not the state is California, rather than testing whether the state is any of the other 49 states.
TL; DR (Too Long; Didn't Read): it comes down to identifying the approach that allows you to create a more maintainable condition.
I know that was a lot of information, but hopefully the explanation helped to answer your question.
Also, there's another reversal of logic on skipped processes and stages, but in a different context. In this second context, the reversal is due to the difference between applying a condition on a process as opposed to a stage.
For a process, the decision is when to start the process. For a stage, the decision is whether to skip the stage.
When applying a condition to a process, a TRUE result starts the process.
When applying a condition to a stage, a TRUE result skips the stage.
If you were to perform the same test on a process and a stage, you would see very different results.