Installing Windows 10 IoT onto a Raspberry Pi 3

Standard

A bit of a departure in this blog as I talk of my new adventures into the Raspberry Pi. I am presenting at Microsoft Ignite Australia with Dynamics Wunderkind Doug Daley and part of this is showing how the Internet of Things can interact with Dynamics 365.

The first step is getting a ‘Thing’ to send information back to the internet or, in our case, Windows Azure so we can feed it into Dynamics 365.

In our case, that ‘Thing ‘is a Wii Balance Board talking to a Raspberry Pi.

What is a Raspberry Pi?

A Raspberry Pi is a computer the size of a largish business card which costs around US$35. For us Aussies, it is around $55. This is what it looks like.

raspberrypi

This is the latest version, Raspberry Pi 3, which comes with WiFi and Bluetooth built in. Power is via a Micro USB port. Basically you plug it into the HDMI port of a monitor, connect a keyboard and mouse, insert a Micro-SD card with an OS on it and power it up and you have a working computer.

Where Do You Buy One?

In my case I bought it from Element 14. I also bought a power supply, pre-loaded Micro-SD card and plastic case. I had a spare keyboard, mouse and HDMI cable so no worries there. What is good about Element 14 is, for Australian buyers, they distribute within Australia so no problems with strange-shaped plugs or expensive shipping. They even send to PO Boxes.

What Happens When You Boot It Up?

Once you have plugged it in and booted, the default operating system starts up (Raspbian).

Image result for rasbbian

This is a form of Linux with a GUI so even if you do not know the essentials of Linux you can still mouse around. It even comes with Minecraft. In my case I do not want to use Raspbian but Windows 10 IoT.

What Is Windows 10 IoT?

Windows 10 IoT is not a standard version of Windows but one which acts as a foundation for IoT apps you can install via Visual Studio or directly. How you install these apps will have to wait for another blog.

How to Install Windows 10 IoT onto the Raspberry Pi (IoT Dashboard)

There are two ways to get Windows 10 IoT onto the Raspberry Pi if it is not on the Micro-SD by default. The first is to download the IoT Dashboard onto a Windows 10 device.

image

The process is pretty straightforward but, for me, when it came to mounting the ISO file, which sets up the OS, the process ended abruptly and errored with “Failed to unpack installer”. Online forums suggested enabling the Administrator account on my Windows 10 PC and running it through this but this seemed a bit extreme so I looked for another way.

How to Install Windows 10 IoT onto the Raspberry Pi (NOOBS)

The other way to install a new OS is through NOOBS. NOOBS is sort of the BIOS for the Raspberry Pi and can be accessed by hitting the Shift key on your keyboard when you boot.

With the version of NOOBS that came with my Raspberry Pi, WiFi was not supported when booting up NOOBS and a network cable was needed. I am told that the latest version of NOOBS fixes this and WiFi works. Either way, a set of OSes appear which can be loaded onto the Micro-SD card from the internet.

Image result for NOOBS

Selecting Windows will begin the download process. This will be at least a Gig or two of data so be careful of your internet charges.

Once done, you reboot and, with any luck, you will be booting to Windows 10 IoT. In my case, my HDMI television was sucking too much current and preventing the boot process but once I plugged the Raspberry Pi into a normal monitor everything went fine.

step9.jpg

Conclusions

If you are IoT curious or Linux curious, the Raspberry Pi might be an interesting way to go. It is inexpensive and plays nicely with Arduinos. If you are not sure and want to see it in action, feel free to see Doug and I at Ignite.

Salesforce: The Old Dog Cannot Learn a New Trick

Standard

Image result for dog accountant

I had such high hopes for Salesforce. Two quarters in a row with a profit and a third would make it a pattern (one is an outlier, two is a coincidence, three is a pattern). Alas, Salesforce failed to come through with the goods and have fallen back into the bad habit of losing money.

News At The Hydrant

Recent Salesforce news of note:

Salesforce breaks up with Microsoft

Salesforce cries foul at Microsoft’s acquisition of LinkedIn

One of the reasons Salesforce dropped its Twitter bid

The Dog-Eat-Dog World of the Stock Market

