I’ve been programming professionally for about ten years. I still use my programming skills, but now I have to use many new skills such as sales, advertising, testing, typography, copy-writing, graphic design, etc.

programming is easy. selling is hard.

As a computer programmer, my tasks are usually well defined (and if they’re not, I can ask a few questions to define the task at hand). The outcome is measurable (it provides the defined functionality) and hopefully bug free.
For example I might be tasked to create a classifieds ads site. First I write down a detailed definition of what the site will (or won’t) do from a functional perspective. Then I can create mock-up screens of what the human interface will look like and finally I will write the code to implement the functionality. This is a pretty straight forward process where success is fairly well defined. Yes, I know that factors like security, performance, scalability and maintainability are not absolutes, but even with those factors you can usually reach a consensus on what’s good or bad.

The specifications of what I’m currently doing is something along the lines of “sell as many units as possible while still being profitable”. (We sell our product, on our site)
This is not easy.
There are probably a zillion different factors that come into play to make a sale. This is actually much more complex that computer programming, it’s just easier to understand each of the factors individually. More on this on a later post where I’ll break down the different factors that come into play.