Top Banner
Google Confidential and Proprietary 1 Presenter Name 1 Title 1 Presenter Name 2 Title2 Google Docs & Spreadsheets How and Why We Built Jonathan Rochelle Product Manager
20

Jonathon Rochelle @ FOWA Feb 07

May 13, 2015

Download

Technology

carsonsystems

Jonathan Rochelle of Google speaking at Future of Web Apps in London, February 2007.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Jonathon Rochelle @ FOWA Feb 07

Google Confidential and Proprietary 1

Presenter Name 1Title 1

Presenter Name 2Title2

Google Docs & SpreadsheetsHow and Why We Built

Jonathan RochelleProduct Manager

Page 2: Jonathon Rochelle @ FOWA Feb 07

2Google Confidential and Proprietary

Agenda

• Background, History, Key Feature Goals

• Quick Demo

• General Architecture

• Decisions, Decisions

• Lessons Learned

Expect: Focus on Spreadsheets….Product Manager view…

Page 3: Jonathon Rochelle @ FOWA Feb 07

3Google Confidential and Proprietary

“When will we….”

“We have nothing toannounce at this time”

Page 4: Jonathon Rochelle @ FOWA Feb 07

4Google Confidential and Proprietary

…&… …and… …&…

History – How it all began…

• Step 1 of any good product:

… Pick a killer cool name!

“Google……Docs…

…Spreadsheets” !!… at least nobody will be confused

Page 5: Jonathon Rochelle @ FOWA Feb 07

5Google Confidential and Proprietary

History of Google Docs & Spreadsheets

• Who Cares?... It’s actually a Start-up Acquisition story…

• 2005 – 2Web Technologies / XL2Web joins Google.

• Mar 2006 – Upstartle / Writely joins Google.

• Jun 2006 – Google Spreadsheets lauched in Labs

• Aug 2006 – Writely Re-opens registration (mostly Googlised)

• Oct 2006 – Google Docs & Spreadsheets Launched

• Feb 2007 – 14 languages…

• Who Cares?...

Page 6: Jonathon Rochelle @ FOWA Feb 07

6Google Confidential and Proprietary

Background: Why Google Docs & Spreadsheets

• It actually fits well with our mission…

• “Organize My Information… and…

• Make it Accessible and Useful…

• With whomever I choose (and nobody else, thanks)”

• IOW….

• Do-it-yourself Content Creation

• Accepted/Familiar Interface of Spreadsheets and Documents

• Accessibility from anywhere (…connected)

• Easy-to-use Collaboration

• Do-it-yourself Community Creation

• It’s not “On the web”… it “Is the web”…

Page 7: Jonathon Rochelle @ FOWA Feb 07

7Google Confidential and Proprietary

Key Target Features

• Collaboration with others on the same document/spreadsheet

• In Real-time... Without proliferation of versions / copies (email,etc)

• Online Storage - Accessible “Anywhere”.

• Publishing

• People who already create content become publishers.

• API for development of specific-use apps

• The collaborative UI component of any product

• To extend features offered

• To integrate with 3rd party products

• To offer new vertical applications

Page 8: Jonathon Rochelle @ FOWA Feb 07

8Google Confidential and Proprietary

One Overriding Product Goal…

be EASY TO USE

Page 9: Jonathon Rochelle @ FOWA Feb 07

Google Confidential and Proprietary 9

Quick Demo

• Google Docs & Spreadsheets

Page 10: Jonathon Rochelle @ FOWA Feb 07

10Google Confidential and Proprietary

… a screen shot from the end of the last demo

Page 11: Jonathon Rochelle @ FOWA Feb 07

11Google Confidential and Proprietary

General Architecture

• Server-side calculation engine – lighten the client…

• Ajax client

• Collaboration Layer

• Storage Layer

• Infrastructure & Shared Services (aka “everything else”)

Google’s infrastructure provides “cheap scale”….

….. just add water (machines)…

The team stays focused on features and integration.

Page 12: Jonathon Rochelle @ FOWA Feb 07

