Because it’s neccessary to have a clear end result in mind… a concept of what it is you wish to accomplish, or say. You may have lots of functionality at your disposal… you may have a huge arsenal of licks, you may know the ultimate flat 5 substitution, you may understand recursion, hoisting and callbacks ad infinitum, but if you ain’t got nothin’ to say… you’re just blowing hot air.
Having a concept or point before setting on the path to writing a song is important. Otherwise all the bells and whistles of the catchy clever riff or unreal guitar tone is just fluff. The song needs to have a message, in order to affect people. This is the song’s purpose.
But I’ve found that it’s important to be open to the process of refactoring the song; not settling for the first draft, the first demo, the first take when you still have unsettled ideas swirling in your head. In the literary world it’s called a re-write; in the programming world it’s called refactoring. How to wrap all that code up into a convenient function and call it back when appropriate; or re-use it in another part of the program (similar to arranging song parts). The cutting out of that which is not crucial to the function of the song (or the program) for the sake of bringing what remains to it’s highest quality point possible.
Having said all that, there is one big difference:
Songs don’t get updates. Once you set them free on your website etc, they are in the public domain. The recording is frozen in time, and you can’t send the listener an update to fix that useless bridge or that clunky solo. You just have to live with it and move on to the next song… unless you record a new version and release it.
Find the sweet spot
By the same token, it’s possible to beat an artistic pursuit to death… to remove all of its initial excitement, the beautifully chaotic expression that is unique to each artist. You have to know when it’s time to let up on the rewrite and set the song free. This takes courage. What if it sinks?
I’ve written a lot of songs.. and I’ve built one or two simple web apps. I’m much more experienced at the former than the latter, and I may never be well known, famous or wealthy as a result of either. But in the short time I’ve spent learning what little I know about programming, I have found that I have always taken a similar approach to songwriting. If I don’t have a concept, I don’t have a song. Eastern philosophy may say that “A good traveler has no fixed plans and is not intent on arrival”, but for my money “Top Down Design” makes for good songwriting.