I am working with a developer who does the following:
1) Does not respond to questions you ask in a timely manner (takes anywhere from 35 mins to hours to get back). We're all working with some urgency to meet an upcoming deadline, so there's some need for responding quickly.
2) Does not convey all the relevant information of the work he's done that you're dependent on for completing the next task.
One particular example is that he wrote program 1 that did X. He then uploaded his files to a shared directory so we can use his program 1 to do Y.
I was under the impression that if program 1 did X, then all I need to do Y in program 2 is call program 1. But there were lots of editing required in program 1 that would enable it to be called in program 2 to do Y.
I understand that we had this misunderstanding because we work differently. The engineering teams I've previously worked with have the following way of working: any code they pass to you or upload that they say does X, will do X no questions asked. That's it.
There's no guessing or editing their files or creating supplementary modules to do Y in program 2.
Here though, is different. Basically I wasted a lot of time doing the wrong thing thinking program 1 did X when I should have done lot of supplementary things which were needed to make program 1 do X.
This is made worse by the fact that this guy is an incredibly poor communicator, he just doesn't know how to give you the right information even when you ask him direct, pointed questions that don't leave any assumptions.
How do I talk to this developer in a way that makes it easy for everyone, and I get the information I need, and can do what I need to do.
Is this a good way to work, and I just need to adjust my expectations?
edit: can downvoters explain their issue so I can edit the post accordingly? Thanks!