While studying rank dynamics, we have found a universal pattern across a broad variety of phenomena: more relevant elements change their rank slower than the majority of elements. Our hypothesis was that this temporal heterogeneity provides a balance between robustness (slow) and adaptability (fast) similar to criticality, but without the need of fine-tuning parameters.
With this motivation, we have studied the effect of different types of heterogeneity (structural, temporal, and functional) in complex systems, and shown that each of these "extend" criticality. We have also used heterogeneity as a simple strategy to improve search algorithms. A question remains open: how to find "optimal" heterogeneity?