There needs to be a flaw, just like real life people. Even if the character means well or is trying to complete a particular goal, there has to be problems or some other kind of hardship.
I start with the main character first, developing him/her right down to physical description and mannerisms before even writing a word. Once I am confident I have a whole person I develop the second main character, using criteria that sometimes compliment sometimes clash with the hero/heroine. Just like real life.
Minor characters can be more wacky, I don't find they need to be as balanced or realistic. I also don't go into as much physical detail in my imagination, just keep a fuzzy image in my head.