I’ve been thinking over the last few days about what Google Wave could be used for. Obviously it can be used as a document collaboration and review platform.
It can also be used as a multi-user chat program, although there are probably other existing programs that are just as good for managing that.
Some people have claimed that it isn’t anything revolutionary. In and of itself, this is true, as it just takes concepts already available
in email, instant messaging and collaborative documents and puts them together. What I’m more interested in now however is what we can do with
it now that it has brought those technologies together.
In a blog post, Daniel tenner quite succinctly outlines where Google Wave will be useful, and
primarily its going to be used by people working together. Why couldn’t we use it to do workflow related stuff too, especially when there is an
automated component to it? I decided to look at how we could do leave forms. The first question I asked was “why would you want to do leave forms in wave?”.
There are already web applications for doing workflow. The problem that I see with that is that they are still fairly rigid in their operation. Whenver
your manager is on leave or you want to go slightly outside the pre-defined workflow thats there the procedure becomes very brittle and you need to
go to a user with superuser access to get things done. In addition to this, all notifications that you have new forms to attend to or that the status
has changed go out by email. Email shouldn’t be a notification system. We just use it that way because its familiar, and it is the tool that we spend
most of our time in.
Assuming that google wave becomes popular enough that we use it each day, wouldn’t it be nice if the workflow/collaboration tool entered into our messaging tool. That way we wouldn’t need to log into a separate tool to manage things. It would be there in front of us, and allow us to deal with the situation immedaitely.
To test this theory, and also to play with Google Wave bots, I have written an extension to Google wave, which gives users the option to create a Leave
application in google wave. Interestingly enough, I found it easiest to document the procedure directly in Wave, which would make it very easy to introduce
new users to our procedures. The procedure wave is available at Leave Application Procedure. One nice thing about this is that if HR needs to change the procedure, It automatically pops back up in people’s inbox so that they see the changes. There’s no need for notifications to be sent out, as the change to the document (to which everyone is subscribed) automatically gets distributed. Likewise, if a staff member has a question on the procedure, it can be asked directly in the wave itself (privately if necessary) to provide context to the conversation.
When a user creates a new leave form wave, it automatically includes a bot which is responsible for progressing the wave through the workflow. This is done by a series of buttons (or actions) at the bottom of the document which take the standard approval route (Draft -> Submitted -> Approved -> Processed). It is flexible however, as anyone that needs to deviate from the process, say to get additional approval from another team leader because he is to another team, can simply add the other team leader to the wave and have a chat. All of the context associated with the process are kept with the wave, and it can easily be searched later on to see what happens.
Its also possible for the bot to take a greater role in the process itself. It can check leave balances (assuming that the leave system is available to it), add leave to the company leave calendar, and any number of other integration tasks because it is the thing that is managing the workflow itself. Its very flexible, easy to change, and completely under the control of the organisation. One thing I played with was getting the bot to understand (as best as bots can) natural language. If you wanted to query your leave balance for example you could start a wave with the bot and ask it “What is my leave balance”. It would could then look up your balance and reply. This would be able to free up HR staff from having to perform mundane tasks. Obviously bots have got a long way to go before they can understand our language properly, but if queries conform to simple grammar rules then it should work.
If anyone would like to have a play with what I have written, let me (firstname.lastname@example.org) know and I will add you to the procedure wave, which will allow you to install the extension and create a dummy leave application. It puts me in as the approver for everyone (except for me, for whom it uses another bloke) as their manager. Only the manager can approve/reject a timesheet. If you say anything to the bot, it replies with a message about your leave balance (which is bogus. the bot isn’t connected to our HR system).
What does everyone think? Is this a good idea for managing workflow? Until we have broader access for people to get on Wave it will be difficult to tell, but I think it is a good use.
P.S. I wrote this post in Wave originally, but had to copy and paste it here because the embedding API doesn’t allow anonymous viewing yet. Google Wave is great, but it is still definitely a beta product.
UPDATE: I’ve created a screencast demonstration of how the flow will work. Remember this is intended as a proof of concept rather than the full thing, but it gets the point across.