views:

298

answers:

8

I suspect many developers are in the same boat I am. There are many itches in the world to scratch, some so terribly simple, they "could be done in a weekend". And yet they never are. We have jobs, families, other hobbies to juggle... It can be frustrating!

I have a lengthy list of projects I would like to get to some day, annotated and categorized in a wiki, but I haven't put much time towards them. In the initial planning phases, I and colleges that get roped in are very excited. But when it comes time to do the actual legwork, excuses start to crop up and enthusiasm wanes.

What do you do to bring your ideas to fruition? If there are many, varying projects to pick from, how do you choose?

(I realize there's already a question with a very similar title, but that one was more about code management.)

+3  A: 

I pick whatever I feel like working on the most; and I just get started on it immediately. Making sure you feel motivated, via little successes, is the best way. Work on parts of the project you find easier, plan more difficult parts in other times, work on them when you feel really good, and make sure you are constantly hitting goals. Release it as soon as possible, and if you feel demotivated, work on something else until you feel like going back to the original one.

Sometimes though, you just need to suck it up and push through the demotivating phases.

Noon Silk
+13  A: 

The most important thing is just to START.

It sounds like you have a few options, so do the work to pick one such that you know you won't try to re-decide soon after starting. And then start!

Other tricks to help you progress:

  • Do the simplest thing to get to a version 0.1 (as alluring as it feels, leave Twitter integration for a later version).
  • Always leave at a point where the next thing to do is obvious; this eases getting back into it when you next have time.
  • Don't try to learn too many new technologies in one project, they will slow you down.
  • Explore creating "social pressure" for completing/releasing the application by talking to friends about it, etc. Better yet, pick an app that would be useful for somebody at work (HR?). There's nothing like a waiting userbase to spur you on.
Mark Gibaud
@your second point, this is incredibly hard to do when you want to see something come to life at 2am
Earlz
Great advice! +1
JimDaniel
+1 for social pressure.
antony.trupe
I forgot what this school of thought is called, but I ended up having an RNG choose which project I should work on and I would just work on that project for some time limit (half/hour).
Mark Canlas
+3  A: 

One effective technique is to sign up for giving a talk or writing an article on the subject. By doing so, you will have a true deadline and a sense of fear (e.g. being unprepared).

It is amazing how focused you will become ;-)

Michael Easter
+1 for "sense of fear." I find it very motivating.
Dave
A: 

I work on the project using Delphi (main development tool). When getting tired I start porting it to java. When tired of Java start making it as a Flash.

...then come back to Delphi and add some cool features. Bored of the "cool" features.

Start making the application a web site... Web sites are dull

... back to Delphi

and so on and so on.

I have only one project with around 300'000 LOC and around 400'000 LOC of experimental never finished prototypes written for different platforms, brosers, technologies, frameworks, etc.

This is how I keep it interesting and you have the chance to learn new stuff, right.

Around doing so I have learned - Delphi - Paradox - Access - SQL Server - Php - Java - C/C++ - Qt - C# - JavaScript - jQuery - ASP.NET - TCP/IP - web services - json - Action Script - Flex - Silverlight - Open GL - DirectX - XNA Framework - Data Snap

  • ... and I guess a bunch of other stuff

And finally in order one project to keep you "hooked" - start selling it. There is no better motivation than hard cash + new technologies.

Gad D Lord
+1  A: 

Listing stuff is one thing, but doing stuff is another. Maybe David Allen's Getting Things Done can help you to manage your stuff. Have a look at Getting started with "Getting Things Done" on 43Folders.com.

Another method that may help is the Pomodoro Technique.

Actually, both are not exclusive and may thus be used together.

Pascal Thivent
+1  A: 

I recommend publishing your project either as open source or not. The moment you get at least one person interested in it, giving you feedback, asking for features your motivation jumps hundred-fold to progress it further.

Igor Zevaka
A: 

.. in such case i have this quote flashing straight in front of me: "it's easier to start a project than to finish it". this triggers my self-esteem and if i really find the idea worth it (how to find out? let it rest for 2 days: if it still seems worth your time, it's probably a good idea), i will put myself in every harm's way necessary that the project be part of the reality i live in as soon as possible :)

pixeline
A: 

I have read one single piece of information that always helps me to focus. It really zones in on the meat of the matter - I still use this for motivation when it all gets a bit slow:

http://seoblackhat.com/2007/01/29

p.s. link may be NSFW if you can't take some bad language.

Craig McGuff