Precedence, whereby features are serialized and execute sequentially in response to an event, is a common method for coordinating features that would otherwise interact. However, the effectiveness of precedence lies in the system designer's ability to order features such that their sequential execution results in desired system behaviour. The task of evaluating feature orderings is expensive: a set of n features means that there are n! feature orderings to consider.This paper shows how the cost of ordering features can be reduced by (1) clustering features into categories and ordering the feature categories – a smaller problem; (2) automating the ordering task by evaluating orders with respect to correctness criteria; and (3) optimizing the ordering task by rejecting outright any ordering that includes a suborder of features that are known to violate correctness criteria. We demonstrate our approach on a case study involving 381 telephony features from both academic and industrial sources. The paper also presents analytical arguments that relate the correctness of an ordering of feature categories to the correctness of a corresponding ordering of features.