Programmers can be difficult to talk to. Not because they're socially inept (although that can sometimes be a problem too), but because you have no idea how to do their jobs. This makes it tricky to know exactly how long a requested task will realistically take to complete - or even if it's feasible.
This flowchart from visual designer Anna Vitals explains how to direct the conversation without coming across as rude or clueless.
The infographic below keeps things nice and simple. It outlines nine principles to adopt when dealing with developers. For example, it's crucial to remember that it takes time and effort to discover what doesn't work in addition to what does work. (i.e. - All that time spent in front of a work computer won't always result in applicable solutions - but it's still an important part of the process.)
On a related note, this stuff takes time: assume big projects will take longer than the ETA, especially if you've been given a vague timeframe by the programmer. Assuming they're slacking off will just piss them off and guarantee an even later delivery. You can check out the full graphic below.
[Via Anna Vitals]