The Audacious Software Philosophy
I started Audacious Software in late 2008 after coming to the important life decision to leave the doctoral program that I was attending in favor striking out on my own to develop interesting technologies free of constraints of modern academic and corporate environments. I wanted to continue to develop and innovate in the ubiquitous computing space, but I could not find an optimal environment to do so. Academia's focus on theory detracted from its responsiveness to end users, while traditional corporations tend to be far too motivated by their quarterly reports. I believe that there is a happy medium between the two and I founded Audacious Software as my vehicle for finding that sweet spot.
In short, the purpose of Audacious Software is to create and distribute ubiquitous software technologies that make our lives better regardless of where we happen to be situated. Mark Weiser said it best in "The Computer for the 21st Century":
"The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it."
In addition to coining the term "ubiquitous computing", Weiser presented a compelling vision of one ubiquitous application (tabs, pads, and boards), but his overall description remained vague due to the limited technology available when he wrote his seminal essay (1991).
Today, we live in a world awash in mobile phones, handheld game consoles, netbooks, and so forth. Mobile and ubiquitious technology has advanced considerably, but our way of thinking of ubiquitous computing still remains tethered to a platform-centric perspective where we think in terms of applications and resources remaining siloed in individual technology stacks. We have not really begun to take a broader approach and begin to seriously think and develop as if the application could transcend these platform boundaries.
In a much clearer way than I could provide, Vivienne Waller and Robert B. Johnston described the problem in a 2009 article in Communications of the ACM. They use the work of the German philosopher Heidegger to highlight the problem:
"Heidegger describes as available that equipment which helps us to deal with the present without interrupting the flow of absorbed coping. Equipment that is available disappears from our awareness. It is only when the equipment doesn't work as expected that it is noticed. Heidegger gives the example of a hammer that is too heavy for the task of nailing a piece of wood. In this case, the user's attention is drawn away from the task and to the hammer itself; in particular, to the fact that the hammer is too heavy. Because the hammer is no longer available, the user has to find another hammer or find some unfamiliar way of using this heavy hammer before they can proceed with the task of nailing a piece of wood. Whether equipment is available or not depends on a combination of the design and location of the equipment, the user's familiarity with it and what they want to use it for; in other words, the term 'available' describes a relationship between the equipment, the user and the task. Although availability requires physical proximity to the user, it is much more than this. Equipment that is available as we use it allows us to focus on what we want to do. This is in contrast to equipment that gets in the way of what we want to do, so that we have to deal with the equipment first."
I interpret Waller & Johnston's criticism of the dominant computing paradigm - the platform as the object of focus - as meaning that we (technology developers) are spending too much time trying to build the ultimate (metaphorical) hammers instead of focusing on making sure sufficient hammers are available whenever and wherever someone needs to sink a nail.
A class of software that is near and dear to my heart illustrates this problem. Take personal book cataloging systems. In an ideal world, I would have access to my "personal card catalog" wherever I am, on whatever device I have available to me. In a bookstore, I could consult this catalog to see if I already owned a particular novel and I could record some brief feedback on the train after reading the last page. Unfortunately, while the pieces are all available to build such a technology, current software options are either limited to cataloging your collection using a dedicated desktop application (an unwieldy "hammer" with a good UI) or web service (a widely-available hammer with a poor UI).
To be fair, desktop vendors have tried to push users' collection to mobile devices, but these implementations tended to be accessories to the core desktop application instead of full applications in their own right. The web interfaces avoid this problem by presenting the users' collections in standard web views that can be loaded on just about any device, but the required tether to the network limits the usability, responsiveness, and availability of the application. (This is not a hypothetical problem when one is searching his collection within any of Chicago's many stores with books sold from a basement.)
In an ideal Waller & Johnston world, the book collection would be locally mirrored on whatever devices you had with you at the time and you could pick and choose the device that gives you the best UI for the task at hand. If you want to scan a barcode and look for a match, you use your camera phone. If you want to search and review a particular passage, you bring out your electronic reader. When the two devices are mutually visible on a common network, they synchronize their changes. When you bring the devices home, they update the desktop catalog as well.
It's this ideal scenario that Audacious Software is dedicated to achieving. The goal isn't simply to push application out to a variety of devices and services; the goal is to push the application out in such a way that conforms to a given device's strengths and limitations. It is no longer sufficient to build traditional standalone applications - we must build applications that better communicate with each other in such a way that the user has as much functionality at his fingertips as the hardware and software will allow. Each component remains independent and maximally functional, but the user perceives of the collection of individual applications as a coherent whole. Think of it as the "Voltron" school to software design.
Returning to Waller & Johnston's article, they use their observations to push for more situated computing:
"Rather [a situated system] supports action by providing the actor with direct access to the possibilities for action (affordances) present in the actor's environment. Of course, in this context, the affordances relate to actions which will help achieve the goals of the work systems. There are two aspects to this support: making the affordances present and making the affordances known. The first aspect is realized through manipulating environmental structures to control which actions are actually feasible for the actor. The second aspect is realized through indicating what actions are feasible. In other words, the environment of the actor is manipulated so that only relevant actions are possible and the actor is informed that an action is possible without needing to refer to a representation of the state of the world."
Finding the common area between the theoretical suggestion above and the state of contemporary technology, I've distilled Waller & Johnston's contribution into the following two directives:
These instructions provide a concrete lens through which we can take Weiser's nebulous ideas about ubiquitous computing and to begin to craft useful and usable software applications. However, they also remain sufficiently theoretical to help us avoid the trap of falling into focusing on the specific platforms at the expense of the user.
These are the metrics by which I judge the work that Audacious Software produces. Are we expanding the user's "reach" to information and actions that would have otherwise been inaccessible? And are we doing it in such a way that the focus remains on the users' task and goals, and not the tools they happen to have on hand?
Chris J. Karr
The Computer for the 21st Century