I've read a fair amount about retaining programmers but most of those articles are confusing to me because they contain lots of coder specific language. I thought it would be more fun to have a discussion around the following question:
What should non-coders do (or not do) to make it easier for hackers be excited about collaborating and developing a great product?
The best thing you can do to make yourself attractive as a non-coding co-founder (short of learning to code) is to say "I'll take care of all the non-coding muck so that you can focus on doing what you do best".
Also, anything that annoys a developer is an obstacle. If you make it difficult to take vacation time, for example, that's an obstacle. Many companies seem to think 'Oh, everyone is that way' and that it makes it okay somehow. If there's something in the contract and you make it hard for the developer to get it, you're going wrong. Part of honoring your contract should be making sure it isn't difficult for the developer to collect on what they are promised.
Also, keep in mind that when they're not writing code, developers often have about as much attention span as a five year old on crack. You might think that filling out a couple pages of paperwork in order to get the company to pay conference registration fees is perfectly reasonable, but it will irritate the hell out of many developers.
What about collaboration and working with developers to incorporate their knowledge of sound programming structure and data architecture into the site? My site looks simple from the front end, but has a ton of stuff happening on the back end of things.
Excellent data management will be key for me and its something I need a lot of help with. The front end was easy for me to draw up but I need a great creative relationship with a technical cofounder to make the site as powerful as I'd like it to be.
Assuming you've hired a good coder, be clear when explaining what the requirements are and what needs to be done but don't tell him/her how it should be done. Coding and design is where their expertise lies so give them the freedom to use their professional judgement.
You may also find Joel Spolsky's "Field Guide to Developers" article interesting, in particular the section entitled Independence and Autonomy http://www.joelonsoftware.com/articles/FieldGuidetoDeveloper...
Remember, an idea is worthless. They have people asking them to build things for equity all the time. You have to compete with these people. If you want to attract a tech-cofounder you have to show value. No one is interested in a one-side partnership where they have to do all the work and then give up a large portion of any profits. How are they going to know you can bring anything to table if you have nothing to show?
After I had identified a potential pain point and thought up a solution, this (in order) is how I proceeded.
I enrolled in a relevant classes (business fashion/intro to entrepreneurship), wrote a business plan/financial statement, figured out the features and how I wanted the app to work, contracted wireframe mockups, raised money from family, hired a lawyer to form a corporation, had the graphic design done, had the front end done.
It took a year and $4500 before I finally found my co-founder.
All the stuff had to be done anyways and it was stuff I, as a non tech-cofounder could do. After I met my technical co-founder we spent a week transferring knowledge (after working on it for a year, i had a lot to say) and now he is coding away.
Also everything took way longer then I expected.
Don't make assumptions about what is easy and difficult to build. Take advantage of the expertise of your team to assess how much time different tasks might take.
Assist them by helping them test everything you can.