Saturday, May 30, 2015

Upgrade vs Rebuild, Interest vs Responsibility

Apparently blog writing software worldwide has been knocked out by Google’s recent turning off of an old authentication method. If, like me, you use Blogger, the good news is Microsoft and Google are coming up with a joint solution to the problem. If that is not good enough, you can create a WordPress blog site and import all of your blogs. I will give them a week or two before making the jump.

This week’s blog is inspired by a piece of work we just completed and the follow-on work which may result from it.

The Proof of Concept

Within their industry, the client checks the compliance of service providers through regular visits and tracks what measures need to be applied to meet the legal standards required. In some ways they are similar to restaurant health inspectors. They were managing this process through Microsoft CRM v3 (yes, this was before it was called Dynamics CRM). Understanding it was time to move on, they wanted to do a trial upgrade to see what could be preserved and plan out the actual upgrade.

Microsoft CRM v3 was the second version of CRM after v1.0/1.2 (there was no version 2). This was the early days of CRM and introduced the Marketing and Service modules of the product. It also introduced the extension tables for the entities, allowing many more custom fields than was possible in v1 and allowed for the creation of custom entities.

Despite making the product ‘practical’ and propelling it past Sage ACT! which had, in my opinion, been Microsoft CRM v1’s closest competitor, it still had significant shortcomings. The predecessor of plugins, “callouts”, had significant limitations, as did the API, so it was no surprise that the client had been very creative in their customisations of the solution.

It was common for consultants to embrace ‘unsupported customizations’ in v3 because of the limitations. Unsupported customizations are changes made to Dynamics CRM which Microsoft do not support i.e. they cannot guarantee they will survive updates and Microsoft reserves the right not to support a system where they have been employed.

In this specific case, the client had added stored procedures to the SQL Database (a CRM no-no), and renamed CRM tables and replaced them with SQL views (a really big no-no). They had avoided the use of callouts and done practically everything with JavaScript, web pages, and windows services.

To upgrade to Dynamics CRM 2015, it is necessary to take the system through every version. So the upgrade went from Microsoft CRM v3 –> Dynamics CRM v4 –> Dynamics CRM v2011 –> Dynamics CRM v2013 –> Dynamics CRM v2015. Practically every part of the CRM architecture was revised and tweaked over these versions. For example, between v3 and v4, Dynamics CRM went from a pure on-premise solution to a deployment-independent solution i.e. CRM Online and, more recently, the product went from only supporting Internet Explorer for its web client to supporting all major browsers.

Not surprisingly, very little of the customizations survived the process, with most having to be removed just so the upgrade worked at all. Our own l33t CRM developer, Colin Slack, brought one of the major pieces of customizations all the way through so the client could see how the product looked in Dynamics CRM 2015.

The client was happy with what they saw and we set about putting a proposal together for the actual upgrade.

Three Options

It became clear there were three options available to us to get a working Dynamics CRM 2015 system:
  • Upgrade Lite: Literally get the current system and make it work in Dynamics CRM 2015
  • Upgrade “Proper”: Upgrade the code where needed but, with the significant advances in the configuration capabilities of Dynamics CRM, where possible replace what was JavaScript in CRM v3 with configuration in CRM 2015
  • Rebuild: Start with a fresh implementation of Dynamics CRM 2015 and determine what the business needs (as opposed to what was possible with CRM v3) and configure/customize as required
Costing the options it also became clear that the effort to rebuild was significantly less than the upgrade options and much less risky in terms of nasty surprises in the many years of code applied to the old system. It also allowed a more robust design. For example, JavaScript, the tool of choice in the existing design, relies on the user opening a form to trigger the code. This means the JavaScript will not fire on the import of records, if a web form is used, or if mobility options are used. While not part of the business processes today, it is inevitable that this will become a problem some time in the future.

The problem was the client was fixed on their path. All along they had assumed that the way to go was to upgrade and for us to convince them of a different approach was difficult. To complicate matters, the decision makers were reluctant to get the business involved in the intensive workshops necessary to understand the business processes for the rebuild but largely unnecessary for the most expensive Upgrade Lite option.

This discussion is still not resolved and it may be the business prefers to go for the more expensive option to avoid disruption to ‘business-as-usual’, discounting the ‘best practice’ option. Ultimately it is their business and they must choose the best path for them.


The reason I wrote this was to highlight that while upgrading is normally the obvious choice, it does not always mean it is the best choice and, under certain circumstances, rebuilding the system can make sense.

In this case, the most cost-effective, risk-averse option was rebuilding but, with the consultant having incomplete information, this did not mean it is the best option for the business. While, as consultant, we may get frustrated with clients who pay us money to hear our advice and then not heed it, it is ultimately the business executives’ responsibility if the business succeeds or fails, not ours, and we must respect that.

Thursday, May 28, 2015

Salesforce: Frictional Forces and Equilibrium

Microsoft Live Writer has finally given up the ghost and will no longer link to  Blogger so I am having to use Google's online writing tools until I find another option. All suggestions welcome.

