There must be a happy medium somewhere between being totally informed and blissfully unaware.
I read a fantastic article today on boingboing with the title
Why we are unaware that we lack the skill to tell how unskilled and unaware we are
It starts with a great quote
Each one of us has a relationship with our own ignorance, a dishonest, complicated relationship, and that dishonesty keeps us sane, happy, and willing to get out of bed in the morning. By David McRaney
The article mentions Nescience, so I thought I would use it but first lets understand what it means
Lack of knowledge or awareness; ignorance.
How is this relevant to CRM Developers
When you start out as a Developer and CRM developer you don’t know much and the main problem is
You don’t know what you don’t know
No I didn’t type that line twice or incorrectly, what I’m trying to say is junior CRM developers/ people starting CRM development have a lot to learn.
- Knowledge of all CRM customization techniques
- CRM Development Best Practices
- Writing well structured code
- Using the right Customization for the right job
- CRM Infrastructure (e.g. Servers and components)
- Testing and debugging
- Converting customer requirements into solutions
- Learning new CRM functionality
- Lots and lots of other things
Getting it working
The first stage of improving is getting hands on experience with CRM development/customization. At the initial stage this is where you know the least and don’t know enough to realise how much you have to learn.
The initial steps are getting practical examples to work e.g. Getting your hands dirty by creating entities, fields, views.
- Creating new entities/fields/views/relationships and other GUI customizations
- Creating workflows/business rules
- Writing plugins/custom workflows
- Integrating WCF webservices with CRM
- Writing CRM Applications
This article about Knowing and Not Knowing is a great article which has a great visual and quote
The important realisation is understanding the areas which you have to learn and making a plan to learn about them
The key stage is moving from
Don’t know what you don’t know
Know that you don’t know
Doing it right
The CRM developer will at some point have got experience doing most of the different CRM customization types and will be comfortable with the process of creating them all.
The good CRM developers will start to move ahead of the average/bad CRM developers because they will start to produce good quality customizations and write plugins/custom workflows/WCF which are well structured/readable. These customizations are easy to read/understand and easier to maintain and modify
Good CRM developers have a detailed knowledge of how CRM customizations work and the underlying CRM infrastructure.
How to learn what you don’t know
I started off this post by mentioning most people lack the skill to tell how unskilled and unaware they are
Sometimes this is because of ignorance and you simply don’t know what you don’t know.
There are actions you can take to learn about CRM Development
great examples of good CRM custmoizations, written by great CRM Developers. Good blog posts not only show you new functionality but also teach you the logic behind it and throw in a few best practices as well.
Example of new functionality you haven’t used yet.
I recently wrote a blog about some great books for developers
Recommended Books for Developers
Books offer something different from blogs and articles. They are focused and in depth look at a subject.
At some point the good CRM developer realizes he has a whole bunch of stuff he should learn about, but the list is big and the only way to tackle it is to constantly keep learning and improving on a daily basis.
Learning to be a better CRM Developer is like eating an elephant, one bite a time.
Don’t be afraid to question what you don’t understand, Ask fellow CRM developers at work or raise questions on forums.
CRM Customizations – Doing
Writing customizations will help you learn and improve. Experience is a key for CRM developer, you will get to a level where you are comfortable with the process of creating CRM customizations.
Once you can easily create customizations the next stage is creating great customizations. Customizations which will be easy to understand, maintain, extend and debug.
Learn from your colleagues – Peer Reviews
You can talk to fellow CRM developers about CRM development, the best way to do things, tips on creating customizations, mistakes to avoid.
Having your code peer reviewed is a great way to get feedback on your customizations
Learn from your mistakes
You will create bugs, you will choose customizations which don’t work because they are technically not correct. You will have peer reviews where your code gets criticized.
Don’t take peer reviews personally, but learn from them, improve and don’t make the same mistakes in the future. I personally find mistakes stick more vividly in the memory
Learn from previous coding – the good and the bad
You will have to work on projects written by other CRM developers. Use this as an opportunity to find out the good customizations and the bad customizations. Focus on why code is good and why the code is bad.
You take the good things and remove the bad things from your own customizations/coding.
Learn in public
A great way to learn is by writing blog posts, answering forum questions and learning with feedback and interaction from other CRM developers.
It’s even more fun learning with other people
I will finish with this classic quote from Donald Rumsfeld
There are known knowns. These are things we know that we know. There are known unknowns. That is to say, there are things that we know we don’t know. But there are also unknown unknowns. There are things we don’t know we don’t know.