Advice for the new Tech Lead

This post has been a long time coming. It would be nice to say that I’m speaking from a position of supreme confidence. However, I’m not; and this this post offers a menagerie of unpolished, not-fully-formed pieces of advice that I’d proffer to you if you’re just getting into the role of a Technical Lead. The title can be amorphous, and in many workplaces, doesn’t even hold much of a meaning. But, hopefully, thinking along the lines I’ve jotted down here, might give you some food for thought. I will expand on these in future posts, with links to the details.

The Realities of Distributed Development

  • Time zones and the resulting time lag between teams.
  • Chinese whispers and Information Loss
  • Perceptions

Distractions will Happen(or, Deal with It)

  • Things go Boom all the time.
  • If you have to focus, find a safe place.
  • Delegation is not an admission of defeat.

You will not Remember Everything (Or, Jot It Down)

  • Write, write, write.
  • Revise and Discard.

Voices on the Phone (are kinder than they appear)

  • Perception and Geography

Go Meta (or, Look at the Product, not the Project)

  • Think in terms of business goals and how day-to-day work as features/cards/stories achieve business goals.
  • Understand the business functionality from the end user perspective (imagine yourself in the end user’s shoes).
  • Know how the business will make money.

Push for Change(and know when not to)

Develop your own Mental Framework (or, Structure your Thought Process)

  • Build candidate frameworks
    • Different sets of factors for different domains
    • Compare things constantly to solidify your thinking.

Be the Translator (or, Expand your Circle)

  • Technical and Business

Watch for Opportunities (or, even boring Projects have hidden things for you to learn)

  • Offer to help
  • Be prepared to invest your own time in Learning/Trying out New Things.

Stay in Touch (or, you’re still a hacker at heart)

  • Do code review
  • Share
  • Spike things to try on the project

Don’t Drown (or, Stay Ahead of what is happening Right Now)

  • Day-to-day minutae
  • Think: What are the Blockers for this Release?
  • Think: What other things might expand this account?

Always have multiple options for something

  • Never rely on the first option that comes to mind.
  • Think of pros and cons of each option.

Keep track of all invariants in the system (both technical and functional)

  • Establish invariants
  • Identify when the invariants are broken and what will be the impact.