I should clarify a bit what I mean

.
Writing and programming are
somewhat similar in the sense that the product of both activities is usually a big hunk of text. In the case of software it's commonly written in a human-friendly programming language and called "source code" (which is later translated to machine-friendly instructions via a variety of means). The difference is that unlike most prose texts, source code tends to constitute a living document, i.e. the text will get revised over and over again to fix mistakes, add new features, fix mistakes in the new features, and so on.
As such, the unit of work a programmer deals in is actually a revision, called a "patch" or a "diff". Source code text is kept in a special sort of database called "version control software" that lets you view past revisions of the source code, hone in on and visualize the difference (hence "diff") between revisions, and read the accompanying description/justification for the change written by the responsible programmer. Having the revision history of the source code available this way is really important - if a newer revision introduces a mistake it is vital to have the previous revision available to revert to, for example.
So when programmers interact as they collaborate on a program, aside from having higher-level design discussions, they do it mostly by exchanging and commenting on proposed diffs. (Here's a practical example of a small diff, from the version control for my TrekLit poll table code:
http://www.eikehein.com/repositorie...ff&h=1c818fdf9ef68ed2b4089578808958d83145bcfb)
Now programmers use a variety of means to interact with these tools and exchange diffs, but the one I had in mind for the purpose of this discussion is the website-based incarnation. Imagine a website that lets you sign in, pour over a book's text, add notes to specific lines or paragraphs, comment on other notes, propose a change, apply a proposed change, and so on. In software we couldn't do without because the nature of the work is a prolonged, perhaps infinite series of revisions. Novels undergo only a limited period of revision, but maybe it would still be more elegant than basic email?
(To prattle on a bit more: The other similarity between writing and programming is that it's mostly a solitary activity. Programming requires achieving high levels of concentration in order to juggle a large mental working set of variables and code paths and outcomes, and human brains need a certain amount of time to achieve concentration, so programming is best done undisturbed for longer periods. So since the ideal working environment for most programmers is their own office room with a closed door
anyway, and we have all these sophisticated tools for digital collaboration, and are dealing with products that are often poorly engaged with verbally anyway - programming languages are not easily spoken aloud - it begs the question whether you need office space at all. And so today you have lots of big software projects and many software companies that function largely virtually.)