I've been taking the time to do in-depth studies of traditional songwriting. Interestingly what I'm finding out about myself in the process is that a lot of my assumptions over the years have been backwards, and sometimes just plain wrong.
For one thing I've been writing lyrics first and going into a recording session trying to put music to the lyrics. While it could be argued that this isn't wrong it IS becoming increasingly clear that what can happen by doing it that way is that you are putting too many limitations on what the song may become, instead of letting the song happen.
Letting the song happen just means that you start with a musical idea (i.e. a melody, musical hook, etc.) and you let it grow from there, then you add lyrics to what the music sounds like.
But when you do get lyrical ideas by all means write them down because sometimes you write a piece of music and, "oh, look I just happen to have these lyrics that will fit perfectly!"
Never be afraid to edit. Don't settle for an idea because it's "fair enough". Push the idea until it's molded into a form that coveys an idea while being poetically stated. Don't get married to ideas that could ultimately destroy your song. If you can't come up with ideas that tie all the concepts in a song together, then put the song on the shelf until it's ready, taking notes when you think of them. Some songs take years to happen, but when they finally do it's because it wasn't time before, but now it is.
Lastly, let other writers hear your progress. Iron sharpens iron. There's nothing more frustrating than laboring over a song, getting the recording just so, and then letting people hear it only to find that you didn't write a very strong song. Or sometimes you find out that it's just plain bad.
Remember, you're only as good as the moment you're in. Once you do write a good song that people like, don't stop! Write another good one. Get feedback from as many people as you can. And above all, don't be afraid! Try and try again until you get it right.