Salesforce has done it. The elusive goal of making a profit. Will Marc return to GAAP reporting? Is this a one-off like that tax write-off from a few years ago? Is this the start of a golden era for Salesforce? The numbers will reveal all.

Salesforce Quarterly Results

The numbers are from Salesforce’s Financials page. These are the numbers reported to the Securities Exchange Commission and are the GAAP numbers, not the non-GAAP numbers we hear in the press releases.

2015 Q1 2015 Q2 2015 Q3 2015 Q4 2016 Q1
Revenue 1,226,772 1,318,551 1,383,655 1,444,608 1,511,167
Subscription Revenue 1,147,306 1,232,587 1,288,513 1,345,358 1,405,287
Revenue Cost 292,305 307,831 333,211 355,923 381,802
Operating Cost 989,808 1,044,154 1,072,486 1,123,501 1,098,260
Salesforce Income -96,911 -61,088 -38,924 -65,765 4,092
Highest Transaction 2,037,819,946 2,502,030,346 2,872,068,400 3,186,923,759
Transaction Growth QoQ 23% 15% 11%
Revenue Growth # YoY 334,139 361,457 307,621 299,366 284,395
Revenue Growth % YoY 37% 38% 29% 26% 23%
Revenue Growth % QoQ 7% 7% 5% 4% 5%
Total Cost % YoY 37% 36% 20% 18% 15%
Total Cost % QoQ 3% 5% 4% 5% 0%
Staff 14,239 15,145 15,458 16,227 16,852
Staff Growth YoY 38% 20% 21% 22% 18%
Margin -7.90% -4.63% -2.81% -4.55% 0.27%
Growth Difference 1% 2% 9% 8% 8%
Cash 827,891 774,725 846,325 908,117 941,956
Accounts Receivable 684,155 834,323 794,590 1,905,506 926,381
Cash/AR 121% 93% 107% 48% 102%
Expenses Relating to Stock Based Awards 131,092 142,411 139,460 151,802 142,560
Stock Based YoY 14% 29% -1% 11% 9%


Numbers of Note

In terms of what is jumping out at me is a general slowing down in the growth of the business. Transaction growth (the growth in the number of ‘operations’ done on the Salesforce servers) has halved in six months. Revenue growth year-on-year is showing a steady decline over the five quarters above and is the lowest it has been in five years. Thankfully cost growth has also slowed down and, by comparing the revenue year-on-year to the cost year-on-year we see growth is decelerating faster, which is good for profit. Like revenue growth we are seeing a cost growth similar to that of five years ago.

Here it is in graphical form. The solid green line (Cost) is running pretty much parallel now with the solid red line (Revenue) with both declining. Cost is also as lot less volatile than the past which is also a good thing. Note that while the lines are parallel, as this is growth, revenues are still growing faster than costs which means we are on a path to profitability.

Staff growth is a similar story. A steady deceleration with growth numbers similar to those of the start of 2010.

The business growth slowing is good because the aggressive growth strategy was unsustainable and unprofitable. By putting the brakes on, especially on marketing and sales spend, Salesforce has returned to a break-even position. As mentioned, the financials are similar to those of five years ago. Five years ago Salesforce was profitable.

Unusual Entries

Back in 2013, Salesforce turned a profit because they got a $130m tax rebate. Is this the same again? The only entry which stands out is the once-off “Operating lease termination resulting from purchase of 50 Fremont” which reduced operating expenses by around $37m. As the profit made was $4m this certainly had an impact.

It will be interesting to see how the next quarter pans out

Cash and Accounts Receivable

As I predicted last time, Cash and Accounts Receivable have come back in line after the end of year spike to bring in those last-minute contracts.

Like our Revenue and Cost measures, the Cash and Accounts Receivable are starting to level out.

Earnings Call Buzzword Bingo

I was especially interested in this one because we now have a profit to brag about. At 3,500 words this was one of the shorter transcripts in recent quarters. Regardless he managed to utter the phrase “We are all about customer success” twice and his version of bragging about the profit, “Non-GAAP EPS of $0” three times. The words “profit”, “profits” and “profitability” got mentioned once each.

Not a huge amount but they are words Marc is unfamiliar with so you can forgive him for not over-working them.

Four times his used the phrase “our customer success platform” which is the new branding for the Salesforce stack; the develop platform most dreaded by developers, according to StackOverflow.

The rules for Earnings Call Buzzword Bingo are simple. We get the quarterly transcript and count up the words and phrases. Words on the list have had ten or more mentions in the past five periods with the text used being the call transcript after the introduction and up to, but not including, questions.

2015 Q1 2015 Q2 2015 Q3 2015 Q4 2016 Q1
Number of words 2400 4,731 3,922 4,017 3,495
Customers/Customer 22 38 34 23 34
Revenue 19 27 26 25 24
Cloud 15 22 47 32 28
Platform(s) 10 13 27 18 14
Service 13 15 12 5 9
Growth 9 18 16 13 16
Marketing 5 10 8 4 8
Cash 10 11 9 10 11
Operating 11 11 8 20 11
Enterprise(s) 8 10 8 7 8
Dreamforce 11 14 2 1
Analytics 14 11 9
Software 12 4

