Once we have defined the processes we want to capture within our CRM system and we have begun our design and captured a user's usage scenarios, we often find places where custom code can help with automating some user processes to make them more efficient or enforce data validation.