Thursday, March 06, 2008

Speaking of Platforms...

My last post made me realize that I haven't already pointed out Marc Andreessen's excellent essay: The three kinds of platforms you meet on the internet.

And if the essay itself wasn't reward enough, check this out:

Get Your salesforce.com Org Under Version Control

Jeff Atwood, a software engineering hero to many, recently wrote about version control for databases.

His post spurred me to use the Force.com IDE to put my latest salesforce.com project under version control. It's dead simple to utilize a version control system for your entire salesforce application now: S-Controls, Apex code and salesforce schema included. (Here are the instructions for Subversion: Force.com Code Share)

If being able to define a database, build complex logic and create a sophisticated user interface wasn't enough to convince everyone that salesforce.com is a true development platform, the Force.com development environment just made it a little bit harder to deny.

And the whole platform is delivered as a service...

Saturday, February 23, 2008

V-shaped (Junction Object) Reports

Custom Report Types are incredibly powerful, but one feature that you might not know about, is the ability to "go back up" the object hierarchy.

Let's imagine that your business has a call center and that every once in a while one of your products breaks. When this happens, the affected customer will call your 1-800 number and ask for a replacement product. As a company, you're happy to oblige, but you want to run a report on Cases, Replacement Orders and Products to try and detect breakage patterns. With traditional salesforce reports, you'd be stuck, because the object relationship is V-shaped:



Using standard salesforce reports, you could easily run a report on Cases and Replacement Orders, but you wouldn't be able to "go back up" to get any Product fields beyond the name of the Product being replaced.

Allow me to introduce you to the little-known hero of our story, the "Add fields related via lookup" hyperlink for Custom Reports:




The "Add fields related via lookup" hyperlink will allow you to add fields from the Product table to your report on Cases and Replacement Orders.

And now you'll be able to save the company untold millions by detecting product breakage patterns - all thanks to one little hyperlink.

If you want to build a similar report in your salesforce org, you'll need to define a custom report type with one or more related objects:

Once you've defined your custom report, the next two steps are just a matter of clicking on the "Edit Layout" button and the "Add fields related via lookup" link. Happy Reporting!

Saturday, February 09, 2008

Favorite HTML/JavaScript Resources

Microsoft's HTML and DHTML Reference. It's saved me hundreds of times - and it's a lot more up to date than my 1998 version of HTML: The Definitive Guide.

DevGuru: JavaScript. Simple and straightforward JavaScript reference.

W3Schools JavaScript Tutorial. Easy to understand examples - that you can experiment with!

Friday, January 25, 2008

Spring '08

My favorite new feature is not Dashboard Scheduling or Apex Code in EE or even Outer-Join Reporting - it's the improved user interface for building list views. I'm creating list views like never before!

Monday, December 10, 2007

Network Effects

I think that Charles Zedlewski gets it exactly right in his post A new wrinkle on SaaS when he says this about "Salesforce to Salesforce":

This is something that would be difficult for on-premise vendors to replicate: an application network effect that's could be genuinely beneficial to the user.

This will be a powerful feature as companies with an indirect business model begin to leverage it with their partners.

Just think how hard it would be to implement this functionality with an on-premise solution - the logistics of coordinating IT organizations would be monumental.

Thursday, November 29, 2007

Coincidence or Lax Beta Tester Screening?



+

Called "My Location", the feature comes as part of the release of version 2.0 of Google Maps for mobile. My Location uses cell tower ID information to determine approximately where you are.

Too soon?

Friday, October 12, 2007

Sales Forecasting Simulator

The Stanford Graduate School of Business has a class called "Building and Managing Professional Sales Organizations" that allows students to gain experience forecasting sales using a simulator. The simulator allows students to experience the difficulty of forecasting from the perspective of a sales rep and from the perspective of a sales manager.

http://www.gsb.stanford.edu/news/bmag/sbsm0711/feature-simulator.html

I wonder when they're going to release their simulator for the PS3...

Friday, September 28, 2007

Domain Languages: Apex

Tip #17 in The Pragmatic Programmer is:

"Program Close to the Problem Domain."

Lately I've been spending a bunch of time building Apex web services for my customer and I can tell you that it's a super powerful language. My pseudo-code translates almost line-for-line in to Apex code. Here's an example:

//get the oppty line items for this oppty
List opptyLineItems = [Select Id, PricebookEntry.Product2Id from OpportunityLineItem Where OpportunityId = :opptyId];


In C# this one line of code would translate to four or five lines of code. Visualforce is the equivalent development productivity lever for user interfaces. Pretty cool stuff.

Monday, September 17, 2007

Visualforce

Salesforce.com just announced the next step in their evolution towards becoming a complete on demand platform: Visualforce. I can't wait to be able to start building applications with Visualforce instead of lower-level web technologies like ASP.Net and JavaScript, powerful as they may be in their own right.