We have always been told to work on our weaknesses. And I think in general that is good advice, but lately I have seen more and more people talk about focusing on their strengths or focus on what you do right (warning, I just bought Switch: How to Change Things When Change Is Hard). And I do think this is excellent advice.
I had one employee who would get grouchy at times (especially if she felt she was dealing with incompetence or stupidity – you've meet these types of people before right? "old grouchy man" in a young persons body), but she did a great job most of the time and was well liked by her peers. I talked about this employee before in my The Rules for Managing People post. I took her from a front line role, where she could get into trouble and moved her to a tier 3 role where she excelled. She would study at night and on weekends to strengthen her technical skills to be better at tier 3 support. Later she even took on a QA role to help stop some of the customer support issues we were experiencing. I could have worked with the employee to improve their attitude (and I did and continued to do so honestly), but it would have been a battle for both of us. It would get better for a few days, but then the employee would slip back into their normal behavior. Frustrating for the employee and frustrating for me. I would have ended up having to fire the employee I bet. But by focusing on their strengths and what they did well, I ended up with an awesome Tier 3 support person and later the best QA person the company had.
I focused on what this employee did well and their strengths and in the end it was rewarding for the employee and for the company (and, honestly, for me too). I could have focused on what was wrong and tried to "fix it." But I don't think I would have ended up with even close to the same results.