The markets have not been kind to Salesforce since the latest quarterly announcement (November 17). Whatever they said was not what the markets wanted to hear. Since the announcement, over two weeks, the price has lost around 10%. You may recall that at the beginning of the previous quarter, the price was in the low eighties and now we are in the sixties.

image

Let us examine what the executives and institutions thought and what could have made the overall market so unhappy.

Insider and Institutional Sales

The fact is executives exclusively sell Salesforce shares but do not buy them. In the last six months, executives have sold over two million Salesforce shares and purchased zero. Here are the sales as a percentage of holdings.

 

2016 Q3

2016 Q4

2017 Q1

2017 Q2

2017 Q3

Insider Sales

4.90%

4.90%

4.80%

4.80%

4.70%

Institutional Sales

5.87%

5.87%

5.75%

5.68%

5.58%

While the percentage is reducing for both insiders and institutions, the sell-off continues. Why is it the executives continue to talk about each quarter being the “best so far”, encouraging employees to invest, while they divest their holdings?

Numbers of Note

Back to Losses

image

The last couple of quarters saw Salesforce going from strength to strength. Margins were up to 10%, which is great. However, this quarter, we are back to square one with a 3% loss on sales. You can dance with the numbers as much as you like but a real accounting loss is never sustainable and rarely a good thing.

Flat Revenue Growth and Accelerating Costs

Historically, the market has responded to strong revenue growth. Here are the year on year revenue and cost growth charts.

image

As you can see, on a yearly basis, revenue growth is pretty much flat at 20% (nothing to be ashamed of, by any means). However, for the last couple of years cost growth has been accelerating and we have crossed the threshold with cost growth now outpacing sales growth.

While revenue growth was larger than cost growth, margins improved. However, now we will start to see margins deteriorate again if things do not change. In other words, there is no way for Salesforce to become profitable while the green line is above the red one.

Perhaps the drop in share price is temporary or perhaps the market is starting to care about profitability.

Staff Growth Slowed

image

Staff growth has tanked this quarter. It does not appear to be a seasonal thing as staff growth increased in the previous Q3 quarter.

Transaction Growth Slowing

image

We finally have enough data to look at the year-on-year trending of the transactions from the Salesforce Trust site. While still growing, the trend is clear. Every year the number of additional transactions is less. Looking at the revenue graph above, over the same time period revenue growth was constant, around 20%.

Were Salesforce handing out twice as many free/heavily discounted subscriptions for every fully paid one a year ago? Has this practice now stopped due to financial pressure? I really do not understand how the transactions and revenue can be so out of step.

Employee Stock Purchases Growing Significantly

This quarter, the stock-based cashflow jumped 42%. This is Salesforce’s main source of cash and represents staff purchases of Salesforce stock. While the executive are systematically selling their stock, the company is keeping itself solvent through the stock purchases of its employees.

Overall Summary

So we have a company maintaining a reasonably constant revenue growth but accelerating marketing spend to achieve it. They are making a financial loss and slowing down in terms of employee and transaction growth. To keep cash coming in through the door they are ‘printing’ shares and selling them to employees. All the while, the executives are selling their shares and pocketing the cash.

If the market sees a fraction of the above in their analysis of the company, it is not surprising the share price is falling.

Dog Bowls of Delusion

Measuring the difference between Non-GAAP (accounting trickery) and GAAP statements in the transcript, Marc’s Golden Retriever Koa receives three dog bowls. The transcript has three Non-GAAP statements all about profit and, not surprisingly, turning their GAAP loss into a Non-GAAP profit. GAAP statements are nowhere to be seen.

Earnings Call Buzz Word Bingo

 

2016 Q3

2016 Q4

2017 Q1

2017 Q2

2017 Q3

Number of words

5147

2163

1997

2511

2505

Customers/Customer

41

5

27

17

20

Revenue

16

14

10

19

18

Cloud

18

8

6

16

12

Platform(s)

13

4

5

5

9

Growth

21

12

7

9

10

Operating

8

11

8

6

3

Software

10

4

1

3

3

Salesforce/Salesforce’s

       

20

Here are the most common words uttered in the latest earnings call transcript by Marc and the executives. Sadly, Marc no longer talks about Service, Cash or Dreamforce but he does talk about customers as much as he talks about his own company.

