Skip to content

Instantly share code, notes, and snippets.

@Mercandj
Last active January 20, 2022 10:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Mercandj/4915f8b452cea0bb534a95cde01cd703 to your computer and use it in GitHub Desktop.
Save Mercandj/4915f8b452cea0bb534a95cde01cd703 to your computer and use it in GitHub Desktop.

Manager: Principles

Imagine you are a tech manager, as a tech manager here some principles:

Principles

# 5 Principles
1 Promote your CTO principles about code
2 Lead by example
3 Great impact: choose your fights
4 Motivate your team
5 Communicate

Details

1. Promote your CTO principles about code

You will manage developers. So as a manager you will be responsible of the "code". "Code" is not only the basic lines of code, but also the architecture. Lot of "code" principles are also good for your team overall spirit.

  • Split concerns to avoid strong dependencies.
  • Test your work
  • Think before code!

Why does the "code" matters? Because code is directly the principal cause to:

  • Have great dev happiness
  • Respect deadlines
  • Be able to have estimations that are constant across the project lifetime. No debt! And you do not want to have your developers talking about refacto / clean. Refacto, clean, test should be continually done. Take the Nasa Apollo team that wrote LunarLander software: tests done the morning, and code impl the afternoon, that's it.

In order to have scallable code, follow Robert C. Martin principles like explained on these videos

2. Lead by example?

As a manager, you should understand the work of your team mate. Even if your job is a little bit different, you are a member of the team!

Apply the same rules to you that you want other to follow.

So even as a manager, my advice is to continue to code/review-code if possible. The goal is to not loose contact with the root of the techno and with your team.

IMPORTANT: This point "lead by example" can be dangerous because that make a strong dependance with the manager.

3. Great impact: choose your fights

Tasks do not have same impact on the Team, Business, Product. Focus your combat to what's matter.

4. Motivate your team

You will be responsible of the product as much as the team. Motivation is a key part to success.

To motivate your team, here are some example I follow:

4.a. Friday presentation

1h tech pesentation every 2 week the Friday. We call it "Friday presentation". That's a presentation open to any team mate. The subject could be tech, product, business, new techno.

Here are some example of subject presented:

  • Concept: Modularisation
  • Concept: Fail Fast
  • New techno: Jetpack Compose
  • New techno: Kotlin Multiplatform

4.b. Channel about new techno

On your Slack/Mattermost, keep a channel open where anyone can post new techno.

4.c. Be motivated yourself and share with other

Motivation is a self-discipline.

For example, last weekend, I participated to a Google challenge on a new techno. So I shared with my team the final result. Challenge like that is a great source of motivation. Other team mate have done the same challenge, that was great to compare 😀

5. Communicate

Last but not least, the most difficult, communicate!

Here are my tips:

  • Schedule meet with the whole team every 1/2 weeks
  • If remote: too much communication 1/1 is better that few
  • Currate your words carefully, do not spam people so, again, chose your fight.
  • Merge Request MR / PR
    • Do not over communicate. Remember that infinite debate is a developer attribute.
    • Do not forget "Linus Torvalds non-example": learn empathy. Try to anticipate and discuss before code is done. Highlight only major points in MR. Progressively, thank to the pre-discussion, you will have less and less comment in MR.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment