The April Dynamics 365 release is coming! Make sure you are prepared

The world hates change, yet it is the only thing that has brought progress. -Charles Kettering

Microsoft Dynamics 365 and the Power Platform h ave two major releases a year in April and October and it’s your responsibility to be ready and to make sure your solutions are compatible.

Why should I care?

Since Microsoft moved the one version, Microsoft updates your production instance in April and you cannot stop it. You need to make sure your solutions works with the new version of Dynamics 365.

The responsibility for testing the new release doesn’t break your solutions is the owner of the instance/Dynamics 365 environment. If in April your production instance is upgraded and it breaks your solution, the blame is all yours.

I wrote about the new release schedule — The new Microsoft Dynamics 365 release schedule is coming.

It’s easy to forget about the release and don’t test it or leave it too late to test. Discuss with your team and the client that a new release is coming and decide the level of acceptable tests.

A key concept to understand is this is a release wave and not just a new version of Dynamics 365. It’s a wave because multiple services are being updated.

  • Dynamics 365
  • Dynamics 365 Sales
  • Dynamics 365 Customer Service
  • Dynamics 365 Field Service
  • Dynamics 365 Marketing
  • Dynamics 365 Operations, Finance, Commerce, and HR applications
  • Power Platform
  • Power Automate
  • Power Apps
  • Power BI

The updates will come in April, but then further releases will happen between April and September.

What’s happening when?

It’s already happening, so catch up. First check the Dynamics 365 release schedule and early access

This shows the key dates

Jan 27, 2020 — Release plans available

Feb 3, 2020 — Early access available

April 1, 2020 — Production deployment for the 2020 release wave 1 begins

Monday 27th, Microsoft released plans on what new functionality will be available in the new wave of releases.

You can read the highlights of the new features coming

Dynamics 365: 2020 release wave 1 plan

Power Platform: 2020 release wave 1 plan

These post has mention a few interesting new features

Top ten features by Joe Gill

2020 Release Wave 1 — random picks

The two features which looked interesting is Power App Portals can call the CDS Web API directly. This will enable Power App Portals to be more powerful and overcomes one of the major frustrations.

Canvas App can create a PDF from the UI, a useful way of a quick report of the form.

On Monday the 3rd February you can enable the new release on a sandbox instance and start playing with the new features and testing your solution.

If you have questions about the new release, read the FAQ section

Enable the new features in a sandbox instance and test your solutions. You will need to do this for both release waves each year (April and October) so invest in some automated tests to speed up the process of testing your solution.

You can enable the new release in your development and test environments and test by using them. You cannot avoid the update so the sooner you get used to it and sooner you find problems, the sooner you can fix them.

Anything else I should know?

Jukkan Niiranen discusses how Microsoft will enforce licensing, he noticed a new solution called Licence Enforcement has appeared. One of the key drivers for this will be the enforcement of team licences, which Microsoft realised could be used by many users and would cost them money.

A change in pricing is coming to the Power App Portals (which was Dynamic Portals) Understanding Power Apps Portals pricing and how it differs from Dynamics Portals

Know what is being depreciated because when the new release is installed some old functionality might stop working. It’s important you stop using depreciated functionality and get into good habits now.

Important changes (deprecations) coming in Power Apps, Power Automate, and model-driven apps in Dynamics 365

When using the solution checker I found code in our solution which we had to replace. Get in good habits now and stop using functionality which will be depreciated.

Learn more about solution checker with this article — What the solution checker does and why you should use it

Do I really need to test my solutions?

Do you need to test the new release wave, if it’s focused on new features and you don’t plan to enable those new features.

When code/customisations change, they can break functionality, e.g. you create a bug by fixing a bug (or adding new functionality in this case). When ever code is changed, things can break.

Microsoft might change the way functionality works, change the way it works and these could affect your solution. I have experienced bugs with the minor patches, so things could break with a major release.

It’s better to test and find problems in a sandbox environment than finding problems in production. Production problems send people into a panic and need to be fixed quickly.

Save yourself the stress of a production problem and check the new release wave in a sandbox before April.

Understanding Power Apps Portals pricing and how it differs from Dynamics Portals

“You know you’re priced right when your customers complain—but buy anyway.”

John Harrison

Dynamics portals are changing name to Power Apps portals and the pricing is changing which could cause a significant rise for some portal users.  This Dynamics portals are changed their name to Power Apps Portals, and the pricing is changing, which could cause a significant rise for some portal users. This post helps readers understand the price changes. It’s important to discuss with current customers the coming increase in costs so they have time to act before it’s implement. The new pricing comes into effect on the 1st October 2020 for existing Portal customers.

The Power App Portal price increase was announced in Inspire 2019 and active for new portals from October 2019, read Microsoft Pricing FAQ portal section for more details from Microsoft

The Power Apps Portals pricing is used for new portal customers but for existing customers need to assess how the pricing change will affect their monthly costs.

The goal of this blog is to understand the new Portal pricing and how it will affect existing customers.

What are Dynamic Portals?

Power App Portals is the new name for Dynamics portal.  A portal is a way to extend your Dynamics environment or Power Platform environment with people outside your organisation (e.g. not Dynamics or Power Apps users).  The portal functionality is built on the old ADX studio portal functionality (brought by Microsoft and renamed Dynamics portals).  

Portals are hosted in a separate Web Server and linked to your Dynamics instance/Common Data service instance, the allows you to have a portal where your customers can raise cases which get added into Dynamics and then worked on but without your customers need full Dynamics licences.

Dynamics portals are a way to create a portal which integrates with Dynamics 365 with Dynamics developer’s only need to learn liquid templates (a mixture of Dynamics and HTML).  You need not worry about hosting the Web Server or capacity of the portal.
These posts describe Dynamics portals

This post describes the new Power App Portals

