One think I hate about software is when you must integrate with a poorly documented system.
To be able to code and unit test you part you have to make assumptions about the workings of this system, deploy in a real environment (which can be quite time consuming) and pray.
This is like trying to shoot a bear in the dark, if you miss it the first time it will run after you like a delivery deadline. The only thing you can do is try again until you hit or it passes you by…
If you feel any relief in sharing your dreadiest experiences feel free to comment :)