Licence Driven Development (LDD)

A few months ago I met an old colleague – let’s call him Ben, and we got talking. He is an experienced Microsoft developer now working on a greenfield Dynamics 365 project. He’d picked Dynamics up quickly after a few months training and upskilling himself, and had a good grasp of the platforms functionality and extensibility techniques. Our conversation went something like this :

Him : I’m working on a potential 200 seat project for <financial organisation> for a Sales Process. I’m going to automatically create a lead when my custom entity changes status and allocate it to the correct sales manager.

Me : Are the sales guys using Leads at the minute or how are they tracking leads outside of D365 – spreadsheets / access / onenote?

Him : Not sure, but that’s what’s going to happen – the Business Analysts have already modelled it in our new process flow diagrams. Once the lead is qualified, we need a trigger to create a case against the related account so another team can track the lead.

Me : What is the purpose of the case? Are you sure you need to use the case entity here?

Him : It’s mainly just for tracking purposes, but the new process says we might need the ability to merge cases sometime in the future. I’ve nailed the security model for cases and leads based on our to-be business units. Dynamics is great for that.

Me : Ok,it’s good you are thinking about security. Have you considered the licences each of these users might need alongside the security rules?

Him : No, that’s not my department, my manager deals with that, I just have to design and build the solution before year end. Licences are in next year’s budget. The project needs to save the company £200k per year by year two.

Me : Hmm. Let’s discuss this in more detail.

The conversation with Ben got me thinking about my approach to initiating projects and how my approach to development and design has evolved over the years across a variety of software projects. Methodologies included :

Continue reading “Licence Driven Development (LDD)”

Building an SFD in Dynamics 365 and the Power Platform

There’s a lot of talk about software delivery methodologies these days. To those not constantly reading the latest 400+ page textbooks on methodologies, it can be quite hard to keep up.

Agile methodologies such as Scrum can be great, but to work optimally they require a fair amount of education for all stakeholders involved, which is not always practical. Waterfall is considered by many as old hat, but lots of successful projects are still delivered this way. Hybrid methodologies can also work and can work practically and commercially. What is more important, across whatever methodology you use, are the techniques you use as part of these methodologies to define solutions and deliver real business outcomes.

There is a technique that I like to use which is ideally suited to Dynamics 365 and the Power Platform. It’s a great technique because:

  • It helps you gather real requirements aligned to the technology. We shouldn’t pretend to understand what someone else is imagining about a technology they have never seen before and try to make it fit.
  • It starts you thinking about the end-game very early in the process.
  • It helps you learn new technologies and capabilities as they are released.
  • By virtue of this techniques name, you are setting the bar quite low, so risk of embarrassing yourself is minimal (although conversely, partial failure here may be a very good thing).
  • It can provide valuable insight into estimates for future tasks.

It’s called the Shitty First Draft, hereby referred as an SFD.

Continue reading “Building an SFD in Dynamics 365 and the Power Platform”

Building a Power Platform Dream Team

As Microsoft Practice Lead for Codec in UK and Northern Ireland, I’m regularly thinking how Codec has grown a Microsoft Dynamics practice from a small team of 2 people to over 100 Microsoft ‘Power Platform‘ Consultants, in little over four years. In the past two years, our Belfast team has experienced rapid growth with exciting plans to grow further. Building teams at such a rate can challenge any company of any size, but Codec’s success has not come around by accident or luck.

To gain an insight into some of the factors that have helped Codec become both Microsoft Ireland partner of the year and Microsoft Dynamics partner of the year in successive years, here are some of the principles we’ve adopted in Belfast, and across the Codec group, to ensure that we stay the best at what we do. Continue reading “Building a Power Platform Dream Team”

Adventures in UCI Site Map Configuration and Usability

Over the past few days, I’ve spent some time doing a deep dive into the Unified Client Interface – it seems like most people have now settled on calling it UCI. I have been trying to work out some ‘better practices’ for user centered design, with the aim of improving user adoption for those users inclined, or perhaps directed, to use it.

Microsoft are clearly working towards a User Centered design through the very fact that the new interface exists and the principles they have implemented so far. Ultimately though, the user experience will be as good or bad as the decisions you make when, as a Dynamics customiser or partner, you configure it.


Keep it Simple

One of the great benefits of the new Dynamics 365 Unified Interface – and model driven PowerApps in general – is that they are likely to end up ‘less busy’ than the old Dynamics 365 web client. This is because when you build an Dynamics 365 app, you are forced to think about what you need to include. It’s a blank canvas. If you create a new app, you should always carefully select the views, forms and dashboards that the users for that app really need. If you combine that configuration with a policy of least privilege security roles, you should end up with an easy to navigate application – clean menus, clean sitemaps, uncluttered command bars. Users should only see the buttons they need to see, so additionally, get familiar with the Ribbon Workbench and you can strip the application back even further.

This approach is very likely to create a simple path for new users to learn, where they will embrace the screens and application flow. The one thing the UCI is missing however is what I would term a ‘Home Page’ – a launch pad for the main application. Sure, there are dashboards and views of contacts which may seem like a nice place to start for some, but sometimes a simple web page based solution is best.