Power Portals is expanding beyond Dynamics 365 and enabling the Power Platform and the data source is Common Data Service (CDS).  The future is built around smaller solutions and based on data in CDS and the Power Portals is another step towards building an infrastructure to support this and move away from Dynamics based.

What is the current pricing

You used to get a portal with no additional cost when Dynamics 365 customers had 10 or more Enterprise licences

Additional Portals could be purchased at £377 per month.

New pricing

I say new pricing but it’s only new for existing customers
Microsoft is moving to Azure like consumption-based model and you no longer need to purchase a portal.  Like the change in not changing for instances and moving to data model. 

Portals don’t need you to purchase a portal, but they will charge you for number of logins and views.Here are the details of the new licencing from Power App licencing FAQ page

User typeModelSKU namesUnit capacityPrice/monthChannelComments
External user (authenticated)Per loginPower Apps portals login capacity add-on100 logins$200AllA login provides the authenticated user with access to a single portal for up to 24 hours
Power Apps portals login capacity add-on Tier 21000 logins$1000All
Power Apps portals login capacity add-on Tier 25000 logins$3500CSP only
External user (anonymous)Per page viewPower Apps portals page view capacity add-on100,000 page views$100All
Internal userVia licenseDynamics 365 (various)n/an/an/aCustom portal use rights are aligned with custom app use rights
Power Apps per app plan
Power Apps per user plan

Microsoft distinguishes between external user (authenticated) and External user (unauthenticated).  My understanding is customers who authenticate using a B2C AD authentication will login.

External users who don’t authenticate will view the page and the users who authenticate will be counted as a login.  

The difference here is if you have a FAQ or documentation on a portal for people to view are external unauthenticated.  Users who login and raise a case are authenticated.

Views are cheap $100 for 100000 views, whereas logins are more costly. 

A login is counted every 24 hours, so a user can login multiple times in 24 hours and it will count as one billable login, Microsoft cheerily says we should look at it as a day pass :-). 

A user can also access multiple portals for no extra cost if it links them to the same Dynamics or CDS instance.
Microsoft explains the differences on the licencing FAQ page Power App licencing FAQ page

What is the difference between Power Apps Portals and Dynamics 365 Portals in terms of licensing?**

ParameterDynamics 365 PortalsNew Power Apps Portals
Provisioning a portal environmentPurchase Dynamics 365 Additional Portal SKU at $500 per monthProvision a portal—no need to purchase portal addons to provision a portal
Qualifying base offersDynamics 365 licenses onlyCustomers can add on portal external login or page view capacity to Dynamics 365, Power Apps and Power Automate licenses
Internal use rightsDynamics 365 enterprise licenses, Dynamics 365 team member license.Internal users can now access portals with a Power Apps per-app/per-user license. For a Dynamics license it is same as custom Power Apps use rights.
MonetizationPer portal environment Per page viewPer log in Per page view
Entitlement for Dynamics 365 customers1 portal environment for the first 10 full Dynamics 365 USLsNot applicable―Power Apps Portals environments can be provisioned

Understanding costs

The good news is like Dynamics environments, we no longer pay for creating environments.  This makes it easier to deliver enterprise projects and create separate environments for dev, testing, QA, training, UAT, pre-production and production. 

Life Dynamics environments you aren’t charged for instances but charge for the data you use.  The benefit of this is it allow you to create other environments for development and testing, particularly useful with Microsoft have two major releases (April and October) which you must take.  This means you must test your customisations with the new release before your production instance is upgraded.

Portals no longer require you to purchase portal environments, but you will pay for logins and views.  This will make non-production environments cheaper because they will have low volume, it raises the question what happens when you want to load test a portal environment!

The portals look a good deal for low usage customers because the removal of a portal provision fee. The pricing that we know of at the moment is this

  • 100 logins at $200 = $2 per login
  • 1000 logins at $1000 = $1 per login
  • 5000 logins at $3500 = $0.70 per login

UK prices

  • 100 logins at £153 = £1.53 per login
  • 1000 logins at £765 = £0.75 per login
  • 5000 logins at £2677 = £0.53 per login

For over 5000 logins or more per month, speak to Microsoft because I think you would get some extra discount based on size.

You can see small users who get 200 logins per month will find it the same or cheaper but once you move above 300, then the new portal pricing will be more expensive (depending on how many portal environments you have)

if we use the 5000 logins to estimate the price of a heavier portal use we get

  • 10000 logins = £5354
  • 20000 logins = £10708

Customers with busy portals will face a bigger monthly, although I would suspect they could get a better deal by negotiating with Microsoft.

Why have Microsoft changed the pricing?

Since Microsoft moved Dynamics 365 to Azure they know the cost of supplying services and can price accordingly.  The previous model was great for customers who had high portals traffic because they paid a flat fee.

Portals is a powerful and popular functionality, with the previous low cost licencing it was attractive to most customers.  The competitive portal pricing would have helped Dynamics or the Power Platform win projects.
The popularity of portals has grown steadily, this article published on July 2019, it highlighted the growth in portals

  • 13,000 monthly active portals, up 33 percent in the last six months
  • 8.03 million monthly active users in the last month, up 180 percent in the last six months
  • 200 million page views per month – excluding bot traffic – which is 106 percent growth
  • 52 million monthly transactions, up 110 percent–this includes all CDS operations as well as log in and log out

I would expect these numbers to have continued to grow at the rate above.  Take into account increased portals would result from increased Dynamics 365 and Power Platform licencing.

The change to a consumption model is an increase in costs for heavy users, but you will only pay more if you have more portal users, so Microsoft will say it’s fair.

No one complains with Azure consumption based pricing because it’s a fair price, the portals pricing seems expensive compared to the previous price and this is the main complaint with the new pricing.

 Is the pricing fair?

Is this price increase fair?  If you have more portal users, you pay more and fewer portals uses will cost less. It’s cheaper than its competitors but it could be a significant increase for heavy users.  

