How do software engineers understand code changes? | Synapse