Live data from Hacker News

Ask HN: How do you fix engineering culture?

news.ycombinator.com

41–50 of 143 posts

Re: Ask HN: How do you fix engineering culture?

#41
post #3

One approach to try is to physically integrate engineering with the rest of the company. If there's engineers that work on sales tools, have them work next to the sales group. Secondly get engineers more involved in other parts of the company. If marketing is having a team offsite, send an engineer that works on that tech with the team. Get engineers involved in business-related meetings where they can learn both the…

> If engineering is acting like a disorganized, isolated group in the company, it's often (in my experience) because management has created structures that keep them feeling isolated and without a sense of ownership/belonging. OP here. This is an extremely interesting insight. Now that I think about it, engineers were indeed isolated for a long time, because PO and UX people were the ones doing all the talking with s…

I've been brought in several times to situations like this. Worst-case was the team that not only moved to their own building, but they set up a gated security system where the other folks couldn't get in.

The technical checklist above is awesome, but no amount of technical chops is going to fix that.

Your company should be an engineering team, some of which can't code very well, that also kicks ass in whatever field you're in. That's probably a big mental leap! But it's where you have to go.

Tear down the barriers and integrate engineering as tightly as possible with the "real" work. Hint: whatever you do, you can do more. Put coders on the customer support phones. Rotate people through the teams as SMEs. Physically put them in places where they rub elbows with other groups. Got a bug in a CSR app? Bring in the folks affected and have them personally explain the impact to the team.

I could go on, but I'm just winging it. Whatever you do will depend on what your company does and what the people are like -- how willing they are to change.

Finally, and the people that do the work I do are going to hate this, be ready to fire people. Bad cultures grow employees with horrible attitudes that many times cannot be fixed. Not every bad culture situation can be fixed with magic sauce. Experience shows it only takes one person with a bad attitude in a group as large as 50 to destroy positive momentum.

In general, if you want to rock, the people that code should live inside the heads of the people who find and grow value for the org.

Once you get the social walls down, work on the technical stuff. Otherwise you'll just make more arrogant tech teams.

Re: Ask HN: How do you fix engineering culture?

#42

Earlier quoted context omitted.

> rage outbursts, screaming during work hours I've been working as a software engineer at a big corp for four years, I've never even heard anybody shout, or anything that could be considered a rage outburst. Sometimes the volume goes up a little in meetings. I've heard of one or two people yelling through the grapevine, but I didn't personally observe it. In general, I don't think shouting has any place in a workplac…

I completely agree with your first point. We don't really have reports of people shouting with each other outside of engineering, and that's why people don't really know what to about that. > Can you be a bit more specific? Testy is a good adjective for them. One of the worst contained profanities, but was sent using personal e-mail accounts (but it was sent from work and was about work). There were some company-wide…

> personal e-mail accounts

That's a bit surprising. A lot of the things you're saying (shouting, using personal email for work, rage emails) should only happen once per person maximum. When it happens, a calm conversation with a manager should explain that this behavior is detrimental to the success of the company. If it keeps happening, people need to go. Set the standard to separate the bad apples from the batch and then remove the bad apples.

> thinly veiled criticism and passive-aggressive remarks

Unfortunately, this is the life sometimes. It should be discouraged. But, these are probably symptoms of work related problems (lack of expertise, lack of clear responsibilities, managers who escalate rather than de-escalate situations) rather than pure conduct problems. Solving them requires patience and working the problem.

Re: Ask HN: How do you fix engineering culture?

#43
I applaud your effort to improve your engineering culture as it indicates that you actually care.

This is an important topic to me as I've left several companies as an engineer over the years, some of which are rather well known.

Here are some suggestions simply as food for thought. Hopefully something applies in your case.

- Engineers should ideally be part of the process of building the product. If not already, invite engineers to the UI/Product design meetings and make sure they have active input - or at least one representative. The fact that engineers are in another building doesn't bother me so much when I think about the remote companies I've worked for. That being said, with major communication challenges it might require some initial face to face dialogue.

- Deadlines need to be realistic

Sometimes "simple" things are actually more complicated than one would think. I've seen scrum approaches that just don't make a lot of sense with unreasonable "story points" with strict adherence. Some flexibility needs to be in place to deal with unexpected blockers/issues. In one well known company a friend of mine indicated that they are super strict about story points and he hardly codes at all now since every engineer allocates only a low number of story points so that they can ensure they complete them before the end of the sprint.

- Better understand complexity of the product

It sounds like the product is "simple" but the reason for the large amount of code might be that there is no clear definition of the minimal viable product. The added complexity is possibly there because the UI/product team is piping in more requirements somehow. Try to isolate where the complexity is coming from.

- Promote a test driven culture

Regarding the "astounding" number of software defects, it doesn't seem like the engineering culture promotes unit testing. Consider adding TDD/BDD. Or if that already exists, track down what might be happening here. Maybe the software issues are mostly at the integration level?

- Promote a refactoring driven culture

