Salesforce.com Girl Geek Dinner

57
Salesforce.com Girl Geek Dinner Follow the conversation at #SFDCggd

description

Presentation from 28th Bay Area Girl Geek Dinner hosted by salesforce.com on November 1, 2012

Transcript of Salesforce.com Girl Geek Dinner

Page 1: Salesforce.com Girl Geek Dinner

Salesforce.com Girl Geek DinnerFollow the conversation at #SFDCggd

Page 2: Salesforce.com Girl Geek Dinner

A Behind the Scenes Look at the Salesforce ArchitectureJeanine WaltersArchitect

/jeanine.walters

@jeaninesw

in/jeaninesw

Page 3: Salesforce.com Girl Geek Dinner

* All characters appearing in this work are fictitious. Any resemblance to real persons, living or dead, is purely coincidental.

ReneeDell’s Regional Manager*

Page 4: Salesforce.com Girl Geek Dinner

Are laptops selling well in the Western United States?

Renee has a question:

Page 5: Salesforce.com Girl Geek Dinner

Multitenancy: One Cloud with Many Customers

Page 6: Salesforce.com Girl Geek Dinner

Different Customers Store Different Data

Burberry’s Customer

Data

Your Payroll

Data

Dell’s Product

Data

What type of computer? Server, laptop, etc.

Is this a repeat customer? True or False.

What’s the employee’s deduction amount?

Page 7: Salesforce.com Girl Geek Dinner

Flex Schema: Everyone’s DataFlex Column: Multiple Data Types

ID Customer Data 1 Data 2 Data N

1000001 Dell Monitor

1000002 Dell Laptop

1000003 Dell Server

1000004 Burberry True

1000005 Burberry False

1000006 Burberry True

1000007 You $190

1000008 You $250

1000009 You $680

Page 8: Salesforce.com Girl Geek Dinner

Flex Schema: Everyone’s Optimizations

ID Data 1 Data 2

10002 unus erat toto naturae

10003 vultus in orbe

10004 quem dixere chaeos

10005 rudis indigestaque

10006 meis perpetuum

10007 deducite temopra

10008 carmen ante

10009 mare et terras

10010 tegit et quod

10011 omnia caelum

10012 unus erat toto naturae

10013 vultus in orbe

10014 quem dixere chaeos

10015 rudis indigestaque

10016 meis perpetuum

10017 deducite temopra

10018 carmen ante

10019 mare et terras

10020 tegit et quod

10021 omnia caelum

10022 unus erat toto naturae

10023 vultus in orbe

10024 quem dixere chaeos

10025 rudis indigestaque

10026 meis perpetuum

10027 deducite temopra

10028 carmen ante

10029 mare et terras

10030 tegit et quod

10031 omnia caelum

10032 unus erat toto naturae

10033 vultus in orbe

Multitenant IndexMultitenant Table

ID Customer Data 2

1000001 Dell Monitor

1000002 Dell Laptop

1000003 Dell Server

1000004 Burberry True

1000005 Burberry False

1000006 Burberry True

1000007 You $190

1000008 You $250

1000009 You $680

Customer Text Number Boolean

Dell Monitor

Dell Laptop

Dell Server

Burberry True

Burberry False

Burberry True

You $190

You $250

You $680

Page 9: Salesforce.com Girl Geek Dinner

Back to Renee’s Question

Page 10: Salesforce.com Girl Geek Dinner

Back to Renee’s Question

How do we get her information as

fast as possible?

Page 11: Salesforce.com Girl Geek Dinner

Dell’s Data

Data Renee can see

Western SalesLaptops sold

Page 12: Salesforce.com Girl Geek Dinner

ID Data 1 Data 2

10002 unus erat toto naturae

10003 vultus in orbe

10004 quem dixere chaeos

10005 rudis indigestaque

10006 meis perpetuum

10007 deducite temopra

10008 carmen ante

10009 mare et terras

10010 tegit et quod

10011 omnia caelum

10012 unus erat totonaturae

10013 vultus in orbe

10014 quem dixere chaeos

10015 rudis indigestaque

10016 meis perpetuum

10017 deducite temopra

10018 carmen ante

10019 mare et terras