Microsoft is in a difficult position, their initial portal pricing seems discounted to win users and now this big increase seems unfair, particularly to existing customers where their portal costs can jump significantly.  It would have been a smoother increase if Microsoft ramped their pricing increase over a 2 or 3 years.

To understand the pricing lets consider what you get for your money.
A portal framework to create a portal linked with Common Data Service or Microsoft Dynamics 365.   A portal service, with a hosted website where Microsoft deal with scaling, capacity, disaster recovery.

If you consider the cost to create and host your own website.  Additional development costs to integrate the website with Dynamics 365 or Power Platform, then the cost per login doesn’t seem overpriced.

Comparing the price of Salesforce portals, you can see (I think) they charge $2 per login and Microsoft are charging half that price.  I admit I know little about Salesforce portals and don’t know how the functionality compares, I just wanted to get a rough price.


Microsoft is moving to consumption based pricing.  Why this pricing increase has caused complaints is, it’s potentially an increase for existing portal users.  The goal of this post is to understand the pricing increase and encourage Dynamics professionals/partners to discuss the increase with their existing customers and help prepare and plan the increase.

The potential increase in portal pricing will anger customers who chose Dynamics 365 because of the cheap portal functionality.  Many businesses will have built a portal to be a key part of their business, the increase in portals might ruin their business model and these customers can feel aggrieved because they have invested a lot of money in Dynamics 365.

Looking at competitors prices or alternates to Power Portals then it feels Power Portals is still the best value for money.  There is the possibility that this could cause a better priced competitor to rise but I’m not sure they could do this and charge lower than Microsoft. 

There is a possibility people can take the portal source code.
A version Microsoft Dynamics 365 Portals Source Code Available for On-Premise Customers read this for more details.

you can download here

There is an open source portal project – xRM-Portals-Community-Edition

A good alternative would be an open source portal with similar functionality to Power Portals but this would need a community contribution.

The other painful part of the new portal pricing is the now customers have estimate and purchase the number of logins at the start of each month.  The logins do not roll over to the next month.  This will lead to customer buying more logins than they need and losing those extra logins.  It will involve wasted time estimating and purchasing views each month.  It’s extra hassle with no benefit.

What the solution checker does and why you should use it

lake and trees

Quality is never an accident. It is always the result of intelligent effort. John Ruskin

The solution checker is a free tool to help developers verify their code doesn’t contain many bad practices and code smells.  I recommend developers incorporate into your development life cycle to help you keep your code quality high.  This post will explain what is, why use it and some common errors.

How does the solution checker work?

You can find out what the solution checker is and instructions on how to run in the post Use solution checker to validate your model-driven apps in Power Apps
The solution checker runs static analysis on your
  • Plugins – C#
  • Custom Workflows – C#
  • Web resources – JavaScript and HTML

The static analysis will find common problems in your code and suggest you fix them.  This is like code analysers such as FX Cop, Resharper or Code analysis rule set reference.

I like static analysis because it was a code review on my code before I submitted it for a review.  You can set the rules to automatically run and it helps you create higher quality code.

The other benefit was it would highlight problems and suggest best practices that I hadn’t heard of, I would read up about the rule and suggestion to see if I wanted to use it.

You can run the solution checker on a solution and it will check all your code, identify issues and give documents on how to solve it.

How do you use it?

You need to enable the solution checker and then you can trigger it manually in the Power Apps maker portal.  Go to solutions, select the solution and then you can right click or click the run solution checker button on the top.

The solution checker could take a few minutes to run, depending on how big your solution is.

You kick off the solution checker and then it creates a report that you can either view online or download as an Excel file.

Go through the warnings and fix the problems.

There is a PowerShell module which would allow you to automatically run the solution checker in your DevOps build, this enables you to make sure your code is clean.  Read Get started using the Microsoft  Power App checker PowerShell

There is another way to use it my using the XRM Toolbox plugin by Jonas Rapp, you can find more information and full tutorial – Power Apps Checker for XrmToolBox. It has the bonus of applying different rule sets

Why would you use it?

You should have the mindset of all code and customisation don’t work until they are proven to work, until you have tested them.  Assume the quality of your code is low until you prove it to be high by testing it with static analysis and/or a code review.

The best moment to sovle a bug is when you are writing the code and testing it yourself.  At this moment you know the most about the solution and will be able to fix it quickly and make changes before other code is dependent on it.

When writing code it’s better to spend more time doing it right and less time fixing it later #HoskCodeWisdom

The initial goal of an IT project is to turn the requirements into customisations and a solution the business can use to do their job.  This is the short-term goal, the long-term goal is to create a solution easy to maintain and the most effective way to do that is to create high quality, well-structured customisations.

The creation of a customisation is a quick part, the maintenance and extension of a customisation last for years.  If you don’t create quality code, the customisations become complex and maintaining, extending and debugging will take longer.

The solution checker helps you find your bad code and suggest how to fix it.  A good tool to improve the quality of your coding and raise the standard of your code.

Microsoft offer free code reviews for projects which quality for Fast Track assistance (250 seat plus), it’s a good idea to run the solution checker to proactively fix the warning that would appear when Microsoft do a code review.

The solution checker doesn’t run the same rules as a Microsoft code review, but the solution checker is a minimum check and a subset.  More information about FastTrack for CE projects can be found – FastTrack customer success service and with big projects it will be there, so you should learn to align with it.

Some common warnings and explanations

The section below will cover some common warnings I have found with the solution checker.  I will explain what they mean and what you should do to fix those problems.  The solution checker gives some text and links but sometimes these are not obvious and take some interpretation.

Event registration not enabled

An event registration entry was detected on the form form name on the entity account for the event Form.onload that is disabled. Consider enabling or removing the function name