I once worked at a company where management allocated time only once a year for a few weeks to deal with refactoring due to tech debt over the year. Needless to say there was way too much tech debt to pay off and those weeks were never enough! If the engineering leads say they need to address tech debt, let them have a strong voice in that at least. If time to market is more important so be it but be aware that tech debt can also mean the team is slower in the long run. Changeability of the code will slow everyone down over time significantly if it isn't addressed. For a large codebase we had, changing code was a nightmare because of this.

- Promote more than technical skills

Like most engineers I like to work with highly motivated, open-minded, approachable and friendly people. I've seen incredibly smart engineers stifle and essentially belittle other intermediate/junior engineers over their work or ideas. It just takes 1-3 of these smart engineers to cause bickering/analysis/paralysis in a project. I've joined projects in the past as a senior engineer where I've seen other intermediate/junior engineers quickly gravitate to me for example and feel comfortable asking questions of all sorts - I generally give a vibe of being easy going. My most memorable times at work revolve around tech questions/discussions with other engineers and I don't believe any of that was wasted time for me or the companies I've worked for. If I were to promote/hire a tech lead/architect I would try to ensure soft skill were in place rather than simply technical ability.

Usually management was not very aware the above conditions and and things can become 'normalized' enough such that nothing is ever done about improving things even if you spoke up. I've heard management say things like "we don't all have to be friends" and to just put up with the status quo but I think there is room for both.

- Give engineers a sense of ownership

I used to work at a place where the software architects essentially 'farmed' out JIRA tickets to engineers in such detail that there was no creativity whatsoever that the intermediate/junior engineers needed to have. Giving engineers the room to develop design skills and make mistakes is important.

- Allow and appreciate mistakes

Systems can get complex and fail for a wide variety of reasons. Personally if I were the engineering manager and an engineer brought down the system somehow I would raise that as a cause of celebration without the connotation of death ("post-mortem"). Celebration since this is one step further in figuring out how to make the system more robust. A lot of time cultures promote an environment of fear where people are afraid of changing the code because things break. Continuously improve things so that it is harder and harder to break.

- Create a culture of learning

More often than not, companies don't offer a great balance of "doing the work" and learning. In the past I've had to introduce the idea of tech talks, hackathons myself. Even purchasing books/videos at some companies was seen as an added cost that they didn't want to take on. Regarding tech talks, some companies allow engineers to create presentations during work hours and present them while in other companies I've had to put a lot of hours outside of work to prepare for presentations. Engineers will definitely appreciate the former if possible.

- Walk a mile in another person's shoes

In one company, engineers could sit and listen together with a support specialist once every few months to get a sense of what types of questions customers had about the product. Great eye opener.

Another idea is to allow shadowing of another person throughout the day or even do their job for a day if possible. An engineering manager could do a mini bug fix for example to get a sense of what is involved. I once had my manager's manager's manager put in a code fix in C++ - our team was super impressed not just for the tech skills but more for the fact that he didn't mind getting his hands dirty.

- Management should put their foot down when required

I recently worked at a company where there was a lot of swearing, sexual/racial jokes, etc during work hours as well as company events. The CEO was complacent in such things by saying "Oh, that's Joe, he's always putting his foot in his mouth".

I knew right there and then I would eventually leave. Sometimes management needs to take a stand somewhere.

Especially in the example you gave where there was some racism/sexual harassment if I were the CEO and learned about that I would drop everything I had and iron it out. I'm glad HR ironed that out in your company as you mentioned but I hope also the CEO came down with a message for everyone as well

Re: Ask HN: How do you fix engineering culture?

#44
post #37

Earlier quoted context omitted.

> What the engineers believe management thinks is relevant. Your last sentence seems to prove a point here. Yep, you have a point. And you're absolutely right: I shouldn't have even considered that suggestion, even though I'm not their manager, or even though I'm anonymous.

No need to censor your private thoughts. But beware that many engineers have seen broken promises by management at some time in their career. So they are difficult to convince that this time it’s different.

You're absolutely right.

And I forgot to thank you for the insight you gave me with your previous post:

> What management thinks is irrelevant to morale. > What the engineers believe management thinks is relevant.

Maybe we should focus on listening more to the engineers, instead of focusing on sending the right messages.

Might seem obvious to anyone outside, but sometimes we need to be reminded of those things. Thanks.

Re: Ask HN: How do you fix engineering culture?

#45

Earlier quoted context omitted.

I completely agree with your first point. We don't really have reports of people shouting with each other outside of engineering, and that's why people don't really know what to about that. > Can you be a bit more specific? Testy is a good adjective for them. One of the worst contained profanities, but was sent using personal e-mail accounts (but it was sent from work and was about work). There were some company-wide…

> personal e-mail accounts That's a bit surprising. A lot of the things you're saying (shouting, using personal email for work, rage emails) should only happen once per person maximum. When it happens, a calm conversation with a manager should explain that this behavior is detrimental to the success of the company. If it keeps happening, people need to go. Set the standard to separate the bad apples from the batch an…

> A lot of the things you're saying (shouting, using personal email for work, rage emails) should only happen once per person maximum.

Indeed. Problem is, HR is desperate because everyone is engaging in such behavior. Which makes the rest of the company to think that it is a systemic rather than an individual problem.