Running a close second is his talk about revenue. Earnings and profit are not mentioned once.

Talk about platforms and software is on the wane with both risking falling below the threshold of being mentioned ten times in the most recent five quarters.

Looking Into the Future

Last quarter I predicted revenue at $2.3b, which was quite far from the mark (about 10% off). Similarly, I predicted a profit of a few percent, which they also failed to deliver.

I will double down and predict revenues of $2.3b again and a breakeven on profit. Without a steady trajectory, Salesforce proves quite hard to predict.

Conclusions

I had big hopes for Salesforce this quarter and my prediction reflected that. Unfortunately, it was too good to be true and the executive have put the company back to where they were a year ago, struggling to find profits and control spending.

Turning their back on Microsoft and getting friendly with Amazon seems to be their strategy for success. I am not sure how this will work as Amazon does not have the breadth of services and, as I see it, the opportunities to make the sum greater than the parts but we may have better insight into this in the next quarter.

Queues vs Teams And When To Use Them

Standard

I am finally working on a project which has forced me to come to grips with Queues. Queues have been with Dynamics CRM (I assume we still call it Dynamics CRM) for quite a while and, jaded by the limitations of the earlier incarnation, I never had a lot to do with them. However, back in CRM 2013, they got a facelift and made more useful.

Most projects I worked on since then have not needed Queues as they would complicate what was, generally, a simple process. Mostly I have used Team ownership to manage things like Case processing, which works really well.

On my current project, the client wants to triage emails before moving them to Cases and using Team ownership does not quite cut it.

How To Use Teams Like a Queue

Let us start with the simple model: Teams. Records in CRM can be owned by Users or Teams. So, how I often set up Case management is to have a Dashboard with two lists in it:

  • Cases owned by my Team
  • Cases owned by me

image

The user then takes a Case from the Team list (auto-assigned as part of the creation process or via Routing Rules), assigns it to themselves so it leaves the Team list and goes into their list. Here they process the Case and close it.

If they need to pass it on to another group or another User they simply change the owner and it appears on their dashboards.

Users can be part of multiple Teams and the Team list only shows the Cases in the Teams they are part of.

The rules for the Team list are also crazy-simple these days.

image

With service management components like Routing playing nicely with Teams, it is a simple and effective solution.

Going to Queues

If you are using incoming email as an enquiry channel, you will need a Queue to bring in the email records from Exchange. Even with Team ownership, with emails being converted to Cases via Automatic Record Creation, you will still need a Queue.

However, beyond this, if you are processing records with Queues, you get capabilities you do not get with Team ownership.

Firstly, a Queue can hold multiple entities in one list. So, if you want to mix emails and Cases in one list, you can. With Team ownership you are limited to standard views which can only show one entity at a time.

Queues also lend themselves to managing entities like emails which are already, in effect, inactive and, therefore do not have a good concept of open or closed, like Cases.

Managing Records in Queues

image

Rather than manipulate the record, as we do with Team ownership, we manipulate the Queue Item which is an entity linking the record we want to process i.e. the email, to the Queue.

We can Pick (‘assign’ the item to me for processing), Release (‘unpick’ an item and allow someone else to Pick it from the Queue), or Remove it (take it out of the Queue).

Using these functions we can manage an email via Queues as we would a Case through Team ownership and status management.  This is ideal for managing records where ownership and status management are restricted, as with emails, or where we wish to manage a range of entity types in a consistent way.

Conclusions

I still lean towards using Team ownership as my default position to manage record processing because of its simplicity. Teams are easy to manage and clients understand how they work very quickly.

However, sometimes you need something more. In the case of my client wanting to triage emails before converting them to Cases, Queues was the way to go.

In fact, on this particular project, by the nature of how it has evolved, we are using both techniques. Firstly, emails are triaged using the Service-Queue lists. Once the significant emails are identified, they are manually converted to Cases by the User and assigned to the most appropriate Team. Converting an email to a Case also automatically removes it from the Queue.

Once it is a Case, it appears on the User’s dashboard for allocation and processing using Team ownership. The system works pretty well with, in my biased opinion, the best tools employed when they are needed.

If you are wondering which way to go in managing records, consider the above and see how you go.