This error occurs because you have an event on OnLoad or OnSave that is disabled.  You should delete the event because it’s not running.  It’s bad practice to leave customisations disabled or inactive because they confuse people and can easily be enabled accidently or on purpose.  A disabled or deactivated customisation can be enabled and then you have a new bug which is very difficult to identify.

Use strict equality operators

For most comparisons the strict equality comparison algorithm is the right choice as it will return the expected results. The strict operators handle null and undefined values as expected.

This error means we should not use == but use the strict ===

The reason is JavaScript lets you compare different variable types but this can have unexpected results, so by using the strict ===  it compares the same type and won’t have unexpected results

this gets a warning

entity.field == “Line1”

this is good

entity.field === “Line1”

Learn more here

Use strict mode when possible

Strict mode is a way to introduce better error-checking into your code. Code should run in strict mode wherever possible. This is a JavaScript warning.

Add use strict to the JavaScript file, this link explains it more detail

According to this article it Strict mode helps :

  • It catches some common coding bloopers, throwing exceptions.
  • It prevents, or throws errors, when relatively “unsafe” actions are taken (such as gaining access to the global object).
  • It disables features that are confusing or poorly thought out.

Should you use single or double quotes e.g.

‘use strict’;


“use strict”;

In JavaScript, it doesn’t matter if you use single or double quotes, here for more details

To invoke use strict for the whole file, place it before any other JavaScript statements.  It’s possible to apply use strict for specific functions.

Read more – web-use-strict-mode

Do not ship debug helper code in production source

Remove debugger and console statements and it’s lazy and don’t do it, they are found in JavaScript files

Remove these

  • debugger
  • console.error(“Error: “ + message)
  • console.log(“field updated”)

‘Xrm.Page’ references or accesses a deprecated API in the client context object model. Replace this call with the following client context API: ‘ExecutionContext.getFormContext’

Xrm.Page is depreciated and will not work in October 2020 release, DO NOT WRITE THIS CODE, get into the habit now.  There is no excuse because it’s been well publicised and there are lots of examples of using the new syntax.


This highlights a depreciated Xrm call.  Xrm.Utility.alertDialog(this.statusText)’ uses a deprecated API in the client object model.  You should Replace this call with the following client object model API: ‘Xrm.Navigation.openAlertDialog’

Replace Xrm.Utility.alertDialog with Xrm.Navigation.openAlertDialog


This warning will be thrown for Plug-in or workflow activites and its about selecting all columns not specifict columns

Avoid selecting all columns via Common Data Service query APIs.


new Microsoft.Xrm.Sdk.Query.ColumnSet(1)

Evaluate the use of AllColumns in ColumnSet constructor call with ‘true’ argument.

Don’t select all columns in your queries, select only the fields you need.  It will make your code faster and easier to understand.

Async JavaScript

var requestXhr = new XMLHttpRequest(); // Explicitly setting the async parameter to false or supplying a variable with a value of false will force this as a synchronous‘GET’, ‘/test/test.txt’, false);“GET”, globalContext.getClientUrl() + “/api/data/v9.1/opportunities?$select=status&$filter=opportunityid eq” + “ “ + OpportunityID, false)

Read an explanation of this error Interact with HTTP and HTTPS resources asynchronously

You can have a query which does an OData query to retrieve data from another entity but best practice is to set this as Async, the warning comes when you this query is synchronous and slows the form load.

Create quality

The solution checker is minimum standards you should aim for, you should be aiming higher.  The bigger the project the more important it is to keep the quality high.  Enterprise projects create a lot of customisations and code, so you want to put in steps to ensure what is created is quality, otherwise you will have a huge mess on your hands quickly. There are lots of problems on an enterprise project and reducing your problems by having quality code will help you focus on them.

Other suggestions

Embrace DevOps and automate your builds and releases.  This speeds up the feedback loop, reduces manual mistakes and takes the boredom out of development.

Unit test your code will shorten the feedback loop, help the developers write better code and have reusable tests you can run to see has broken the build.  It helps find bugs now and when you change the code.

Create standards and best practices and make people stick to these.  The best way is to run static code analysers and have code reviews.  Code reviews are a great motivator for people to write higher quality code (because they know their code will be reviewed) and a good way to teach developers to write good code by having someone explain changes.

Use TypeScript instead of JavaScript.  I like TypeScript because it’s strongly typed and more like C# and this means you create better quality and more standard code.  JavaScript is a powerful scripting language but it makes it easy to write poor quality code which is hard to maintain.

Make quality and not speed your priority.  Taking shortcuts and doing things fast doesn’t save you time in the long term, all it does it kick the problems down the road and they hit you later when time is more limited and the long-term effects of poor code is to slow down the project and increase the difficulty of maintaining the code.  In the same way you don’t want a builder to take short cuts building your house, you don’t want developers to take shortcuts creating code and customisations on a project.

Start today to create better quality customisations and be a great software engineer because no one ever got into trouble for creating high quality code.

What I learnt in my last role

Acknowledging your mistakes, allows you to learn from them #HoskWisdom

After 3 and half great years in my last role I have moved for a new challenge and I’m excited about joining PowerObjects.  I met some great people and leave better person with more experience than when I joined.

Looking back over the last 3 and half years, it’s been a great journey and team effort.  The key to it was hiring talented people with potential and let them do their jobs (e.g. don’t micromanage them).  The culture of the team is important because you want the team to collaborate and share information, experiences, mistakes and solutions.

When I joined there were a handful of people in the Dynamics team and when I left there are 10 times that amount.  Few people knew there was Dynamics team and now the team has a blog and social media presence.  It is one of the biggest Dynamics team I worked on until I started at PowerObjects 🙂

Below are some highlights I contributed to, as most things in life it was a team effort that made everything work.


Enterprise projects means needs software engineers not developers because there is more to development than just writing code.  Having lots of developers working on a single Dynamics project is tricky, you need high standards and create quality customisations because you create lots.

