

Ask HN: What makes coders happy? - bloomshed

I'm a non-coding founder trying to develop a website.  I'm looking to find a technical cofounder and I need to understand how to better work and connect with coders.<p>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:<p>What should non-coders do (or not do) to make it easier for hackers be excited about collaborating and developing a great product?
======
cperciva
The best sort of manager acts like an administrative assistant. When managing
creative people like developers, you don't need to "manage" them in order to
get them to create; their natural state is creating things, and this only
changes when some obstacle gets in the way. A good manager makes sure that
obstacles -- needing to get paid, getting approval to travel to a conference,
purchasing a new computer, finding people to test code, irritating users with
bug reports which are too vague to be useful -- don't intrude on the
developer's time.

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".

~~~
wccrawford
I agree. And if you've found someone that needs to be prodded into coding,
they aren't a good coder. That's your first warning.

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.

~~~
cperciva
_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.

------
nickfromseattle
I was very recently in your position.

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.

------
bloomshed
Ok, lots of administrative suggestions here, which is good insight, I
appreciate it.

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.

~~~
g-wizz
"What about collaboration and working with developers to incorporate their
knowledge of sound programming structure and data architecture into the site?"

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...](http://www.joelonsoftware.com/articles/FieldGuidetoDevelopers.html)

------
nomad4224
Do's: Focus your communication, clearly define specifications early on, set
list of priorities for tasks, and aim for a minimal amount of meetings. Basic
software engineering stuff, but this makes a world of difference. Leave
margins for things to go wrong: you'll need them, and your programmers will
love you for it.

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.

------
ashleyreddy
Have a clear vision of what you want to accomplish. No one likes hitting a
moving target. Sure there might be pivots, but don't add to that by not
understanding in great detail what you want built.

Assist them by helping them test everything you can.

------
martinbottanek
I would definitely recommend learning the basics of some programming language.
If anything else this will help you to understand what's going on and what
needs to be done to have your vision implemented.

~~~
bloomshed
Any suggested languages? I was emailing a guy last week about learning C. My
first developer I worked with (college buddy) was using Rails for my site but
my current developer is using Drupal.

~~~
fossuser
Learning the basics in any language will help, I'd suggest Python, Ruby, or
C++. Rails is actually a web development framework built on top of the
programming language Ruby and Drupal is similar to a framework and I think
uses the programming language php (not too sure though don't know too much
about Drupal). C/C++ will be harder to pick up and isn't really necessary for
someone just looking to learn. Try going through a python or ruby tutorial and
pick the one you like better.

<http://ruby-doc.org/docs/ProgrammingRuby/>

<http://docs.python.org/tutorial/>

------
hasenj
This video might give you some insights:
<http://www.youtube.com/watch?v=u6XAPnuFjJc>

