Anyway, that's essentially what Apple seems to have done here. Strong move, and one they should be rewarded for.
Anyway, that's essentially what Apple seems to have done here. Strong move, and one they should be rewarded for.
I was asked to write an invoicing system. I know a _lot_ about invoicing systems. The owners who employ me were very explicit: all figures this invoicing system displays must exclude gst/vat. That made sense to them, because gst/vat just confuses their profit figures.
However, the whole point point of an invoice is to communicate to the customer what they will be paying and why. The customers in this case are retail. They are interested in only one figure: what comes out of their bank account. That figure includes gst/vat of course.
As part of this I asked to see what they were doing now. The old system they were using did adhere to their edict: everything was ex gst/vat. As a consequence every person who customer facing (ie, the the vast majority of the employees) carried a calculator to convert the figures to what the customer wanted as they spoke with them. It looked difficult to me, but evidently madly stabbing calculator buttons while maintaining a smooth flow of conversation must be a skill most people can acquire.
This was insanity of course: we could save the bulk of the organisation time and considerable fustraton by just giving these people the figures they needed. So I very explicitly ignored their direct instructions. Note: I had to ignore it, as I had already lost the argument. In due course it was rolled out for testing. I went down a month or two later. The calculators were gone, people were expressing their gratitude. Not a word was said by my managers, and I duly been rewarded every year with raises.
I am an professional. I am hired very explicitly because I know far more about computer systems than the people who hire me. Like a doctor who refuses to prescribe opioid's, I view as my duty to steer them them in the right direction even when they don't want to be steered. If that requires putting my balls on the line and refusing to budge, so be it. They can always fire me if I've made a grave error.
Typically I find the cure for misinformation is more information.
What else would you do if your PM wants you to build backdoors into your encryption, for example?
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.
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.
there is the other side as well, PM : build me a bike. Dev: here is a spaceship. PM: but i wanted a bike. Dev: bike make no sense if u can travel using a spaceship.
At the risk of being overly nitpicky (because I understand and agree with the general point you're getting at):
That spaceship _is_ super awesome and far superior to a bike if you need a solution that'll get you a far distance in a short amount of time.
But what if the need is something that's safe, cheap, and doesn't require complicated infrastructure to support? A bike might be a better solution.
Blame the PM if they're not making those priorities and needs clear, though.
Sometimes you know that they ask a bike but will change the specifications later, so you try to prevent the mess.
Trust me, I have a lot of experience in building 3-wheeled space-bikes ;D .
I'm not sure what this means. Excused by whom? I don't blame governments for wanting this. Stability helps them keep power, even in a democracy. But I applaud those who are willing to push back.
Just build whatever and ignore your PM isn't a recipe for team success.
Thanks for taking my nuanced statement and building that straw man.