The first consideration is which tool/toolkit/language, and that almost always induces analysis-paralysis in me.
Back when I was doing typography when a new tool came out I'd always do a type specimen book for whatever typeface I was currently fascinated by --- which is a bit better than "Lorem ipsum", or by extension, "Hello World" --- perhaps all GUI development systems should offer an equivalent to Steve Jobs' "5-minute word-processor demo" for NeXTstep?
Tool/toolkit/language should be the final consideration, right before you start coding. The first question is who your target audience is and what functionality best serves them.
Besides the obvious “have idea, build idea”, how can one start a successful challenging open source project like this?