I am curious to know who writes their own programs versus having someone else train them/write their program?