As a developer, chances are that you have started more projects than you can remember. But how many of those projects have you finished? How many applications did end up in the hands of customers?

You have probably heard the phrase "Follow your passion." or "Do what you enjoy doing." I agree that you should do what you enjoy doing, but you also need to know that passion often isn't enough to go from idea to product, a product people can use and find value in.

Motivation Won't Cut It

As developers, we tend to launch a text editor whenever we have a brilliant idea, coding away to solve the problem at hand. This usually lasts for a few days or weeks. If you are lucky, you can motivate yourself until you have a working prototype you can share with friends or family.

But a prototype isn't enough. Building a product people can use requires much more than a basic version that solves a problem.

Running a Marathon

Perseverance, tenacity, and grit are qualities that are often undervalued or overlooked. Your boss or clients don't pay you because you are passionate or motivated. You are paid because they believe you can get the job done.

Building a product, shipping it to customers, adding features, and fixing bugs are essential components of creating a successful product. Few developers get excited by bug or crash reports. The truth is that your code contains bugs and your applications crash if it has any complexity to it. Even though fixing bugs and investigating crash reports are less enjoyable tasks, they are integral aspects of software development.

Creating a product is not a sprint. It is a marathon with many ups and downs.

If you are waiting for motivation to kick in before you start working on those bug reports, you are probably waiting in vain. It requires perseverance to take a project from idea to shippable product. It takes tenacity to iterate on a product, to fix bugs, and add features.

Creating a product is not a sprint. It is a marathon with many ups and downs. It is fine to start with a sprint, but you need to remember that you are in it for the long run.

Pulling the Plug

Not every product is going to be a success. The App Store is littered with failed and abandoned projects. Not too long ago, Apple and Google used the number of applications in their mobile stores to market their platforms. Sadly, this is no longer something to brag about. Apple recently announced that it plans a spring clean in its App Store.

Even though Apple's App Store contains more than two million applications, finding what you are looking for is difficult. Finding an application that is frequently updated and fits your needs is even more challenging.

It is fine to pull the plug on a product if you believe it is no longer worth pursuing as long as it isn't an excuse to work on the next brilliant idea that enters your mind.

Start and Persevere

I have written about building and shipping products quite a few times on this blog because it is something I frequently struggle with. Adding features is nice, but updating translations, making screenshots, tracking bugs, and responding to customer feedback is less glamourous.

Building and maintaining a product is more than worth it, though. Samsara, for example, has been around for several years and people still email me to tell me how much they enjoy using it for their yoga or meditation practice. These emails get me excited to persevere and improve Samsara. It gets you through the tough times when motivation is low.

Challenge Yourself

Most developers thrive when they are faced with a problem they need to solve. Continue to challenge yourself. Pick up a new language or explore a new library to keep you sharp. Solving problems is exactly what software development is about. Is it not?