Don’t ask for permission; ask for forgiveness

  • If it’s a good idea, and it doesn’t break anything - do it. It’s faster to do it and learn from mistakes.
  • Systems are inflexible by design. But are the only way to drive the organization. If the system accepts it - do it. If the system is broken - ask me to change it. Not everything can be improved right away. Be patient.
  • I forgive people trying to do things and making mistakes. I don’t forgive avoiding things.

Release early release often

  • Shipping early without getting feedback is stupidity. But shipping early just for listening to the customer’s feedback is the art of wisdom.
  • Be bold and ship an unpolished version; you are fighting with the market. Don’t criticize your colleges for shipping MVP.
  • Always share your proposals early to get initial feedback, before you invest more energy into finishing it.

Focus on things that give results

  • Working software beats the best proposals.
  • Written proposal beats every meeting.
  • Building prototypes beats thinking, if it’s worth doing it.

Meetings

  • Review your calendar every month.
  • Avoid being at meetings only for “just in case” / FOMO
  • Leave meetings where you don’t contribute to.
  • Only attend the meetings with clear goals. Be brave to give polite feedback on meetings which are waste of time.

Culture and Strategy

  • The culture of people beats executive strategy every day.
  • If you want to know the culture of the company, listen to the jokes, it tells the truth under the surface.
  • The only way to change the culture is to empower good parts of it.

People are not resources

The best team is the effect of training, not recruitment.

  • Don’t assume you will just get the best developers from the market. As a leader, your job is to develop and grow your team. Hire potential, and invest into people.
  • People will remember you for how you grew your team and what kind of teacher you have been. People remember managers, but they love great teachers.
  • Build a plan for the development of Junior, Mid, Senior, and Principal engineers. Most people don’t build plans not to specify points of failure.
  • If you want to make everyone happy, don’t become a leader. Good leaders make decisions that are good for the team in the long term, which can differ from individual goals.

Communication

  • Communication is such a crucial skill for the developer as the seven layers of the network stack are for microservices.
  • If you feel, that you’re good at communication, think again. Communication skills cover so many aspects of your job that it’s a never-ending skill to develop.
  • Invest in developing skills on how to do the best PR review, how to create good commit messages, take a course on how to write tech proposals, ADR, write concise documentation, make screencasts, and even the art of convincing management to secure the budget.
  • Most of the “the product were great, but management has killed it” problems might come from not understanding how to communicate its features, progress, and problems.
  • Invest every year in building up your communication superpowers.