Engineering Managers

442 readers
6 users here now

Discussion, rants, questions, and more about engineering management.

Resources:

founded 1 year ago
MODERATORS
1
2
3
 
 

I have spent some time trying to simplify the release process. For a variety of reasons, we can only release on Thursdays. The code is "frozen" on Tuesday before it can be released on Thursday. But we sometimes squeeze in a quick fix on Wednesday as well.

The question, is when should QA test the code?

Here is what I have seen happen:

  1. Dev writes code and sends it to QA.
  2. QA finds problems, sends it back to the Dev.
  3. Dev fixes and sends it back to QA.

I have seen a Dev fix their code on Tuesday, and then QA comes back on Wednesday with problems, when the code should have been frozen anyway.

I am looking, what should be the best solution here.

We have several problems going on at once:

  1. Developers test on the same server as QA tests. I am working to switch developers to a separate Dev server, but it is a long work in progress.
  2. We don't have an easy way to revert code back from the QA server. It is easier to build revisions than revert changes. We can try to revert code more, but it will require a culture change.
  3. QA don't really have a schedule when they are supposed to do functional testing vs regression testing.

I don't know what is the best way to proceed forward. Thus far, I haven't thought too much about the QA because I was focused more on getting releases out. Now that releasing is more simplified, that we can potentially do weekly releases, I am trying to see how we should proceed with the testing process.

4
 
 

I have about 13 years of tech experience. Some as a software dev with open source languages, some as an on-site consultant with proprietary languages.

My first experience as a lead came involuntarily. I was the most senior dev, and a lead left the company. I was kind of forced into filling his role. I am in the US, and the 3 or so people under me were all from India. The time zone difference made communication with them very hard. I didn't enjoy the position. I felt as if I had more responsibilities without more authority. I left shortly afterwards.

At my next few jobs, being a dev felt like I was on "easy mode". Almost too easy. I started to feel that I have nothing new to learn as a dev... All of the frameworks seemed the same to me, just regurgitating the same functionality in a different format.

Onto the company where I am now: I started as a dev. Although I was getting lots of work done, there was a clear vacuum of leadership. Poor communication, lots of technical debt, new people had no guidance and had to learn everything on their own.

I told management multiple times that we lack a lead, and asked if we would be getting one. After several months, management asked if I would be interested in being the lead. Especially with regards to dealing with the technical debt. I said yes, because I felt I was filling a very important yet lacking void.

That was 6 months ago. Things have been quite exciting since then. For the first time in forever, I actually felt challenged, doing new things. I have been on my toes, switching from one issue to another. It started with handling the technical debt, then training the new people, then trying to use the team resources most effectively. Along the way, I have been gaining the trust of the people I lead, acting as the communication glue of the team, and being transparent with everyone.

I end up having to handle everything that is not a coding task. This included creating new access roles, assigning them to people and to service accounts, configuring message queues, releasing code, etc.

I would love to delegate some of this stuff. The problem is my boss took on too many projects and was forced to take a bunch of people from my team to cover those other projects. I am left with few people, running quite lean.

Much of the people working in the team are quite shy, or not very good at communicating. I end up being the speaker for much of the team, especially when talking up with management.

Last month, a person on my team asked to talk with me privately... She then told me, her contract is being cut short, ending work that week. The sad part is, she found this out from her contracting agency. No one told her about it up till then.. And then she basically started pleading with me if there was any way she could keep her job. This made me quite sad and angry. I called up several managers involved, and had a long discussion with them about us losing a great resource, lack of communication, etc.... And incredibly, they listened to me. Sparing the details, l was able to keep her contract from ending.

Since then, I have felt quite confident in my position, being respected by both my team members and also my bosses. I started having one-on-ones with everyone making sure they are happy with what they are doing..

I have started to question, am I a lead or a manager? Although I do look at code when it needs to be done ASAP, for the most part I prefer to have someone else work on it. I don't really want to be the architect / designer of new code. I hope my team grows strong enough to make these decisions themselves.

