This paper reviews the vast literature on static output feedback design for linear time-invariant systems including classical results and recent developments. In particular, we focus on static output feedback synthesis with performance specifications, structured static output feedback, and robustness. The paper provides a comprehensive review on existing design approaches including iterative linear matrix inequalities heuristics, linear matrix inequalities with rank constraints, methods with decoupled Lyapunov matrices, and non-Lyapunov-based approaches. We describe the main difficulties of dealing with static output feedback design and summarize the main features, advantages, and limitations of existing design methods.