There are several types of writers. The most common one is the one that writes words in a human language to produce a literary work. We consume their works reading a novel in a book or a blog post in a website, or by watching a play or a movie.

But there are also computer programmers, who are writers that produce software. They also write words, but in a computer language we call code. We consume theirs works quite different, maybe using an application in a computer or playing a game with an smartphone, or just taking an elevator or driving a car.

Writing Software as a Book

Imagine that a programmer writes software as if it is a book. How different the process will be? Both need an idea to start and, I believe, some kind of creativity.

Time consuming

You could see that his work would take some time to produce, if it's big it might take months, or maybe is quite small and could be completed in a white night.

In the computer world, complexity has huge impact in the time a work need to be finished. If something is small but complex, it could take as much time as if something that is big but simple. This is because writing software need some logic and other areas of sciences, like mathematics. This logic involvement is not required to produce literary works, reducing the way time is affected.

Time is a relative thing, and cannot be measured in a general way. As creativity and the authors subjective view are determinant in the progress of the work, the time consumed in each task can be vast and unpredictable.

Errors

Literary writers call them mistakes, a software error it's called bug. But is makes no difference, everyone makes errors, we are humans. It's fine because fixing an error is not an issue, the problem resides in finding the errors in the first place.

At first, the writer would iterate several times on the writings and might find some errors. But most of the errors will pass by to the writer's eye. Here is when he/she will delegate the task to an external helper. This might be another person of an automatic algorithm.

The person who correct another person's work is called corrector and will not only find the error but remove or rectified it. In case that fixing the error is out hands of the corrector, it will go back to the writer to fix it. This is the general case in software development, were the corrector it's called tester because only finds errors.

A computer program could be used to find errors, different programs will be used for different tasks. For example, a writer how writes in English will use dictionary/grammar corrector program to find the most common mistakes. Programmers have a similar application for code, but most of the automatic testing is done by another piece of software written specifically to test the original code. This second software is normally written by the same programmer but it's encouraged to be written by another peer.

Steps in the process

Creating a work require some steps that the writer need iterates over. From the idea to a published work, both writers act almost the same:

  1. Planing
  2. Writing
  3. Find/fix errors
  4. Revising
  5. Publishing

Each step is needed to complete and publish the work. At the end of them, most literary writers will concentrate their focus out of the work itself, maybe by tasks around the work (like promoting it), but not in work itself. This doesn't mean that software writers will not promote their work, they will spend time in tasks around the published work, but their concentration will rest in the lines.

This is basically because software is like a living creature, it always need care. Mostly fixing new errors and expanding it. When a few modifications stack, a new publication is made that contains everything up-to-date. This is tagged with a version number to keep record.

Books also have many publications, they are called editions. Most of them are the same text written with different artwork, layout and/or editor. But also there are cases that errors need to be fixed and new content (mostly in form of a preface) are added.

Being known as the author

Launch to the public

Success and popularity