Recently I told the team, we need to speed up our GUI and asked if anyone has any suggestions how to do this. My main GUI guy provided an idea which will require a lot of time and effort. But I can see it has potential. I told him to to for it, build a POC. I would like to encourage this kind of attitude more, for people to come up with their own solutions instead of just waiting for me to give them work..

In any case, this has been an exciting journey. It has really worked out well. I am lucky people listen to me. At least for now. I do continue to wonder, am I a lead or a manager?

5
 
 

*or other media; video, article, etc.

The Phoenix Project (and The Unicorn Project) by Gene Kim really opened my eyes up as an engineer and made me feel like I could start fixing the problems I was seeing on my team, on my project, and in my organization.

I started reading The Manager's Path by Camille Fournier and have really appreciated how straightforward and relevant it is.

Help me fill my Amazon cart!

6
 
 

A few months ago, I lost my job as an engineering manager. I was officially told that I was being let go because my team didn’t think I gave good enough feedback and because they didn’t think I had enough technical understanding of the team’s work. Ironically, I got no feedback on this until the day I was being let go, and my performance review from 6 months before had mostly positive. I have told myself that most of the real reason that I was let go was probably the company trying to save money. There was a general push within the company to raise expectations and to not let good enough be good enough, and two engineering teams (neither mine) had recently been combined, leaving an extra manager. But, my confidence still took a big hit, because I’d been under the impression that my team thought well of me and my management. I got mixed messages on the way out the door with my own manager harping on all my shortcomings and my team telling me how much I'd helped them.

In my job search, I could have afforded to take time finding a new job. But, I threw myself into doing it quickly, both to eliminate the uncertainty and to prove to myself that I wasn’t useless. That was probably a mistake. After two months of searching, I got an offer and decided to take it. I wasn’t super excited about the company. The hiring process felt impersonal. But, the recruiter said they were excited about me, the pay was good, and I wanted to be done looking.

A brief history on me: I spent 16 years as an individual contributor. I started out in full stack web dev, moved to iOS dev for a few years, and moved back to web dev for a few years before moving to management. I've never had much interest in designing large systems or introducing new technologies. I like to build stuff and solve problems, and I care less than some engineers about how elegantly it's built. Before moving to management, I held scrum master roles on teams, but never tech lead roles. Shortly before moving to management, I got a promotion to staff engineer, but that was mostly in recognition of my non-technical leadership work. I was told I couldn't be a manager at that company because I wasn't technical enough. I've been a manager for 3 years total. My first management job was leading a team of front end engineers, my second (the one I lost) was leading a team of full stack engineers with a strong focus on the front end.

It's probably worth noting that I am female, and I have heard a few times that I am not technically strong enough to do certain things. Despite believing that I'm smart and good at understanding complex topics, I believe I internalized the idea that others are better at me at architecture without seeing potential bias behind it. But, at this point, I don't know what I'm unskilled at from lack of exposure and genuine lack of interest and what I'm unskilled at out of fear of being bad at something.

My current company does a lot of backend work and uses a serverless architecture. I have a decent understanding of backend, but I've never worked at a place with a serverless architecture and I barely understand the term. In the hiring process, there was a screen that consisted of multiple choice questions about AWS, which I don't really know. I felt like I was taking a test in a foreign language. But, when I later told the recruiter that I found that section tough, the recruiter told me that I got a top score. There was also a system design question that I think I did well with simply because I've studied system design questions. I've never actually designed systems a distributed system. All of this makes me think I may have interviewed well above my actual abilities. I've always been very good at taking tests. I recently saw a hiring panel where people chose to reject an engineering manager candidate because they're technical skills weren't strong enough. Someone made the comment that they wanted all of their engineers to be capable of acting as staff level engineers. I don't think I'm at that level.

