The document discusses how Google Docs and Spreadsheets were built, focusing on spreadsheets from a product manager's view. It provides background on acquisitions that led to their creation, key goals of collaboration and accessibility from anywhere. It describes the general architecture with an Ajax client, collaboration layer, and storage powered by Google infrastructure. It outlines important lessons learned around user testing, speed, and the critical nature of building a strong team.
As many already know by now, 80 to 90% of the response time of a web page is dependent on the page loading performance (the fetching of the HTML and all files referenced). This is different from the page rendering performance, which is just the time it takes to generate the HTML. Drupal already tackles several issues pretty well. But there's more we can do!
You can solve several additional problems today, just by installing extra modules (such as Support file Cache), by configuring Apache (e.g. gzipped output), or by configuring some shell scripts (e.g. to optimize image files). I'll explain you how to apply these solutions.
For most Drupal sites, CDN integration and putting JS at the bottom of the page have the biggest impact. However, these two techniques are currently very hard to apply properly to Drupal: both require hacks to Drupal core. My aim is to solve both of these problems as part of my bachelor thesis. I'll explain how I expect to solve this and the impact of both issues on your site.
As many already know by now, 80 to 90% of the response time of a web page is dependent on the page loading performance (the fetching of the HTML and all files referenced). This is different from the page rendering performance, which is just the time it takes to generate the HTML. Drupal already tackles several issues pretty well. But there's more we can do!
You can solve several additional problems today, just by installing extra modules (such as Support file Cache), by configuring Apache (e.g. gzipped output), or by configuring some shell scripts (e.g. to optimize image files). I'll explain you how to apply these solutions.
For most Drupal sites, CDN integration and putting JS at the bottom of the page have the biggest impact. However, these two techniques are currently very hard to apply properly to Drupal: both require hacks to Drupal core. My aim is to solve both of these problems as part of my bachelor thesis. I'll explain how I expect to solve this and the impact of both issues on your site.
Administrivia: Golden Tips for Making JIRA HumAtlassian
JIRA is a powerful tool that can be used for many different things. Often the critical path to a successful deployment is configuring and administering the system properly. This session explores best practices in JIRA administration, with practical experiences from JIRA customer experts.
Customer Speaker: Joanna Thurmann of Polycom
Key Takeaways:
* General tips and tricks on administration
* Security, workflow and performance configurations
* Ideas for improving adoption and uptake
Administrivia: Golden Tips for Making JIRA HumAtlassian
JIRA is a powerful tool that can be used for many different things. Often the critical path to a successful deployment is configuring and administering the system properly. This session explores best practices in JIRA administration, with practical experiences from JIRA customer experts.
Customer Speaker: Joanna Thurmann of Polycom
Key Takeaways:
* General tips and tricks on administration
* Security, workflow and performance configurations
* Ideas for improving adoption and uptake
Here are the slides from my tutorial on Scripting Recipes for Testers. In it I share a number of reusable scripts and some tips I learned writing them to help testers do their job better.
The scripts themselves can be found on my site (http://adam.goucher.ca) under the category 'GLSEC2008'
Deploying your Drupal site, Upgrading your Drupal Site, Scaling, Clustering and Monitoring it ... all topics Developers are often not involved with ...
Devops For Drupal explains the Devops problem, to a Drupal audience .
A quick intro to how nonprofit organizations can use and benefit from Google Apps. Provides an list of 30 Google Apps that have great benefit for a wide array of nonprofits, then focuses a bit more on Gmail, Google Docs, Google Labs, Google Talk, and has a little bit on Book Search. From the February 18, 2009 MadTech—Madison, Wisconsin Nonprofit Technology Group— Meeting. Additional resources available at: http://delicious.com/allgood2/google-apps-basic
[Workshop] Analyzing Your Deliverables: Developing the Optimal Documentation ...Scott Abel
Presented by Nicki Bleiel at Documentation and Training LIfe Sciences, June 23-26, 2008 in Indianapolis.
Documentation deliverables have evolved beyond manuals and online help in recent years, and with the emergence of Web 2.0, things are changing faster than ever. Technical communicators have many more options to enhance the user experience, and developing many of them provide the opportunity to work with other departments to find a more holistic approach to content development and delivery. But there is no one-size-fits-all set of solutions. This workshop will review the types of analysis you need to do to determine which deliverables are right for your project, your customer, and your company.
Other factors that can’t be ignored, such as translation needs, staff/time constraints, file size limitations, corporate image and control, and proprietary concerns will also be discussed, including:
Analyzing the Product
* Intended audience; delivery method (desktop, web application, etc.); competitor offerings; software development methodology. The UI as part of the Help system. Product Management expectations.
Identifying User Wants and Needs
* Preferences and expectations for information; work environment; knowledge and experience levels.
Ascertaining Internal Needs and Opportunities
* Working with Training, Support, and Marketing to reduce duplication and provide the user with consistent, useful information.
* Finding ways to incorporate information from other departments to improve documentation.
Accessing Deliverable Options
* What is the optimum mix for the product?
* The traditional: online help, manuals, embedded help, job aids, forums, web sites, technical support knowledgebases.
* Emerging trends: wikis, blogs, RSS feeds, software demonstrations, podcasts, and other collaborative tools. They can supplement and/or enhance the traditional. Or, they may be a better fit for internal knowledge management or marketing use.
Optimizing the Library
* Single-sourcing; best practices for structuring information; continuous publishing
Analyzing Your Deliverables: Developing the Optimal Documentation LibraryScott Abel
Presented Nicki Bleiel at Documentation and Training Life Sciences, June 23-26, 2008 in Indianapolis.
Documentation deliverables have evolved beyond manuals and online help in recent years, and with the emergence of Web 2.0, things are changing faster than ever. Technical communicators have many more options to enhance the user experience, and developing many of them provide the opportunity to work with other departments to find a more holistic approach to content development and delivery. But there is no one-size-fits-all set of solutions. This workshop will review the types of analysis you need to do to determine which deliverables are right for your project, your customer, and your company. Product analysis, user expectations and needs, internal needs, deliverable options, and optimizing your library will all be discussed; as well as translation needs, staff/time constraints, file size limitations, corporate image and control, and proprietary concerns.
Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...Gáspár Nagy
Abstract:
Behavior driven development (BDD) is an agile method that (among others) puts the ideas of agile testing into practice. BDD emphasizes collaboration between testers, developers and the business stakeholders and help preventing bugs by introducing testers and testing concept into the specification phase.
This is all fine when you start with a new, green field project. But what about those old legacy applications that have no proper automated test coverage and even if there are automated tests no one is dare to touch them? Is it possible to introduce BDD for these projects? What are the different strategies, collaboration and testing patterns that can be followed? This session gives a brief overview about what BDD is today and addresses these questions. The code examples use .NET and SpecFlow, but can be easily adapted to any other platform too.
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...Gáspár Nagy
Do you remember your childhood when your mom or an older story teller pronounced the most interesting words in the world? “Once upon a time…” Let me be now your story teller, listen to my story about a legacy app, a painful problem, the search for the solution and the lucky outcome. No, no, this is not the story about a new green field project where everything is so clear. However, even in this story there is a master builder, who shows the developers how to scaffold the legacy app with BDD scenarios using SpecFlow or Cucumber and everything will be all right in the end. Let me tell you about different strategies, collaboration and testing patterns that can be followed in such a renovation-like situation. So, are you ready?... “Once upon a time there was a company where…” To be continued at my session
Become a Better Developer with Debugging Techniques for Drupal (and more!)Acquia
What is debugging? How is it different from simply writing a program, and how can you get better at it? A structured debugging approach narrows down problems, rather than using random changes and guesses, and can help you identify and solve problems faster and more effectively.
In this webinar about debugging techniques for Drupal, we’ll cover:
-A general approach to debugging Drupal problems
Common sources of bugs
-A tour of useful debugging tools and techniques that can help you start to see into the inner workings of any version of Drupal
-The use of tools such as XDebug, the devel suite, and client side debugging such as Firebug, LiveHTTPHeaders, and javascript debugging
Administrivia: Golden Tips for Making JIRA HumAtlassian
JIRA is a powerful tool that can be used for many different things. Often the critical path to a successful deployment is configuring and administering the system properly. This session explores best practices in JIRA administration, with practical experiences from JIRA customer experts.
Customer Speaker: Joanna Thurmann of Polycom
Key Takeaways:
* General tips and tricks on administration
* Security, workflow and performance configurations
* Ideas for improving adoption and uptake
Administrivia: Golden Tips for Making JIRA HumAtlassian
JIRA is a powerful tool that can be used for many different things. Often the critical path to a successful deployment is configuring and administering the system properly. This session explores best practices in JIRA administration, with practical experiences from JIRA customer experts.
Customer Speaker: Joanna Thurmann of Polycom
Key Takeaways:
* General tips and tricks on administration
* Security, workflow and performance configurations
* Ideas for improving adoption and uptake
Here are the slides from my tutorial on Scripting Recipes for Testers. In it I share a number of reusable scripts and some tips I learned writing them to help testers do their job better.
The scripts themselves can be found on my site (http://adam.goucher.ca) under the category 'GLSEC2008'
Deploying your Drupal site, Upgrading your Drupal Site, Scaling, Clustering and Monitoring it ... all topics Developers are often not involved with ...
Devops For Drupal explains the Devops problem, to a Drupal audience .
A quick intro to how nonprofit organizations can use and benefit from Google Apps. Provides an list of 30 Google Apps that have great benefit for a wide array of nonprofits, then focuses a bit more on Gmail, Google Docs, Google Labs, Google Talk, and has a little bit on Book Search. From the February 18, 2009 MadTech—Madison, Wisconsin Nonprofit Technology Group— Meeting. Additional resources available at: http://delicious.com/allgood2/google-apps-basic
[Workshop] Analyzing Your Deliverables: Developing the Optimal Documentation ...Scott Abel
Presented by Nicki Bleiel at Documentation and Training LIfe Sciences, June 23-26, 2008 in Indianapolis.
Documentation deliverables have evolved beyond manuals and online help in recent years, and with the emergence of Web 2.0, things are changing faster than ever. Technical communicators have many more options to enhance the user experience, and developing many of them provide the opportunity to work with other departments to find a more holistic approach to content development and delivery. But there is no one-size-fits-all set of solutions. This workshop will review the types of analysis you need to do to determine which deliverables are right for your project, your customer, and your company.
Other factors that can’t be ignored, such as translation needs, staff/time constraints, file size limitations, corporate image and control, and proprietary concerns will also be discussed, including:
Analyzing the Product
* Intended audience; delivery method (desktop, web application, etc.); competitor offerings; software development methodology. The UI as part of the Help system. Product Management expectations.
Identifying User Wants and Needs
* Preferences and expectations for information; work environment; knowledge and experience levels.
Ascertaining Internal Needs and Opportunities
* Working with Training, Support, and Marketing to reduce duplication and provide the user with consistent, useful information.
* Finding ways to incorporate information from other departments to improve documentation.
Accessing Deliverable Options
* What is the optimum mix for the product?
* The traditional: online help, manuals, embedded help, job aids, forums, web sites, technical support knowledgebases.
* Emerging trends: wikis, blogs, RSS feeds, software demonstrations, podcasts, and other collaborative tools. They can supplement and/or enhance the traditional. Or, they may be a better fit for internal knowledge management or marketing use.
Optimizing the Library
* Single-sourcing; best practices for structuring information; continuous publishing
Analyzing Your Deliverables: Developing the Optimal Documentation LibraryScott Abel
Presented Nicki Bleiel at Documentation and Training Life Sciences, June 23-26, 2008 in Indianapolis.
Documentation deliverables have evolved beyond manuals and online help in recent years, and with the emergence of Web 2.0, things are changing faster than ever. Technical communicators have many more options to enhance the user experience, and developing many of them provide the opportunity to work with other departments to find a more holistic approach to content development and delivery. But there is no one-size-fits-all set of solutions. This workshop will review the types of analysis you need to do to determine which deliverables are right for your project, your customer, and your company. Product analysis, user expectations and needs, internal needs, deliverable options, and optimizing your library will all be discussed; as well as translation needs, staff/time constraints, file size limitations, corporate image and control, and proprietary concerns.
Introducing BDD to Legacy Applications with SpecFlow/Cucumber (Agilia Confere...Gáspár Nagy
Abstract:
Behavior driven development (BDD) is an agile method that (among others) puts the ideas of agile testing into practice. BDD emphasizes collaboration between testers, developers and the business stakeholders and help preventing bugs by introducing testers and testing concept into the specification phase.
This is all fine when you start with a new, green field project. But what about those old legacy applications that have no proper automated test coverage and even if there are automated tests no one is dare to touch them? Is it possible to introduce BDD for these projects? What are the different strategies, collaboration and testing patterns that can be followed? This session gives a brief overview about what BDD is today and addresses these questions. The code examples use .NET and SpecFlow, but can be easily adapted to any other platform too.
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...Gáspár Nagy
Do you remember your childhood when your mom or an older story teller pronounced the most interesting words in the world? “Once upon a time…” Let me be now your story teller, listen to my story about a legacy app, a painful problem, the search for the solution and the lucky outcome. No, no, this is not the story about a new green field project where everything is so clear. However, even in this story there is a master builder, who shows the developers how to scaffold the legacy app with BDD scenarios using SpecFlow or Cucumber and everything will be all right in the end. Let me tell you about different strategies, collaboration and testing patterns that can be followed in such a renovation-like situation. So, are you ready?... “Once upon a time there was a company where…” To be continued at my session
Become a Better Developer with Debugging Techniques for Drupal (and more!)Acquia
What is debugging? How is it different from simply writing a program, and how can you get better at it? A structured debugging approach narrows down problems, rather than using random changes and guesses, and can help you identify and solve problems faster and more effectively.
In this webinar about debugging techniques for Drupal, we’ll cover:
-A general approach to debugging Drupal problems
Common sources of bugs
-A tour of useful debugging tools and techniques that can help you start to see into the inner workings of any version of Drupal
-The use of tools such as XDebug, the devel suite, and client side debugging such as Firebug, LiveHTTPHeaders, and javascript debugging
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Enhancing Performance with Globus and the Science DMZGlobus
ESnet has led the way in helping national facilities—and many other institutions in the research community—configure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
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