Fwiw though - a decade ago when I was a sysadmin I had a manager that I was certain never did anything.
And then he was replaced.
And then... We realized how much politics, uncertainty, churn, screaming, changing requirements, ambiguous priorities and other carp he protected us from :-/
Not saying it's the case with your manager. But managers have duties roles and priorities I for one hadn't always appreciated.
Almost every bad manager I've had basically lacked at least two of those last three things if not all three.
I will say, the one big advantage of a technical manager is they can often be used as a good rubber duck for logistics around changes. Should we do {A, B, C} or {X, Y, Z}? You can get into the technical with them and explain the intricate trade-offs of the decision and how that might impact things. Their technical and political knowledge of the situation can give very good clarifying answers.
Enabling people to be fully self directed and successful is a rare skill. Often it is done by diminishing their own importance; putting you on a good path and then getting out of your way; and giving you all the glory
For many, they could be a dream manager ;)
Over years I've noticed like 80% of those is because other managers are terrible and it so happens that the dept. I'm in takes some of the fallout of their mess.
It's interesting you should say this because this is one of the categories of Bullshit jobs as defined by David Graeber in his book. And incidentally only y'day I was listening to him on a podcast[1] speaking about BS jobs.
His favourite example is corporate lawyers. Companies are forced to hire them just because other companies have them and are in fear of getting sued. I hadn't thought of managers to fall in this category, which makes sense.
[1] https://podcasts.apple.com/in/podcast/srsly-wrong/id87229289...
Same with the way patents are used really.
One of the lessons I've learned though is that.. It's not all red tape and inefficiency. Big light bulb moment for me was realizing that users, customers, stakeholders, clients, etc, simply and validly may have different priorities and goals. That's not necessarily disfunction. We are not ants. But it's the manager's job, not sysadmin or coders, to resolve those different goals and help provide unambiguous and stable requirements to the team. This may not immediately be obvious as contributing value to a person building a server or coding a function. It certainly wasn't to me... Until it didn't happen anymore :-)
> And then... We realized how much politics, uncertainty, churn, screaming, changing requirements, ambiguous priorities and other carp he protected us from :-/
Indeed, have experienced that. At my best job experience ever, there was zero politics or distractions, I could focus all day long on interesting and relevant technical problems. I was both very happy and extremely productive.
And then.. my manager left. Whoa! The following months were insane mudslinging and relentless politics thrown at us in the team, could barely get any work done. Left the company soon after.
Turns out our previous manager was absorbing and firewalling all that from us so we could be happy and productive.
A great manager is like a great security team. You'll never notice what they're doing until they're not there.
Take shocks coming down, going up, sideways and to keep the ride smooth for as long as possible.
I also saw him stand up for the team when needed.
He got kicked out of his job. Along with the whole team.
some of this management can be useful but often a lot of it is not, at best. As organizations age companies become mostly about advancing careers of middle management and the things the company actually does become secondary.
Not sure if that's what you mean by soft skills, but I generally think of soft skills as things like ability to communicate well, navigate conflict, and apply emotional intelligence to people management
The "soft skills" as I understand them are more important for roles like team lead/staff, whereas the organizational skills (and maybe even a willingness to be unlikeable at times) are more important for management.
That's why I think a lot of engineers prefer the IC track (I personally think my organizational skills and focus don't qualify me for management, although I enjoy being a lead)
A bit like how there are different kinds of programmer positions.
It's interesting, I feel like this applies to a line manager. Once you get beyond that you can just hire to fill in your own weaknesses. If you're bad with organization, just hire a good project manager.
I guess that's how you end up with the Pareto principal. Even just moving from being a line manager to being a manager-of-managers is a different job that requires different skills, but the assumption is if you're a good line manager then the next step is to manage managers. There are probably plenty of people who there who would make fine directors but are bad managers so they don't get that chance. And then you have people who are good managers who end up as bad directors.
I'm sure there's some overlap, but not enough to really warrant the lower role being preparation for the higher role.
Depending what itch you're trying to scratch, and what opportunities are available in your org, it might be just as rewarding to be a tech lead, feature lead, mentor, cross-team liaison, steering committee member, or possibly other roles rather than team lead / manager.
All roles that young folks dream about becoming when they grow up.
Grandma: What do you want to be when you grow up, honey?
Granddaughter: A CROSS-TEAM LIASON!!! Yay!!!
I don't think it's too hard to imagine how to explain this in a way that might excite a child, but at the end of the day, they look to us for their cues on whether to be excited about Daddy's promotion, whether it's to "Team Lead" or "Staff Engineer".
> I don't think it's too hard to imagine how to explain this in a way that might excite a child, but at the end of the day, they look to us for their cues on whether to be excited about Daddy's promotion, whether it's to "Team Lead" or "Staff Engineer".
I genuinely can’t tell if you’re serious or trolling.
Poe’s Law is in play, I guess.
Fwiw, the eyes of every child I have ever been around always glaze over whenever an adult whips out corporate speak. I think there is a good reason for this.
The only time I'm OK with being in a manager role is in my own company. Working for someone else, you couldn't pay me enough to do that job. That's because I'm a dev to the core, that's where my interest and skills are. Being a manager is a different beast entirely and, while I can do it, I find it very unpleasant.
Particularly with "soft" objectives like improving morale, building team cohesiveness, helping people set/advance career goals, etc, I just didn't feel like I had a ton in terms of levers to pull and resources to draw on. And I lacked the experience and training to know how I could either advocate for those resources, or achieve the objectives in ways that wouldn't have a lot of cost and disruption attached. The leadership course I took was focused on personality type assessments, and conflict resolution as a very abstract kind of exercise ("try to see and validate all sides, practice non-violent communication") rather than a concrete, like, here's how to navigate when your direct report says they're quitting if they doesn't get a 20% raise, and upper management says lol no way.
Anyway, the pay scale at my org has equivalent IC roles at each manager grade, and in the end I've found I can have more of the type of influence and leadership that I desire by exerting soft power over the decision making processes in the areas that I most care about— which are mostly related to technical direction and strategy.
At least when there’s someone with strict authority involved, these things can be resolved pretty quickly — everyone defaults to authority. But that’s rare; most projects involve multiple domains, each with authority over their dominion, and opinions on what the others need to be doing (and all trying to minimize their own responsibility and risks, by both simplifying the project, but also offloading it onto their peers).
Ultimately coordination between parties is inherently a bitch.
To get anything done I have to get Safety, and Compliance, and Marketing, and Sales, and Project Management, and Vendor Management, and Product Management, plus the Product Dev Team, plus any sister Dev Teams, plus QA involved. Also gotta check with Security, and confirm our Infra team can host it.
Inevitably these people will have their own things going on and may not be available. They will have to wrestle with their own complexity. This leads to meeting after meeting. Then there will be paperwork. A lot of it. Maybe I don't need most of those teams involved but I need sign-offs about that.
Plus each of those teams is there for a reason. If I ignore Compliance we get sued -- and each lawsuit is going to cost a lot more than the cost of those meetings. If Marketing isn't involved then the product launch will screw up and the offering won't go anywhere. If QA isn't there than the product will suck, or maybe screw up catastrophically.
Even if every single manager, every single C-level, every single team lead and Sr., is a bonified genius, it's still going to be a mountain of lame, pedantic work. If there was a way to ditch that then I'm sure, somewhere, one of these MIT Berkeley Disrupter-types would have done so, but the reality is that's how any org larger than like 100 people is going to work.
- Futurama
A good managers job is not just helping you navigate chaos.
Describe what this code does in clear english:
from datetime import datetime
import pytz
utcmoment_naive = datetime.utcnow()
utcmoment = utcmoment_naive.replace(tzinfo=pytz.utc)
# print "utcmoment_naive: {0}".format(utcmoment_naive) # python 2
print("utcmoment_naive: {0}".format(utcmoment_naive))
print("utcmoment: {0}".format(utcmoment))
localFormat = "%Y-%m-%d %H:%M:%S"
timezones = ['America/Los_Angeles', 'Europe/Madrid', 'America/Puerto_Rico']
for tz in timezones:
localDatetime = utcmoment.astimezone(pytz.timezone(tz))
print(localDatetime.strftime(localFormat))
ChatGPT Response:This Python code does the following:
1. Imports two modules, datetime and pytz.
2. Gets the current time in UTC using the datetime module and assigns it to a variable named 'utcmoment_naive'.
3. Uses the pytz module to create a timezone-aware datetime object and assigns it to a variable named 'utcmoment'.
4. Prints the values of the 'utcmoment_naive' and 'utcmoment' variables.
5. Defines a date format to be used for printing local date and time.
6. Defines a list of three timezones.
7. Loops over the list of timezones and converts the UTC time to the local time in each timezone using the 'astimezone' method of the 'datetime' object and the 'pytz.timezone' method.
8. Prints the local time in each timezone in the specified date format.
Overall, this code gets the current time in UTC, converts it to the local time in three different timezones, and prints the local time in each timezone in a specified format.Add things like "summary of what each contributor did each week/month" at various levels of detail.
There is an evil and a less evil way to deploy this of course. I have had jobs where I had to provide monthly summaries of what I did this month. I would like to start with a chatgpt summary of all my commits and/or PR's over the month, before editing it, why not?
I can't think of a single company I or someone I know has worked at that has a security department/person that would allow this. Maybe very small businesses wouldn't care that much?
Well there are lots of open source companies where this isn't a concern. Even outside that lots of businesses use GitHub as a code repository just fine, and the GitHub tools can read your code to eg scan for security vulnerabilities.