You’ve probably realized by now that software development and entrepreneurship are two very different things. Software development is a tiny subset of the skills an entrepreneur needs to launch and operate a successful software or web startup.

If you’ve been writing code for years you’ve likely formed opinions that don’t quite hold true in the world of entrepreneurship. This lesson covers a handful of realizations that you will come to at some point during your transition from developer to entrepreneur.

Realization #1: Being a Good Technician is Not Enough

In The E-Myth Revisited author Michael Gerber talks about the archetypes of running a business. They are: entrepreneur, manager and technician (discussed in more detail here).

The entrepreneur is the dreamer, the visionary, and the creative mind.

The manager is the person who thinks about return on investment (ROI), near-term success, and productivity.

The technician gets the work done. She follows the manager’s guidance and is concerned about today’s success.

95% of developers are comfortable, and probably excel at, being technicians. This means you’re good at writing code, producing something tangible, and cranking away on each task, moving one step closer to launch date.

But it takes more than a technician to run a successful business. It’s critical to look ahead into the near-term and determine which features or marketing efforts will provide the best ROI (manager), and to think out a year or more to determine the long-term direction of your business (entrepreneur).

The first step is to determine your goals and objectives.

Without planning, organizing, systematizing, outsourcing, and marketing, all things you will shy away from as a technician, you will never make it past the $25/hour pit you see many one-person companies fall into.

Realization #2: Market Comes First, Marketing Second, Aesthetic Third, and Functionality a Distant Fourth

The product with a sizable market and low competition wins even with bad marketing, a bad aesthetic, and poor functionality. Think QuickBooks in the early days, or any niche product you’ve ever seen that looked like it was written by a six year old but sold thousands of copies.

In the same market, the product with better marketing wins. Every time.

In the same market with equal marketing, the product with the better design aesthetic wins. Sure, a few people will dig deep enough to find that the “ugly” product has better or more functionality, but the product that wins is the one that has the best looking website and user interface.

Functionality, code quality, documentation…are all a distant fourth. I know this sounds sacrilegious, but unless you’re marketing to software developers – they can be an exception to this rule – your order of importance is market, marketing, aesthetic, function.

Realization #3: Things Will Never Be As Clear As You Want Them to Be

Writing code is cut and dry. There are different ways to accomplish the same thing, but in general you know how you want your application to behave and you just need to get it there. Your constraints are constant – the compiler behaves the same way it did the last time you compiled.

By comparison entrepreneurship, especially the marketing side, is never this clear.

Even the foremost marketing experts in the world are not sure whether people will buy a new product. People with 20, 30 and 40 years of experience still have to take their best guess at what will succeed. They have to try things out and adjust as they go. They often do small roll-outs to test audiences and adjust the product or the message before unleashing it on the world.

You will have to do the same and it will involve a lot of guesswork at the start, which is a hard pill to swallow when you’re used to making decisions based on fact. Instead, you have to take your best guess, then measure and tweak.

And then do it 20 more times until you succeed.

Realization #4: You Have to Measure & Tweak

Like me, you’ve probably visited hundreds of startup websites in the past 6 months. Each one had about three seconds to sell you on their product…three seconds to convince you to click a link that wasn’t your back button.

You will soon be on the other side of the equation, and you will have three seconds to sell someone on your product. And you know what? You’re going to fail. A lot.

Your early conversion rates are going to be abysmal. So low you’re going to email your web analytics provider asking if there’s a known bug in their conversion report. You’re going to wonder why no one is trying your demo, watching your product tour, or buying your product.

This is why you have to measure and tweak. You have no chance of achieving an optimal marketing message on your first try. So you have to observe your visitors’ behavior and change pricing, headlines, screenshots, buttons, and a number of other factors…and watch how they behave when you do.

Realization #5: You Will Never Be Done

Finishing a software project is a great feeling. The night you roll the new bits to the production server is indescribable. The feelings of relief, joy, accomplishment…are some of the most rewarding parts of developing software.

And you’re never going to feel that way with your product.

Sure, you’ll have releases and milestones. And you’ll feel good the day you launch a new version.

But you will never feel “done.” You will always have a list of features, marketing tests, potential partnerships, and new markets to take care of. And while the journey is itself a gift, never having the feeling of completion is something you need to get used to.

The idea of building an application and sitting back to collect a check is, unfortunately, a pipe dream. You have to continually invest in both your product and your marketing in order to remain successful.