“Practice creates the master.” — Miguel Ruiz
Experience is important for Dynamics 365 developers because with development you learn how it doesn’t work, whilst learning how it works e.g. mistakes. There is no shortcut to mastery, it takes time, hard work, learning and trial and error.
Microsoft Dynamics 365 can be illogical but you get used it, making mistakes and learning is the cost of experience.
Experience is gained by creating customisations and them not working (often in many different flavours of not working) before getting them to work. Understanding how functionality doesn’t work, helps you understand how it works.
When a Dynamics 365 developer starts developing a plugin, he will learn the all the steps you need to take and the hoops you need to jump through
I went through some of the common problems in this blog but here is a quick recap
- setup up Dynamics Developer toolkit
- User has to be CRM Admin
- Isolation mode? if none user has to be a deployment administrator
- plugin needs to be signed
These are simple steps to create and register a plugin, that’s without even thinking about the code and if it works, testing, debugging etc.
There are lots of great tools in the XRM toolbox which everyone uses to make development easier. The XRM toolbox is the ultimate tool.
- Ribbon workbench
- Web Resource Manager
- Fetch XML Builder
- SQL 4 CDS — Dynamics 365 tool you should use — SQL 4 CDS
WHY .NET/C# struggle developing
Companies will use C# resources on Dataverse/Dynamics projects which they think they will use to do some Dynamics 365 customization.
This theory seems sound, the actual C# code in a plugin is small and simple but for a C# Developer with no Dynamics 365 experience it’s confusing with illogical rules.
C# developers with no Microsoft Dynamics 365 experience don’t understand how data in the Dynamics 365 website is structured in SQL Server database
- How Dynamics 365 works with customizations
- The different types of customizations to choose from, without this knowledge how do you pick the correct customization type.
- How do I create a plugin
- How do you register a plugin — common plugin errors
- How do I write a query to retrieve related records in Dynamics 365
Whilst the C# developer goes through learning how things don’t work, it takes the developer a lot longer to write the plugin (if they manage it)
The kicker is if they don’t do constant Dynamics 365 Development, they will forgot all the lessons they learnt from the work above, slide down the snake and have to learn all again next time.
Hands on experience is vital
Experience is important for Dynamics developers is when creating customizations and code, they will have to overcome situations where the code isn’t compiling or it isn’t working. Experienced Dynamics developers will read blogs and SDK and work out why it doesn’t work.
You cannot get experience by reading about customizations like plugins, custom workflows etc, you have to create them, you need practical experience.
Creating customizations gives you a deeper knowledge of development because reading doesn’t tell you about what doesn’t work.
Experience is earned
When you start creating plugins, workflows and other customizations you will run into puzzling problems. You overcome the problems and find more problems, which usually move towards logical problems. As developers get more experienced they spend less time running into problems and more time on creating customisations.
“In order to master a field, you must love the subject and feel a profound connection to it.” — Robert Greene, Mastery
Driving a car
Dynamics developer progression similar to driving a car. When you start driving a car, everything is difficult and you have to think and remind yourself to do these tasks
- Putting on your seatbelt
- Seat right positioned correctly
- Constantly checking all of your mirrors
- Indicating at the correct time
- Changing gears and being in the right gear
- Braking distance
- Estimate distance
- Monitoring speed (and not speeding)
- Understanding what the road signs mean
The driver gets more experienced and begins to do many of the those tasks without thinking, this gives them time to focus on other parts of driving, like not crashing and watching out for idiots on the road.
Driving on the motorway, driving in the rain are experiences built up over time.
You can’t read how to become a better driver, you have to apply the knowledge and experience it yourself. The same is true about Dynamics 365 development.
Experienced Dynamics developers make fewer errors because they have learnt to stop making these errors through experience and fixing those problems.
Experience and knowledge gained through doing leads to better choices about what customizations work well in certain scenarios