I am Jose Antonio, I wrote you a couple of years ago to ask you some
advice about how I could be a better professional. Your advice were
really useful for me in the past and now I am having a lead programmer
position in AiGameDev.com.
I would like improve my skills as lead programmer, which I think that
takes more that the simple technical skills. I would really appreciate
if you give me any advice to improve my role as lead programmer by
telling me what you consider a lead programmer should do.
I really would be also interested in listen something about how I can
communicate better with my team. I would like to know also if you have
any recommended reading for this purpose or any book you think it can
My thanks in advance and my best wishes for your next awesome project ;)
Sorry I didn't get back to you sooner. I understand the difficulties in
making the transition from the role of engineer to that of technical
leader. Here's a great article which sums up most of what I've learned
about being a good tech. lead. And I'm still learning! :)
At Naughty Dog, our approach is to keep the interpersonal relationships
open, honest, respectful, and always focused on solving the problems
that we need to solve in order to ship a great game (rather than getting
side-tracked by irrelevant issues). That means trying our best to
check our egos at the door. We always aim to criticize IDEAS, never
people. To make sure everyone on the team feels like they have a voice,
and to communicate clearly that great ideas can come from anywhere
within the team (not just "the top"). We encourage everyone on the team
to take a leadership role -- to "own" the tasks for which they are
responsible, and to act like "producers," making sure that their tasks
are completed to a high level of quality every time.
I look at my role as a technical leader in much the same way that a lead
alto sax player fits into a jazz band... he or she is playing in the
band along with everyone else, but he or she also serves as a sort of
guidepost, to help keep the entire band playing in time and on cue.
That's really it -- set a good example, help to make sure everyone is
communicating, remove any road blocks, and then get out of the way and
trust your team to get the job done.
I hope this helps. At the end of the day, the only way to learn this stuff is to try (and fail many times!)
All the best!