I try to have my villagers be great at one thing and adept at two more things. This is because when there is a project that needs to get done, if you change their "preferred skill" they'll keep working on that. Also you need "backup villagers" so that if, for example, your doctor gets sick, you have another doctor that can cure him or her.