Building Software is Hard

Depending on who you ask, the state of the current economy is either amazing, or downright scary. In the first group, you’ll often find people that are technologically skilled, such as programmers, software developers, and designers. This group is not only doing well, but so highly sought after that the bidding wars over technology talent have forced salaries and rates into the stratosphere, where talented folks in these areas can practically name their demands.

The other group though, doesn’t have it so well. These are ordinary people, many of them smart, educated, and hungry for success. But it doesn’t come so easy, mostly because the skills they chose to learn are no longer needed in today’s business environment.

So they watch movies like The Social Network, and get tuned in to the venture capital (VC), silicon valley, and software market, where they hear about companies like Color, getting 40+ million in VC money, LinkedIn scoring huge in an IPO deal, and Groupon turning down 10 billion dollars from Google. How can they not get excited about that? How can they not want a piece of that pie?

Six years ago, when MySpace was acquired for 580 million dollars, I felt the same way, and here I am, finally building software.

But this isn’t about the economy, I only tell you that to set the scene for what I’m going to say next.

Building Software is Hard

The natural move, when hearing about how easy it is to build iPhone apps, or WordPress themes, is to run out, buy a few books, and start posting jobs on freelance websites. Some people might try to learn to program on their own, while others might prefer to let someone else do the work. Either way, an initial excitement period kicks in, followed by a rush of activity, and then the inevitable realization that…

Building Software is Hard

It seems easy to throw money at the problem, and to be honest, it is easy. The problem though is that money alone isn’t enough, and it certainly won’t save you from getting ripped off and/or receiving poor quality work.

The truth is that good programmers don’t like to work with n00bs, and the bad ones, well…they love taking your money.

But let’s assume that eventually, you fight through the pains of learning to code, or in learning to find good developers – that’s when you realize that developing an app isn’t good enough, because design matters too. So now you’re through the first excitement phase, have survived the initial learning curve, and are stuck trying to learn UX/UI too. At this phase, you’re probably thinking, like I did, that…

Building Software is Hard

Suppose that you keep doing, as you should, and you’ve finally built and designed a great app. What’s next? Yep, marketing that app so that you can make money. By now you’ve probably spent much more time and money than you had expected, and you’re struggling to decide whether to keep going or not, and it hits you: “how am I going to get people to buy this?”

Building Software is Hard

But you did it; you persevered, and you’ve finally starting selling that baby. Then one day you get an email from a customer, and they tell you that you’re software is not only missing several key features, but also doesn’t work in such and such instance. You thank them for the feedback, and move on, until the next day, you get two of the same type of email, and the next day, 10 more. Within a month, you have a stack of emails and scores of customers telling you that your app is good, but isn’t good enough. Welcome to software support.

I’m going to stop repeating the mantra, because by now, you get the point. It’s hard – sometimes, terribly difficult to become a software developer. But I don’t say this to discourage you, I say this for two important reasons:

  1. So that you respect the profession before you enter it in order to gain respect by those who you’ll rely on for help.
  2. So that when you are faced with difficulties, you will have already seen them coming, and won’t stop when the going gets rough.

There’s another reason too, but this one is something that you might not understand until you get there. When you learn something new, such as software, and you truly want to achieve mastery, the minute you think you finally know it all, you gain the realization that you know far less than you can imagine. That’s the way I feel today, preparing to write documentation for a WordPress plugin.

Five years ago, I was joining the Army as a combat engineer, yet today, here I am, building and selling software for a living. Boy, it’s a hell of a ride, but I’ve got to warn you, it ain’t easy.

game design document

About Nathan Hangen

Nathan Hangen is a co-founder of Virtuous Giant, and when he isn't working, spends his spare time playing guitar, running, and studying ninjutsu.
This entry was posted in Blog and tagged , , , , , , , , . Bookmark the permalink.