Calling the Cloud
A developer’s introduction to Phonedeck
DeveloperWho
Gergő Ertli
Lead Developer
gergo.ertli@phonedeck.com
• Before: Nokia Siemens Networks
• mobile phones && Microsoft Dynamics AX
• Now: Phonedeck since the beginnings
• mobile phones && (desktop || cloud || Salesforce)
The Idea
• 2010: cool, we can control the phone remotely
• let’s catch phone calls
• enrich the boring details of the contact (name, company, birthday)
• and display info from LinkedIn, Facebook,Twitter, Email, Salesforce, SMS
as an aggregated stream
• 2013: cool, Salesforce already contains everything
• let’s add phone calls to it
• and define business processes with them
• making a salesperson’s life simpler
Salesforce! But why…
• Giving the perfect context
• most of the customer interactions are still phone calls
• all the contact details, previous correspondence, plans
• and business processes, reminders, automated tasks
• We were called ‘poor man’s CRM’ anyway
• people get the same experience
• and we only develop what we are good at
• Operating services is the necessary bad
• they always wake you up at 4am
• not with Salesforce, zero DevOps
STOP!
DEMOTIME
…and How?
Phone APEX REST Browser
incoming call
notification
what changed?
call ended
notification
what changed?
Think Different
• We had 8+ years experience in traditional web architecture
• server, browser, client, serialization, database
• But Salesforce is different
• nice interface over a high-performance database
• and some scheduled tasks
• Hard to find a common language
• Salesforce people don’t think in API Servers and clients
• but in data and business processes
• the awesome community often cannot help you
• their Heroku acquisition makes things better
Challenge: DevTools
• Developer Console
• good for writing a few lines of code
• we have 50+ classes, thousands of lines
• Force.com IDE
• getting there
• old Eclipse, crashes, gets confused easily
• MavensMate with SublimeText
• close enough
• but for objects, layouts, deleting classes it’s still clicky clicky
Challenge: Collaboration
• When you’re alone
• everything is awesome
• well, if you don’t need versioning, backup and change management
• In a team these things are a must
• code stored in git
• feature branches, merges
• Force.com MigrationTool
• very nice start
• had to figure out the process ourselves
• must be careful with managed packages
Challenge: Packaging & Updates
• Traditional Services
• server always backwards compatible for some time
• clients can always use the latest versions
• Salesforce Managed Package
• manual updates: server might be behind the clients
• clients must also be backwards compatible
• complicated version negotiation
• global classes: I just changed my mind. No, you didn’t.  APEX REST
• Patch Orgs and Pushed Patches
• bugs bugs bugs bugs bugs
Challenge: API Limits
• Limits for
• API requests
• triggers
• touched records
• scheduled tasks
• timings
• We are not in control of most
• statistical estimation, that fails sometimes
• strange architectural solutions
Challenge: Salesforce is Huge
• I have an awesome idea
• unfortunately there is no public API for it
• nor a confirmed idea.salesforce.com entry
• wait at least three upgrades, at least 1 year
• Mobile SDKs
• dev department: here, use these
• security department: please don’t use the SDK
• we are inclined not to use them, so far the bugs outweighed the
advantages
We Happy?
• Definitely
• Our Business Managers LOVE it
• marketing support
• great ecosystem
• consistent product story
• Our Developers… well… it’s complicated 
• took some time to adapt our methodologies
• but now everyone sees the advantages
• and we are much faster than doing everything ourselves
• we only have to develop the fun parts, everything else is Salesforce
Thanks for listening!
Q & A

Phonedeck Developers' Introduction - Salesforce Meetup Berlin

  • 1.
    Calling the Cloud Adeveloper’s introduction to Phonedeck
  • 2.
    DeveloperWho Gergő Ertli Lead Developer gergo.ertli@phonedeck.com •Before: Nokia Siemens Networks • mobile phones && Microsoft Dynamics AX • Now: Phonedeck since the beginnings • mobile phones && (desktop || cloud || Salesforce)
  • 3.
    The Idea • 2010:cool, we can control the phone remotely • let’s catch phone calls • enrich the boring details of the contact (name, company, birthday) • and display info from LinkedIn, Facebook,Twitter, Email, Salesforce, SMS as an aggregated stream • 2013: cool, Salesforce already contains everything • let’s add phone calls to it • and define business processes with them • making a salesperson’s life simpler
  • 4.
    Salesforce! But why… •Giving the perfect context • most of the customer interactions are still phone calls • all the contact details, previous correspondence, plans • and business processes, reminders, automated tasks • We were called ‘poor man’s CRM’ anyway • people get the same experience • and we only develop what we are good at • Operating services is the necessary bad • they always wake you up at 4am • not with Salesforce, zero DevOps
  • 5.
  • 6.
    …and How? Phone APEXREST Browser incoming call notification what changed? call ended notification what changed?
  • 7.
    Think Different • Wehad 8+ years experience in traditional web architecture • server, browser, client, serialization, database • But Salesforce is different • nice interface over a high-performance database • and some scheduled tasks • Hard to find a common language • Salesforce people don’t think in API Servers and clients • but in data and business processes • the awesome community often cannot help you • their Heroku acquisition makes things better
  • 8.
    Challenge: DevTools • DeveloperConsole • good for writing a few lines of code • we have 50+ classes, thousands of lines • Force.com IDE • getting there • old Eclipse, crashes, gets confused easily • MavensMate with SublimeText • close enough • but for objects, layouts, deleting classes it’s still clicky clicky
  • 9.
    Challenge: Collaboration • Whenyou’re alone • everything is awesome • well, if you don’t need versioning, backup and change management • In a team these things are a must • code stored in git • feature branches, merges • Force.com MigrationTool • very nice start • had to figure out the process ourselves • must be careful with managed packages
  • 10.
    Challenge: Packaging &Updates • Traditional Services • server always backwards compatible for some time • clients can always use the latest versions • Salesforce Managed Package • manual updates: server might be behind the clients • clients must also be backwards compatible • complicated version negotiation • global classes: I just changed my mind. No, you didn’t.  APEX REST • Patch Orgs and Pushed Patches • bugs bugs bugs bugs bugs
  • 11.
    Challenge: API Limits •Limits for • API requests • triggers • touched records • scheduled tasks • timings • We are not in control of most • statistical estimation, that fails sometimes • strange architectural solutions
  • 12.
    Challenge: Salesforce isHuge • I have an awesome idea • unfortunately there is no public API for it • nor a confirmed idea.salesforce.com entry • wait at least three upgrades, at least 1 year • Mobile SDKs • dev department: here, use these • security department: please don’t use the SDK • we are inclined not to use them, so far the bugs outweighed the advantages
  • 13.
    We Happy? • Definitely •Our Business Managers LOVE it • marketing support • great ecosystem • consistent product story • Our Developers… well… it’s complicated  • took some time to adapt our methodologies • but now everyone sees the advantages • and we are much faster than doing everything ourselves • we only have to develop the fun parts, everything else is Salesforce
  • 14.