How the Internet of Things Made a Pancreas

Standard

Type 1 Diabetes (T1D), traditionally known as Juvenile Diabetes, is hard work. Often (although not always) it is young toddlers and children who get it. The cause is unknown. The consequence of getting it is your pancreas no longer manages your blood sugar levels properly and the pancreas’ job needs to be managed manually through diet, exercise and medications such as insulin.

For a parent of a child with T1D, this is a full time job. In the morning and at night, there are injections. Before every meal there are injections. There is constant monitoring of the child’s blood sugar levels with finger pricking, including every few hours during the night. If the child’s blood sugar goes too low they could slip into a coma and die.

Technology does help, albeit at a price. For the blood monitoring, there are Continuous Glucose Monitors (CGMs). These put a little needle under the skin and monitor blood sugar levels without the need for finger pricks. For insulin delivery, there are pumps which are attached and worn 24 hours a day delivering insulin.

Even with these tools the settings and monitoring are still manual. At meal times, the amount of insulin needed is estimated and the pump is manually adjusted. The parents still need to get up in the night and check the blood sugar levels.

Often the CGMs have an alarm if blood sugars are too low but they can be quiet, as Dana Lewis discovered. In Dana’s case she was the T1D and the alarm was supposed to wake her up if her blood sugar went too low in the night. It did not always succeed.

The Internet of Things Makes a Better CGM

Through Twitter, Dana discovered someone on the other side of the country (John Costik) had managed to get the data out of their child’s CGM and into an online spreadsheet so he could monitor his son’s blood sugar levels while at day care. Dana reached out to John and he gave her the code. She began building a better CGM. The plan was simple: pull the data out of the CGM, send it up to the cloud, send it back to her phone and, if her blood sugar went low, the much louder phone alarm would wake her. It worked.

Dana did not stop there. Dana lived alone and there was still the risk that, like many of us, she would sleep through the phone alarm. She reworked the system to send her data to her boyfriend and her mother. If she fell low and slept through the alarm, they too would be informed. It worked.

Collaborating with her boyfriend (Scott Leibrand), she made the alarms predictive. Rather than simply warn when she had gone too low, the alarm now warned her BEFORE she went too low so she could actively prevent it.

The Internet of Things Makes a Pancreas

Dana was still part of the system. The alarm from the CGM woke her up and she made adjustments to the pump to bring her sugar levels back in line. What if the adjustments could be made automatically? Again, someone else on the internet (Ben West) had figured out how to send commands to his pump using a radio transmitter and gave her the code. He too was a T1D looking to automate his pump. With Ben’s code, Dana removed herself from the system and it worked.

By the end of 2014, the system was fully working and it was clear this had the potential to improve the lives of many diabetics and their families. The sale of medical devices are, quite rightly, strictly controlled. Dana and Scott could not make and sell clones of their setup so they did the next best thing: they released the blueprints for free so others could build it for themselves and the OpenAPS (Open Artificial Pancreas System) was born.

image

Looping Today

The linking of a CGM and pump to automate insulin delivery is called ‘looping’ and there are three main projects on the internet for doing it:

  • Loop (A loop based on Apple technologies)
  • OpenAPS (Dana’s original project)
  • AndroidAPS (A fork of OpenAPS which uses Android technologies)

Looping has been around for 3-4 years and there are hundreds of diabetics using the system to manage their disease. Only now are the first commercial equivalents coming to market with the most basic of functionality. The expanse of time between when the technology arose to address the problem and when it was commercially released is the reason the movement to make an artificial pancreas has adopted the hashtag #WeAreNotWaiting.

When you know, every night, you or a loved one might not wake up and the technology is available to prevent that from happening, wouldn’t you do the same?

For me, the story of OpenAPS shows the best of what the Internet of Things has to offer. Sure, the CGM and the pump use the internet to talk, with no human intervention; a traditional Internet of Things but, to begin with the ‘things’ were ideas and incremental advances. When these came together and interacted via the internet something was achieved which could not have been created in isolation. Something that has the potential to improve the lives and prevent the deaths of thousands of people around the world.

Advertisements

Salesforce: Is The Bear Going Into Hibernation?

Standard

It has been a long break but it is back to the blogs and to start off the new year, it is the Salesforce quarterly review. Salesforce hit their third quarter just before the break and here is the breakdown.

Salesforce on the Grapevine (Salesforce News)

Salesforce and Google: The New Celebrity Romance