Post-Summit Debrief

Standard

It has been a week since I returned from the MVP Summit and, as usual, it was great. What made it all the more unique was Election Day coinciding with Summit. Like many major events, I know exactly where I was when the Electors of the College system got told by the people of the USA who to consider voting for a month later (yes, it is a weird system). In this case, I was in Joey’s Bar in Bellevue emptying them of Old Fashioneds.

Trump_Elected

Reveal Your Secrets

As usual I cannot reveal too much about what was discussed as it is under strict NDA. The product team presented for three days on various aspects of the product from the future direction of the look and feel, through to the architecture.

From Jujhar Singh down, the team presented the direction they are heading and, incredibly, asked for our feedback. It really is amazing that the architects of a global software product take time out from their insane schedules to reveal their dark secrets to a group of relative strangers for a few days.

What I will say is everything they said about where they are taking the product made sense and, in terms of the product, unlike in other years, there was very little pushback from the MVP crowd.

The Giants of Industry

Other than meeting the product team the other ‘giants of industry’ at the conference were the other CRM MVPs (now called Business Solution MVPs). This “Who’s Who” of the CRM community is a serious drawcard for flying 20-odd hours, each way, to get to the Summit.

This was the closest we got to a group photo this year and, for all the developers reading (yes, both of you), that is indeed Scott Guthrie on the right hand side in his iconic red shirt (for the others, if you do not know who Scott is, apparently he has something to do with Azure and .Net). I am on the far left doing my best impression of a pregnant monk.

MVP_group.jpeg

All In With the MVPs

There was also time for some play. Turning out to be something of a Summit tradition, the CRM MVPs had their friendly poker game (No Limit Texas Hold ‘Em, $20 ‘In’) with the winner shouting everyone a drink at Joey’s. This year, the honor of winning and shouting everyone a drink went to Gus Gonzalez. Gus tells me that the fact he provided the poker deck and was the dealer for the entire game is correlated with him winning but, in no way, is there a causal link. Who am I to argue?

mvp_poker

And, as usual, Santa made his appearance to hand out gifts to the good CRM MVP boys and girls as part of the Summit Secret Santa. Santa’s knee got a good workout this year and everyone went home with a smile and a gift from a different part of the world.

Secret_Santa.jpeg

Conclusions

For those of us in far-flung locations, the MVP Summit is quite an undertaking. We are away from our family for around a week, of which a couple of days are spent sitting in a chair flying halfway around the world.

However, it really is worth it. Seeing the direction of the product, meeting the product team and playing catch up on the areas of the product where I just have not had time to explore (and there is so much to get across these days) is time well spent.

Equally worthwhile is catching up with my fellow Business Solution MVPs. They are all excellent, passionate people. Whether  it is playing poker, catching up for a few drinks or discussing politics, all of them are great to hang out with in the flesh, rather than briefly interacting with them online.

I expect I say this every year but one of the biggest highlights for being an MVP is the Summit and hanging out with this group of crazy CRM fanatics. If you have the chance to join us, I highly recommend it.

Questions For The CRM Product Team

Standard

In a week’s time I will be doing the flight across the Pacific Ocean to the USA to be at the Microsoft MVP Summit. For at least three days, me and 40 or so of my MVP buddies will be locked in a room with various members of the CRM Product Team. We will learn lots of things which I will not be able to blog about and which you will have to wait until the next major release or conference to find out about.

The good news is one of the sessions in the agenda is where we get to ask the CRM Product Team questions about when specific features will be fixed or delivered and they get to make vague commitments in kind.

So, if you have questions for the Dynamics CRM Product Team, send them through as comments and I will ask them at Summit.

Wrestling With Email Address Limitations

Standard

Dynamics CRM has been around for a while (about 13 years) and, as is the way with any software, there are a few design features from the old days which linger today. One of those is how email addresses are treated for Accounts, Contacts, and Leads.

How Emails Work in CRM

Basically, for an Account, Contact, or Lead you have three email addresses: emailaddress1, emailaddress2, and emailaddress3. All three are used for linking Activities to records but you can only email out using emailaddress1.