12Google Confidential and Proprietary

Ajax Client

• Well-defined communication protocol to server

• Push calculation logic to the server side

• Browser challenges… (heavy sigh)

• Perceived speed – pay me now or pay me later…

• Ajax is great!

• Nice browser-based UI!

• No Plug-ins!

• Multi-Platform via theBrowser!

• Ajax stinks!

• Event triggering hell…

• 300k web pages!

• Experimentation at best…

Page 13: Jonathon Rochelle @ FOWA Feb 07

13Google Confidential and Proprietary

Decisions, Decisions…

• Who is our initial user? The Spreadsheet user or the person whocould use spreadsheets but doesn’t yet know it?

• What are the must have V1 features?

• 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 and give high resiliency.

Page 14: Jonathon Rochelle @ FOWA Feb 07

14Google Confidential and Proprietary

Feedback from the Users

• Give us more specific features:

• Freeze Columns, Drag&Drop, Range Names, Cross Spreadsheet links,Autofilter,Charting, etc…

• Give us improvements to current features:

• More sorting options, more edit controls, more ACL controls, easierinserting rows, Copy / Paste issues, group invitations, etc…

• Give us integration with more Google (and non-google) services…

• “…but, we’re not whining!... We love this product!”

• “This product has changed our lives”

• “we don’t know how we managed without the product”

Page 15: Jonathon Rochelle @ FOWA Feb 07

15Google Confidential and Proprietary

Choose a Font

• 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 behaviors

• Users don’t enjoy guessing what icons mean.– PM’s do not make good icons.

Lessons Learned (part 1)

Wrap Text

Share

Clear Format

Elevator Doors Closing / OpeningMerge / Un-merge Cells

Page 16: Jonathon Rochelle @ FOWA Feb 07

16Google Confidential and Proprietary

Lessons Learned (part 2)

• Test new ideas with users early…

• Nobody cared to “Pan” their spreadsheet like a map.

• Use Test Harnesses, Automation and Benchmarks - early

• This works on the client side and server side.

• Key for us in early Ajax experimentation, and re-testing

• Speed is critical

• Performance improvements can ALWAYS be made...

– Hint: Get someone important to say “it’s too slow”

• Compromise (i.e. kill) those cool, but un-used features…

Page 17: Jonathon Rochelle @ FOWA Feb 07

17Google Confidential and Proprietary

Lessons Learned (part 3)

• The needs of the many outweigh the needs of the few… or theone…

• …even if that “one” is currently signing your paycheck…

• Get User Feedback… and Use it as a key input to feature plans

• Sometimes insight does NOT come from the user

• Our biggest example was immediate/Real-time collaboration

• User Data is sacred.

• Don’t ever give users a reason not to trust your product (eveninternal users)

Page 18: Jonathon Rochelle @ FOWA Feb 07

18Google Confidential and Proprietary

Lessons Learned (part 4)

• Provide a very specific value that users can describe

• “it’s amazing! I must be able to use this somewhere!” …

…is very different than

• “it’s amazing! This product will improve productivity by 80%!”

• Focus on features which align with your product’s value

• For example, collaboration and sharing are critical to Google Docs& Spreadsheets.

• Talk to users…

• Gather plenty from early users - if they represent your target

• Look for new targets/angles/verticals as the product is used

Page 19: Jonathon Rochelle @ FOWA Feb 07

19Google Confidential and Proprietary

Final Lesson Learned

• The team is the most important thing

• Have partners

• Pick the right partners

– Shared vision

– Complementary skills, covering all the necessary activities

• Build a great team

– Never compromise

• Don’t hire for everything - Buy services

– Don’t always assume you have to do it yourself.

Page 20: Jonathon Rochelle @ FOWA Feb 07

20Google Confidential and Proprietary

Q & A

• Google Docs & Spreadsheets:

•http://docs.google.com

• Google APIs:

•http://code.google.com

• Spreadsheets API:

•http://code.google.com/apis/spreadsheets/overview.html