I started developing on Salesforce in 2008 and attended my first Dreamforce that same year. Although the technical information that I gained at DF08 was deep and wide, I was focused on the nuts and bolts of getting things done. I realized that the culture of Salesforce was different from any other platform I had experienced. It was the era of sales managers, sports jackets, and “no software,” not the age of developers, concert tees, and “don’t repeat yourself.”
In early 2010 I was asked to evaluate Heroku and determine if it was a viable platform for some of our clients’ custom JavaScript apps. Since Heroku was a platform that supported many open source languages (polyglot), it made for a nice complement to the Salesforce’s monoglot stack. Being a Salesforce implementation partner, we frequently received requests like this, so we were eager to find a flexible solution. Heroku was ideal because it was based on “buildpacks” which are OS-level helpers that ensure apps work smoothly with the infrastructure and services like databases, caching, and routing.
Since I was a command-line junkie who touted Ruby’s “convention over configuration” paradigm, I was oddly satisfied when I first typed “git push Heroku master” to deploy my app. I later read “The 12 Factor App” written by the Heroku founders, and had little hearts dancing in my eyes. By the end of the year, Salesforce had acquired Heroku, and to my surprise, nothing changed.
By 2013 I was using Heroku daily, building a ‘wear test platform for MESH01’. Mesh’s clients are sportswear companies and the platform enables the crowd-sourcing of performance data for athletic gear and apparel. That year I attended Heroku’s second annual user conference called Waza to learn about new features and how other customers are using the platform to develop and deploy the MEAN stack. Comparing Salesforce’s prodigious Dreamforce to Heroku’s Waza is like comparing the opening ceremonies of the Olympics to Burning Man. Set in a hip San Francisco loft warehouse, Waza not only had Angular, API, and Postgres breakouts, but you could also attend bookbinding, origami, quilting, or printmaking sessions. This event was as much about art as it was about code and the opening ceremony definitely sets the tone.
There were only a couple hundred attendees, but the mohawks, neon hair, and black fingernails in the crowd were closer to a Cure concert than a technology event. And all were happy customers who were not only passionate about their work but passionate about sharing their lessons with others. At this point, I understood why Salesforce did not want to change anything about Heroku. They wanted to keep the magic! But how long could they let this purple unicorn fly free?
Since then, I have met many customers who have heard of Heroku but aren’t exactly clear what it is. They understand what AWS does; after all, it has ‘web services’ in its name. Even if you are not a technical person, “web services” seems somewhat self-explanatory. When I try to explain that Heroku is “a polyglot platform that runs at a higher level than AWS, more of PaaS than IaaS, and manages many third party open source web services,” and “oh did I mention it actually runs on top of AWS,” I get a lot of blank stares.
So how does Salesforce capitalize on the full range of products that Heroku provides without killing the magic purple unicorn that has redefined how cloud apps are developed and delivered? The answer is simple – very carefully! Not to be flippant, but Salesforce has been working on this for the past ten years. They have learned from green mohawks that developers don’t want to log into a browser to change settings, push/pull data and code, or even check on logs for their apps; they want to use a command-line tool so they can automate everything. They do not want to type another proprietary declarative markup language with those black fingernails. They want to leverage modern JavaScript so they can create, move, or host web components where it makes the most sense to their end-users. Most importantly, they have learned their customers may have needs that don’t fit nicely into Salesforce.com but are an excellent fit for Heroku.
Salesforce.com has acquired many companies and platforms over the last ten years, and they have typically integrated them in 12 to 18 months. However, the Heroku platform is something special, and Salesforce has been judicious about not stifling Heroku’s progress and mimicking its successes. I think it is safe to say that we will see the Heroku brand disappear in our lifetime. However, I don’t expect to see any loss of functionality. I believe that the remainder of the work is around the consolidation of UX and marketing. Until then, I will continue to wear my purple tees proudly while deploying via CLI.