The future of Microsoft Dynamics 365 projects

The future of Dynamics 365 projects will be defined by the people implementing them #HoskCodeWisdom

Dynamics professionals should embrace new technologies and services.  Technology changes and evolves and Dynamics 365 projects adapt to take advantage of them.

Microsoft dropped CRM from Dynamics product, projects evolved from case management, sales pipeline and transforming excel spreadsheets into enterprise projects including legacy software, mobile applications, Azure and other services (Social Engagement, gamification, field service).

Future Dynamics 365 projects will combine digital transformation, intelligence and mobile applications to create projects which deliver business value to the customer.  Customers have changed and want cloud and mobile solutions, the focus has moved it of what can we deliver, not what are the technical limitations.

The drivers of solution architecture are complexity, budget and the knowledge of the architect, no the limitations of Dynamics 365.  The environment has changed and small focused apps being consumed on multiple devices.

Junior Developer

  • Delivers Dynamics 365 projects using the skills, approaches and solutions used previously.

Good Developer

  • Uses familiar solutions combined with new servicesfunctionality and capabilities. Understands new functionality but doesn’t have experience.  Uses new functionality on a project making mistakes during implementation.

Great developer

  • Reads, studies and understands new features, services and functionality in Dynamics 365.  Proof of concepts give practical experience to support theoretical knowledge.

Don’t wait

Don’t wait to try new functionalityservices and tools until  needed because that’s too late.  Dynamics practices should investigate and invest in learning to understand when they to use them.

Examples are Flow, PowerApps, Social engagement, field services, cognitive services, Bots, mobile applications etc.  Microsoft hype new tools and release them with basic functionality, making it difficult to use them on projects.  Identifying the limitations and understanding how these tools work lets you know when to use them and when not to.

examples

  • Flow has no way to script deployment
  • PowerApps is evolving with no scripting deployment
  • Field Service often needs customization to add missing functionality
  • Social engagements interaction with social media services

Past projects

Past projects should not be see as reusable template, they should evolve, improving with new functionality and a better understanding how to architect solutions.

Microsoft Dynamics CRM renamed to Microsoft Dynamics 365 was never just about accounts, contacts, sales processes and case management.

Microsoft Dynamics 365 is an XRM framework, a set of tools to create solutions.   Microsoft created dependencies to sales, marketing and case managementThese common requirements were not needed in many XRM projects and created unwanted dependencies.

The latest version of Microsoft Dynamics 365 is now a true XRM framework, you start from a blank slate and use only what you need.

Dynamics projects are not constrained to Microsoft Dynamics 365, they use many Microsoft services (other services are available :-))

• Azure functions and WebJobs allow you to move processing out of Dynamics 365
• PowerApps or quick mobile application
• Common data service enables developers to link data from different sources
• Flow can link different services with Dynamics 365

Breaking free of the shackles of Microsoft Dynamics 365 allows solutions using other services, mobile applications and scaling via Azure. This enables enterprise projects to be created with Microsoft Dynamics 365 at the centre.

Using different services allows Dynamics professionals to tackle different industries, the limit is not technology but imagination and the skill of solution architects.

The future projects of Microsoft Dynamics 365 will include more intelligence and cognitive servicesusing companies’ data proactively to digitally transform businesses.

Microsoft Dynamics 365 continues to evolve, the pace of change is increasing and projects will be bigger, more complex and more fun.

To deliver enterprise projects companies will need to embrace DevOps and bring the best practices of software development to Microsoft Dynamics 365.

How Microsoft Dynamics 365 has changed

Microsoft Dynamics 365 has seen Microsoft move from developing competing products such as Microsoft Dynamics CRM, Nav, AX and now focus on creating services which are used by all Microsoft products.  Microsoft builds supporting services faster which are more feature rich.

New services and tools

  • Flow
  • PowerApps
  • Azure functions
  • Social engagement
  • PowerBI
  • Cognitive services

The challenge in Dynamics projects is working with its limitations, developers initially thought it wasn’t possible to create complex customisations using Microsoft Dynamics 365 online.

With the tools and services available you can create enterprise solutions, much of it without creating code and using Microsoft Dynamics 365 online.  It’s possible to have full DevOps, automating the manual tasks and improving the robustness of the code which are vital to enterprise projects.

The common data service, PowerApps and Azure stop projects from being constrained to Microsoft Dynamics 365 and ease integration with non-Microsoft services/legacy systems. You can integrate multiple services and Microsoft cognitive services to process customers’ data, automate and add intelligence to data and processes.

The future

Microsoft Dynamics 365 will digital transformation of many business and industries, Dynamics professionals will need to know the tools, services and new Dynamics 365 functionality to enable them to create the best solution.

With change comes disruption and opportunity #HoskWisdom

Other articles you might like

 

Will development move towards no code solutions?

There is nothing to writing code. All you do is sit down and bash you head against the screen for 7.5 hours until you get it right #HoskCodeWisdom

Being a developer is hard, being a good developer is very hard and being a bad developer is merely difficult #HoskCodeWisdom

 

Code is bad. It rots. It requires periodic maintenance. It has bugs that need to be found. New features mean old code has to be adapted.  Code is the enemy – Skrentablog

Microsoft are talking about the citizen developer, improving PowerApps and Flow. Should developers and companies invest time and effort to master PowerApps and creating no code/low code solutions.

Customers question the levels of customisation and the cost of creation and maintenance of code.  Everyone line of code costs to create, maintain and extend, code has a yearly cost.

