A technical definition of software goes something like this: a set of instructions or procedures that are defined in a mathematical language so that they can be repeatedly run on machines, i.e. computers. Simply put, software is a tool that can be verified to always run correctly. It can be run over and over to repeatedly complete a task or set of tasks. Tasks can be as simple as sending an email or as complex as deciding whether the person on the phone spoke the word "fax" or "sax."
Anything that can be controlled by electricity, either directly or indirectly, can be controlled by software. Software runs on electronic computers, which can send electronic signals to attached devices, such as your keyboard or a camera. Software also controls the gauges in your car and the traffic lights you pass every day. The software controls these devices in much the same way that it controls the pieces of your computer like its hard drive, RAM and monitor.
So what does software look like? Some software is easy to see, like your web browser in which you are reading this. But what about the software that controls the gauges in your car? What does that look like? As I said before, software is written using a mathematical language. So all software looks like pages from a book, just not in English. People generally only see what software does instead of the software itself.
Writing software isn't much different from writing a book. A plan and outline for the book/software must be thought out and created. Then the book/software must be written, in this case using a computer to type it. Several drafts of the book/software are created and distributed for review. And finally, after many revisions, the book/software is publicly distributed. Of course this is an over-simplification, but the details aren't necessary. The two works have different audiences, people for books and computers for software, but the process is the same.
Software, done right, simplifies our lives. Think about how hard it is to type a paper using a mechanical typewriter versus a computer. Major changes often required retyping the entire page. Using a computer, moving a paragraph takes seconds. And it always works, the computer doesn't make a typo when you cut and paste a paragraph.
Software makes us smarter. The Internet allows us to access more information, and to take in more information than we could 15 or 20 years ago. Databases and analysis software help us to use information more effectively. There's software for pin-point marketing and weather prediction. Speaking of weather prediction, software's not all perfect, but science and innovation continually pushes its progress.
Software creates new ideas, new products, and new ways of doing things. By simplifying our lives and making us smarter, software gives us more tools, time and technologies to think in new ways. All this thinking creates innovation. Innovation in our thought, our products, and our every day lives. It may be hard to imagine what it's like to be born in the Internet age, but it's not hard to believe that they will grow up thinking in very different ways, just as easy travel with automobiles and easy communication with telephones changed our culture and created a slew of industries after them.
Software is a tool that provides us with ways to increase our productivity and reach beyond our human limits. Software simplifies our lives and increases our individual and collective intelligence. Yet it's not much different in its creation than the centuries-old technology of books.
