I produce a lot of music.
I don't necessarily release a lot of it (or finish all of it) but I have at least 100 songs I consider developed enough to listen to, and about 300 other song files that are just riffs, beats and vocal ideas floating alone.
With so many files, projects, songs, sounds, and work in one place, I've developed musical workflow that borrows a lot from software development patterns. My music tends to be produced in stages and cycles.
I'll usually start with an idea from noodling around on some instruments, then do two things:
Then, I don't do anything.
For any length of time between a day and a month, I usually don't touch the song-in-progress. The song needs a break, while I can forget about whatever ideas I had while writing the initial sections of the song.
Then, I'll come back to it, add some more riffs, ideas, melody, direction, possibly a scratch vocal track. Then the real fun begins.
This process continues until I find it extremely hard to find changes to make to a track, or until I've reached the self-imposed deadline and am happy with the track.
In an ideal world, I wouldn't need to burn CDs for the car - I could plug in my phone and have it stream the latest version of the song from SoundCloud with no user intervention. (very similar to "nightlies" in the open-source programming world.) I could listen at work, make comments (that would get synced back into Logic), listen on my phone, make comments, send the links to others, get their feedback, and have this all happen with one utility.
(just to round out the post with some audio, here's one of my SoundCloud tracks.)
Unfortunately, if I continue writing this script at the moment, I won't have any time to finish the album the tool would be created for. Once I've released my next album, (ETA: May 2011) I'll be open-sourcing some cool tools to make such a workflow easy.