With no code solutions like Flow and PowerApps, Azure manages the lifecycle and performance, leaving the developer focusing on what they should do.

  • Security
  • Scalability
  • Performance
  • Retrys
  • Lifecycle
  • Memory

No code makes the skill level needed to create and maintain lower but how much knowledge do you need to create PowerApps?

Simplifying creating customisations is like moving from C to C# and memory management/Garbage collection. You get better performance doing it yourself but takes more skilled developers but increases complexity in creation and maintenance.

It’s simpler to let a computer manage memory than write the garbage collection routines yourself.  Delegating garbage collection gives the developer more time to focus on creating business functionality code and less time focused on creating plumbing code (which enables business functionality code)

As a Java developer, I hated doing framework code for security, database writing, passing making web pages.  These plumbing code enabled business functionality but took time to write and created extra code to maintain.

When I saw Microsoft Dynamics CRM 4 it was amazing, which is impressive because Dynamics CRM was not amazing!  CRM had lots of out of the box functionality, this meant creating less framework code and I focused on creating customisations to deliver business functionality and Dynamics CRM did the framework and security functionality.

The framework benefits of no code solutions are great, so why isn’t everyone using them?

Managing complexity

I have never worked on a project which didn’t need a plugin or JavaScript/C# code, I imagine this is because the Dynamics projects I work on are larger and need developers.  There are lots of smaller Dynamics 365 projects which can use out of the box functionality.

I work on complex projects with complex requirements, out of the box functionality is limited to the flexibility of the solution it can create.  Can the users change their processes to fit with the out of the box process or do they need custom validation and functionailty.

Requirements and validation are bespoke to each business. A solution should help people do their job, a good solution will automate and validate for users.  Technology should not dictate solutions, it should enable solutions.

When a user selects a field on a form, it should set other values on other fields or validate values, update other fields in the solution. Automate the creation of data, speed up processes and ensure quality data.

These are bespoke to each business but there lies the value. It’s complexity of business requirements which requires JavaScript and plugins.

Design patterns are common patterns to common requirements, can workflows achieve the common problems addressed by design patterns?

Workflows struggle to deliver complexity, they are limited to simple tasks.  Anyone who has created a complex workflow in Dynamics 365 knows they are unmaintainable beasts, as is trying to create smaller focused ones and intertwining them is also difficult. This is due to the workflow editor and trying to visualise complexity with workflows.

Why is hard to deliver complex requirements with workflows, lets understand what does complex code does?

  • Retrieves, complex retrievals possibly using multiple records
  • Sorts, filters
  • Updates
  • Updates and creates related records
  • Validates
  • Deletes

Code should not be complex, it should be focused steps put together. Codes ability to do complex things and combine them makes it powerful.

GUI customisations struggle (Workflows, Business rules) to do complex solutions.
Workflows cannot sort or filter, they can retrieve records which have a direct link to the entity being processed.

Business rules and workflows struggle to validate multiple fields at once and can’t combine fields.

Strengths and weaknesses

The citizen developer is being mentioned, PowerApps and Flows are being seen as the future companies and projects should be heading.  Is this being asked for by customers or pushed by Microsoft?

Flows connect different systems and data sources, they connect and move data between systems/service.  This is mapping and moving data,  standard repeatable process.

PowerApps, Workflows, Business rules are simple customisations but struggle to carry out complex customisations.  When you mix multiple simple customisations, you can end up with a complex customisations which is very difficult to manage.

PowerApps work for one simple app but 500 PowerApps? will citizen developers understand over lapping PowerApps integrate to create one solution.  Will Citizen developers manage PowerApps in different environments (because despite what Microsoft sells, it’s not good practice to make changes directly in production).

These are the things Software Engineers do

  • Unit tests
  • Data Set
  • Integration
  • Design and create simple designs
  • Security
  • Performance
  • Overlapping customisations
  • Naming
  • Create long term customisations which can be maintained and extended

Postives of No Code

There are positives of no code and in certain circumstances it could be the best choice

  • Simple customisations can deliver simple requirements
  • Lower level of knowledge\skill needed to build no code solutions
  • Services manage performance
  • No servers needed
  • Lower maintenance

Code offers solutions which can match the needs of the clients but expensive skilled software engineers need to create, support and maintain it.   The increased flexibility of code costs more.

No code solutions can deliver simple needs and smaller, less complex projects.  The benefits of reduced cost and complexity increase the longer the solution takes to create and maintain.

Comparing the cost of no code/low code and bespoke code should be done over years.  Bugs can hide in both but code means bugs are harder to find and fix.

Summary

There will be demand for code because complex requirements need complex solutions.   Code allows you to create solutions to fit companies working practices, the custom validation and automation can deliver big productivity gains.

No code cannot deliver complex requirements but companies can simplify working processes to align to out of box features and no code solutions.The answer can be to have both working together.

The problems happen when you scale and have multiple code/no code components.   You get overlapping, integrating and conflicting customisations and the solution is difficult to understand, manage and extend.

It will be interesting to see where no code solutions lead.  So far the low code solutions don’t seem straight forward and we are still waiting for the functionality to catch up with the Microsoft hype.  When the landscape changes there are opportunities for developers to become experts

further reading

 

Hosk’s Recommended Dynamics 365 Articles July 2018

Quotes

You cannot forget when you do something amazing #HoskWisdom

Projects and code always take longer than expected #HoskWisdom

The pain of legacy code never goes away

Articles of the Month

awesome-1

Best of the rest

Programming/Scrum

Other

The Hosk – currently reading

The Hosk – has read and recommends

Hosk’s CRM Developer Articles

A collection of my favorite CRM Developer articles I have written