Most of us have probably come up with a cool idea for an app at one time or another: the app that no one else seems to have come up with, or just an app that we believe that everyone needs. Some of us just let the idea pass, while others, inspired by that idea, proceed to brainstorm, plan and start building that app.

Months later, while some have published their app, the rest of us have probably stalled abandoned the project, or let it fall to the bottom of the list of our priorities, and started working on another idea. Rinse and repeat.

Even though I usually don’t have problems delivering projects to clients, I do struggle delivering my own projects. Why? Because it’s my own project, and we developers tend to be perfectionists when we are talking about making our own product. By being perfectionists, I mean that we never stop looking to add more features to our project, or ditching what we have done because we just found out that there are better ways to do it.

By getting my first personal app, TwentyOne, published on the App Store, I learned some important things to consider when working on a personal project.

1. Focus on what you are working on, write down everything else

If you have already started on one project, and come up with an idea for yet another project, write it down and keep working. Keep a list of all your projects. You will probably come up with more ideas for those projects, so just write it all down, and when you have finished the on you have been working on, you’ll have a list of more matured and developed ideas, making them way easier to start with.

What I do, is to keep all my notes and ideas collected on Evernote, I usually write every raw idea on a single document and create a new document for a project once I start planning and working on it.

2. Manage version releases

While we are building our project, we will probably come up with more ideas, more features for it. If you aim to implement all the features you come up with for your first release, your motivation will probably wane before you get to release it.

When I was working on TwentyOne, I came up with lots of features that would be cool to implement. If I decided to implement each of them for the first release, it wouldn’t be on the App Store right now, and would have probably kept dragging on, and never seen the light of day. Instead, I decided to cut off the extra features, and focus on its main functionality.

Plan the extra features for the next release, and focus on your project’s core functionality: quality over quantity. Then reconsider those features once you have released the first version. You might even realize that you saved the time and trouble as they might never been worth it.

3. Take advantage of your initial motivation

While I was working on TwentyOne, I realized that I had the habit of focusing too much on visuals first, because it gave me a more tangible but false feedback of my progress and gave me a false sensation of reaching the final product faster.

Motivation tends to fall over time, so take advantage when you are full of it, and work on the core, that stuff will probably take longer to work on, and leave that gratification for the end, when you will need it the most to finish.

4. Get feedback

The earlier you ask for feedback, the better. And don’t just ask for feedback from anyone, make sure it’s from people who are having the problem you want to solve with your project. By getting feedback you know if you are going in the right direction.

5. Get the most of it, even if you don’t finish it

Besides gaining the experience, you can get other things from your finished or unfinished project:

  • Make a module out of one feature of your project, it might be handy later on. If you are willing to share, open source it and share it on [Github](http://www.github.com], because someone else might be looking to do something similar, and might even improve it . I did this with the animated sliding table cells that I built on TwentyOne; you can find the repository here.

  • If you believe that you might never finish your project for whatever reason, consider open sourcing it if you haven’t. People that are interested in your idea will contribute to it, and your project might actually see the light of day instead of falling into oblivion.

So, these were some of the lessons I learned on finishing and shipping an idea. Have you ever struggled on getting a side project done? How was your experience?