Build it Yourself or Build it on Salesforce1

Anyone familiar with salesforce.com has heard the mantra of 5x faster at half the cost referring to the speed and agility of creating applications on the Force.com platform.  While I’ve personally experienced this in building apps on the platform, this advantage hadn’t previously included mobile app development.  That is until salesforce1.Unfortunately for my organization, we learned this lesson the hard way.  Last fall, NEXMachine set out to build an application for the rental industry on salesforce.com that included a mobile  with capabilities such as drag-and-drop for calendaring and creating relationships between records.  The mobile app is an HTML5 hybrid on PhoneGap using salesforce’s Mobile Tool Kit.

We were convinced that our new app was going to be out in a few short months and revolutionize the industry.  Instead, we re-learned the same lesson as so many before us had: that developing software is hard.


Enter Salesforce1
When the salesforce1 announcement was made last winter at Dreamforce, we paused for a moment in the development of our application to evaluate salesforce.com’s new mobile platform only return to continue down the path we were on not realizing the challenges that faced us in the coming months.  It seemed like a smart move at the time.  Salesforce1 had many things working against it, including:

  • There wasn’t a lot of information about it at the time
  • Not a lot of examples of what can be done with it
  • It lacked features such as calendaring—a big part of our app
  • It was as new as Chatter was in 2010

Our feeling was that we were so far along in the development of our mobile client and we were speeding to our first release. Drag-and-drop record creation for things like calendar events and other records were done.  All we needed to do was the spit and polish needed to make it easy for users to search for accounts, contacts, rental job sites and other records along with being able to view these records and the related lists. The easy stuff… yeah, right.

Making the Developer’s Life Easier
For NEXMachine and our developers, this was one of those teachable moments in which we completely took for granted the challenges of implementing a simple mobile app that includes features, such as:

  • Account and contact records that reliably render in the mobile app
  • Searching for records that is fast and responsive
  • Chatter
  • Distribution of the app (remember, it takes weeks or longer to get an app published on iTunes)
  • Cross platform support
  • Implementing a solid user experience that was also a responsive design
  • The ability to make changes quickly

PictureFind Nearby Job Sites feature implemented in salesforce1

As a seasoned salesforce.com admin and developer (alas my certs have expired), what frustrated me the most was that I needed engage developers just to add a field on our shiny new app.  I started having nightmares as I imagined my customers using this app wanting even small customization that we could not economically deliver.So, in mid-April, less than 4 weeks from our first go-live, we faced a critical moment of truth.  We stalled.  Over budget and with the most critical deadline in my company’s history looming, were on the verge of failure.  Not because of the fancy drag-and-drop features in our app, but because of the aforementioned simple things that salesforce.com does so well.


Moving Forward
After the cold sweat had subsided when we realized the jam we were in, we put our app side-by-side with salesforce1. Comparing the two apps, we came to the immediate realization that the critical capabilities in our app, such as drag-and-drop calendaring, are the things missing in salesforce1.  The things that were jeopardizing the success of our app, already existed in salesforce1.It took only minutes to make the decision to change direction.  It was late in the day when we communicated our decision to the developers.  The decision was met with resistance and eventually, capitulation when they discovered how easy it was to implement our critical capabilities into salesforce1.

Going to bed that night, I had no idea what we would wake up to the next morning, assuming anyone on the team was going to be able to sleep.  The next day was a new morning for application development for NEXMachine.  Not only did the developers prove they could port our features over to the salesforce1 platform, but it was actually pretty easy.

PictureDrag-and-drop calendaring in salesforce1

With 2-1/2 weeks before our first implementation, we were able to implement all of the critical features demanded by the market for our app with enough time to add several new features we had on the roadmap for our second release.The only regret we have was not making this decision sooner. While the majority of our development effort was on delivering innovative features, we spent valuable time and money attempting to re-create the wheel.   As we go to market, I find that our competitors resist using the Cloud to develop their apps because they feel it commodifies the complexity which they find threatening.

For NEXMachine, we embrace the simplification of the complex because we know that there is no end to the number of innovative ideas we can implement.  The Force.com platform along with salesforce1 allow us to focus on capabilities that will enable our customers to compete and win.  That’s what makes us successful.

innovetur in nube