When I first tried to write songs, I tried to write them in a “linear” way; that is, start with the first line of the first verse, then the second line, and so forth. Don’t start the second verse until the first verse is done, don’t start the third verse until the second is done. Maybe the chorus would be written before the first verse, maybe after. But I would try to write the song sequentially.
The problem with that is, if I got stuck on, say, the third line of the first verse, then everything came to a halt. But also–and perhaps more importantly–the lines tended to be pure narrative, and not very interesting.
A couple years ago I changed my method of lyric writing. I would first free-write about the subject to flesh out my thoughts and generate interesting words and phrases. Then I’d develop lines from those phrases. At this point, I have no idea whether these lines will be in the chorus or verse, or which verse, or what order in the verse. I’m just trying to generate good, interesting lines. Sometimes I find lines which rhyme, and I wasn’t even trying to rhyme them. That’s a bonus to this approach– the rhymes sound unforced and natural, because they are.
I then start arranging the lines into a structure; into verses, chorus (if the song has one) and bridge (if the song has one). Of course, with this I usually only end up with half the number of lines I need. I have several songs at this stage of development right now. My current challenge is to find better ways of getting those remaining lines. But, when I *do* get the song done, I find that the lines of the song are stronger when I do it this way.
I call this “non-linear” songwriting, because I don’t try to write the song sequentially. It’s more like gathering pieces of a puzzle and then assembling them together.
I’m sure “linear” or “sequential” songwriting works for some people. If so, by all means continue doing it! The only “rule” for songwriting is to do whatever it takes to write a good song. But if you are using the “linear” method and struggling, you might want to try my “non-linear” method and see if that helps.