
You shouldn’t write code, you are not willing to test #HoskWisdom
I have compiled a list of tips to improve as a Dynamics developer made up of blog posts I have written and blog posts I should have written.
- Get certified to broaden Dynamics knowledge –The benefits of Dynamics certifications
- Answer forum questions Microsoft Dynamics 365 Community Forums, CRM forum
- Know what value to set entity ownership to, Dynamics 365 Entity ownership — How do you decide?
- Don’t put code in the plugin class, create separate objects and code properly and unit test.
- Understand the activity entity and ActivityParty and ActivityParty Lists
- Read blogs daily to stay up to date and keep learning
- Automate builds to raise quality, release more often, which reduces errors and boredom — Dynamics 365 and ALM/DevOps Information to get you started
- Don’t deploy manually, it’s boring, error prone and you shouldn’t do something you can automate. Dynamics 365 — The cost of manual deployments activities
- Master the fundamentals of coding, you will use those skills every day. Start with SOLID Principles.
- Use the solution checker to delivering high quality code (not adding to technical debt) — What the solution checker does and why you should use it
- Solve own problems by explaining them to a cardboard developer
- Understand the business purpose of the solution you are creating
- Push back on requirements that need complex customisations
- Why Dynamics Developers should always start with the SDK/Web API and learn how it works, rather than google the answer and learn little
- Read books for deeper learning and bring fresh ideas to Dynamics development
- Not all solutions should be done in Dynamics 365, Just because you have a hammer it doesn’t mean every problem is a nail.
- Read the what’s new, depreciated functionality and release guide
- Use the XrmToolBox because it saves time and someone has already faced and solved the problem you are wrestling with.
- Show users out of the box before getting their requirements and guide them to an out of the box solution
- Don’t copy and paste code, it skips the learning phase and can’t adjust your code when the requirements change
- Being prepared helps you write better code — The prepared developer writes better code
- Avoid taking work home with you, come to work recharged and ready to go — Let go of thoughts, emotions and actions that weigh you down
- Team player because IT projects are a team game — Why you need a great team to deliver an IT project
- Uses no code solutions before code because it’s easier to maintain and upgrade. To deliver a project on time, stick to out of the box (if you can)
- When you write code make it simple, it’s easier to understand, maintain and extend — Simple code is worth the time it takes to create
- Write your code, do your job, focus on the details, predict problems
- Don’t take shortcuts they create technical debt and you don’t learn anything — No shortcuts to becoming an awesome Dynamics 365 developer
- Don’t move job for money, move for role and opportunity. The more you know and the more value you bring, the more you get paid.
- Use early binding in your code because it’s easier to understand and it brings the bugs into development not production (e.g. errors found in code, not a plugin running in Dynamics 365)
- Uses the plugin profiler to debug as a last resort because you should be writing unit tests which everyone can use over and over. The plugin profiler adds dependencies to solutions and causes solution import problems. It can affect everyone using an environment.
- Don’t use the System administrator to test their customisations — The System Administrator role is a benefit and a curse to Dynamics developers
- Think in entities
- Don’t reuse out of the box fields because it confuses everyone to have a field name and label different. (they also get overwritten when the solution is re-imported)
- Organise your solutions to minimise change, speed up deployment and organise the customisations. What’s the best way to organise solutions in Microsoft Dynamics 365
- Reflect on what you doing, how you are doing it and how you can do it better. What I learnt in my last role
- Write your code, do your job, focus on the details, predict problems
- Continuously keep improving
- Name your code and customisations so it’s obvious what they do and they don’t need comments. Code should be the one version of the truth, don’t add comments
- Think long term and create code you can reuse — Why isn’t code reused in Microsoft Dynamics projects?
- Remove code you don’t need, it gets in the way and confuses — The code you take away as important as the code you write
- Don’t overestimate your skills and underestimate the task — One simple tip to improve your development and project estimates
- Time is a tool, use it to think about the problem when you have time, so you can react quickly when you don’t. 10 books to improve your thinking and decision making
Greetings Hosk,
Thanks for the informative post. I am confused on a few tip. Could you provide some clarity?
> Don’t put code in the plugin class, create separate objects and code properly and unit test.
What object are you suggesting to use in place of a plugin? Are you saying keep plugins to one class only? How do you recommend unit testing in dynamics?
> Push back on requirements that need complex customisations
I’d like to see a post about this. I’m not sure what you mean by complex, and why this should be avoided.
As a budding developer, some requests seem complex because I’m still learning the system, but after I learn about the “right way”, it’s a cake walk. Are you saying to only do customisations within your circle of competence? What are some example in your experience where pushing back makes sense?
The following appears to make the previous tip redundant:
> Don’t overestimate your skills and underestimate the task — One simple tip to improve your development and project estimates
These sounds the same to me. What is the difference?
LikeLike
Plugin code
When you put plugin code in a plugin it makes it difficult to unit test because you need to create the plugin context. You should remove the code into seperate classes and methods that you can unit test.
are developers afraid of creating classes
https://crmbusiness.wordpress.com/2015/07/16/are-crm-developers-are-afraid-of-creating-classes/
find classes
https://crmbusiness.wordpress.com/2015/07/17/how-to-find-classes/
Push back on complex requirements
Ideally you want users to use out of the box Dynamics 365, this will bring no maintenance overhead and will upgrade without problems. Any customisation you create has to be maintened and increases the complexity of the overall solution.
Show users out of the box functionality and get them to try it. The customisations they ask for are not always needed.
The most complex customisations are code (C#, JavaScript) and this bring the biggest maintenance overhead.
Try to stick to out of the box
View at Medium.com
Don’t overestimate your skills and underestimate the task
Developers estimates are optimistic and assume everything will go right and they will not be distracted by other activities. Try to use the ideas in the article and see how long similar tasks took. You can often hear a developer saying he is 90% finished and the last 10% takes as long as the first 90%.
LikeLike
Great Blog! This post gives a better idea. Thanks for sharing useful information
LikeLike
I find these tips useful as a dynamics developer.
LikeLike