Sadly not, although I wish it was. In my current team, developers are only there to agree with POs, and to build whatever they want. Any resistance from a developer is seen as bad. Of course if we build a feature according to POs requirements, and the requirements were wrong, then developers are also blamed, since we should've highlighted this up front.
It's not that I haven an issue with not having a final say in how things are build. If a PO comes with a seemingly unreasonable demand, I've come to understand that that's often the net result of politics and compromises from which developers are shielded. It's something I've come accept as a part of the job and I've even learned a great deal from. But it also implies that in some cases my professional responsibility doesn't extend beyond what I do in my terminal or my IDE.
I do have an issue being treated like a character in a badly organized DnD game. And I have had no qualms in the past making it clear that I don't tolerate being blamed for bad planning or shoddy requirements gathering.
Good PO's are sensible about this and own up to their responsibility. Talking about it works. That's why people skills are just as every bit as important for developers as well. If a team isn't willing to discuss this elephant in the room, then it says a lot about the dynamics, and you have to question whether it's worth your valuable time to work in a context that isn't enjoyable in the first place.
After all, life's too short to deal with other people's drama.
I have found myself in this situation for the past two years, I've voiced my opinion more than once. But at the end of the day, in a non-tech financial company, developers just aren't important enough to be listened too. The business side holds all the powers, managers on the tech side know this, and thus let them treat us like code monkeys. There have been numerous reshuffles in our team to "try and fix the problem", however without accountability, it will be difficult to fix a problem without understanding the root cause.
I've lost all respect for people who operate as the middleman between the development team and the business side, mostly because when it comes down to choosing a side, they'll side with the business, and play their politics game. After all, developers can't get them fired / moved away from a project.
I know I should just walk away, and I've told myself this for over a year. Yet this job is oddly comfortable (in terms of benefits), so I just let it happen. I still have moments where I care enough to speak up, but they're quickly shut down my managers.
I once walked away from a gig that was literally 2 blocks down from my door and traded it in for a gig with a 2 hour commute. Just to guard my sanity.
I think it comes to to cost/benefit and opportunity cost calculations. And those are different for everyone.
Forget where that's from, but seems true of companies too. Each company I've joined had skeletons you'd never see during an interview. After the honeymoon period wears off, the truth starts to show.
Not to say that you shouldn't find a new job. Definitely don't expect it just get better though.
In fact trading the known badness of your current company for something else gives you opportunity to find different ways a company can be dysfunctional. Enough of those experiences and you'll get good at pointing out dragons before they get nasty. Truly valuable for a senior developer.
I think that in software there's something similar. Maybe you'd have more fun in a software company, where what you do is central to the business. Anyway, don't give up hope! There are jobs out there where you'd be having a lot more fun every day.
Don't let this stereotype poison your career. Not everyone is like that, but if you assume they are, they likely will be. Relationships are so key.
I’m sure there’s good ones, and I really hope I get a chance to work with them.
This really only works in certain companies tho. I’ve seen some of our best developers removed from our project because they refused to build features that didn’t make sense. Word just goes up to senior management, and all of the sudden you’re to blame for project delays, and eventually pushed to another project.