I'm playing around with Google Spreadsheets as a platform for backend application reporting and its quite promising so far. They key to it are special functions that you can use in a spreadsheet cell to import data from XML, CSV, RSS or even a well formatted web page with HTML tables or lists.
=importXML("URL","query")
=importData("URL")
=ImportHtml(URL, "list" | "table", index)
=ImportFeed(URL, [feedQuery | itemQuery], [headers], [numItems])
Full documentation is here.
From what I can tell, every time you open the spreadsheet it reloads all the files. It does not seem to update the spreadsheet real-time with new data as you are editing it - but I think that's probably for the best.
Lets face it, most of the important data from our website activity and logs ends up in a spreadsheet at some point. The data is needed by the CFO for reconciling expenses, recording business metrics and generating future projections. Operations needs to monitor the health of the system.
In many companies, however, these requests are fulfilled by separate database admins and programmers because the CFO is not empowered to get the data himself. There is lots of, "I'm waiting to get that data back from the Reporting department." Not only does this slow things down, but causes the CFO and other decision makers to ask fewer questions. Asking fewer questions is bad! Being able to easily ask lots of questions is very good!
When something is fast and easy, you can try 10 different combinations and see what's best. When something is slow and painful, you try your best to get it right the first time. The first method seems to produce better results in my experience. It's usually better to iterate rapidly and allow for failures in the process than to try and get it perfect.
This is very similar to how email marketing tools evolved. In the beginning, the programmers for your application or website also wrote the content for the email messages it would send. Over time, the marketers took over control of the content. But then every time they wanted to change the content, they needed to go ask the programmers. While there are many other reasons to use an Email Service Provider (ESP), I believe this was actually one of the most compelling reasons at first.
So what I'm doing to start is creating a data feed of user activity. It's a daily snapshot that shows the total number of users, number of pageviews, advertising inventory generated, etc. This automatically becomes a spreadsheet in Google with a row for each day. Now the CFO can do whatever he wants with it from within the spreadsheet. Every once in a while he may have to ask the programmers to add a new column or data point to the data feed, but he doesn't have to go through someone else to get at the data and manipulate it.
Ideally, you would just dump all the raw data and logs into the spreadsheet. I haven't tested this to see how much data they will take, but I just assumed that wouldn't work. But the more granular you can get, the more the CFO can work independently without depending on others to program new reports. Rather than using a PHP or ROR charting package, you just use the spreadsheet. It's much faster and easier. You can make 2 different spreadsheets with the same data feeding into them to compare different theories.
I'm still just getting started with this and will post more examples and real-world usage data soon. If you try this out, I'd like to hear about your experiences.
Recent Comments