I come from a commercial software background and am now working on corporate software development.
A project I'm currently working on requires me to contact a vendor via web services which they are apparently policy-prevented from calling web services and can only refer to them as APIs. While technically correct, application programming interfaces can be a variety of things of which web services are a subset. But we can't call them that. Whatever.
So the published API document - which I should note is nothing more than a list of available functions in an excel file, absent any notion of "how to..." or "required and optional fields" or "expected values" - is rich and full and does lots of stuff. Most (I won't say 'all', tho' it likely will be) of which, for this application, we will need in order to lessen or eliminate our dependence on nightly file feeds.
A quick idea of what I'm working with is, say, an account list, account details, list of products, place a purchase or sell transaction, list of pending or historical transactions and a plethora of other things. I'm adding this functionality to an existing system that works for another product line ( for those in money business, these would be funds managed by various transfer agencies ).
So, the first thing a user might want to see is, gee, a list of my accounts (these would be banks and financial professionals managing a longer list of accounts). From those accounts, I might then need to see account details, historical transactions, a list of products a given account is authorized to trade, perhaps modify contact information, etc. None of this is brain surgery.
So when I submitted my initial bug report it was explained that ONLY transaction processing and trade history was available. The number of weeks wasted on building the client side code, testing, bug report submissions, etc., was fundamentally my own fault for not realizing the PUBLISHED API was not feature complete and "validated for use in your application".

What. The. Fuck.
If I put that kind of public face on my services when I was in the commercial software business I would have lost my job quicker than you can say "bug report".
Fine, fine... as asinine as this is, fine, I'll finish coding and testing just that part.
Hmm... interesting. The list of pending transactions is coming back with a business date of 2/4/2008. I call and ask - "we can't accurately determine the current business date, so we give you data the current date for four days prior and after the current date".

"Ok, well, no, it's not ok, but ok... why is it a date in future?" "well, since we can't determine if today is an actual business date, your test data is hard coded to 2/1/2008". "uhm... then why is it coming back as the 4th?" (that's when I found out about the four days before and after the current date). So, rather than doing some basic checking on the date (is it a week day? if so, is it on this list of holidays? No? Then it's a business date!) they just give me a spread. Fine, fine... there's a "from date" and "to date" on the call. Great, I'll set them to 2/3/2008 (they're supposed to be a sub-filter on the 8-day range, not a global filter

). I'll limit things to within that stupid 8-day spread and I should expect zero results.
WHOA! There's my pending trade for the 4th. Wow, That's hot.

Oh, and the WSDL provided by the vendor is wrong. Not only is it missing necessary security header information, but EVERY URL is WRONG in the WSDL documents. Not only do I have to hand-hack my generated code but I have to modify the URLs in EVERY generated class, patch up missing security headers on EVERY individual web service call (roughly 200 of them), ensure EVERY class (roughly 45 of them) is properly serializable (some weren't and I had to modify them) and rather than count on actual return values or empty arrays (where applicable), they just inconsistently return NULL values or simply throw an exception with a nebulous explanation in the response like "global.data.exception".
Wow. Way to go.
I'm starting to miss the insanity of 20-hour days, crazy deadlines and living on pepsi and potato chips in the commercial software world. It took 8 years to miss it, but I really, honestly do at this point.
So, if any of you are these dimwitted lazy fucks known as 'staff developers' and do this kind of shit...

<-- without the smile.
(sigh)
Thank you for allowing me to vent. I'm going back to do more totally invalid testing now. Yay. Wait... what's the date again? (siiiiiiiiiiiiiiiiiiiiiiiiiigh)