Even though we tend to completely forget about that, software quite often is a means of communication between humans. I am not referring to the way the product gets used (and a lot of software nowadays is used for direct human to human communications, be that one-to-one or one-to-many) but rather that the entire user interface of the application – is an act of communication between the developer or development team and the user.
The last few years have seen tremendous progress on understanding what factors influence the experience for the user, and what techniques and tools make an application easier and better to use. Computers as tools have certainly evolved and can be more effectively used. But still, the tendency is to see the application as something detached from the people who design and make it. I do not think this position holds true, and we do ourselves a disservice if we, as producers of software, do not look at the entire communications process in depth.
Look at your own experience as a user of software; I’m sure you can come up with examples of software that treat you well: considerate, polite, helpful, playful. But just as well, there’s bad examples I am sure you quickly find: obnoxious, arrogant, dysfunctional apps. Probably, the people who authored the interface and their talent to interact with other humans are not so different from their works.
User Experience designers are using Personae as a tool already; envisioning typical users and how they would go about interacting with the product. If you envision those people already, think about how you would interact with them. Consider yourself as sitting with them in a meeting or on a date, wanting to solve a problem together (and that could be the one that the application you are writing is to solve) or trying to have a good time with them. A good conversation.
Conversations and communications as a paradigm for user interfaces has another interesting implication: that of cultural bias and presumptions. This can be everything from not being able to use language-specific diacritical marks in foreign software products and lack of internalization for date and money fields to a lack of sensitivity in problematic areas (a classical example being country flags used as a selector for language localization). There are certainly other ways that we can look at this, like gender or ethnical presumptions in software – most stuff we interact with still is designed by white men.
So if we apply concepts that we know about human communications to software products, can we gain new insights or develop even better applications? Hopefully. We certainly have a new tool chest available: a lot of research has been done on interpersonal communications and relationships. We would do well to take that to heart and apply it to our work.