This is more than learning the domain to write the software; this is reflecting in code how the users of the software think and speak about their work. By encoding your understanding of the domain, you refine your knowledge and — due to code’s uncompromising need for precision — expose gaps in your knowledge that would otherwise result in bugs.