To make matters worth, there's a lot of pressure on my technical leadership skills right now. I have a team that does a lot of manual work to make up for the fact that the systems it supports were never fully built out. Before I joined, the team had 4 people, but two had been lent to other teams for other projects. So, it was essentially 2 engineers, and one of those was beyond burnt out. One of the engineers who was supposed to rejoin the team was fired right after I started because he was stubborn and hard to work with. The other engineer was brought back to the team at that point. But, when the burnt out guy quit a couple weeks later, I was back down to 2 engineers. The two remaining engineers are a junior engineer who has been at the company (and in the working world) for about a year and a senior engineer who has been at the company for less than 6 months. We clearly need to build systems to replace the manual work, and people are looking to me to start planning what those systems are going to look like. But, I've been here for about a month, and I don't think I have the skills or the context to do that.

I have tried asking if I can get an engineer from another team. But, everyone is stretched thin. We're getting some help from a principal engineer, but it's only temporary, and he's on vacation. We're hiring for my team, and there are two offers out to senior engineers. But, it's going to take some time to onboard them. I've also yet to meet them, because that's not how our hiring process works. I have seen the interview notes, and they're positive. But, I'm uneasy about not knowing these people.

I don't think anyone would blame me if I just quit. But, I don't really want to go back to job searching right now. I also wonder if this might be a chance to build skills I've been lacking.

But, I really worry about doing a terrible job of it and getting fired. I've seen two people fired in my first month. One was the aforementioned engineer. In the brief time I knew him, I saw enough to think letting him go might have been a good decision. But, I am fairly certain the firing took him by surprise, and I don't know if that was his arrogance or poor communication from his previous management. I also saw someone in product who'd been supporting my team let go. I didn't know the person well, but all of my interactions with them were positive and they seemed like a good ally. I have no idea why they were let go, and I worry that the things I saw them doing that seemed positive were things others thought were a problem.

One of the interview questions the company asks managers is about handling a very productive, but toxic engineer who refuses to change. I've seen the rubric, and the only acceptable answer is to let him go. I wouldn't be here had I not expressed a willingness to let go of someone who was being toxic. But, it leaves me wondering if this is a company that is a little too trigger happy. The rubric doesn't cover whether or not a manager can judge if someone is really a problem or give them feedback to help them improve. My manager hasn't given me feedback, good or bad. I could be next and not know it yet. I know I should probably ask my manager for feedback, but I'm afraid that if I have a frank conversation with him, I'll let on how unprepared I feel and get myself fired sooner rather than later.

I'm having a hard time caring about this job and summoning the motivation to try to do what I need to help turn things around. Do I need to just get back out there and find something else, or do I need to find the motivation to lean in and give it my best shot? Any other suggestions?

7
 
 

My company started using Lattice software for tracking 1 on 1s, reviews, etc. I don't really love it, but it's nice to have something that the entire company is standardizing with.

I've been using Obsidian for my personal notes before I became a manager.

And I use the M$ Suite as needed with SharePoint.

Any other tools, software, processes, that you use for the people management side?

8
 
 

cross-posted from: https://programming.dev/post/144418

I generally don't like "listicles", especially ones that try to make you feel bad by suggesting that you "need" these skills as a senior engineer.

However, I do find this list valuable because it serves as a self-reflection tool.

Here are some areas I am pretty weak in:

  • How to write a design doc, take feedback, and drive it to resolution, in a reasonable period of time
  • How to convince management that they need to invest in a non-trivial technical project
  • How to repeat yourself enough that people start to listen

Anything here resonate with y'all?

9
10
11
 
 

Posting some general questions to get this community going...

I recently moved from a software architect to an engineering manager position after I was asked by my company leadership a few months ago. Mixed feeling about the move. I really like technology and being deep into the code but I am also pretty good at being a manager.

Anyway, why did you make the jump? How has it been?

12
 
 

Hey everyone! I'm Jeff and just moved to from a tech role to a manager. Looking forward to this community.