10020 tegit et quod

10021 omnia caelum

10022 unus erat toto naturae

10023 vultus in orbe

10024 quem dixere chaeos

10025 rudis indigestaque

10026 meis perpetuum

10027 deducite temopra

10028 carmen ante

10029 mare et terras

10030 tegit et quod

10031 omnia caelum

10032 unus erat toto naturae

10033 vultus in orbe

User VisibilityIndexes

Millions of Opportunities

Data Tables

ID Data 1 Data 2

10002 unus erat toto naturae

10003 vultus in orbe

10004 quem dixere chaeos

10005 rudis indigestaque

10006 meis perpetuum

10007 deducite temopra

10008 carmen ante

10009 mare et terras

10010 tegit et quod

10011 omnia caelum

10012 unus erat totonaturae

10013 vultus in orbe

10014 quem dixere chaeos

10015 rudis indigestaque

10016 meis perpetuum

10017 deducite temopra

10018 carmen ante

10019 mare et terras

10020 tegit et quod

10021 omnia caelum

10022 unus erat toto naturae

10023 vultus in orbe

10024 quem dixere chaeos

10025 rudis indigestaque

10026 meis perpetuum

10027 deducite temopra

10028 carmen ante

10029 mare et terras

10030 tegit et quod

10031 omnia caelum

10032 unus erat toto naturae

10033 vultus in orbe

Renee

Laptops

West

Where do we start?

Page 13: Salesforce.com Girl Geek Dinner

Multitenant Query Optimizer

The Fastest Plan

The Fastest Plan

User Visibility

User Visibility

Data SizeData Size

Index on

Filter?

Index on

Filter?

Page 14: Salesforce.com Girl Geek Dinner

Run pre-queriesCheck

user VisibilityCheck filter

selectivity

Write query-based on

results of pre-queries

Execute query

User Visibility

# of rows that the user can access

=

Filter Selectivity

How specificis this filter?

=

Multitenant Query Optimizer

SharedVisibility

SharedIndexes

ID Data 1 Data 2

10002 unus erat toto naturae

10003 vultus in orbe

10004 quem dixere chaeos

10005 rudis indigestaque

10006 meis perpetuum

10007 deducite temopra

10008 carmen ante

10009 mare et terras

10010 tegit et quod

10011 omnia caelum

10012 unus erat totonaturae

10013 vultus in orbe

10014 quem dixere chaeos

10015 rudis indigestaque

10016 meis perpetuum

10017 deducite temopra

10018 carmen ante

10019 mare et terras

10020 tegit et quod

10021 omnia caelum

10022 unus erat toto naturae

10023 vultus in orbe

10024 quem dixere chaeos

10025 rudis indigestaque

10026 meis perpetuum

10027 deducite temopra

10028 carmen ante

10029 mare et terras

10030 tegit et quod

10031 omnia caelum

10032 unus erat toto naturae

10033 vultus in orbe

ID Data 1 Data 2

10002 unus erat toto naturae

10003 vultus in orbe

10004 quem dixere chaeos

10005 rudis indigestaque

10006 meis perpetuum

10007 deducite temopra

10008 carmen ante

10009 mare et terras

10010 tegit et quod

10011 omnia caelum

10012 unus erat totonaturae

10013 vultus in orbe

10014 quem dixere chaeos

10015 rudis indigestaque

10016 meis perpetuum

10017 deducite temopra

10018 carmen ante

10019 mare et terras

10020 tegit et quod

10021 omnia caelum

10022 unus erat toto naturae

10023 vultus in orbe

10024 quem dixere chaeos

10025 rudis indigestaque

10026 meis perpetuum

10027 deducite temopra

10028 carmen ante

10029 mare et terras

10030 tegit et quod

10031 omnia caelum

10032 unus erat toto naturae

10033 vultus in orbe

Done

Done

GoGo

Multi-tenant Optimizer Statistics

Page 15: Salesforce.com Girl Geek Dinner

Renee’s Answer

Lots of laptops have sold in the West

Page 16: Salesforce.com Girl Geek Dinner
Page 17: Salesforce.com Girl Geek Dinner

Thank you!/jeanine.walters

@jeaninesw

