4 ms·
I'm not huge of Bryan Cantrill's often provocative tone and advice. The author links to a talk by him where Bryan deliberately misdirects the audience so he can
by agentultra 8y ago
I'm not huge of Bryan Cantrill's often provocative tone and advice. The author links to a talk by him where Bryan deliberately misdirects the audience so he can introduce a false dichotomy about whether Software Engineering Middle Management is a toxin or a cancer. While fun if you're the kind of engineer that sneers at management I would hardly consider it a guiding post for becoming a leader.
Being a leader is hard. Being a good technical leader is harder. Programmers are like cats and their opinions are more important and refined than anyone else's. And I don't think it's sustainable to work in an environment where your every mistake or bad day will make you seem like a dipshit to your team. It can be demotivating to work under someone who has a toxic attitude problem, for sure, but it's also hard to be perfect all the time.
One thing I would add to the Humility and Empathy section is that you don't have to be all these things all the time. It's okay to have a low-energy week where you don't feel up to mentoring junior developers. It's normal to get frustrated when you review code that consistently exhibits the same patterns and bad habits you've been coaching your team out of for months. Part of building humility and empathy is creating a team where it's fine to be vulnerable: the team knows you're having an off week, that your energy is low, and they trust you that you're going to recover and bounce back from it.
- raehik 8y agoThat's a really interesting final point that I've been trying for a long time to ingrain in myself. If someone is grouchy or irritable, it might not be that they're a bad person, it could be simply a bad time, day, week. The best bit for me about being in a software team for the first time has been learning to work with people. Consistently tough but rewarding.
- fbn79 8y agoAbout "Humility and Empathy"... why not to try Whiplash(2014) movie teaching method?
- msoad 8y agoThis is a very good point! I'm trying become a better leader and reading this list was actually not motivating. I felt I had to be perfect all the time. I thought if I was this good I would start my own company instead of being a corporate cog.
- draw_down 8y agoYour last point is a really important one to me. Empathy and understanding move in many directions, one of which is realizing that humans aren't perfect, that they get frustrated or don't act perfectly genteel all the time. And to expect that from any person is not empathetic.
- abernard1 8y agoThere is an assumption here--one that Bryan Cantrill mentions in that toxin vs cancer talk--that management and leadership are the same. In my experience, they have nothing to do with one another. This is especially true with technical leadership. Having people whose primary concern is organizational stability leading technical decisions is a recipe for resentment and dysfunction. I would go even further and say if a person is concerned with making technical leadership decisions as opposed to people management decisions, they shouldn't be in "management". This includes being a CTO. Most CTOs are not as natural people managers as their VP Eng brethren, and CTOs are not best described as managers of other managers: they're entirely different roles.
- bluejekyll 8y agoIn your first paragraph you’re asking for more respect: > Software Engineering Middle Management is a toxin or a cancer. In your second it seems that you don’t respect those lower on the ladder: > Programmers are like cats and their opinions are more important and refined than anyone else's. As a leader it’s important to distill good ideas from bad and be able to bring those lower on the ladder along. Give them the respect they deserve and you’ll get it in return.
- stronglikedan 8y ago> their opinions are more important and refined than anyone else's I inferred that they do respect the programmers - more than anyone else even.
- agentultra 8y ago>> Programmers are like cats and their opinions are more important and refined than anyone else's. And I don't think it's sustainable to work in an environment where your every mistake or bad day will make you seem like a dipshit to your team. > In your second it seems that you don’t respect those lower on the ladder: That's a good point. I didn't intend any disrespect. Speaking as a programmer I was making a self-deprecating generalization. Not everyone has had the same experience as I have and I can see how that has weakened my comment. I think I could have made my writing stronger if I had avoided the generalization and went straight to the point instead. Thanks for pointing that out. > As a leader it’s important to distill good ideas from bad In a way I believe you're right. > be able to bring those lower on the ladder along However I don't think it's our job to deem which ideas are good. If we believe the source of goodness stems from our own personal experience and opinions then we may favor a team that merely agrees with us. A good leader, in my opinion, must embody some of the qualities in TFA to make those determinations: being focused on the customer, the business, and their team. They need to look to the current context of all of these things and find the good ideas. They often come from unexpected places. > Give them the respect they deserve and you’ll get it in return. I believe this is a universal truth: give people respect, ownership, and accountability. It's important!
- palimpsests 8y agoWhy exactly are programmers' opinions more important and refined than anyone elses?
- zachr 8y agoNot OP, but my stab: programmers are the ones actually building something. A technical leader can craft a vision for the technical future of a product, but the engineers need to buy into that vision and will, by necessity, quickly form refined opinions on the implementation details as they build things.
- dorian-graph 8y agoI've wondered this as well. Are there equivalents in other industries? Some human trait that shows up in some circumstance?
- scarejunba 8y agoBecause they're building it, it's more important. If you want to build along vector X and they believe in Y, you'll only get the projection of Y on X in business value. So if you can convince the people making things to make something closer to X and you can articulate that value and excite people about it you'll get a bigger projection. The refining part I don't get.
- brianyu8 8y agoNot OP either, but I think what OP means here is that programmers feel that their own opinions are more important and refined than anyone else's, even other programmers. This means that they are likely to judge someone who operates in a way that differs from their opinion more harshly.
- agentultra 8y agoA bit of that too.
- agentultra 8y agoPart of becoming a great engineer, in my limited experience, is developing a sense of taste for what problems are worth solving and which approaches to consider. The software we build ends up baking in those opinions: into the frameworks and libraries, into our philosophies, into the algorithms themselves, and ultimately into our culture. We end up with Rails whose claim to fame is being based, unabashedly, on its strong opinions. We end up with the LKML being what it is. We end up with ML algorithms with our biases built in. That's why our opinions are rather important. Our opinions signal our status to other groups. If you're an opinionated statically-typed functional programming aficionado it's quite likely you're not going to fit in with people who are serious adherents to object oriented programming. And you will find many people without any opinions or whose opinions lie somewhere in between. We can't avoid having them and it's important to be able to work with other programmers and so being able to set those things aside to focus on the customers' needs, the business context, and the well-being of your team takes precedence!
- cimmanom 8y agoThank you for this post - it's something I needed really badly to hear this week!