A while ago, Salesforce and Microsoft were going steady but things went bad. Salesforce now has a new love in their life in the form of Google and their ‘strategic partnership’ together. When it was Microsoft, a ‘strategic partnership’ meant ‘grooming for acquisition’. Interesting times if this is Google’s intention. The news for now is Google is building integrations to Salesforce; the first of which is allowing Salesforce sales data to be analyzed with Google Analytics. This fills a nice BI gap for Salesforce. A romance to watch.

Benioff Compares Facebook to Tobacco

Marc Benioff, suggesting “technology has addictive qualities”, believes it should be legislated like cigarettes. For Australia that would mean a warning splash page showing the detrimental effects of Facebook arguments and unproven health remedies and a ban on using social media within pubs and restaurants. He might be onto something.

Salesforce to Buy Twitter?

As well as the rumor of Google buying Salesforce, there is also the rumor of Salesforce buying Twitter, although the evidence is thin at this stage. This could be Benioff biting his thumb at Microsoft’s acquisition of LinkedIn or it could be a stronger play into the social media market to enhance their CRM suite.

The Undulating Hills of the Stock Price

image

Again a favorable quarter for the share price, probably due to the improved profitability with revenue growth uncompromised.

Landmarks (Numbers) of Note

image

While it is hard to divine a pattern in the margin graph, it is true that in the last year, the curve has mostly improved and Salesforce is making a few percent in profit.

image

While the cost growth has waivered around, for two years the revenue growth has sat steady at around 25% year on year. As mentioned before, the game here is to keep the red line above the green one to improve profitability. As we can see, red is flat and green is heading downwards. This bodes well for Salesforce’s continued profitability. In fact, at the biggest gap between the lines in two years (5%), this is probably the best news in the financials.

image

Here is the interesting one and the reason for the title. While revenues are growing, transactions shrank, again. This time down from 5.7b transactions to 5.4b. If more customers are embracing Salesforce, as suggested by the revenue growth, why are transactions falling?

As I see it, there can be only two explanations: either the customer base is not increasing and revenue is being driven by price increases or people are getting the same services with less transactions somehow being committed on the servers.

False Trails in the Woods (GAAP vs Non-GAAP)

image

Just like last month, GAAP was mentioned twice and Non-GAAP six times so we drink four mason jars of moonshine this quarter. I maintain my prediction the gap will reduce as Salesforce becomes profitable.

Noises in the Dark (Buzzword Bingo)

First of all we have the unusual occurrence of a phrase getting more than ten mentions. In this case Marc and the gang said the phrase “our customers” exactly ten times. It is an admirable focus. How about the single words?

2017 Q3

2017 Q4

2018 Q1

2018 Q2

2018 Q3

Number of Words

2505

3317

3278

3000

3018

Customers/Customer

20

26

28

25

21

Revenue

18

31

28

21

19

Cloud

12

14

22

16

13

Growth

10

15

16

19

13

Operating

3

18

11

7

8

Salesforce/Salesforces

20

18

40

26

30

CRM

15

7

5

No changes in the key words thrown out in the quarterly transcript proving that nothing new is really said each quarter; just a recrafting of the same messages. The only discernible pattern is all words have gone down in total mentions since 2018 Q1.

Getting the Lay of the Land (Predicting the Future)

Last quarter I predicted a profit of $30-40m (they made a little over $50m so well done Salesforce for exceeding my expectations). For revenue I predicted $2.7b which hit the mark.

For next quarter, I predict revenues just shy of $2.9b and for profitability, I am going to go out on a limb and predict Salesforce to break through the $100m mark.

Conclusions

In terms of acquisitions, it is obviously interesting times. Google and Salesforce together would be a formidable competitor to Microsoft. This being said, while I consider Salesforce and Dynamics 365 as on par with each other, I am still a fan of Microsoft Office over the Google office apps. Then there is the question of Salesforce’s lack of an ERP offering to counter Dynamics 365.

Financially, things are not too bad at all. Salesforce has a profit and growth remains steady. The fly in the ointment is the diminishing transactions which appears to be a trend and not an aberration. It is like a company which sells cars getting more profitable but having no cars on the lot; there is something strange afoot.

Gartner Trajectories For Sales Force Automation 2015-2017

Standard

A few months ago I showed the Forrester Trajectories for Sales Force Automation. What really stood out in Forrester’s latest report was it put Microsoft ahead of Salesforce and suggested, based on the trajectories, that Microsoft was improving while Salesforce was declining.

Gartner released their equivalent report about a month after my analysis and were not as generous, maintaining Salesforce at the top of the heap. Nonetheless I thought it would be interesting to see if the predicted trajectories of the two analysis houses comply or are also differing.

The Trajectories for 2017

gartner_sfa2015-2017

