Any company larger than a few dozen people is entrenched - there will be a hierarchy and the top will dictate the order of things. If they are paying you to write pointless software then you are either content with the paycheck and probably a lot of free time at work if nothing really matters or can go somewhere else to find meaningful work.
But seriously, the larger the company the less you should ever consider thinking yourself as some engineering talent can change the system. You change the system in those circumstances by realizing the failure, networking with your peers, and starting your own company to do it better. Assuming you didn't sign a deal with the devil by noncompeting your way into being stuck. You were hired to write code, not fix corporate culture. Largely because most large corporations have layers of management dedicated to insuring it is not fixed.
As time passed, it gradually became apparent to us mortals that he wasn't just being humoured - the people he was contacting came to respect him and even consider him their man "on the inside". He ended up doing pretty well - not promoted instantly to senior management, but certainly promoted faster than me (and ended up moving to sales).
Now admittedly lots of things are different from what your comment is suggesting. That company was big, but not as big as Apple (?) and intra-company communication nowhere near as bad by the sounds of it. This guy also didn't try turn over the whole company culture; for the most part he just spoke to the right people to progress things within our team's products. And finally, a key ingredient was him; if I made a conscious decision to act like he did, I'm sure it would not have gone well.
But my point is just that you shouldn't always write off fighting the corporate hierarchy. For the right person, in the right situation, it can actually make sense.
And thats all predicated on you succeeding, of course. You weren't offered the responsibilities to fix corporate culture, and thus trying to do so in the first place often just serves to piss off your higher ups who feel you are disrespecting their authority to do it themselves.
i think a lot of developers are used to wielding great power with technology, getting immediate visceral feedback, shipping, and whatever else. this gives them an impression that fixing people problems is just as easy - the equivalent of opening up the ol' IDE and rocking out for 8 uninterrupted hours, getting an MVP up.
the differences, though, are crucial. the compiler doesn't lie to you - you missed a semicolon; that's not the case with people. the in memory database doesn't have another agenda; again, not the case with people. the UI doesn't aspire to be something greater, or protect itself; managers often do.
i really appreciate that individuals try - i just don't think it's really worth it, if the org is > 15 or so people.
Well, in California it's basically impossible to enforce a non-compete, so there's that going for anyone who wants to do this as a current Apple employee.
To a point, but have you ever tried changing something purely through a dictate from the top? People will just say ‘Yes boss!’ and then keep working exactly as they had been.