in/jeaninesw

Page 18: Salesforce.com Girl Geek Dinner

“I hear what you mean…”Product Management as Translation

Susan KimberlinProduct Management Director

@SusanSearchPro

in/susankimberlin

Page 19: Salesforce.com Girl Geek Dinner
Page 20: Salesforce.com Girl Geek Dinner

Product Management Goal: Happy Customers

When our customers are successful, our

business is successful

Internal consumers of your work are customers

too

Page 21: Salesforce.com Girl Geek Dinner

It’s not what they say, it’s what they mean…

Natural Languages are what we use

to speak to one another– The only requirement is mutual

understanding

Code is language too

Page 22: Salesforce.com Girl Geek Dinner

Everyone has their own language

“I want it to work like Google.”

“I want it to work like Google.”

“What is the algorithm?”

“What is the algorithm?”

“Is it okay if we just do it this way?”

“Is it okay if we just do it this way?”

“This color hurts my eyes.”“This color hurts my eyes.”

“I want this button on the

other side of the page.”

“I want this button on the

other side of the page.”

“It will take me 2 years to build this.”

“It will take me 2 years to build this.”

“If you do X instead, what will you have to drop from your

plan?”

“If you do X instead, what will you have to drop from your

plan?”

“When will we have X?”“When will we have X?”

Page 23: Salesforce.com Girl Geek Dinner

Tools of the Translation Trade

Solve for the Problem

or Opportunity

Walk in their shoes

Page 24: Salesforce.com Girl Geek Dinner

ABT – Always Be Translating

Every interaction with customers, internal stakeholders

and your team is an opportunity to gather input and

translate for product decisions!

Page 25: Salesforce.com Girl Geek Dinner

Thank you!

@SusanSearchPro

in/susankimberlin

Page 26: Salesforce.com Girl Geek Dinner

Mysti BerryPrincipal Content Strategist

@MystiContent

Individual Contributor as Leader: My First Year

[email protected]

Page 27: Salesforce.com Girl Geek Dinner

Lesson One: It’s different being in front

Page 28: Salesforce.com Girl Geek Dinner

Scary different

Page 29: Salesforce.com Girl Geek Dinner

Lesson 1: Bid farewell to “equality”

Leave humor for face-to-face conversations (sad!)

We’re all created equal…but– Perceived rank makes some people timid

– People think differently, act differently, need different things

– Therefore, It’s impossible to overcommunicate

Page 30: Salesforce.com Girl Geek Dinner

Lesson 2: It’s going to hurt for a while

It’s hard on the ego to no longer be the expert

It takes time to stop trying to fix everything

You have to trust more, do less

At first, neither managers

nor other ICs may know what to do with you

Repeat: It’s impossible to overcommunicate

Page 31: Salesforce.com Girl Geek Dinner

Lesson 3: Your team is smarter than you are

Connecting people to problems is better than solving

every problem yourself and then telling someone how to

do it

When you ask for help, your team SHINES

Did I mention that it’s impossible to overcommunciate?

Page 32: Salesforce.com Girl Geek Dinner

Thank you!

@MystiContent

[email protected]

Page 33: Salesforce.com Girl Geek Dinner

Test Automation At ScaleReena MathewPrincipal Architect

Page 34: Salesforce.com Girl Geek Dinner

How do we scale?

Test Automation at Salesforce addresses scale for– Products

– Releases

– Customers

– Engineers

– Tests

– Systems

Page 35: Salesforce.com Girl Geek Dinner

Product Suite

Multiple Products and Dependencies

Page 36: Salesforce.com Girl Geek Dinner

Salesforce Release Cycles

3 Major Releases per Year

– New features and products

– Major architectural enhancements

– Bug fixes and performance enhancements

Weekly Patch & Emergency Releases

2-3 deployments per week on average

Page 37: Salesforce.com Girl Geek Dinner

Smooth Releases is extremely important

> 7,000 Subscribers

> 30,000 Subscribers

> 10,000 Subscribers

> 5,000 Subscribers

Page 38: Salesforce.com Girl Geek Dinner

Salesforce R&D

150+ Scrum Teams

Globally Distributed Teams

– 15 Different Locations

