Sunday, February 12, 2012

Hi Jason!

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 help me.

My thanks in advance and my best wishes for your next awesome project ;)

Cheers! 



-----------------------------------------


Hi Jose,

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! :)

http://www.mroodles.com/wordpress/hacking/great-mistakes-in-technical-leadership-reprint/

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!
J