Almost everyone wants to have an app these days. But how do you go about finding the right designers, programmers, and marketers to take your app from an idea to millions of downloads in the app store?

  1. Validate your idea. Not all ideas are as great as you my think, and no one wants to call their baby ugly. Validation can be done quickly and cheaply by creating a simple “Pros and Cons” spreadsheet of your competitors, and running online surveys. But you got to do it.
  2. The planning stage is the last time your have total control – You can save a lot of money in development costs if you have drawn the entire app drawn out on paper. I’m not talking about just the main screens; I mean EVERYTHING. Each pop-up message, every menu option. It seems like overkill, but you’re really designing an architectural blueprint here. Designers and engineer have to follow these “wireframes” so they know what to build, and even so that they can give you accurate estimates. You wouldn’t give a build a blueprint for your house with a downstairs bathroom missing, and expect them to just fill in the blanks would you? If you don’t want to do this, expect to pay your developer team to do the wireframes for you, and never use a company who doesn’t offer this step.
  3. Find the right team for you. In any technical endeavor, it’s hard to pick a good team, especially if you are not very technical yourself. You can be techno-babbled to death, or won over by shinny demos. There are a few simple questions you can ask to make sure the team you’re picking is a good one:
    1. Where is the actual development done (in the US? Or is it outsourced to India?)
    2. How does the team manage their source code? You want to hear them say that they use a version control system like GIT (This is like the Track Changes function in Microsoft Word, but for software code).
    3. How is the team going to help you through the planning process? Are they going to build you a functional wireframe you can play with? How about a basic prototype? The more steps they have early on, the more likely you are to succeed.
    4. Ask to touch and play with real life examples of systems the team has worked with.
    5. Find our if they’ve worked on similar products or in similar industries. A little bit of previous experience goes a long way. Find a team who has already made their mistakes on someone else’s dime, so that you don’t have to pay for it.
  4. Understand the process – You don’t have to become a programmer yourself, but spend sometime educating yourself on the technologies and jargon you will encounter. Unlike building a house, you probably have never seen a software project being worked on as you drive down the road. So your frame of reference is very difficult. The process can be extremely opaque as a result. It’s your money; learn a little about how the sausage is made. I’d suggest learning at least a little bit about how databases work, and how source control works – these two topics alone will allow you to have much honest conversations with your developers.
  5. Don’t launch it and leave it – When your app is all done, getting it in the app store can be tricky. Start finding out what you need to do to get into the Apple store early on – this includes reading their terms of use, which isn’t as bad as you think. Make sure you have a business entity set up, and a registered Dunn and Bradstreet number if you’re going to charge money for you app, include ads, or in-app purchases. And finally, learn about how to promote your app in the stores and on the web. You’ve all heard about SEO, but there is such a thing as App Store Optimization as well.
Previous ArticleNext Article
I help companies turn their technical ideas into reality.

CEO @Sourcetoad and @OnDeck

Founder of Thankscrate and Data and Sons

Author of Herding Cats and Coders

Fan of squash, whiskey, aggressive inline, and temperamental British sports cars.

Leave a Reply

The State of AI-Coded Software, May 2025

I’ll probably regret writing this. At the very least, I’ll cringe reading it in a few months. But here we are.

Lately, we’ve been getting a wave of client requests asking us to evaluate software they built using AI tools. These aren’t engineers. These are business folks using increasingly powerful AI products to try and build functioning systems. And to be completely honest, the results are both impressive and a bit alarming.

People are building whole applications on their own. Backends, frontends, user interfaces, even some database logic. Sometimes they even look good. These are smart people who don’t know how to code but have managed to produce working systems.

The problems show up immediately when we start reviewing the internals. The code is usually a mess. In many cases, it would be extremely difficult to maintain or extend. And if you need to move that code from the platform it was created in to a cloud provider like AWS, you’re going to hit a wall. These platforms wrap everything in layers of scaffolding that make portability a nightmare.

Security is worse. We’ve found plaintext credentials scattered across files. We’ve seen SQL injection vulnerabilities that shouldn’t even be possible in modern frameworks. We’ve seen structural issues that would get flagged in a freshman CS class.

Despite all that, what people are creating are legitimate prototypes. They’re functional. They run. But when you’ve put a few weeks into building something, and you show it to a software engineer, it’s hard to hear that your shiny new thing needs to be rebuilt from scratch.

I want to be clear. I am not anti-AI. Almost everyone at my company uses AI tools every day. We use Copilot, Cursor, ChatGPT, Claude, and more. We build out frontends with tools like v0 and Lovable. These tools have changed how we work.

Some of our engineers report productivity improvements of 30 to 40 percent. That’s not a rounding error. That is a major shift. But they are still writing the code. They are reviewing it. They are checking for performance, clarity, security, and maintainability. They are not letting the tools decide architecture. They are using AI like they use autocomplete or linters, but with more power behind it.

This is also where expectations need to be adjusted. These systems will not save you 90 percent on development. They will not let you skip engineering altogether. But if they save you 30 percent, that’s a real gain. Imagine you’re building a house. The general contractor says it’s going to be $500,000. You tell them you already did the blueprints, filled out all the permits, and figured out the site plan using some AI tools. If they came back and said, “Alright, I’ll knock 30 percent off,” that would be the best deal of your life. That’s where we are today with AI-generated software. A solid start. A real value. Not a replacement.

For me personally, AI has made it fun to write code again. I haven’t been a working programmer in over a decade, and most modern toolchains are enough to scare me off. Now, with the right assistance, I can build something without getting stuck on Docker configs and dependency mismatches. That’s a big deal.

In the startup world, AI-first development is everywhere. Most of the current Y Combinator batch is using AI tools to write the bulk of their code. But those teams are highly technical. These are engineers using better tools, not tools replacing engineers.

So for non-developers using AI to build products, here are three things you should keep in mind:

  1. These tools are great for building prototypes. If you build something yourself, you will understand it better and will be a better partner to your engineering team. That matters.
  2. These tools can help you build usable frontend components. You probably won’t want to go live with them, but they can get you close enough to work with a real development team.
  3. If your app is small, non-critical, doesn’t store sensitive data, and lives entirely in its native platform, you can probably keep it running. That’s fine for internal use or personal projects.

One day, you’ll be able to speak an app into existence and deploy it with a voice command. It will be fast, secure, and beautiful. But today, you still need an experienced software engineer to check your work before you send real data through it. That’s just where we are right now.

The upside is huge. We can now get experts from other domains to build working prototypes and test ideas without needing an engineering team on day one. That’s powerful. But if your product is going to handle sensitive data or support real users, bring in someone who knows what they’re doing. Not because the AI is bad. Because the stakes are high.