If you're "looking for a developer" you've already failed.

At least three or four times a month a person very close to me says something like:

I can't take [insert day job] anymore and need a really good developer, know anyone?

or

I'm working on a startup and thinking about hiring the consulting agency called RandomDevs, do you know them?

There was actually a site devoted to people like you once.

Here's the thing.

A dirty little secret with respect to software engineers.

They are smart [er than you]. And they have ideas too! 

They don't need YOU, the big idea person to show them the light.

So if you are starting or growing a software business and need other people to actually create the software for you, here's some best practices to find a great partner.

Learn how to code

If you were going to open a bakery, would you learn a thing or two about how to bake?  In order at least have an intelligent conversation and some understanding? Even if you were going to hire a baker, you wouldn't be all "I need you to make a pan de mie with a brioche top infused with a vanilla custard that tastes like chocolate mousse that's in the shape of a little double helix but held together with blueberry licorice. I know you don't have any breads of your own to work on, so just get all the flour and butter and stuff and whip it together and I'll give you some small equity in my bakery and try to pay you as little as possible until we have 12 locations up and going."

No, you wouldn't say this. This is how you sound to a developer though.

I'm not telling you to become a professional manufacturer of software. I'm simply saying that learning how to code will be very helpful to the journey because it will

(1) make you more interesting to the people you want to work with if you can speak their language - literally and figuratively;

(2) show you're not just another person who's smarter than everyone with a big idea, but with no ability to learn, hustle, and execute;

(3) provide the foundation where you can actually kick start your big idea on your own with your own time, money, and effort - (holy crap, what a concept!);

(4) help you understand what you are actually asking people to build for you; and

(5) actually provide some relevant friends and colleagues that can ingrain you into the community you are seeking out in the first place - but from a different more appreciated angle.

I've personally found that software engineers love it when people try to learn how to code. They are always helpful and nurturing and accepting. I remember when the ShopKeep guys saw me doing "learn Python the hard way" and flipping through some books we got for the library - they all gave me some props and wanted to help me learn (yes, true, they know now I was full of shit and did that only as an act to ingratiate myself with them, but it worked for a bit. Sorry guys, I'm not branching out of excel. Not happening).

Anyway, learn how to code. It's fun and not as hard as you'd think at a basic level. There's so many resources to help now as well. Just check out Codecademy if you don't even want to leave your house.

Don't be so coin operated

I'm the most coin operated person you have ever met. You put a big enough carrot in front of me and I'll chew my own arm off before I fail to eat it.  Software developers are equally as motivated - but they are ordinarily not coin operated.

By their nature, engineers like to solve problems.  Many startups and software engineers later (not to mention a wife who is an engineer), I can tell you on no uncertain terms that software developers can be the most motivated and hardest working people you will ever encounter.  Engineers will work night and day to solve a problem (for my wife, I am often that problem, but let's not digress).

If they are not motivated to solve your problem, or if they no longer care about it, however, you can quickly become a nuisance "project" (no, again, I am not talking about my marriage, lol.)

So if you want to resonate with software developers, focus on the problem you are solving together.  Talk about why you are passionate about it and help them see the vision from a technology perspective. Don't get me wrong, everyone likes money in the end - but I will never forget popping a cash draw with an iPad in 2011 and watching an engineer with a $200k+ offer from Apple lose their shit saying "I really want to work here".

Make friends and be authentic. Not as a means to an end

Like I said, I married an engineer.  Her brother is an engineer.  Many of my close friends are software engineers.  The fact that I struggle with complicated addition and didn't know what a codebase was until 2011 has never stopped me from building authentic relationships with people that want to solve big problems with me.  It's because I never approach my networking nor my relationships with people as a "means to an end".

Frankly, I can't believe I even have to tell people this - but BE REAL.  I don't hang out at technology events or meet ups because "I'm trying to start something and want to find a developer".  I have a genuine interest in technology, innovation, and entrepreneurship.  I have a genuine interest in meeting new people, learning how they tick, and providing value to them.  I really like to make friends and work with people.  I'm not going to these things to hunt for web developers (picture some banker you know with a big idea climbing a tree in camos with a bow and arrow waiting for some one in a tee shirt to walk by so they can bag and tag 'em).    I meet and hang out with people who have similar interests as me which includes solving problems with technology. I get drunk with them and build quality friendships that I truly care about.

I'm sorry, but it's really hard to start a software company and get a developer to "build something for you" if you don't have a real interest in technology, innovation, and building software.  So take a long look in the mirror and say to yourself "I have a real passion for this and want to jump in with two feet" before you write a job posting from your living room for a developer and show up at tech events trying to make "friends" that you want to build stuff for you.

"Dev Shops" are fine, but run a process

You're ignoring everything I just said (or you didn't read it because I fundamentally ignore the blogging in less than 500 words convention).  You are too old for that shit and don't have the time and you still have a big idea that will change the world which you want to invest in without quitting your day job - because, as all of your research shows, every huge technology business is started by some person in their cube who put out a "developer wanted" posting.

So you are going to hire a development firm to build your app from the "wire frames" you worked on at night from your couch with the Yankee game on in the background.  You've carved out $20k to $50k for this somehow - wtf, go for it! That's great.  I'm supportive nonetheless.  There's some amazing consulting firms out there that can really help you kick start your business (happy to recommend my favorite, but def check out Pivotal, or coVenture).  Do me a favor though - run a full process and get some really curated introductions! Don't just hire the engineer Joe knows who did a great job on the site for his parent's restaurant or the development firm that Lisa hired to build her app.  Go out and network your face off and find people who have built some successful technology companies first - at least a little.  Get a bunch of recommendations and do your diligence to understand success rate and lessons learned from past clients.  If you hear bad stories over and over - don't hire them.

Also, remember that entrepreneurs by their nature are a little nutty (we all know this, c'mon).  Managing expectations from a developer perspective is therefore extremely tricky - so take feedback you get about scope creep, cost, and things of this nature with a grain of salt.  Really dig in should you get negative feedback and make sure it's consistent before crossing a person or firm off the list.

Get a technical advisor

If you are still going to outsource, please find an advisor who's technical.  Someone with real chops for building software. This doesn't have to be a co-founder or a partner in the endeavor.  Just an advisor. Give this person like 25bps.  Have this person VET the developers and the development firms you bring into your process so you know they don't suck - a good developer can spot another one a million miles away, and vice versa.

Remember, you are effectively asking someone to build a transmission for your race car from scratch.  You know nothing about cars and you have never met this person before.  So at least get someone who races and knows cars involved - they can help you pick the best pit crew.

You do not get what you pay for

If you talk to 20 engineers and development shops who for whatever reason decide to work on your project on a contracted basis, you will not see a normal bell curve of scope and total cost.  Everyone will have a different opinion and view of what it will take to develop what you are trying to do.

In hindsight, the worst option can at times wind up costing you 10x the best option - and not because you are being scammed.  More because of differing opinions regarding what you wanted vs what the consultant thinks you wanted and should want - which almost always winds up in dispute. Combine this with more demand than supply which equates to lots of opportunity for consultants (and some bad actors just not giving a shit about your happiness) and it's easy to choose unwisely.  The solution for this is to again (1) get a technical advisor to fully vet any firm you are hiring or (2) partner with someone who wants to solve this problem full time because they are just as passionate about it as you are - versus looking at is as a project.

David Olk