While I've meaning to develop some applications for a bit, there seems to be a great gulf between "meaning" and "doing". I've been thinking about this problem for the last day or two, and decided to jump immediately to "doing".
I've learned over time that starting on an application without a plan is a bad idea. I've had a concept for a "smart" alarm clock for some time. To translate the idea into an application, I use a two stage process. The first stage are my concept drawings where I attempt to roughly capture the application's features and UI. You can see the concept diagrams for SmartieAlarms in the Projects section.
Now it is time for the second stage, the MRD (Market Requirements Document). This is where I formalize what the heck I'm doing. I need to do an MRD for SmartieAlarms, but realized I hadn't updated my personal MRD template in some time. Tonight I did that task.
Now I can write the SmartieAlarms MRD, then get to work actually developing the application. I'm using SmartieAlarms to get rid of my "programming rust" before I start working on some other, more interesting projects. Haven't decided which development host or language I'll use to develop SmartieAlarms, but I'm tempted to go with C# as an learning exercise.