You are talking about corporate, academia I am finding out to my chagrin, is no better and in many cases actually worse. Case in point: I am one of two developers (senior of the two) hired to work on a new web project at a respected university. The junior "developer" from day one argued (and almost convinced) management that we should use the standard install images given to students with all control panel/configuration functionality disabled and locked down.
Failing that, he then thinks because he took a "project management" class from a cert. factory, convinces our management to design applications like one would in Access, because well thats what he did when he designed in-house Access applications, and he is "qualified" so it must be right. Being academics they swallow this shite like a crack-deprived prostitute.
Now management has announced this great work is worthy of a lateral promotion (he hasn't managed to write any code that has worked in 6 months) because they "are trying to find something he is good at".
This is just the small cherry on top of the shit mountain of endless, childish, degrading, touchy-feely debates on a daily basis, because everything has to be vetted and discussed "academic style". In this world politics is king, accomplishments, experience, and "real-world" knowledge mean nothing. All aspects of my programming job are "subjective" and need debate, micro management to the sub-atomic level.
Recently, with mgmt. and my incompetent coworker, I found myself explaining and needless to say, debating the merits of data validation. I discovered everything I know about data validation doesn't apply there, because they know the people that enter the data, and they do a good job and therefore just don't know if data validation is worth the time and extra cost. I argued for data validation as any competent developer would.
I lost this argument. Fuck. Me.
I will take your corporate job, at least you don't have fucking nightmares and get chest pains whilst thinking about the future need to debate object oriented programming or error trapping.