NOTE: This is part of the tech lead academy series. This post contains mostly raw notes from the course I took from Kent Beck.

This session is about project management and being a tech lead - and how you can impact your projects as a lead.

As a lead, your job is to make your teammates successful and help them execute. Your success now depends on others, and their success depends on you.

We'll cover four things today:

  1. What's a project?
  2. Planning
  3. Working
  4. Ending

What's a project?

A project has five components:

1. A start and an end

We're generally pretty bad at this at Facebook (per the speaker, at that time)

There must be a definable time period - if not, it's not a project!

As an example, "improve performance" or "improve efficiency" is not a project. Those don't have a clear end goal, so there's no accomplishment for being done. This is a recipe for burnout.

2. Goals and metrics

Projects need to have clear goals.

Company, product, and project goals are all different. Make sure you focus on the right ones, as the higher level goals are often not actionable. It's your job to turn an aspirational goal into a concrete thing which is actionable and achievable.

Note that there are common confusions between goals and metrics. For example, "move metric X by Y%" is a crappy goal! You'll end up focusing on the metric changes and lose sight of the end goal you wanted to achieve.

3. Stakeholders

These are people who have a vested interest in your success. It's important to know your audience and keep these folks happy throughout the duration of your project.

4. Team members

Remember, you're on the same team as the rest of the people on your team.

You need to step up and take the lead here, and not defer it all to your manager. Oftentimes, you'll get actionable data and insights (even complaints!) since you are on the ground and your manager won't get it.

You're not building the team or directly responsible for it, but you have a chance to have great impact by helping the team get built. As a TL, you're given the benefit of the doubt to make things work.

5. Communication Plan

You need to know who knows what by when. This needs to be negotiated ahead of time. People screw this up, even though it's really important and critical to success.

Planning

Planning is crucial to the success of any project.

First, start by clearly defining your goals. Then, make a plan to execute on them.

Note that it's important to have somewhat proper estimates with dates attached. When you're not tightly bound to a date, you can avoid a lot of stress, but it's really important to have dated milestones along the way to keep things on track.

Showing progress is important - and the key way to demonstrate impact.

Working

As a TL, you'll also be working with EMs and PMs on your project. Successful collaborations are necessary.

It's important to clarify roles: figure out upfront what you want to do, and what they want to do. Try not to step on each others' toes; communicate and play to everyone's strengths. You have other options - don't take away their opportunities for impact!

Try to focus the team towards the goal - create a successful environment for it. Make sure people on the team are happy, notice the subtle interactions as you work.

Follow through: make sure people are getting their work done. Holding people accountable helps them get work done (some more than others); figuring out the right cadence for updates for each person is important.

Handle problems and changes: Unforeseen issues will always come up. The only way to deal with problems 99% of the time is to budget extra time from the start.

Ending

We're generally pretty bad at this at Facebook (per the speaker, at that time)

At the end, ask yourself: have we hit our goals and dates?

People will not be happy nor stay without recognition. So, give people kudos, write thank yous, and celebrate (don't forget this!). This is important, and sets people up for the next project. People need a party. To keep expectations set properly, don't overdo this - reserve the large celebrations for big projects/goals 'worth' celebrating, and not for every little thing.

As a corollary, when something is going horribly, stop it upfront! Do a postmortem, figure out lessons learned, fix the problems and avoid the mistakes next time. Then move on to your next project. The most important thing here, though, is to do it in a blameless manner. Blame the system, the process, whatever - but never an individual or team.