FOWA 07: Jonathan Rochelle – How We Built Google Docs & Spreadsheets

History of Google Docs & Spreadsheets. Was an acquisition start-up, 2Web Technologies/XL2Web, applied financial services setting. Then Upstartle/Writely. Launched in Labs. then launched properly in Oct 06. had to bring user interface together for both. Feb 2007 globalised to 14 languages.

Fits well with the Google mission. “Organise my information…”, make it accessible and useful, and share with whomever I choose (and nobody else, thanks).

Everyone is creating content every day.

Accepted/familiar interface for spreadsheets and documents. Accessibility from anywhere. Easy to use collaboration. DIY community creation.

– Collaboration with others on the same doc/spreadsheet, in real time, without proliferation of version/copies.
– Online storage – accessible ‘anywhere’
– Publishing – people who already create content become publishers
– API – for developers

Must be easy to use. Must be feature rich, but also simple to use. Challenge.

Not able to demo because of wifi problems.

General Architecture
– Server-side calculation engine
– Ajax client
– Collaboration layer
– Storage layer
– Infrastructure and shared services (aka ‘everything else’)

Google’s infrastructure allows cheap scaling, ‘just add water (machines)’. Team stays focused on features and integration. But challenge is that you can’t launch so quickly because can’t launch until it can scale, and whilst it’s cheap it’s not easy to move to Google infrastructure.

Technorati Tags: ,


Well-defined communications protocol to server
Push calculation logic to the server side
Browser challenges, still don’t support Opera or Safari, which they are working on, but Ajax doesn’t solve that problem
Perceived speed – pay me now or pay me later. Spreadsheets are not that great but improving.

Ajax is great!
– nice UK
– no plug-ins
– multi-platform

but
– event triggering hell
– 300k web pages
– multi-platform is experimental at best

Decisions
Who is our initial user? Spreadsheet user or the person who could use spreadsheets but doesn’t? Chose users.
What are the must-have version 1 features? Launched in June, updated in August and September.
Collaboration features – rich conflict resolution or simple ‘trust me’ collaboration. Professional users need rich controls but most people didn’t complain about the ‘trust me’ version.
Integration – what Google products can we integrate with? Gmail. Need to integrate to introduce people to the technologies.
Technical decisions – which storage services? Different Google infrastructures as has multiple.
Stateful vs. stateless – sort of have to do both?
Homing – how to split the load and give high resiliency

Feedback from users
Give us more specific features: freeze columns, drag&drop, range names, cross spreadsheet links, autofilter, charting. Lots of this can probably be done by APIs
Give us improvements to current features: more sorting options, more edit controls, more ACL controls, easier inserting rows, copy/paste issues, group invitations
Give us integration with more Google and non-Google services

Users loved the product, but when they changed the UI it took off, made icons that made sense. Everyone in the firm uses this product. Therefore, do not test your product with Googlers, you either get over-criticsed or they are too techy already. But people were using this for normal things.

Lessons learnt
Get UI help and get it early
– UI innovation can make a stellar success or failure
– front-end code is very dependent on the desired UI behaviours
– users don’t enjoy guessing what icons mean, and project managers do not make good icons

Test new ideas with users early
– nobody cared to ‘pan’ their spreadsheets like a map.

Use test harnesses, automation and benchmarks early on
– works on client side and server side
– key for early Ajax experimentation and retesting

Speed is critical
– performance improvements can always be made, just get someone important to say ‘it has to be faster’
– compromise and kill the cool but un-used features.

Needs of the many outweigh the needs of the few, or the one, even if the ‘one’ is currently signing your paycheck

Get user feedback, and use it to plan future features

Sometimes insight doesn’t come from the user
– immediate/real-time collaboration was the thing that make people recognise the value, and made people realise that they were working on the same copy of the same document at the same time. but that didn’t come from the users

User data is sacred
– people asked ‘can I depend on it’
– can’t ever give users a reason not to trust your product (even internal users)
– no one puts fake data in to test something, so you have to treat that data like it’s your bank account and look after it.

Provide a very specific value that users can describe
– market it to one group, then expand that group.

Focus on features which align with your product’s value
– for example collaboration and sharing are critical to Google Docs & Spreadsheets, and it’s not good at groups yet and that’s not acceptable.

Talk to users
– gather plenty from early users, if they represent your target
– look for new targets/angles/verticals as the product is used
– don’t be so sure where you are going in 12 months, and accept that new markets are going to pop up which may change your direction.

The team is the most important thing
– have partners
– pick the right partners
– shared vision, complementary skills, cover all necessary activities
– build a great team, never compromise
– don’t hire for everything, buy services, don’t always assume you have to do that yourself

Comments are closed.