Saturday, May 26, 2012

The Current State of Personal Assistant Software

Earlier, I had discussed some features in personal assistant software. What is the current state of the art for this category of software? The truth is that no single application covers all of these features. What you see today are applications that cover one or two of these features.

The most popular example of a software agent is Siri. Did you know that there are other examples too? Google alerts qualifies as a software agent in that you express a search wish and this app emails you whenever it finds what you are looking for.

Siri is also the leader when it comes to human interface factors but it wasn't the first. Mac OS X spotlight is one of the first examples that brought this type of feature to the mainstream. Ubuntu has also adopted this approach over menus with the Head Up Display part of its Unity interface.

Typically, it is web franchises that have gone to market with multiple platforms. Zoosk is a good example of this with first class, native versions of their web app that run on iPhone, iOS, Android, Windows, and Macintosh desktops.

Facebook and Google are the leaders when it comes to big data. There is a growing number of open source big data technologies that will make big data affordable for just about any start up or SMB. Hadoop is clearly the winner in this category with vendors such as Cloudera and Hortonworks. Solr/Lucene is more known for its search capabilities but should also be considered as a NoSql solution for big data requirements.

Google and Facebook also do a great job when it comes to real-time communications. Google talk is the most visible example of this. There are some mature open source technologies that bring real-time communications capabilities to start ups and SMB too. ejabberd, Tigase, and Open Fire are the three most notable examples of this.

What lies ahead are when these feature sets converge. Those apps don't exist yet but there are some early adopters that are worth keeping your eyes on. Opportunity Eye is an initiative that promises to explore what it would be like to have a full featured personal assistant that combines features from each of these categories.

How much synergy can be discovered with personal assistants that combine elements from software agents, human interface factors, multiple platforms, big data, and real-time communications? Let's find out.

Thursday, February 23, 2012

Five Things to Consider When Choosing Personal Assistant Software


It has been said that we are in a period of time which is the rise of the personal assistant. By that, I mean software/services intended and designed to augment and improve your life on a personal level (perhaps on a professional level too). Here you will lean the five basic ingredients to good personal assistant software and how they differ from more traditional software applications. May this advice help you choose (or create) your own.

A Good Personal Assistant operates like a Software Agent and not an Application.

Software agents have been around for quite a while but not many people know about them. I won't bore you with talk about FIPA compliance. Instead, I will make the most important distinction between software applications (such as a word processor) and software agents.

With an application, you express a command (e.g. open a file or send an email), there is usually some task negotiation, the app then performs the task in a finite amount of time and it's done.

With an agent, you express a wish (e.g. find a good deal) and the agent keeps looking in the background. Along the way, it will report to you anything it finds that it believes is relevant to you. This kind of task never stops until you tell it to stop. Task negotiation also happens but only after you have seen some results and are asking the agent to make some course corrections.

Human Interface Factors

Traditional applications rely heavily on the keyboard and the mouse for human interaction. You are most likely expected to fill out forms or dialogs as a part of the task negotiation phase. You must also learn the information architecture of the app through how it categorizes things via its menu structure.

A good personal assistant relies heavily on natural language processing in order to understand human commands either spoken or written in a more informal, conversational tone. With an app, you navigate through a menu structure (or similar GUI construct such as a tab bar) to find the right place to express the type of command that you want it to do next such as draw a line or search blogs for stories about ponies. With a personal assistant, there is no menu structure and only one place to interact. This is usually in the form of a big text box (or microphone) where you tell the assistant what you want and answer any questions that it asks for clarification purposes.

Multiple Platforms

Effective personal assistant software needs to be able to go where you go and inhabit where ever you are focusing your attention. If you are waiting in line somewhere, then you will want to interact with the personal assistant on your smart phone. If you are a commuter on public transportation, then you will want to review what your personal assistant has found on your tablet. Depending on your personal style of office workstation, your personal assistant will need to be present and available on your laptop or desktop of choice.

Big Data

What good would any personal assistant software be if it cannot serve as an ombudsman to a world of complicated choices? That means, in order to help you make the right decisions, the personal assistant software needs to be able to access, manage, analyze, and summarize a lot of fast moving data. The ability to apply sophisticated search algorithms across large, heterogeneous content repositories whose data has a short shelf life is what gives personal assistant software the only value proposition that uniquely distinguishes it from other applications. I call this opportunity discovery.

In the end, that is what personal assistant software is really all about.  Instead of you spending a lot of time trolling around for the next good airline ticket deal, that vintage Windows CE device on ebay, or good seats to a Giants' game, the personal assistant software does all of that mindless repetitive stuff for you. You get notified and kick into action only when the personal assistant software has discovered the desired opportunity.

Real-Time Communications

That leads me to the last ingredient to good personal assistant software, its real-time nature. Opportunities, once discovered, don't last long. You have to act and act fast. Email takes too long. Push driven notifications, presence updates, and chat are the most effective ways to deliver the discovered opportunity in time for you to take advantage of it.

Leveraging the popularity of search engines, social networks, and mobile computing, I believe that personal assistant software is a trend that is on the rise. Before considering any particular product to build or buy, be sure to evaluate it for its ability to continue working while you are offline, how easy it is to interact with, what types of machines that it can run on, how connected it is with online databases, and how quickly that it notifies you of any results.