With Enterprise projects the focus is doing things right, not doing things quickly.  DevOps shortens the feedback loop, allowing the team to find problems quickly with small code set.

DevOps automates boring tasks (reducing errors), automate quality checks and best practices.  The result is better collaboration on the project, higher quality and finding problems quickly.

I didn’t contribute to DevOps because I was a Scrum master/Solution architect and not directly creating customisations.  I helped with discussions, encouragement, making sure the software engineers understood it and used it.

Most of the DevOps changes were 2 years ago, DevOps didn’t seem as standard as it is today

The team could monitor Microsoft adding changes in the xml files, we noticed this because it sometimes broke the build, read more here Problems with Microsoft Dynamics 365 patches

DevOps is becoming more common in Dynamics projects, Microsoft created the solution checker and the PowerApps BuildTools.

It’s good to see Dynamics developers using the best practices from software engineering and increasing the quality of our processes and solutions.


The strength of a team is the people and the culture they work in.  I learnt not to lower my standards in hiring because a poor hire can be disruptive and slow the productivity of your good team members.

Only hire strong candidates, if you are not sure, don’t.

I did lots of interviews and it helped me improve and know what I’m looking for, below are numbers of phone/face-to-face interviews

  • 35 Interviews 2019
  • 28 interviews in 2018
  • 47 interviews in 2017
  • 27 interviews in 2016

I helped create digital interviews for 3 different roles and watched at least 60 digital interviews.  I attended 4 assessment days helping assess graduates/DA’s.

Recruitment was a priority for me because the key to building a good team is getting people with good character and right attitude.  This makes it easier for leadership to create the right culture.

Consultancy and delivering large projects is all about people.  When you have a team of capable people with the right attitude, you feel you can do what’s needed to make it successful. The goal is to have multiple people contributing to the team and many leaders.

The things I looked for in candidates
  • Passion – Be passionate in Dynamics, Power Platform and creating solutions, otherwise you will be average
  • Team player – IT Projects are a team sport and you must work well in a team
  • Drive – People who want to improve and progress
  • Curious – Curious learn how things work results in deeper knowledge and enables the creation of flexible solutions to changing requirements
  • Potential – Hire for what they will become, not just what they are now

Technical knowledge is a prerequisite, it’s stops someone from being hired but its not a reason to hire.  A talented person can learn technical skills but someone with good technical knowledge will find it very difficult to change their character.

An example is I would hire a good Cloud native/C# developer and teach them Dynamics if they had many of the traits above.

People with good character and mindset take responsibility and get the work done, they help the team and improve others.  These people deliver projects and make the team stronger by creating best practices, accelerators.


I onboarded most the people who joined the Dynamics team; I felt it was important for people to start a new role well, give them the information they need and set expectations.

I improved the process but onboarding is about people, welcoming and introducing to them to as many of the new team as possible.  This is a challenge with distributed teams because people are on site and not available to meet people.

Team spirit and sharing knowledge

Teams should work as a hive mind with collective knowledge.  Dynamics, Power Platform and Azure is too big for any one person to understand all parts of it.  You want the team to learn from individual mistakes, solutions/limitations and successes.  Avoid everyone making the same mistakes individually on each project.

When you learn as a team and everybody learns faster.

Theoretical knowledge is useful but unproven, practical knowledge is invaluable because it’s tried and tested.  Learning when and when not to use a customisation or solution can save you weeks of effort/expense/time.

If everyone shares experiences, then the team can learn as whole without each individual needing to make mistakes.

I arranged a Monthly meeting where we shared solutions, showed new functionality, updated the team on projects, bids, certifications, blogs etc.  This was successful because everyone took their turn to present. If we all do a little, then no one individual needs to do a lot.

The challenge of distributed teams is project teams not feeling part of a bigger team.  It’s important to remind everyone they are part of a larger team.  It’s expensive to meet in person but a worthwhile investment.

It’s hard to work as a team and help each other if you have never seen each other.  Delivering IT projects are a team game and the better the relationships between people the more effective they will be.

The better you know other team members, the more fun you have at work.

Team profile

I raised the profile of the team, help the Dynamics community by sharing the approaches, best practices, problems solved, technical solutions and experiences of the team.  This encourages people to join if they see what we are doing and how we we do it.

I created the Medium publication and hassled people to contribute posts.  The start was mostly me writing posts and persuading others to help.  In the first 8 months we write 30 posts and momentum starting to grow.

The blog now has over 100 posts and 370+ followers, with many people contributing.

Other ways I helped promote the team
  • Attended Extreme 365 Europe for the last 3 years
  • I presented at CRMUG in Birmingham
  • I attended a Power Platform Hackathon this year

I raise the team profile using social media to share blog posts, job roles, celebrating new joiners, certifications and other achievements of the team.  The team is no longer a secret.


My goal was to create an atmosphere and culture where everyone is trying to improve the team, other people and themselves.

I encouraged individuals to share their knowledge.  When you explain something via a blog or presentation, it forces you to understand it, then you can describe how it works and the key points (not all the points).

One of my favourite sentences was – “That would make a great blog post”.

I improved over the last three years.  My experience in delivering large projects and leadership isn’t something you can prepare for, jump in the water and learn to swim.

Reading, doing and reflecting were the keys to improving.  I tried to work harder but you reach a limit where you can’t work any harder because there are only 24 hours in a day.  I had to learn to work smarter, delegate more and think how I could motivate others to contribute.

When leading a team you must have priorities and a plan, you want to act strategically or you can react to situations and not progressing.


I am a big believer in Dynamics professionals getting certified because it expands their knowledge of the out of the box functionality.  If you specialise in delivering Dynamics projects, then you should be an expert in Dynamics 365 and the out of the box functionality.

You need to know the out of the box functionality is so you can align the requirements to fit out of the box functionality.

Read more here – What are the benefits of CRM certifications


