Being a team lead, one would take it as his duty to bring out the best in his team (STE’s who work under you). How do you manage to do that? Do you (or Leads/Managers at Microsoft) manage to identify certain weaknesses/strengths in your STE’s and help them improve upon it or are they just evaluated at the end of a release? If you do help them improve day in day out, I would like to hear more from you on this process.
Apoorva is exactly right that as a lead my job is all about helping each member of my team be the best they can be. Microsoft very much believes that growing your skills is rather similar to tending a garden: you can scatter some seeds around and then leave them to their own devices, in which case you might luck into a good harvest,or you can carefully plan what goes where, plant the seeds at the right times using the right techniques, and weed, fertilize, and irrigate the crop as it grows, in which case a good harvest is much more likely. If you ignore your people but for a review after your product releases you might luck into some good people, but if you continuously help them figure out what their goals are and do everything you can to help them reach them, you are much more likely to end up with great people.
We do this in a variety of ways. First and foremost are the bi-yearly reviews. These ensure that each person spends at least a little bit of time twice a year thinking about where they want their career to go and how to get it there. This is especially true for the mid-year review (which is going on right now…it’s mid-fiscal-year I guess). This review is all about career goals and desires. No bonuses or raises are at stake; those are handed out at the end-of-summer review. Promotions aren’t at stake either, as those can happen anytime throughout the year. This time is dedicated to having a discussion about careers, goals, aspirations, and performance.
Theoretically this review isn’t even necessary, as these discussions should be taking place throughout the year. I have a Technical 1:1 with each of my team members every month where we talk about their technical goals and such; people managers generally have 1:1s with their direct reports each week where they do the same in a broader context. Career discussions are an important topic during these meetings. To some extent goals and tasks are driven by what the person is interested in, but they also must take into account the set of skills, competencies, and abilities Microsoft has defined for each level of each career path (e.g., tester, test lead, test technical lead) that the person must master in order to be promoted to the next level. Smart people usually have an idea what they need to work on, but we all have blind spots as well. Thus while I’ll ask each member of my team what they want to work on I also do my own evaluation and make suggestions as to what they need to work on. Feedback from people they work with outside our team (such as division-wide task forces) is very helpful here as well.
What it all comes down to is simply taking an interest in my people and doing everything in my power to help their dreams come true. Continuous dialog between the two of us is the key to making that happen.
*** Comments, questions, feedback? Want a fun job on a great team? Send two coding samples and an explanation of why you chose them, and of course your resume, to me at michhu at microsoft dot com. I need a tester and my team needs program managers. Great coding skills required for all positions.