When the smartest developers in the room built Microsoft CRM 1.0, they decided that the product would email a record and not an email address, and the email address used by that record would always be emailaddress1. If you type in an arbitrary email address in the CRM form, it will error, as it expects a record.

image

Naturally, some customers want to go beyond these limits. So what are the options?

Storing More Than Three Emails

While you can add additional email fields to a Contact, Lead or Account record, they are not very useful. Dynamics CRM will not use them for tracking Activities and, as they are not emailaddress1, you cannot send out with them.

Another option is to store emails against child records. If you are planning to use these email addresses for Marketing Lists, the child record will need to be a Contact, Lead or Account (the only entities which can be added to a Marketing List).

Which entity you pick will depend on the constraints of the solution being built. If you are using Accounts to store organisations, it might be a bad idea to use Accounts to store emails for, say Contacts, if you are using Leads as part of your sales process this might cause confusion if you also use them to store emails. Similarly, recycling Contacts as a child against Contacts may also trip users up.

Whichever you choose, CRM will track against these child records but it will associate the Activity to the child entity and not the parent. If this is an issue, the Activity could be re-related to the parent via a workflow or plugin.

Generally, if you are going to go down the route of storing emails in child records, I recommend you restrict yourself to one email address per child record. If you use all three email address fields you set yourself up for the same problems with the child record that you were trying to address with the parent record.

Sending From Something Other Than Emailaddress1

There are two option for this. The first is to use a product like ClickDimensions. ClickDimensions allows email Campaigns to be sent out with any of the three emailaddress fields. So, for example, you could set emailaddress2 to be an ‘official’ email address that every registered Contact has. Then, for an email Campaign which must get through, you can tell ClickDimensions to use emailaddress2.

The second option is to throw code at the problem. While the Dynamics CRM API enforces the concept of emailing to records, not email addresses, I am assured that it is possible to intercept an email via a plugin and cc to whatever email address is desired. Therefore, again, emails could be cc’ed to emailaddress2 or emailaddress3 via code.

Conclusions

The limitations built into Dynamics CRM around email addresses can be annoying but they are not insurmountable. Also, as concepts such as ‘emailable entities’ are fleshed out, I hope these limitations will disappear. Until then, we have the above options to work around the constraints and minimise the pain.

Gartner Trajectories for Sales force Automation 2016

Standard

Every now and again, I plot the trajectories of the major CRM players, over three years, in the Forrester and Gartner quadrants. Gartner recently released their latest ‘Magic Quadrant’ for Sales Force Automation so it was time to update my chart from 2015.

Gartner_SFA_2016_cropped

My graphic editing skills have slowly improved over the years making this a little more readable than previous versions. The underlined entries are where the products are in the 2016 Gartner report, with the black line linking to 2015, then 2014.

I have only included the top-right quadrant because no-one entered or exited the top right quadrant in the three years. It really is a two-horse race these days (or three if, like Gartner, you distinguish the online and on-premise versions of Dynamics CRM).

The Leaders

While present in the 2013 report, SAP and Oracle are now left behind. SAP resides in the top left quadrant in the latest report (high ability to execute, limited vision), while Oracle is in the bottom right (limited ability to execute, broad vision).

The leaders are now:

  • Salesforce
  • Dynamics CRM Online
  • Dynamics CRM (On-Premise)

Gartner continues to differentiate Dynamics CRM based on deployment mode. This is partly an artefact of when the report is released (August 2016 in this case). During the first half of the year, the two versions are mostly equivalent but, in the second half, Dynamics CRM Online gets an update which usually enhances functionality and connectivity to other products in the Dynamics suite e.g. Social Engagement.

In theory, if this was the only reason, the on-premise version should land on the online version’s previous score. Reading the Gartner report (available here), another reason it scores differently is the annual release cycle of the on-premise version which Gartner feels is too slow for customers today.

Salesforce

Salesforce continues to move towards the top right. Gartner highlights the following as contributing to this success:

  • Mobility improvements: Still an area of relative weakness for Dynamics CRM
  • Their application marketplace: Also an area requiring improvement for Dynamics CRM
  • The Force.com platform. I am not technical enough to know how it compares. I do know it was the most dreaded in the Stack Overflow Developer Survey last year but whether this was participant bias or something fundamentally broken with the platform I do not know.