I have had a lot of fun over the last 3 years and worked with some great people and hired people who will progress well in the careers.

Delivering large IT projects is a tough and challenging.  It’s important to inject fun into the proceedings and create a good team spirit.  Happy workers work harder and have more fun.  Enjoyment at work comes from interacting with people, laughing and creating solutions that help people.

I have had lots of enjoyable meals and nights down the pub with the team, this improved relationships and made work enjoyable.

It’s the role of the senior people on the project to make sure you create the moments where the team can be together without thinking about work.

Based on my leaving present in the picture, maybe I didn’t do a good as job as I thought 🙂

Let go of thoughts, emotions and actions that weigh you down

If you keep picking up work, anger and emotions they will weigh you down and slow you down. The term letting go helps you visualise how your actions, thoughts and emotions can follow you around if you don’t let things go.

Let go of work

Leave your work at work, don’t bring it home with you.

The longer you hold on to problems, questions, tasks, tension, deadlines from work, the heavier they become. Burnout is emotional, mental and physical exhaustion caused by excessive stress, work can be common cause. Work won’t stop coming and takes as much time as you give, you can control this by not bring work home with you.

Many jobs are creative and involve collaborating with people, these activities need energy, ideas and interaction with people to build solutions together. Turning requirements into solutions involves questioning to understand whats required, different situations, limitations and the goals of the business. Creative work isn’t a repetitive task that you can do mindlessly, the longer you work the lower the quality of your creativity. Creativity needs bursts of energy, ideas and trying and failing.

Holding onto work is like picking up a small weight, it isn’t tiring in the short term but the longer you hold onto it the heavier it gets, until the weight becomes unbearable. This is recipe for burnout, you keep holding onto work, day after day and you end up never being able to escape.

Don’t let work follow you home, do this is to do something enjoyable with family, friends or a hobby. Break from work by doing something enjoyable you are more interested in and you will naturally forget about work.

Switching off allows you to step back from work, helping you recharge and refresh mentally, emotionally and physically. When you come back to work you can view work from a different perspective and your brain has time to subconsciously think about your problems.

I worked on a busy project and took home with me and did work in the evening. The thing I noticed was there was always more work to do and often doing the work didn’t contribute much. I was super busy and some other people on the project weren’t. I learnt to embrace the saying “if you can delegate, you should delegate”. Not only did this mean less amount of work, allowing me to focus on more valuable work but it gave other people the opportunity to learn new skills and contribute.

Let go of anger

We get slapped in the face by life regularly but don’t hold on to anger, let it go and drop it. Anger creates more anger. Anger bypasses thinking and move to reaction, when you let anger control your actions it’s can lead to doing something you regret later.

  • Angry reactions from you, create anger in others, such as
  • When you shout at someone, people shout back
  • When you hit someone, they hit back

To stop anger growing, label the emotion, ask why someone would act in that way and see the situation from their point of view. Anger is a reaction, to break out of the cycle you need to pause and don’t waste your time and energy getting angry because it isn’t productive.

When dealing with an angry person or a bully, you can use this loss of control to your advantage as discussed here Anger in others is an opportunity not something to be feared.

I have been in many situations where anger in conversations has moved the focus from solving a problem to arguing their point, in the end we never got around to the problem and needed further meetings.

Another example of anger was I used to attend a daily meeting where the organiser would aggressively bully people on the call, some people responded angrily and the call would unproductive and go on longer (not to mention uncomfortable for those attending).

The attendees didn’t waste time getting angry and got through the meeting as quickly and quietly as possible. The organisers angry approach reduced the effectiveness of the meeting and people with holding information and reducing collaboration.

Let go of the past and the future

Spending time in the past or the future comes at the expensive of the present. Not being focused on the present reduces your ability to notice body language, what isn’t being said and the details of whats happening. If you do multiple tasks at once, you end up doing many things badly instead of one thing well.

We can pick up negative comments or actions from people and carry them round with us and like the other things we pick up, they weigh us down and influence future actions.

Chuck Noll an NFL coach who won the Superbowl 4 times gave this example to his team from the this article

“Let me tell you a story about two monks who are on a journey. Some time during their journey they stop at a clearing, and in the clearing is a stream, and they stop at the stream. On the one side of the stream is a fair maiden trying to cross. And the first monk, without any hesitation, crosses that stream, picks up the fair maiden and carries her across and sets her down. 

The two monks carry on in silence. Sometime later on their journey they stop at another clearing. The second monk says to the first, ‘You picked up that maiden. Do you know it’s against our beliefs and our religion to come in contact and touch a person of the opposite sex?’ The first says, ‘I set her down back there, but you carried her all the way here.’”

The story shows it’s easy to pick up events, opinions, work, anger, emotions and carry it with you and influence your future actions. We should learn from our mistakes and plan for the future but importantly focus on what’s in front of us, listen to what’s being said and be fully engaged in what we are doing.

Some times our thoughts can do this, captured by this Mark Twain quote

“I’ve lived through some terrible things in my life, some of which actually happened.”

  • The past has gone and can’t be changed, learn from it and move on
  • The future isn’t here yet, plan and focus on the now until it arrives.
  • The present is happening now, make it as enjoyable and successful as you can.


You can’t control the world but you can control how you react to it. Don’t allow words and actions of others get you down, leave the problems with them. Nothing positive comes from anger unless you use it as fuel to propel yourself. Conflict doesn’t progress problems it distracts and makes them bigger.

Let go of work when you hours are done, spend time on rewarding activities such as family, friends, hobbies and having fun.

Why you need a great team to deliver an IT project

“None of us is as smart as all of us.” –Ken Blanchard


We are judged on our individual contribution but most of the time we are contributing in a team, working on a shared goal such as delivering a project.  To make your work life more enjoyable and more successful its worth helping recruit the best people to the team and improve others.