> But, these are probably symptoms of work related problems (lack of expertise, lack of clear responsibilities, managers who escalate rather than de-escalate situations) rather than pure conduct problems.

Thanks for that. Indeed, those things might be the root causes of the problems the teams are facing.

Re: Ask HN: How do you fix engineering culture?

#46

Earlier quoted context omitted.

> 1) It could be a symptom of the underlying issue, which is typically stress-related. "Shit rolls downhill" approach to management, unrealistic deadlines, fear of mass layoffs, etc. Yep, there were some talks among engineers about the possibility of them being laid off and replaced by another team. But that's far from the case, as they've been repeatedly told that's not going to happen, have all gotten raises, stuff…

In a dysfunctional situation (which, sad to say, it sounds like you could have), the first thing to go is trust. And when that happens, management statements are no longer believed. Ironically, the more you say about not planning layoffs, the more that can be taken as proof that layoffs could happen. Similar with the scars from previous management and toxic employees. That history isn't quickly forgotten, even if the…

> That sort of abuse can be self-propagating: it becomes a learned behavior that turns victims into new abusers.

That makes a lot of sense. Come to think of it, we started having those problems after a string of very aggressive or very anxious managers.

Re: Ask HN: How do you fix engineering culture?

#47
post #38

Earlier quoted context omitted.

> Take one of the offenders and publicly shit can him. I don't think this will happen because engineers are scarce, and everyone is to blame, kind of. One of the worst offenders (who sent extremely aggressive e-mails to another team member, all trough personal accounts) left a few weeks ago of his own accord, so HR decided not to pursue him. Now that you mention it, that might have sent the wrong message.

While I don’t think you should fire someone just to set an example, the scarcity of developers is precisely why you should fire those who are negatively impacting the teams and are unwilling to change.

That's a very good point.

Re: Ask HN: How do you fix engineering culture?

#48
post #40
post #3

One approach to try is to physically integrate engineering with the rest of the company. If there's engineers that work on sales tools, have them work next to the sales group. Secondly get engineers more involved in other parts of the company. If marketing is having a team offsite, send an engineer that works on that tech with the team. Get engineers involved in business-related meetings where they can learn both the…

I like all the ideas here but putting me next to sales is a surefire way to leave me disgruntled. I can barely tolerate these open office layouts in general, much less with people making phone calls all day next to me. As an engineer, things that would help me: Flexible work from home policy. If you get your work done, you go home, and no one looks at you weird for leaving at 5:30 after staying late the evening prior…

> Like the parent here said, more integration with the company. I want to celebrate successes, have input on projects, and know my coworkers. I don't want to be a task hamster running on a wheel of endless tickets.

This is an interesting idea and might work really well!

Currently the hamster wheel ticket thing is a demand from engineering, but maybe suggestions for changes would be welcomed by the team.

The other things, we sorta have it all, I think? I asked a friend about the Spolsky Checklist and we pass it.

Re: Ask HN: How do you fix engineering culture?

#49

Earlier quoted context omitted.

> If engineering is acting like a disorganized, isolated group in the company, it's often (in my experience) because management has created structures that keep them feeling isolated and without a sense of ownership/belonging. OP here. This is an extremely interesting insight. Now that I think about it, engineers were indeed isolated for a long time, because PO and UX people were the ones doing all the talking with s…

I've been brought in several times to situations like this. Worst-case was the team that not only moved to their own building, but they set up a gated security system where the other folks couldn't get in. The technical checklist above is awesome, but no amount of technical chops is going to fix that. Your company should be an engineering team, some of which can't code very well, that also kicks ass in whatever field…

Funny, the previous manager actually wanted a gate with a keycode to avoid anyone from ever coming.

> Your company should be an engineering team, some of which can't code very well, that also kicks ass in whatever field you're in. That's probably a big mental leap! But it's where you have to go.

> Tear down the barriers and integrate engineering as tightly as possible with the "real" work. Hint: whatever you do, you can do more. Put coders on the customer support phones. Rotate people through the teams as SMEs. Physically put them in places where they rub elbows with other groups. Got a bug in a CSR app? Bring in the folks affected and have them personally explain the impact to the team.

This is kind of amazing to read, and a great idea to reorganize the team. Would surely solve our cultural problems, and would actually free time from the programmers. Makes a lot of sense.

> Once you get the social walls down, work on the technical stuff. Otherwise you'll just make more arrogant tech teams.

That's interesting to read and makes a lot of sense. Thank you.

Re: Ask HN: How do you fix engineering culture?

#50

Do you ever fire engineers for being bad at their job? Or for being divisive and spreading a bad attitude? I'm wondering if that doesn't happen at your org. And if not, that'd be a big negative impact on morale.

We do. We promote and fire based on both performance and cultural evaluations. Engineering had some firings in 2017, and we were supposedly left with the best ones. Problem is, things took a 180 curve somewhere, and it became rough in 2018. Maybe management is to blame, but we changed that too and it kept getting worse.

So.. when you implemented stack ranking and a cutthroat Survivor-island-style “how can you make sure the other guy gets the axe and not me” culture, morale took a nosedive and people started bailing on you? Interesting.
Post reply on HN