Obviously the original reports had a few more contenders than those shown. My rule for selection is simple: if the product has appeared in all three reports, it is included in my analysis. Also, the lines move from the green dot to the red one. So, for example, we see Oracle has jumped in the latest report from being in the Visionaries quadrant to be in the Leaders quadrant.

As for the years used, we are using the Gartner reports of 2015, 2016, and 2017.

In comparison to the Forrester report, we have all of Forrester’s, except bpm’online which did not make the cut.

Niche Players (NetSuite, Infor, Zoho, Aptean)

In the bottom right we have the Niche Players. Generally these products do not have the full offering of the larger players or are relatively new entrants.

Netsuite, as was the case in the Forrester report, has fallen back, going from a Challenger down to a Niche player. The report says the customers were a big part of the drop in standing, suggesting the product lacks in forecasting, content management and lead management. Also, the customers complained of the product interface looking dated and features they requested were not added to the product. There is probably a cautionary tale here for Microsoft. While Microsoft has a place for people to raise requests for features in their products, I have not historically seen this heavily influence the direction of innovation with Dynamics 365.

Infor and Zoho are in a similar boat to each other in this report, staying within the Niche Player quadrant for the last three years. Infor has steadily improved its position within the quadrant over the period though and the report talks of a recent US$2b investment to accelerate its development plans. Therefore, it may be one to watch in the future. Interestingly, this strongly differs to the Forrester analysis which had Infor dropping in standing.

Zoho has done very little in the time period, circling around the same position. Arguably, Zoho has found its place in the market as a small B2B CRM offering and, assuming it has no ambition to be different to this, I imagine it will continue in this position. The Gartner report did warn of Zoho’s lack of customer service so while the product is good value for the price, the opportunity cost may be significant if users need a lot of support from the supplier.

Aptean’s main product is Pivotal. I have seen Pivotal in my career, and was encouraged to jump on board with it many years ago when I worked for a company called Praxa, owned by CDC Software. It is not a bad product but lacked the push behind it of the major players. The development environment was, arguably, much more flexible than Dynamics 365’s. They way it was often characterised to me was Pivotal was built, from the ground up, in .Net and many of the inherent features of the development platform were built into the product. So, for example, while managing configuration and customisation for Dynamics 365 cannot be readily done in Visual Studio/TFS, this is not, from memory, the case for Pivotal. 

Over the three years, Aptean has improved its position in the Magic Quadrant and is close to moving to the Challenger quadrant. Another one I would keep an eye one.

Challengers (SAP CRM)

SAP is the only vendor in the Challenger quadrant but it is not faring well and ended up just north of the niche player border. Reading between the lines of the Gartner report, SAP CRM is not a focus for SAP (arguably as Dynamics 365 on-premise is not a strong focus for Microsoft) and customers should be looking to the Hybris Sales Cloud offering instead. While Forrester did not cover the Hybris product, it also characterises SAP CRM and in decline although, arguably, not as strongly as Gartner does.

Visionaries (Base, CRMNEXT, SugarCRM, SAP (Hybris Sales Cloud))

Base and CRMNEXT have both migrated from the Niche Players quadrant to the Visionaries with CRMNEXT making huge progress over the three years. In the case of Base, a big part of their success appears to be due to a strong focus on onboarding new customers and their use of big data and predictive analytics to drive future sales.

For CRMNEXT, it has focussed on the finance industry and been very successful at addressing the needs of this vertical in Asia and the Middle East with many very large implementations. It has yet to crack the USA but, if it starts making headway there, it could become a powerhouse. Another one to watch.

SugarCRM and Hybris have bounced around the Visionaries quadrant over the three years and have been placed close to each over over that period. For SugarCRM, this is in alignment with Forrester’s perception. The report is mixed on SugarCRM, praising its innovation but also criticizing the gaps in the offering. The company behind SugarCRM has, in the last few years, moved away from the open source community, no longer releasing an open source community edition. I imagine a lot of the innovation for the product came from this online community so distancing themselves from them will not do them any favours in terms of innovation and development. I do not see SugarCRM making it into the Leaders quadrant any time soon.

Hybris Sales Cloud, SAP’s SaaS CRM play, is interesting. Arguably not yet as successful as Oracle in making the transition to online, they are maintaining their ground. The report suggests that functionality and integration to other products is improving but support and implementation issues are holding them back. If SAP can fix these issues, they will regain their former glory in the top quadrant but for now, I cannot see them getting out of the Visionaries quadrant.

Leaders (Oracle, Microsoft, Salesforce)

Finally, the products we really care about; the leaders of the pack. Historically I have characterised CRM as a two-horse race between Microsoft and Salesforce but Oracle is on its way back, having transitioned to the cloud.

