Big question.....I think it is like writing anything for an audience. First decide who your intended audience is. Is it just win32 users? Is it just linux users? Both? What about Mac? Is your user a sysadmin who can read and customize his own scripts, or a completely helpless end user who needs every little detail setup for them?
Most projects I've seen are very simple, but grow in unatural complexity as you try to make it fool proof for an ever-wider audience.
First, you have to be able to picture it running in your mind. Then you have to ask if there are already tools available to turn your vision into code.
I'm not really a human, but I play one on earth.
flash japh