IT Projects are a team game, involving developers, testers, BA’s, business experts (customers), project managers and other roles.  Individually we can go fast but if you  to create something substantial, you need a team.  Teams bring scale and momentum but are the source of problems, most projects fail because of people not technology.

Get good people on your team

Don’t accept poor performance in a team, don’t accept average people, work with the best people you can.  The speed of a team is dictated by it’s slowest performing member, if you put B players on your team then it causes bottlenecks and slows the team.   Average team members have low standards, they don’t take responsibility  and don’t work hard.

Average team members slow down better team members and can frustrate them enough for them to leave the project or the company, life is too short to work with people who don’t care.  Its frustrating to team members who work hard and have to compensate for those who aren’t.

Average members set the benchmark of satisfactory performance.  Your star performers see average performance is acceptable and this leads to everyone coming down to that level.  The minimum requirement for a team member is they work hard, improve and learn from their mistakes.

People who are working hard and improving get better, these people rise to the level of their talented team members.  The difference between average and great is attitude.

I was a scrum master of a team and one developer was not doing a good job.  The developer wasn’t working hard; they didn’t understand the business requirements and would frequently skip steps in the development process.  The developer didn’t integrate with the team or take ownership of tasks.

The developers code often had bugs and would take two or three attempts to fix a bug.   The developer asked other developers for help, slowing them down.   It was frustrating for other team members because the developer hadn’t tried to look up the answer.

This slowed the team down and caused the team and the customer to become frustrated with missed deadlines.  I hoped the developer would get better, but they didn’t.  I discussed the problems and highlight the effect it was having on the team, we looked at bug statistics and missed deadlines.  The effects of having a B player was disruptive, it slowed the team down and frustrated everyone.

Problems don’t resolve themselves, particularly if that problem is a person

Talented people like working with talented people because they teach each other and add value by viewing problems from different perspectives, bringing different solutions.  Talented people work together with ideas, questions, feedback, raising problems and creating solutions which are better than they would create as individuals.

Steve Jobs highlights the importance of A getting the best software engineers.  

Steve Jobs on Average vs Best Software Engineers
“If you go to New York City and get an average taxi cab driver versus the best taxi cab driver, you’ll probably get to your destination with the best taxi driver 30% faster. And an automobile; What’s the difference between the average car and the best? Maybe 20% ?

Now, in software, and it used to be the case in hardware, the difference between the average software developer and the best is 50:1; Maybe even 100:1.

Very few things in life are like this, but what I was lucky enough to spend my life doing, which is software, is like this. So I’ve built a lot of my success on finding these truly gifted people, and not settling for ‘B’ and ‘C’ players, but really going for the ‘A’ players. And I found something… I found that when you get enough ‘A’ players together; when you go through the incredible work to find these ‘A’ players, they really like working with each other.

Because most have never had the chance to do that before. And they dont work with ‘B’ and ‘C’ players, so its self policing. They only want to hire ‘A’ players. So you build these pockets of ‘A’ players and it just propagates.”

What does good look like

Being a team player is vital, to create something substantial you have to work as a team.  Team members need to put the team first, value the other team members and communicate.

When people hear the word communication they think it’s about talking but that is only half of it.  Communication is listening, clarifying, acknowledging and talking.  Team members need to listen, value each member because you build on the  ideas of each team member.

A team solution is like building a tower, each person puts in a brick and each brick builds on top of ones before.  If you don’t listen you are build separate towers and you have to decide which towers to use but it won’t be as big or as strong as a team tower.

Team members need to trust each other because individuals on a team need to

  • Speak up
  • Raise problems before they become problems
  • Give feedback on ideas, solutions, performance
  • Put forward ideas
  • Ask questions
  • Ask for help
  • Have fun

Help them work as a team

It’s not just getting a group of good people together and throwing them onto a project, an effective team is more than the sum of its parts.

Good leadership highlights the problem/goal and asks the team how to do it.  Leadership should support the team, protect the team from distractions and help resolve issues as they arise.  Hire good people and then get out of the way so they can do their job.  You need to trust people and give them responsibility and the opportunity to do a great job.

A team needs to trust each other to collaborate.  The best way to do this is get to know each other, have fun and socialise to build rapport.


Your individual success is influenced by the team you work with and the achievements of the team.  Anything significant needs a team to deliver it and the most effective way to be successful is work in a good team and help everyone improve.

Try and help bring the best people you can to your team, everything we do in life involves working with people and collaborating to deliver projects.

Set high standards, work hard and be a good team player.  Technology, change management, processes are all tools used by people and teams to deliver solutions.  Work is a team game and the better the people you work with the more success you will have.

Make sure you work with good people if you want to be successful.

Further reading

The Importance of Working With “A” Players

Why people leave their jobs and how to stop them

Incorrect requirements always result in a bad solution

People move jobs regularly, few stay in the same company for longer than 3 years.  What is the cause for moving regularly?

Moving and recruiters

This article says we move jobs every 4 to 5 years but  IT workers move more often due to more contact from LinkedIn and recruiters.  The big winners in people moving are recruitmenters who get paid for a person moving and get paid to replace them, who then replaces someone else in an endless cycle.

Recruitment has changed from people applying to job adverts to most IT professionals being head hunted or being tempted with job offers for more money, improved benefits and better roles.

Most teams don’t make sure their employees are being paid competitive wages, they still operate in the old method of giving people a percentage increase.  The result is in 2 plus years most people’s experience, skills and knowledge is worth more than their current employer is paying them.  This leaves the company vulnerable because if a recruiter sends this person a new role then it could be for more money they are being paid.

IT professionals and software developers have the opportunity to learn new technologies, this experience if in the right technology such as AI, Big Data, Machine learning or the next sort after skill can be worth even more.  The demand for the growing areas of AI, Machine learning means those with those skills get paid a premium whilst more people up-skill in this area.

What makes people move?

