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. Noise cancelling headphones.
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.
Strong engineering culture. Design reviews. Code reviews. CI/CD in place. Intelligent people around me who are excited about engineering.
Everything not always being a rush or on fire. On call duties limited. Deadlines not always impending and looming.
Healthy work life balance.
Benefits for things like education and gyms.
Am I spoiled? Sure. But that's the world we live in.
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.
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 stakeholders and users "because this is the way it is supposed to be done".
This is probably both the reason they're actively isolating themselves and the reason the morale is low.
Thank you.
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.
> 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.