Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have numerous personal projects I've begun and never seem to finish because I get sidetracked with other ideas. I was wondering what the best method to get personal projects done is? Any tricks or tips to it?

The problem is I get a spurt of inspiration on some projects, and I don't wanna lose track of my ideas and right now my method of "saving my ideas" is to just get as much stuff done on the ideas as possible in one night and then store some GitHub issues as to dos. I find that this makes me never get back to older projects tho.

share|improve this question
    
The title and the body of your post are in controversy. Please clarify what your concrete question is. –  Péter Török Aug 12 '11 at 8:29
    
Sorry, I fixed the title –  Oscar Godson Aug 12 '11 at 8:32
2  
Related thread: How important is it to finish projects? –  Péter Török Aug 12 '11 at 8:34
add comment

4 Answers 4

Which one are you sufficiently upset about? Finish that one. Repeat.

These are personal projects: the only person who cares about them right now is you - and if you don't care enough, then you probably already got from them what you needed. Don't beat yourself up about it.

share|improve this answer
add comment

I have the same problem

I have found that I have exactly the same problem with my personal projects. I find that when I have inspiration I'll work diligently to the point of obsession for 2-3 weeks on a personal project and then when I've done quite a bit of work on a project and I hit a wall I'll loose all of that energy and loose interest.

The trick is to cycle through your projects

I find that when I drop a project due to a lack of inspiration or lack of ideas on how to proceed I'll regain inspiration later on (even 6 months on) and then gain another 2-3 week period of getting a lot of stuff done until eventually I get something working.

  • Wall E - Arduino Project (First Iteration was just getting Servos and soldering)
  • Wall E - Take 2 (took the Wall E toy apart and made him autonomous)
  • Wall E - Take 3 (Unfinished - Enable bluetooth to give him commands and switch modes)

Each of the Wall E projects were about 6 months apart, and I still have him sitting on my desk waiting for a bluetooth modem (need to figure out how to get it to fit inside the robot).

Android Projects / XNA Projects / Haskell Projects are pretty much all the same. I find that if I loose interest and drop a project only to cycle back into it I'll eventually finish the project and gain a lot more than if I had only just dropped it.

share|improve this answer
add comment

The question title is "How to pick...", but you seem to be asking "How to complete personal projects?" I think there are (at least) two things going on:

  1. Something that seems like a good idea at the time may turn out to be less important to you after you've thought about it for a while.

  2. The form of your work may make it more difficult to come back to. Sometimes, when you're feeling inspired, you have the sense that you can see the entire project and how all the parts fit together, and you want to write it down before it gets away from you. When you come back to it later, the code you've written may not be so clear, or may not be so well designed as you thought it was at the time. Or maybe you've had some additional ideas on the topic, but they don't really fit in so well with the original concept.

In the first case, not finishing might be the right decision. You've had an idea, it was interesting, and now you're moving on.

In the second case, I think that feeling of seeing everything is your brain playing a trick on on you. You've got an idea and it seems great, and your brain races around filling in the missing pieces to make the idea seem more coherent. One way to deal with that is to slow down and use a better design process. Instead of jumping right into code, write the idea down in prose. Create a high level design, and then start fleshing out the details. If the insight you have relates to implementation, then write that down too, but don't try to code it all up at this stage. This way, you've captured the idea(s) on paper so they won't get away, but you haven't implemented anything, so the design is still pretty flexible. At this point you can come back to it later if you want, and if it still seems like a good idea, improve the design and eventually start implementing in a methodical way. Keep a log of your progress so you can always tell what you've done and what you still need to do.

The last thing is that you have to actually want to finish the project. If you don't want to finish it, then it's just another chore on your to-do list that piles up and makes you feel swamped by a ton of work that you don't actually need to do.

share|improve this answer
add comment

I'm reminded of the 80 / 20 rule. It takes 80 percent of the time to get 20 percent of the project done. :-)

I'm currently working on implementing a stock market board game from the 1960's using Java. I had a lot of fun figuring out how to draw the game board, and putting the user interface together.

The move algorithms turned out to be hard to implement. Depending on the state of the game, you could land on as many as 3 different squares on a given dice roll. I'm on the 3rd iteration of the move algorithms, and hopefully the 3rd time will be the charm.

I had no trouble motivating myself to draw the game board. I had a lot of trouble motivating myself to work on those move algorithms. But the move algorithms were what I needed to do to improve my design skills in other similar areas.

It's easy to do the fun stuff when coding. It's harder to do the harder parts of a project, especially when you get the design wrong. Twice. But recognizing and learning from your mistakes is what will make you a better analyst, designer, and programmer.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.