One of the most difficult and critical decisions and entrepreneur has to make is deciding who will built the product. The most obvious answer is to find a technical cofounder. Unfortunately, finding this cofounder is nearly impossible as anyone good enough to fill this role has unlimited opportunities. Another option is to teach yourself to code. If you have several months to dedicate yourself to this task, you might be able to pull it off, but some people just aren’t cut out to stare at code all day.

So that leaves us with the third and most likely choice of finding a development partner. As someone who has been on both sides of the table (looking to hire a developer and as a founder of Firehawk Creative), the most important thing I can tell you is to do your homework. Your ability to decipher an amazing programmer from a gumbie is probably weak at best. With your time, money, reputation, and future success riding on this decision, you’re going to need all the help you can get.

Here’s the 12 most important questions you should be asking your development partner before you make a final decision:

1. What is your development process?

This is one of the most revealing questions, so I recommend you pull it out early. If there is no process, run away fast. You should be looking for a development partner that has a fully ironed-out process for attacking a new project. The only way to continually deliver an exceptional product is by have a repeatable process that works. You want to understand exactly how you will be kept up-to-date on the progress of the project. You also should find out how many clients they work with at a given time. Make sure you are comfortable with the working arrangement before you get started.

2. Who is actually going to be doing the programming?

This will help you avoid the bait-and-switch — get sold by a partner or lead developer and then get assigned the newest member of the team. Or worse. Your development gets outsourced and you didn’t even realize it. It sounds crazy, but it happens. Make sure you flat out ask, “Do you outsource anything?” You want to know exactly who is going to be writing your code and what this person’s experience is. It doesn’t help if a company has a great portfolio, but the person your assigned hasn’t built any of it.

3. How do you deal with collaboration and iterations during the development?

No project has ever finished exactly as everyone thought on Day 1. It’s not supposed to. As you begin development and get feedback, things change. It’s important to make sure your development partner understands and embraces this. If you have a product that is going to be throwaway work at the first sign of change, you are in trouble.

4. What happens once the project is over?

Super important to understand this upfront. Once you pay the final bill, is that it? How are emergencies handled? What about transitioning to a new developer or CTO? Do you have to hire someone on retainer to “watch” your site and handle maintenance? What if bugs come up that weren’t found during development? What about a new feature that is critical to growth? Ultimately, you most likely want to find a full time developer to join your team, because that means you are growing and continuing to build. You want to make sure this person will be able to get up to speed quickly. And until you find the right person, you need to make sure you’re not going to be left out in the cold.

5. What is the most technically complicated thing you have ever built?

I’m going to let you in on a little secret. This is by far the best question we’ve asked during every technical interview we’ve ever done. You want to separate the adults from the little children? Ask this. You don’t even need to understand what they’re saying, but you’ll be able to tell right away if they know their stuff. Trust me. It’s magical.

6. Can you send me some references that will help me understand what it’s like to work with you?

Please, please, please. Don’t skip this question. It is so important to get in touch with past clients to hear about their experience. Ask for a quick phone call with them. You don’t need much of their time, but just get them talking about their experience, any problems they had, any feedback or suggestions they have if they were starting the process over again today. I’ve heard some funny stories of people used as references that did not have nice things to say about the developers. Make sure you ask!

7. What happens if you can’t figure something out?

Even the best developer doesn’t know the exact answer to everything. If you knew how much time developers spend searching Stack Overflow and googling things, you’d be shocked. What separates the best developers from the rest of the pack is that they know exactly where to look when they don’t know the answer. Spending 10 minutes researching something instead of a half day trying to hack something together is what will make all of the difference in the world when delivering an amazing product on time and budget. Also, being well connected with the development community and having mentors and colleagues at your disposal always helps.

8. How do you pick what projects and clients you work with and why are you excited about my project?

As simple as it sounds, this question provides some solid intel. Are there people knocking down the door looking to work with them? Are they barely scraping to get by and taking any project they can get? Are they generally excited about your project or is this just another paycheck for them? Just as you have to be incredibly passionate about your project, you should demand the same out of your development partner.

9. How can you help me make my product better?

If you are a serial entrepreneur with several successful exits, you probably don’t need much help in refining you idea and making the product better. For the rest of us mere mortals, we need help. You should make sure that you aren’t working with a yes-man who is just going to build exactly what you say. You want someone with plenty of experience who is going to push back and make you defend your assumptions. You want complete honesty and transparency. This collaborative environment is what will help you build the best product and significantly increase your chance for success.

Finding a development partner is a scary process. You are putting your baby in the hands of someone you barely know. Before you lose the next 6 months of your life, a lot of money and countless hours of frustration, make sure you’ve thoroughly done your homework.