For Oracle, the report praises their depth of offering, suggesting it is better than both Microsoft and Salesforce. In terms of what is holding Oracle back, the report suggests Oracle focusses more on the sale than the customer, sacrificing the customer onboarding experience and customer support. If they can get these two right, Oracle will again be at the top of their game. However, entrenched as their sales culture is, this is a big ask.

While Forrester characterised Microsoft as being on the way up and Salesforce declining slightly, this is not the case with Gartner where the two products maintain their positions relative to each other with Microsoft making slight gains in their completeness of vision.

In terms of what Gartner sees as significant in the product, Microsoft’s customization capabilities are called out. I am very happy about this. I often hear that, when competing against Microsoft, Salesforce sales teams will claim Dynamics is inflexible in its configuration and customisation, which is simply untrue. It is good Gartner calls out Dynamic’s configuration/customization as the strength it is.

In terms of where Gartner suggests Microsoft could improve, reporting was an area highlighted for focus. In short, Microsoft has great reporting technologies but they are not readily accessible by a Power User and still require a developer to access their full potential. In my opinion, a revamping of the outdated Report Wizard would go a long way in addressing Gartner’s concerns.

System performance was also called out as an issue by Gartner. Microsoft has, for a number of years, been plagued by slow form load times. Again, Salesforce used this against Microsoft when vying for work, spinning up a trial and showing the page loads side by side. I know Microsoft is addressing this in their transition to the Unified Interface and this focus should yield dividends in the near future with the current version (v9). I remain optimistic.

For Salesforce, Gartner praises the new Einstein offering for predictive analytics and the overall sales management system. Like Oracle, where the Salesforce was born from, Gartner criticizes Salesforce’s aggressive sales practices and heavy-handed contract negotiation. The biggest criticism though came from customers complaining they struggle to derive value from the product. Gartner literally says “Salesforce clients regularly identify issues with deriving value from their Salesforce implementations”. This is great news for those of us competing against Salesforce because a big part of the Salesforce counterplay to the fact that Dynamics is so much cheaper than Salesforce is the “value” argument. Gartner confirms this argument does not hold up in the real world. If you are involved in competing with Salesforce for sales and take nothing else from this blog post, take that quote from Gartner and have it as a full page in your presentation. I guarantee you that Salesforce will hate you for it.

Conclusions

In the end a much longer post than my Forrester one but, for me, at least equally interesting. In terms of the products to watch, my money is on Infor, Aptean’s Pivotal (not the first time I have called them out) and CRMNEXT. I predict Oracle will continue to improve their position in the Leaders quadrant but I am not so sure SAP will follow suit. In terms of the eternal struggle between Microsoft and Salesforce, it looks like not a lot will change in the near future. Whether Gartner or Forrester are correct in terms of the fates of the various products, this is yet to be seen.

Dynamics 365 Software Deployment and Flow: The Good, the Bad and the Ugly

Standard

Of the developers I talk to, there are mixed feelings towards Microsoft Flow. There are a few reasons for this such as:

  • It is quite new and a little buggy in places
  • They do not get full control to bend it to their will (the reason they are a little less hostile towards Flow’s big brother, Logic Apps, where they can access the underlying code)
  • It provides Power Users with a lot of power but does not strongly enforce discipline/good development practices (this is improving with the new policy framework available for the Premium edition)
  • There is little guidance on managing Flow as part of software deployment

