- How do they come to respect or disrespect someone in this role?Earn respect by investing not only in your product, but in your programmers. If you're a carpenter, you'd think your boss was crazy for asking you to drive nails without hammers or a nail-gun; and yet, this is how programming environments sometimes operate, causing consternation.
Earn disrespect by treating programmers like cogs. Do not ever assume that you can simply replace one programmer with another; there is an absolute chasm between the skills of the best and the worst. One way to judge your programmers is in adaptability; do they at least seem willing to tackle anything you throw at them, or do they not really have a clue how to start most of your ideas?
- How can I best approach a software engineer with an idea?
Do not make any assumptions about how simple the implementation could be. There are hard things that sound easy, and vice-versa. At the same time, be prepared to deconstruct your idea to say "well what if we only did X and Y"; you may be surprised how different the answer is.
- What can a business type do to build trust with a programmer?
Be detailed; communicate without filters. There's nothing worse than being asked to drop everything to provide one or two tidbits of information "immediately", only to find out later that the wrong question was being asked and that the priority wasn't really accurate. Heck, if you have to tell the programmer your 3-year plan for the product, do it; that may affect how the implementation proceeds.
Be flexible. Programmers will be productive at the weirdest times. If you see someone who comes in late and works for 12 hours straight, then takes a day off, they could still be the most productive software developer you've ever seen. Even if we aren't actively working on an idea in front of a computer, we are often putting it together in our heads. Perception is not reality in most cases. Having said that, do demand evidence (simple documentation, occasional updates, and definitely prototypes).
- What motivates programmers? Success? Personal fulfillment? Money?
I want to feel like my projects are useful. I want to have the freedom to design, and not feel "stuck" with any bad decisions.
Money is only important enough for me to live comfortably (I don't need a mansion or a yacht). On the other hand, if it became clear that someone who contributed very little was going to be showered with millions from my ideas, I'd definitely want my cut.
- How do software engineers perceive business types?
As a necessary evil. :) Software is relatively easy to distribute, so there isn't much to prevent people from acquiring your product. On the other hand, there is a lot to prevent them from finding products, so marketing is quite important. Not being sued is important. :)