Page 39: Salesforce.com Girl Geek Dinner

Why Test Automation?

Test Automation is what enables us to do frequent releases

without compromising our #1 value - Customer TRUST

Page 40: Salesforce.com Girl Geek Dinner

Code Check-in Workflow @ Salesforce

PRE-CHECKIN

Page 41: Salesforce.com Girl Geek Dinner

Automation Tools We Use @ Salesforce

Test Frameworks & Tools

o JUnit

o Selenium (RC, Webdriver)

o HtmlUnit, JSUnit, NUnit

o EasyMock, Mockito

Code Coverage

o Clover, JSCoverage

Static Analysis

o FindBugs

Continuous Integration

o Jenkins

Page 42: Salesforce.com Girl Geek Dinner

Pre-Checkin SystemKeep the Build Green

Pre-checkin is a remote server that performs a full

build with your change

– Rejects your changelist when the build or tests fail

– Can also run tests selected by engineer

With pre-checkin, we guarantee that the build never

breaks!

Pre-checkin is enforced across all code lines– Salesforce engineers can submit their changes only when pre-

checkin succeeds with their changes

Page 43: Salesforce.com Girl Geek Dinner

Automation Cloud

App DB

VMs to run tests

App DBApp DB

App DB

App DB

App DBApp DB App DB

App DBApp DB App DB

Test Suite

Test Suite

Test Suite

DB

Queue of VMs for each test suite

VM will pick up the next run when free

Results consolidates in central DB

Page 44: Salesforce.com Girl Geek Dinner

Behind The Cloud: Infrastructure Support Keep the Automation Infrastructure Green

Multiple Clouds

Private and Public

Clouds

Future: Use jclouds

to work with multiple

clouds

Sauce Labs for

Multiple Browser

and Device Testing

Private Cloud

Private Cloud

Salesforce VM Provisioning Engine

Page 45: Salesforce.com Girl Geek Dinner

Test Thresholds

For the Automated Test Suites we set very high Test Thresholds– 100% Pass Rate for the basic suites

– 99% for other test suites on the patch and emergency release branches

– Lower thresholds for Major Releases during initial development, thresholds

increase as we get closer to the deployment date

Monitor Test Thresholds consistently, take quick action if they fall

below expectations

Meeting test thresholds is a pre-requisite for deployment

Meeting test thresholds is a pre-requisite for cutting branches

Page 46: Salesforce.com Girl Geek Dinner

Lock The Line By Team Keep the Test Suites Green

Reminders to teams about high priority test failures

Locks out the teams that are not fixing test failures in a

timely fashion

Keeps the code base clean

Page 47: Salesforce.com Girl Geek Dinner

Customer Trust - ProdTest Keep the Systems Green

Tests used for sanity testing in Production• Automatically initiated as soon as the deployment is complete

• Used to monitor critical systems using tests

Page 48: Salesforce.com Girl Geek Dinner

Thank you!

Page 49: Salesforce.com Girl Geek Dinner

Promoting Good DesignAnna MieritzSr. Manager, User Experience

/anna.mieritz

@smallestgiant

in/annamieritz

Page 50: Salesforce.com Girl Geek Dinner

Everyone is a designer

Good design solves problems.

You solve problems every day.

You are a designer.

Page 51: Salesforce.com Girl Geek Dinner

Good design is empathetic

Know your audience

Listen to others’ ideas

Stories sell solutions

Page 52: Salesforce.com Girl Geek Dinner

Good design has a point of view

Know what problem you’re solving

Clarify & communicate your goals

Keep it simple, make it yours

Page 53: Salesforce.com Girl Geek Dinner

Good design is persuasive

Get your ideas heard

Show alternatives

Ownership = success?

Page 54: Salesforce.com Girl Geek Dinner
Page 55: Salesforce.com Girl Geek Dinner

Don’t forget the pictures

People don’t like to read

If a simple chart, diagram, or wireframe conveys your

idea, use it.

Page 56: Salesforce.com Girl Geek Dinner

Thank you!/anna.mieritz

@smallestgiant

in/annamieritz

Page 57: Salesforce.com Girl Geek Dinner

/salesforce

@SFDCtechwomen

salesforce.com/tech