All of the above are true and developers have reason to be wary. However, the same concerns were raised when Dynamics CRM got Workflows and we learned to work with them (although there is still room for improvement in most implementations in regards to refactoring and taking advantage of Workflow properties such as scope.

In this blog I will go through what I have discovered for managing Flows as part of a Dynamics 365 implementation.

What Do I Mean By Software Deployment?

I have also seen this called the ‘Software Development Life Cycle (SDLC)’ but, basically, I am talking about the idea that you do not develop in a production environment but still need a simple way to move a developed solution to production with a minimum of fuss and human intervention.

A simple architecture involves a set of environments with the developed solution progressing through them to production.

image

Method 1 (The Good): Two Environments (Premium Option)

With a Premium Flow plan you get two Flow environments and the ability to export a Flow as a ZIP file for importing elsewhere. While more than two environments would be nice, it is a good start. Let us call our two environments DEV and PROD.

In this scenario, a new Flow is developed in DEV and then exported to a ZIP file via the Export option for the Flow.

image

When we do, we get a number of options for our ZIP package.

image

For the Flow itself, we have the option of having it update an existing Flow (as shown above) or we can make it create a new Flow for us in the target environment. While it looks like there are options for the Connections as well, the only option available to us is to select the Connection on import. We can also add in comments to guide the user during import.

So we can imagine we have our DEV environment with DEV Connections and PROD with PROD Connections. This is good as it means it is unlikely a user will connect, say, a Flow being developed to a production Connection accidentally.

To import, we go to My Flows and the Import button is at the top on the right hand side of the page. When we import the ZIP package we see the following.

image

As can be seen, any comments we added are available and it is now a case of clicking on the blue text for the Connections, linking them up to the Connections in the target environment and we are good to go. We can also create new Connections, if required.

For the Update option, the user can change this to create a new Flow, if they choose to.

Once the Connections have been selected, the Import button becomes blue and you are good to go.

Method 2 (The Bad): One Environment (Non-Premium Option)

Almost certainly by design, Microsoft have made it that if you are serious about managing Flow as part of a software deployment, you will need a Premium account.

image

So, given we cannot export a Flow out of our environment, the option of moving it is not available. Also, we only have the one environment to work in; no more DEV and PROD. Therefore everything has to sit in the one place.

clip_image002

Unfortunately, this is a disaster waiting to happen. We need to manually turn Flows on and off and the Connections to all environments are available for manual selection. It would be very easy to make a mistake in this setup and cause significant problems for production.

Method 3 (The Ugly): Using Flow Management

The last method I tried was my most ambitious. Flow now has a Connector to manage Flows. You can literally create, delete and modify a Flow with a Flow. This holds a lot of potential from a software deployment perspective because it means, for example, we could set up a Flow which deploys our developed Flow from DEV to PROD at the press of a button; deployment nirvana.

As Dynamics 365 CE (the new name for Dynamics CRM) already has a deployment packager (Solution files), I wondered if we could use Flow Management to push a Flow into a Solution and then piggy back on the CRM deployment process.

This proved to be frustrating and ultimately failed but I still hold hope for this technique. Here is what I discovered.

I Could Not Select a Flow from Flow Management

While we can add a text input to a Flow’s manual trigger, there is not yet a way to search and retrieve a Flow by its Display Name. You literally have to specify the Flow’s ID to retrieve it, which is essentially impossible for the user to know.

image

Without this ability to find a Flow based on a property other than its ID, it makes it hard to create a generic deployment tool for Flows and we literally have to create a deployment Flow for every Flow we plan to deploy, hardcoding the Flow ID into the deployment Flow definition.

I Could Not Put the Flow Definition in a Text Field

This appears to be a fundamental bug in flow at the time of writing. While the slug for the Flow’s definition is available and the documentation specifies it is text, if you try and put that definition in a text field as part of your deployment Flow you get an error:

” ‘The template language expression ‘body(‘Get_Flow_as_Admin’)[‘properties’][‘definition’]’ cannot be evaluated because property ‘definition’ doesn’t exist, available properties are ‘apiId, displayName, userType, triggerSchema, state, connectionReferences, createdTime, lastModifiedTime, environment, definitionSummary, creator, provisioningMethod’. Please see https://aka.ms/logicexpressions for usage details.’.”

Translating with the help of CRM development guru George Doubinski, the slug is looking for ‘definition’ but the only thing available which comes close is ‘definitionSummary’. After hacking around in the Flow interface I managed to convince it to ask for the definitionSummary and got back what looked like a definition for the Flow.

I Could Not Put the Flow Definition into the Content Field of a Web Resource

My grand plan was simple. Get the Flow into a Web Resource and then add this Web Resource into a CRM Solution file. Then it moves across, out of DEV, with the other CRM components. Perhaps I was selecting the wrong type of Web Resource but I struggled to get the Flow definition to appear in the Content field. In the end, for the sake of expediency, I pushed it into the Description field of the Web Resource instead.

image

I Could Not Use This Definition to ‘Rehydrate’ My Flow

While it was possible to read the text file into a Flow and set it as a definition of a new Flow via Flow Management, the Flow failed

image

In the end the issues were insurmountable and I have chalked it up to revisit in six months or so when Flow Management, and Flows in general, are a little more mature.

Conclusions

There is still some way to go for a practical solution for non-Premium accounts to manage Flows as part of a software deployment process but we have the start of a process for Premium accounts. By all means see if you can work around the issues I had in using Flow Management to move a Flow into a CRM Web Resource and let me know if you have more success.

Linking IFTTT With Flow

Standard

Often when people talk to me about my blog, it is my old posts on workflows which they remember with the greatest fondness. For example, I created an audit log for v4.0, auto-number solutions, and even a global search tool before it was a thing. Then dialogs came along (deprecated now so do not get too attached) and I showed how to create multi-select option sets, a timesheet entry system, and a text-based adventure game. I think Flow is going to be my new source of non-coding shenanigans.

My first piece of fun is linking Microsoft Flow with IFTTT to update a currency exchange rates in Dynamics 365.

What is IFTTT?

This is a bit of a circular definition because in my first part of introducing Microsoft Flow I likened Flow to IFTTT. Now I am doing the opposite. Essentially, both of them allow you to link different web services together to do interesting things. For example, my Flow introduction had an email create an attachment in the SharePoint document store of a Dynamics 365 Contact record.

The Design

The trick to linking IFTTT and Flow was finding a way for information to pass from one to the other. There are a number of services both attach to but, to keep things simple, I selected email.

Essentially, IFTTT reads the latest US to AUD exchange rate, puts this in an email and sends it to a predefined email address (in this case my Gmail address). Flow monitors my inbox and when it sees an email with the right format, it extracts the exchange rate and updates Dynamics 365.

image

The IFTTT Bit

Setting this up was very, very easy. I logged in to IFTTT with my Gmail email address, set the trigger to be ‘Stocks’, picking the exchange rate trigger option with the action being ‘Gmail’

image

Other than setting parameters, such as the currencies, the only other modification I had to do was to the ‘Ingredients’ (what we call Slugs in Dynamics 365) so that the subject line of the email was precisely formatted.

image

At midnight, IFTTT kicks in and sends an email to Gmail with the subject “FLOW <exchange rate>”. Here is what it looks like.

image

The Flow Bit

I have purposely kept things simple in Flow as I covered some of the finer points in my three-part introduction articles.

image

The trigger is ‘When a new email arrives’.

image

I have limited Flow to only worry about emails from action@ifttt.com and I also have the option of filtering by Subject string if I need it, although I have managed that later on the Flow.

Next I set two variables. The first is “SUBJECT” which is a string and is set to equal the Subject of the email. The second is “RATE” which is a float and will become the new exchange rate.

Then I check a condition. In this case I am simply looking for any email whose Subject begins with ‘FLOW’. It is not hard to see we could have different Flows using different keywords to determine whether they should fire or not.

If the condition fails, nothing happens. If it succeeds, we set the RATE variable to the exchange rate in the email. For anyone who has used Excel formulae, this is not too difficult to master.

The Expression to use is:

float(replace(variables(‘SUBJECT’),’FLOW ‘,’’))

This simply removes the “FLOW “ at the start of the email Subject and converts whatever is left to a value of type float.

Finally, we update the appropriate Currency record in Dynamics 365.

image

There are a couple of things to note here. Firstly, all the mandatory fields in CRM are mandatory here, even though we simply want to update one field. This means we need to type in values for Currency Name, Currency Precision, and Currency Symbol, and the Exchange Rate. Secondly, I have hard-coded the Guid (the Record Identifier) although this could be easily retrieved using the search trick from the third part of my Flow introduction.

The Result

The result is an exchange rate in Dynamics 365 which is updated every 24 hours at midnight.

image

Is Flow the Future of Development?

It is true that because we can do something does not mean we always should. Such is the case with Flow. Just because a citizen developer can develop some very interesting Flows, we still need appropriate governance and management and sometimes this will mean traditional development is the better option.

Taking the above as an example, if we implemented our IFTTT/Flow combo into a production system, we now need to maintain an IFTTT Applet, a Flow, an email address in Gmail and so on. We can imagine that doing this for a dozen such arrangements becomes unwieldy.

Using development, we can centralise the configuration in one text file (or custom entity record) and create a console app to retrieve the exchange rate. As an example, Matthew Foy walks us through how to do it here for an on-premise Dynamics CRM implementation.

Also, as with any developed functionality, security need to be considered. Could someone mess with my Dynamics 365 system by sending an email with a bogus exchange rate in it? Where is my data going and can it be intercepted? Again these issues may be easier to manage in a developed solution.

Conclusions

We have some amazing power in our hands with Flow and even more so when we combine it with IFTTT. The trick for many organisations will be finding the balance between the rapid development of functionality using tools such as the above, and ensuring the result is maintainable and secure. For me, I will continue to work with Flow, coming up with codeless solutions to common Dynamics 365 problems, and continue to blog about them to give people an idea of how far they can be taken.

Understanding Scrum with Dynamics 365

Standard

“Understanding the rules of chess does not make you a Grand Master and
understanding the rules of Scrum does not make you a Scrum Master”

I have been on a project now for a little over 12 months. While I have customers who I have assisted for over a decade, I have never worked full time for so long on the one project. Moreover, unlike many of the projects I have worked on in the past, this one is being delivered using the Scrum framework; it is an Agile project.

There are those that claim while Agile may work for short projects, it is unsustainable for longer projects. Much to my own surprise, this has proven not to be the case. We began with two week Sprints for the first three months and then moved to three week Sprints and have been doing this ever since. We have delivered a lot and the project is being hailed as a success by both KPMG and the client.

I am also about to take my PSM 1 (Professional Scrum Master Level 1) exam so I thought I would give an introduction to Agile (and Scrum specifically) to those who are still unsure what it means. The good news is if you understand Dynamics 365 (CRM) you already have a good mental model for understanding Scrum.

What is Agile?

Agile is a catch-all for delivery frameworks and methodologies which focus on quick iterations to deliver and receive feedback. The alternative is ‘waterfall’ where a lot of design and planning are done up front and delivery is more comprehensive in its first delivery but takes longer to complete, providing less opportunity for feedback along the way.

Of the various Agile approaches, Scrum is one. Scrum focusses on transparency, inspection and adaptation. It reminds me of six sigma in that it promotes the idea of constant evaluation and improvement. To begin our analogy to Dynamics 365 (CRM), Agile is like the collection of all CRM systems in the market and Scrum is just one of them. All of the CRM systems have similar characteristics with differing emphasis, strengths, and weaknesses.

What is Scrum?

Scrum is a very specific Agile framework for delivering complex projects. I am actively avoiding calling it a methodology because it is not that prescriptive. If we consider Dynamics 365 (CRM), it is very rare that a CRM project is delivered with no configuration or customization. Dynamics 365 (CRM) is the framework on which we build a system to manage the processes of a business.

Similarly, Scrum is the framework on which the processes for managing project delivery are built. Just as we add in custom entities to fill in the gaps in CRM, so too we add tools to fill in the gaps in Scrum. For example, concepts such as ‘Epics’, ‘User Stories’, and ‘Tasks’, while commonly thrown around, are not part of Scrum but are one way we can track progress and productivity. We could easily use another approach though and still be within the realms of Scrum.

How Do I Learn More About This Framework?

Like Dynamics 365 (CRM) where you can understand the essentials of the framework by taking a Microsoft Certification, so too you can take an exam to appreciate the essentials of Scrum. This is the exam I am about to take. Also, just as being a CRM consultant is much more than just a piece of paper signed by Satya, so too being an expert at delivering with the Scrum framework is much more than sitting a one hour exam.

The good news for the Scrum-curious, is it is much easier to get across the essentials for Scrum that it is for Dynamics 365 (CRM). If you go to http://www.scrumguides.org/ you can download The Scrum Guide. Read this 17 page document and you know everything you need to get the base level of certification. Moreover, the document has not been updated since July 2016 so none of this six-month cadence nonsense. As a word of warning, the document is not the best written and could be a little more concise but it is easy to read and the information is readily digestible.

Reading the document you will see it sets up a bunch of restrictions, just like CRM sets up restrictions for configuration and customization and, in both cases, it is not immediately obvious why it has been devised the way it has. My advice is to run with it, and see how it goes. Just like CRM, you can always go ‘unsupported’ if you are finding an aspect of Scrum is incompatible with your situation.

Also, scrum.org has an online trial exam (unlike Microsoft certifications) so you can sharpen up your skills before getting certified (yes, it does cost money to sit for the actual exam).

Conclusions

There are a lot of opinions about Agile and Scrum and they are usually expressed by people who have been involved a project where they were told it was being run under a Scrum framework but was little more than ad hoc development with no documentation. If you are interested in Scrum, check out the 17 page document. I am not a glassy-eyed convert yet but it is fair to say my project has run smoothly and delivered consistently over the 12 months and I am hard pressed to recall one of my waterfall projects which can claim the same thing.

Salesforce: Second Quarter Second Wind

Standard

How quickly time flies. Doing my three-part Flow blogs meant my review of the Salesforce second quarter results was delayed. Salesforce is again flirting with profit but at the cost of growth. Let us set sail.

Whispers on the Wind (Salesforce in the News)

Benioff Closing the Gender Pay Gap: A good news story. Benioff has been steadily working to eliminate the gender pay gap at Salesforce. So far he has thrown US$6m at the problem. This is a good thing. Looking at the executive (five women to seven men is not bad) they are doing well compared to many companies although the board (three women to nine men) still needs a bit of work (not that Microsoft’s board is any better). See if you can spot Marc in the line up. Hint: he is the one who cannot look at a camera.

image

Salesforce vs Dynamics 365: Not a bad summary of the differences

Salesforce Culture is About Control: This is an article about a couple of Salesforce speakers who spoke out of school at a conference and got fired for it. This is one of the big differences between the Microsoft and Salesforce cultures.

As an MVP, for example, I can say pretty much whatever I like about Microsoft and Dynamics 365. I can talk at whatever conference I like and Microsoft has no say in the matter. If I was asked to go on stage at Dreamforce and talk about the ten biggest things that suck about Dynamics 365, as long as I do not break NDA, Microsoft would not stop me. I never ask permission from Microsoft about what community activities to engage in, ever, and neither does any other Microsoft MVP.

In contrast, Salesforce MVPs need to get permission from Salesforce for their speaking engagements. If Salesforce do not like the idea of one of their MVPs speaking at a specific event or engaging in a specific interview, that MVP can either go along with Salesforce or risk losing their status.

In other words, Microsoft MVPs are community advocates whereas Salesforce MVPs advocate in the community.

The Prevailing Winds of the Stock Price

image

Clearly the market was favorable towards Salesforce over this quarter taking the stock from around 90 to just over 95 (stock currently at 93). As we will see, Salesforce edged into profitability this quarter which may explain the rise but, usually, it is growth that gets the market excited, not boring sustainability.

Where the Wind Blows (Numbers of Note)

Salesforce Turns a Profit

image

Salesforce has edged into the black this quarter with a margin of 0.7% ($17m in profit). As can be seen, the graph is erratic and not under control but it is heading in the right direction. Let us see if the other numbers of note can explain how they got there.

Stable Revenue Growth

image

Annual revenue growth has been remarkably constant, at around 26%, over the last two years. In contrast, cost growth has danced around over the same period and has gone from being at a historic high last quarter to being on par with revenue growth.

This is certainly key to profitability. You cannot become more profitable unless your revenues grow faster than your costs. Reining in the costs can only be a good thing. Where cost growth will go from here is anyone’s guess but one hopes it continues to go down.

Staff Growth

image

Staff growth, while still growing, is the slowest is has been for two years. This could be part of the explanation for the profitability. If Salesforce can get the same workforce to do more work, they increase productivity without increasing salaries. The motto at Salesforce used to be “every month is end of quarter”. Maybe it is now “every week is end of quarter”.

Transactions are Declining

image

I have mentioned before that I do not understand the server transaction numbers when compared to the revenue growth of the company. One would expect that revenue is a function of subscribers and server transactions would also be a function of subscribers but while annual revenue growth is constant at around 26%, the number of server transactions is actually shrinking.

At the time of writing (30 September) the largest daily transaction, according to Salesforce, is 5.7b transactions on 28 September. In comparison, when I wrote the last article, three months ago, the largest was 5.8b. Somehow, in three months, revenues have gone up but transactions have gone down. I can only think that the Salesforce services in high demand take less computing power than the less desired ones. It is strange, though.

Three Sheets to the Wind (GAAP vs Non-GAAP)

Image result for four hurricane cocktails

GAAP did get mentioned twice but NON-GAAP (the watered cocktail of the accounting world) got mentioned six times so we have four hurricane glasses this quarter (image courtesy of http://www.wowcher.co.uk).

I continue to predict that if profitability continues GAAP mentions will increase.

Lots of Hot Air (Buzzword Bingo)

2017 Q2

2017 Q3

2017 Q4

2018 Q1

2018 Q2

Number of words

2511

2505

3317

3278

3000

Customers/Customer

17

20

26

28

25

Revenue

19

18

31

28

21

Cloud

16

12

14

22

16

Growth

9

10

15

16

19

Operating

6

3

18

11

7

Salesforce/Salesforces

20

18

40

26

Nothing has changed on the buzzword bingo front. It is the same keywords which have got ten or more mentions over four quarters. We can see an increasing emphasis on growth (despite revenue growth being flat) and no focus on profits (of course).

Which Way the Wind Blows (Future Prediction)

Last report I predicted revenues of $2.5b (we got $2.56b so all good there) and breakeven which is also close to the 0.7% margin achieved so I am quite pleased with myself.

For next quarter, I predict another profitable quarter (maybe $30-40m) on revenues of just over $2.7b.

Conclusions

Nothing too exciting to report other than Salesforce achieving the unicorn of a legitimate profit. It will be interesting to see if profitability increases and, if so, what happens to growth. So far Salesforce has managed to keep revenue growth constant but profitability will put pressure on this as marketing and sales dollars are restricted.

Also, what of that weird transactions result? Next quarter will reveal whether this was an outlier result or a continuing trend. If transactions continue to decline, what does this mean for Salesforce and their future prospects?