In terms of words we have lost, unfortunately ExactTarget and Salesforce1 are no longer the golden children they once were and we lose them from the list.

No new words stood out other than ‘incredible’ (ten times), ‘world’ (17 times), and ‘success’ (12 times). These are a bit generic though so I am not adding them on.

Google Trends

Our quarterly review of Google searches for “Dynamics CRM” and “”.

People are still more interested in Googling about Dynamics CRM.

In terms of regional interest, nothing really has changed in terms of the countries looking at the two terms but the cities is interesting. Firstly, let us look at “”:

Clearly the interest is from the Americas where five of the seven cities are based. The other two are in India.

For “Dynamics CRM” we have:

I did not know where Chiyoda was and had to look it up; it is, effectively, Tokyo for the purposes of our review. Of these top seven cities precisely zero of them are in the Americas.

It is clear which is the more metropolitan of the products and which one the international community is curious about.

Insider and Institutional Sales

So how has the slowing growth affected those in the know?

2015 Q1 2015 Q2 2015 Q3 2015 Q4 2016 Q1
Insider Sales (as a percentage of holdings) 0.50% 0.40% 4.70% 4.60% 4.50%
Institutional Sales (as a percentage of holdings) 2.71% 2.67% 3.20% 3.11% 3.04%

No clear patterns here other than a small decline in Insider and Institutional Sales over the last three quarters. Given this is the case, they do not seem overly concerned with the slowing growth. This being said no executive has made a purchase of Salesforce shares in the past six months and they are still selling an awful lot of shares.

Looking to the Future

Last quarter I predicted revenues of $1.56b and a loss of around $50m. Obviously the loss was off, although I would be closer if not for the $37m lease termination. I did ok with the revenues though being only 3-4% off.

In terms of the next quarter, I predict revenues of around $1.66b and an income around the breakeven mark i.e. $0b.


The frictional forces of the market are finally affecting the turbulent trajectory of Salesforce and it is slowing down. In this case, though, a slowing of growth is not all bad. The slowing has given Salesforce the opportunity to return to profitability or, at least a break-even point. Also, the slowing of the business has brought a stability to the figures.

It will be interesting to see if this is the start of a profitable Salesforce or an outlier with more losses to come.

Thursday, May 21, 2015

Tools for an Awesome CRM Demo

It has been a few weeks since I wrote a blog as it has been crazy-busy but I am still here and still committed to writing my “three per month”. There should be a Salesforce announcement soon so this will be likely the next post but, for now, it is all about Dynamics CRM.

There used to be a time when, for a demo, you had to copy your 30G virtual machine, spin it up and pretty much configure and customise from scratch. Thankfully things have become a lot easier. To this end I thought I would share some of the tools I use to put together my CRM demos.

The Base Image

This first one is probably my best secret weapon. Obviously, you can sign up for a 30 day trial and get an almost instant CRM in the cloud but, if you are a Microsoft partner and have a bit of extra time, there is another option.

Microsoft Office Demos allows partners to spin up a fully featured 90-day Office 365 environment, including CRM, if you choose the first option.


Moreover, the demo environments can be set up clean or for specific verticals.


If you are looking to impress, these are a great way to do it. The verticals have language specific to that vertical as well as custom elements to really show Dynamics CRM in its best light. As mentioned though, they can take a few hours to set up so do not do this on the morning of the demo.

Web Portal

For simple portal setup, it does not get much easier than ADX Studio. Once you have your base CRM image in place, go to ADX Studio’s Demo site, feed it the details of your CRM environment and your login details and it does the rest. Again this can take a few hours but is well worth the wait.


As you can see, there are also verticals available here. If you are unsure, go with the “Customer Portal” as you can always add additional portals later through CRM Settings. Customer Portal gives commonly requested features such as Customer Self-Service, Knowledge Base, Ticketing, Event Management and Service Requests.

Modifying the look and feel is as simple as editing a WordPress site, if not simpler, and requires no code knowledge.

Chipping Off the Rough Edges

There are two other tools I recommend to smooth off the rough edges of your demo. The first I have used for many demos and the other comes highly recommended by the MVP community. The first is one, I have mentioned before, which is Tanguy’s xRM Toolbox. It is full of useful bits and pieces. I mainly use the icon loader and the SiteMap editor but there is loads more in there and anyone who works with CRM should have this one within reach.

The second is Scott Durow’s Ribbon Workbench. This allows you to mess with the buttons on forms and the like. As mentioned this is not a tool I have used directly but it is on my list of tools to master and, with the ability to assign Actions to buttons, I am sure it is soon to become my new best friend.

If you need to mess with the navigation of your demo at any level, these two tools get you there.

Bonus Workflow

If the demo requires sending an email, this is a trick I use to keep things flowing nicely. Generally, your demo environment will not have email set up but you want to give the illusion it does. This simple workflow changes an email from “Pending Send” to “Sent” as if it really did go out.



I am sure others have tools they use e.g. PowerBI, and I welcome adding these to the comments but, for me, this handful of tools allow me to put together a great demo without taking a week or two like it used to in the old days.