A lack of money demotivates and getting more persuades people who move jobs but there comes a point where mone is not the main driver.  Other factors which drive people to move are below

  • Engagement
    • Involvement
    • Feeling valued (listened to)
  • Career progression
  • Money
    • Benefits
  • Culture
    • Values
    • Type of people
    • Behaviours encouraged
    • Work atmosphere
  • People
    • bad colleagues/bosses
    • Good colleagues
  • Work
    • Challenging
    • Interesting
  • Learning
    • Training, improving
    • Getting new skills

Its a mixture of the company providing benefits and individual team within a company having different culture/teams/people and atmosphere.

Why do people move jobs? 

People move to where there is potential to improve their skills and progress their career.  When people are progressing in their careers they are happy because progression leads to challenging roles and payrises.

Research from shows that 23% of employees look for a new job every single day.   this article Your Happy Employees Are Still Job Hunting (Infographic) shows some other reasons

  • 10% want a better work life balance
  • 9% want a new boss
  • 5% want flexible scheduling
  • 4% want better benefits
  • 3% want more recognition

Culture, engagement, progression

The focus on recruitment is

  1. Salary
  2. Benefits
  3. Other reasons

This attitude is outdated because IT professions gets regular offers via LinkedIn, they understand their worth and  moving jobs is easy.

A positive culture, engaged employees, training and career progression are reasons for employees to stay.  Without a positive culture, engaged employees there are a fewer reasons for individuals to stay at a company, it makes it easier to move.

Losing staff members is expensive, costs such as

  • Recruitment fees
  • Loss of business knowledge
  • Domino effect of others moving
  • Re-training and getting new members up to speed
  • CV and Interviewing costs
  • Potential project failure

Richard Branson explains the benefit of training your staff with the quote below

“Train people well enough so they can leave, treat them well enough, so they don’t want to”. Richard Branson

Get people involved

Leaders tell the team the problem and then explain the plan.  Telling makes people less interested because it’s not their plan, it’s an order.  Instead explain the direction and problems, ask for ideas.  Companies hire good people, so get out of the way and let them be great.

To get to better ideas you need more people to propose ideas.  Ideas from different people have different perspectives and areas of expertise.  This generates a base to build future solutions from.

Involved people feel valued because they are making a difference, this encourages people to stay.

IT projects are a people business

It’s easy to focus on technology, it’s sexy, new and you can amaze customers.  You can wow with impressive capacity, power, speed and flexibility of cloud solutions (Azure, Dynamics, Power Platform, etc) but this misses the point.

Customers are not interesting in technology, they are interested in having a solution that helps them do their jobs and be successful.  e.g. What are the benefits to the business and users, who cares what technology it’s built on.

Projects are delivered by people working together as a team.  An IT project is a collaboration between the business experts (Customer) and the technical experts (developers, functional consultants, testers, etc).  Its a collaboration to understand the requirements, creating a solution and delivering the solution (which will be wrong and need to change as more detailed requirements are uncovered).

The better the team trusts each other, the more effectively they collaborate and the more fun it is.  Delivering projects successfully makes work enjoyable and keeps people.


One reasons for moving jobs is career progression.  Life is interesting and challenging when you are learning new skills, you are making progress on your career goals.  People look for jobs when they are stagnating.


It’s great to be part of a team with a clear objectives and who a delivering.  When you work on a project and you deliver it to specification and on time, you feel a sense of achievement.

People want their work to matter and feel it makes a difference.

In the article Who Are Your Motivated Workers? 

  • 43% said achievement is a motivator
  • 24% said recognition is a motivator

We want to contribute, achieve and be recognised/praised for our good work.  It  takes effort to praise  people for good work.

Recognition has little long lasting value because it’s soon forgotten, to be effective you need to recognise good work consistently and constantly.  Recognition has to be earnt and you must be specific with your praise otherwise it lacks impact.

People have to hear recognition and you cannot assume they know you appreciate their effort.

A lack of recognition demotivates and drive people away. If someone is doing a good job but not one tells them it leads feeling under appreciated and de-motivation.

The measure of achievement can be company goals, projects delivered or personal achievements.  We might only play a small part but we feel valued.  The quote from Steve Jobs when hiring John Sculley to Apple from Pepsi.

“Do you want to sell sugar water for the rest of your life, or do you want to come with me and change the world?”

Career progression

If you are not progressing you are falling behind.  People need goals and be working towards them.

If you career progress is stagnating, it leads to frustration and looking for new opportunities.

If people don’t enjoy what they are doing they won’t do it well.  The responsibility of doing a job you enjoy and are passionate about is both with the individual and the employer.  The individual needs to think about their job, what parts they enjoy and what they don’t.

One of the most important boosts you can give your career is picking a job you enjoy and one you want to get better at.

Keep moving towards your ideal job and what you like doing, where your strengths are.  You spend 8 hours a day at work, a third of your life, so pick something you are interested in.

If you don’t enjoy your job you will never excel at it or progress because you cannot fake enthusiasm or passion.  Everyone works in work but to progress you need to improve yourself outside of work and make the most of your time in work (learning, networking, experiences, skills).


For people to be engaged they need to be included.  When people are told what to do they start to turn off but when you give them a problem and ask them to solve it, they get involved.

If you hire good people then let them contribute you

Leaders make a big difference in employee engagement, this article What Great managers do daily quote a Gallup study

a Gallup study found that at least 70% of the variance in employee engagement scores is driven by who the boss is. This is disconcerting because the same research found that about 70% of people in management roles are not well equipped for the job.

Have more fun

Work is important but that doesn’t mean you have to be serious.  You can do the job, deliver projects and have fun. Incorporate fun into the project, get to know others on the team and deliver.

Life is short, so enjoy as much of it as you can.

Final thought

Be engaged, get involved, praise others and you will be successful

Further reading

4 reasons talented employees don’t reach their potential