Users can no longer select their home page in the Unified Interface through Dynamics 365 settings. In many scenarios, this might be a good thing because as designers, we can now direct all users to an initial page by adding a web resource as the first element in the site map.

Why might you do this? Well, it could be an initial training page, or a ‘How To’ page. It could even be something business specific, such as a company logo to enforce branding. From a functional point of view, there are benefits in having a launchpad page of quick links that allow users to deep link to certain Dynamics areas from a single page.

Web Resources in the Site Map

So web resources are a good fit, old school way of showing rich data in the UCI, where you can have much more control over styling than you can with a view or form. Using web resources is also a good integration technique where, via JavaScript, you can call both Dynamics REST based web services or even Actions to wrap server side code to call other external web services.

So continuing my adventure, I started adding links to web resources to the sitemap. The fact that the left menu bar now is always displayed and that clicking different icons doesn’t force a full page re-load provides for a really slick user experience. Maybe it’s just me, but my perception with UCI is that the caching of each site map element is much better than in the web interface.

Generic Vector Icons

One thing I have always been a stickler for is attention to detail. My pet peeve with any interface is having generic icons, inconsistently styled icons, or having icons that don’t reflect what their function is. When I first added links to different web resources in the Site Map, each link was allocated a generic icon. This icon was not editable in the App Designer or in the XRM Toolbox site-map editor. Thinking Face

I noted with interest recently CRM Tip of the Day 1131, which showed me how to update the Area Vector Icon in the site map to get rid of the generic jigsaw puzzle piece.  Checking the SiteMapType.xsd schema, I noticed the same ‘VectorIcon’ attribute can be applied to Groups and SubAreas as well as Areas. After updating the SiteMap XML manually, hey presto, I have a nice unique ‘Home’ icon for my web resource again.

The end result is a ‘Home’ page like this :

uci2Basic Unified Client Interface with Simple Home Page and ALL custom icons


Is there a moral to this story? Here’s a few take aways I have:

  • The application site map editor is still a bit rough around the edges, but the underlying UCI platform provides a great foundation for user centric app development.
  • Lets hope Tangay picks up the Group and SubArea VectorIcon attributeand applies it to the XRM Toolbox Site Map editor in the same way he did for the Area attribute.
  • Better still, lets hope the vector icon attribute makes it into the full App designer in the October 2018 release.
  • Don’t be sloppy when adding elements to the sitemap, take the extra 30 minutes and get the icons right.
  • Consider a launch page for your UCI application. You can host fonts and styling as web resources too. You can use the new Xrm.Navigation APIs to help users perform functions with a minimal number of clicks or taps.
  • Strip back user roles to the most basic functions to reduce clutter on your command bar. There are some buttons that are trickier to remove than others. Wouldn’t it be great if we had the ability to specify command bar buttons in an app too?


PowerApps is dead. Long live XRMPowerApps.

In April 2017 I attended SummitEMEA in Amsterdam and listened intently when Matt Barbour told us that a true Microsoft Dynamics XRM image – i.e. a CRM organisation instance with only accounts, contacts, activities and nothing else – existed internally within Microsoft. This interested me as partners have been calling out for this since the old CRM 4.0 on-premise days. At that time it seemed there were no immediate plans to do anything with it.

Fast forward one year, and this time closer to home in SummitEMEA in Dublin, April 2018 and Matt Barbour again moved the conversation on a country mile or three. I discovered that XRM no longer officially exists in name, but does exist in practice and has been renamed PowerApps. So, how does this work? Continue reading “PowerApps is dead. Long live XRMPowerApps.”

Native Dynamics 365 v9 Auto Number Solution for Custom Entities

I spent some time watching the some of the Microsoft Ignite sessions on YouTube, and the most interesting from a Dynamics point of view was Matt Barbour’s session looking at platform updates for Dynamics 365 Customer Edition v9.

One thing that was not disclosed at the preview sessions earlier this year was the addition of Auto Numbering for any entity – not just a few select core entities. From the screenshot Matt put up explaining how they are created in C#, it was enough to see how they were defined, so I wrote a web resource to allow users to create these without any code.

To download and see how it works find full instructions can be found on the Dynamics 365 Heroes blog. Hopefully this will not be required for too long as I would expect the native UI to be updated in a minor rather than a major update.

Any questions, let me know!

Dynamics 365 Fantasy License League

I listened with interest to Steve Mordue on the MS Dynamics World podcast today about his views on the recent announcements at the NAV Directions conference last week. Steve is a Microsoft Partner with an opinion worth listening to on everything Dynamics, but primarily CRM. As a Dynamics partner or interested customer, If you haven’t listened to the podcast I would recommend doing so, but first have a read of his blog post here which is a great read as well as includes as a bit of drama!

Listening to the podcast gave me some food for thought based on some conversations I have been having with some customers and other partners recently. With that in mind, I thought I’d share my own opinion here.

Continue reading “Dynamics 365 Fantasy License League”