| This is a throw-away account. I have been diagnosed with autism spectrum disorder and don't disclose that to the community or my employers. My advice might be helpful as people with my condition have difficulty in the workplace. A part of becoming a senior/lead developer is, in my experience, largely a social endeavor. At some point the problems one faces are not tractable for a single engineer to face alone. There is a finite limit on your time and many unknown problems that can overwhelm even the most astute and exemplary developer cannot be avoided. This is where you need to learn to delegate responsibility for certain tasks to other team members and learn to lead everyone in the right direction towards a common goal. Your intuitions are correct: this is a skill you will have to learn and good on you for asking for advice. I treat it like another engineering problem: a distributed consensus protocol with high latency in the average case. For reading material other people have recommended _How to Win Friends and Influence People_. I have found the advice in this book to be practical for dealing with interpersonal relationships in the workplace and learning how to gain and use influence. Influence is a social currency that I have found to be effective in negotiating disagreements and convincing people to adopt your ideas. For learning how to work in a team as a leader or manager I also recommend _Extreme Ownership_ by Jocko Willinck [0]. It has provided me a framework to use which has been helpful as my career has transitioned into leadership and management. I have been fortunate enough that my team has been receptive to these practices although getting there has been difficult. One of the harder lessons to learn is how to deliver constructive criticism and feedback in an engineering context. This is especially difficult for someone like me when communicating with junior engineers on my team in code review. It's one of my greater weaknesses but is sometimes an asset when I do succeed at showing someone why type theory matters or how an appropriate use of a data structure can improve performance. The problem I have the most difficulty with is when a senior colleague on my team insists on a factually incorrect assertion and forces their opinion by using misleading questions and rhetoric. Unfortunately I have not come across any books or courses on constructive criticism to share. I do find the Recurse Center's Code of Conduct to be a good guide as well: https://www.recurse.com/code-of-conduct [0] https://www.goodreads.com/book/show/23848190-extreme-ownersh... Dealing with people is challenging and exhausting however having a framework for interactions and setting expectations ahead of time helps make these challenges po |
I strongly recommend the book Thanks for the Feedback: The Science and Art of Receiving Feedback Well by Douglas Stone and Sheila Heen. It lays out a framework for both giving and receiving feedback.
I also recommend their earlier work Difficult Conversations: How to Discuss What Matters Most. In it they present a psychologically astute picture of what's really going on in conversations that make us feel uncomfortable, and they do so using examples, language and priorities of the workplace. They give very good advice for preparing for and navigating these conversations.
Here is a study guide they created for people who want to practice the book's strategies:
https://triadconsultinggroup.com/sites/default/files/Small%2...
I've actually been thinking about starting a meetup to find people to practice this stuff with.