FOWA Notes: How and Why We Built Google Docs and Spreadsheets - Jonathan Rochelle

Step 1 any good product
Pick a killer cool name

Google...
  ...Docs...
    ...&...
      ...Spreadsheets

People said it sucks. But At least no-one will be confused.

Who Cares? It's actually a start-up acquistion story

20052Web Technologies / XL2Web joins Google.

Mar 2006 - Upstartle / writely joins google

Jun 2006 Google spreadhsheets launched in labs
Aug 2006 Writely re-opens
Oct 06 Google docs launched.
Took it global

It actually fits well with our mission
Orgnaise my info
Make it accessible
with whomever I choose and nobody else

IOW
DIY content creation
Accepted/familiar interface.
Accessibility from anywhere.
Easy to use collaboration.
DIY community creation

It's not on the web it is the web.

Key target features
Realtime editing
online storage
Publishing
APis

One overriding product goal:
Be easy to use.

General Architecture

Server-side calculation engine. lighten the load
Ajax client
Collaboration engine.
Storage Layer
infrastructure and shared services

Google infrastructurep provides cheap scale - just add water. The team focuses on integration and features.

Ajax Client
Well defined communication layer
Push calculation logic to the server side
Browser challenges - no safari or opera support
Perceived speed

Ajax is graeat,
nice browser based UI
No plugins
Multi-platform

Ajax stinks
300k pages
X browser issues

Decisions Decisions
Who is our initial user
What are the must-have V1 features?
Launched in June, updated based on feedback in July and August.
Collaboration features - rich conflict resolution or simple "trust me" collaboration

Integration Choices - which google products when?

Technical decisions
Storage services.. which fits best?
Stateful vs stateless
homing how to split the load.

Feedback from the users
Give us more specific features.

Give us improvements to current features
More sorting options etc.

Give us more integration with more Google and non-google services.

".. but we're not whining.. We love this product!"

Lessons learned (pt 1)
Get UI help and get it early
UI innovation can make a stellar success or failure

  Front-end code is very dependent of the desired ui behaviours.
  
  Users don't like guessing what icons do.
  PM's don't make good icons.

Lessons learned (pt 2)

Test new ideas with users early.
  Nobody cared to "Pan" their spreadsheet like a map.
  
Use Test harnesses, Automation and benchmarks - early
  Client and server side
  Key for ajax experimentation
  
Speed is critical
  Performance improvements can Always be made.
    Get someone important to say it's too slow
  Compromise, kill the cool but un-used features...

Lessons learned (pt 3)

The needs of many outweigh the needs of the few
Even if that "one" is paying the bills
Get user feedback and use it as a key input to feature plans

Sometimes insight does NOT come from the user
Our biggest was realtime collaboration. - This was a critical change to the proposition.

User data is sacred
Don't ever give users a reason not to trust your product. Even internal users.
Treat data like it's your bank account details.

Lessons learned (pt 4)

Provide a very specific value that users can describe

If users are saying they need somewher to use this product 
  is not as good as
users saying that your product will improve productivity 80%  

Focus on features which align with your product's value.
for example collaboration features are critical.
It's not about which features most people want or which features will get us more users.

Talk to users
Gather plenty from early users - if they represent your target.

Final lesson learned
The team is the most important thing.
have partners
Pick the right partners
Complimentary skills
I'm not a good administrator so I picked a partner that was a great admin
Same with engineering.

Build a great Team
  Don't compromise
  
Don't hire for everything. Buy services  

Docs and spreadsheets http://docs.google.com
Google APIS http://code.google.com
Spreadsheets API: http://code.google.com/apis/spreadsheets/overview.html

Show Comments