Theres no such thing. You can never label people as 'Good' or 'Bad'. They either fit the situation or they don't. (This doesn't really have any bearing on what is to follow. Just wanted it out of my mind)
An example. I was working on an assignment during my OOD class which was due in a month. Couple of guys approached me to see if they could team up with me for the assignment which was a machine problem, which basically meant that you had to write some code & make stuff work in a specific way. One of them, I'll call him Bob... for no reason. Why would anybody be called Bob for that matter? Ahem... so Bob shows me a piece of code during class & says he's figured out a big chunk of the problem & if I work with him, I could really take it easy. Among the first few lines, I spotted the following:
//Status (none, active, finished - default value is false)
public String status;
I didn't have to read too much more.