Why do software developers love complexity?