Cited weaknesses in the product include:

  • Value for money: Salesforce scored the lowest in value for money and it is certainly an expensive product, relative to Dynamics CRM Online and other online offerings.
  • Limited functionality in the areas of Outlook integration, analytics and offline access.

Dynamics CRM Online

Dynamics CRM Online has improved dramatically in the last three years. 2013-2014 is was about the ability to execute and 2014-2015 it was about the completeness of their vision. Based on the trajectories, Gartner sees Dynamics CRM Online being where Salesforce was about two years ago. However, with this aggressive improvement (and note the LinkedIn acquisition is not included in this analysis) it is fair to say they are challenging the incumbent, just as Salesforce did to Siebel all those years ago.

Strengths cited include:

  • The tight integration with Power BI and Azure predictive analytics which, in the future, will close the loop on the sales process leading to continuous improvement in sales and a reduction in the length of the sales cycle.
  • Like Salesforce, Gartner regards the Dynamics CRM Online platform as one of its strengths. It is highly configurable and writing code on top of a client solution is, in my experience, becoming less frequent with codeless configuration often doing the job. As an example, in eight weeks, we have built and deployed a solution for a client which does case management for 70,000 customers (replacing their Oracle solution) and digital marketing (via ClickDimensions) and we did not write a single line of code.
  • Post-sales customer support and customer success processes. It is one thing to get a solution in and get paid, and another to continue to drive customer success. Gartner cites Microsoft as scoring highly in this regard.

Weaknesses include:

  • Separation from implementation. Gartner cites Microsoft’s partner model as a weakness with customers expecting more input from the vendor on implementation and best practice. This is arguably a weakness for both Microsoft and Salesforce as both rely on a partner model for execution and speaks volumes that it is key, for any CRM implementation, to work with an experienced partner. I am obviously biased but the first piece of advice any MVP will give you when implementing CRM is getting good counsel from an experienced partner.
  • A limited application marketplace. It is true and I cannot defend it. The Dynamics CRM application marketplace is very limited. There are plenty of great add-ons out there (like ClickDimensions) but they can be hard to find for a customer with limited knowledge of the Dynamics CRM ecosystem. Again, this reinforces the need for a good partner to work with during the implementation.

Dynamics CRM (On-Premise)

Gartner considers Dynamics CRM (On-Premise) to have gone backwards over the last couple of years especially in the ability to execute. Given the success of its online cousin, this surprises me.

Strengths cited include:

  • A strong partner network for customer to work with.
  • Tight integration to other Microsoft products such as Skype and Outlook.
  • Strong configurability which I have talked about above.

Weaknesses cited are:

  • Annual release cycle: Gartner considers this too slow for today’s customers
  • Mobility: In terms of its functionality and ability to be customised the current Dynamics CRM mobile client is limited. This is something I know Microsoft are aware of and seeking to address.
  • Outlook integration: The Outlook client does have its glitches and, while it has improved significantly over the years, this was still worthy of note to those customers surveyed by Gartner.

The Challengers and Visionaries

Given no other products made it into the top right quadrant, the two major players are, arguably, unchallenged. One I will call out which, I admit, I have never heard of before is Bullhorn. In the last two reports, it has made significant gains and, if it continues in the way it has gone to date, it will be in the top right in the next year or two.

Conclusions

There is no doubt that, for sales force automation, it is now a race between two vendors: Salesforce and Microsoft. Both have strengths and weaknesses and, as a customer, it is more of a case of working out which of those strengths and weaknesses align to your business than working out which is the ‘best’ product. Salesforce certainly is still rated higher but Dynamics CRM Online is right behind it.

Another thing to consider, if you are looking at a potential CRM solution, is most business need more than sales force automation. While CRM was born in sales force automation, it has expended to include marketing, service, project management, field service and a raft of other capabilities. When considering a solution, the wider context needs to be included.

Overall I think the Gartner report is fair and the trajectories reflect the progress of the solutions. The only aspect which I feel is a little harsh is the backward movement of Dynamics CRM (On-Premise). Gartner seems to have punished the product for its annual cycle a little harshly, in my opinion. It is clear though that online is the future focus for Microsoft.