Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Jonathon Rochelle @ FOWA Feb 07
1. How and Why We Built
Google Docs & Spreadsheets
Jonathan Rochelle
Product Manager
Presenter Name 1
Title 1
Presenter Name 2
Title2
Google Confidential and Proprietary 1
2. Agenda
• Background, History, Key Feature Goals
• Quick Demo
• General Architecture
• Decisions, Decisions
• Lessons Learned
Expect: Focus on Spreadsheets….
Product Manager view…
Google Confidential and Proprietary 2
3. “When will we….”
“We have nothing to
announce at this time”
Google Confidential and Proprietary 3
4. History – How it all began…
• Step 1 of any good product:
… Pick a killer cool name!
“Google… d
use
onf
…Docs… ill be c
dy w
obo
…&…
…and…
n
ast
at le…Spreadsheets” !!
…
Google Confidential and Proprietary 4
5. 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…
Google Confidential and Proprietary 5
6. 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”…
Google Confidential and Proprietary 6
7. 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 Google Confidential and Proprietary 7
9. Quick Demo
• Google Docs & Spreadsheets
Google Confidential and Proprietary 9
10. … a screen shot from the end of the last demo
Google Confidential and Proprietary 10
11. 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.
Google Confidential and Proprietary 11
12. 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 stinks!
• Ajax is great!
• Event triggering hell…
• Nice browser-based UI!
• 300k web pages!
• No Plug-ins!
• Experimentation at best…
• Multi-Platform via the
Browser!
Google Confidential and Proprietary 12
13. Decisions, Decisions…
• Who is our initial user? The Spreadsheet user or the person who
could 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.
Google Confidential and Proprietary 13
14. 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, easier
inserting 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”
Google Confidential and Proprietary 14
15. Lessons Learned (part 1)
• 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.
Choose a Font
Wrap Text
Share
Clear Format
Elevator Doors Closing / Opening
Merge / Un-merge Cells
Google Confidential and Proprietary 15
16. 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…
Google Confidential and Proprietary 16
17. Lessons Learned (part 3)
• The needs of the many outweigh the needs of the few… or the
one…
• …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 (even
internal users)
Google Confidential and Proprietary 17
18. 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
Google Confidential and Proprietary 18
19. 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.
Google Confidential and Proprietary 19
20. 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
Google Confidential and Proprietary 20