HoskWisdom – Hosk Developer Quotes

Here are some of my favourite quotes from my blog posts, they are original #HoskWisdom

The company that needs Microsoft Dynamics CRM, and hasn’t bought it, is already paying for it – Hosk

Creating code is like creating a baby, the creation is fast and fun but you have to look after the code for years – Hosk

It’s easier to like you know about Microsoft Dynamics CRM than to talk wisely about Microsoft Dynamics CRM – Hosk

When gathering requirements, listen more than you talk – Hosk

Never ask a CRM reseller if you should buy Microsoft Dynamics CRM – Hosk

People are born, CRM developers are made through knowledge of the CRM SDK and CRM project experience – Hosk

With boring repetitive developer tasks – share the pain, share the knowledge – Hosk

Simplicity should always be a primary goal in CRM Solution design.  Complexity should be broken down, simplified and avoided – Hosk

Mistakes are caused by individuals but it’s often the lack of processes where the blame really lies – Hosk

When gathering requirements, question what is really being asked because it is not always what is being said – Hosk

I try to avoid putting in simple bugs and only put in really tricky ones – Hosk

Poor quality and inconsistent data in your CRM database = bugs and odd behaviour out of CRM customizations and CRM demo’s – Hosk

Writing code often leads to errors, and errors leads to learning. Learning leads to understanding – Hosk

CRM Solutions which don’t anticipate change, risk significant redesign in the future – Hosk

Legacy projects full of spaghetti code always seem to have been written by developers who have left the company? coincidence? – Hosk

You can’t change the CRM SDK, you must change to use the CRM SDK to develop the most suitable customizations for the customers requirements – Hosk

Fear is before, Difficult is during, achievement is after – Hosk

Reading books expands your knowledge and understanding of the world.  Seek out new ideas, theories, thoughts and make them you’re own – Hosk

CRM is a place where only dirty entities and fields are saved! The clean fields are ignored. Hosk

understanding of business logic fades but the code remains – Hosk

The earlier you admit making a mistake the more time you have to fix it – Hosk

Are your CRM plugins creating technical debt?

Understanding bad code is is like trying to find things in a messy teenagers bedroom, stuff everywhere and in an order only known to the owner of the room – Hosk

Changing bad code is like playing Jenga, changing one bit of code could bring down the whole tower – Hosk

Bad code is like a virus, don’t get infected

Bad code is like a virus, once it infects a code repository it starts duplicating itself everywhere until the all the code is corrupt – Hosk

As the cost in time and effort of refactoring goes up, developers will add more bad code because it’s easier and quicker.  The result is the bad code in a project is like a snowball being rolled in snow, it just gets bigger and bigger – Hosk

Name classes as nouns and methods as verbs.  Variables should tell you what they are.  If you have trouble naming code, it’s doing to much – Hosk
Bad code is contagious. That’s how a developers nature works – Hosk

The problems with Complex Code and complex CRM customizations

Complex code is hard to understand code because classes and methods do so many different things it’s impossible to understand how it works without stepping through the code to understand exactly what is going on. – Hosk 
When writing code you need to keep in mind – Will I be able to  understand this code 6 months later when I have forgotten the business logic – Hosk

Why .NET developers struggle with CRM Development

Experience is important for a CRM Developers. You have to learn how things don’t work first 🙂 no shortcuts – Hosk

Why Code Readability is important

If you struggle to read the code, how the hell are you meant to fix it – Hosk

You are not the end user

The CRM Developer needs to collaborate with the end-user, not deliver what he thinks the end-user wants or should want – Hosk

Sherlock Hosk and the Case of the Annoying bug

When debugging, eliminate what isn’t causing the problem and whatever code or customization is left must be the culprit.  – Sherlock Hosk
Making a mistake on a CRM project is the best way to ensure the same mistake doesn’t happen on future projects – Hosk
 The CRM Advanced find is a CRM Developers best friend. Which is better than .NET developers they have no friends –  Hosk

If you fail to design your code, you are choosing to design it badly – Hosk

code reusability in CRM projects is seen as often as bigfoot or the loch ness monster – Hosk

Everyone makes mistakes.  What you need to do is try to make fewer mistakes, learn from those mistakes you make and don’t repeat them – Hosk

You must control code complexity.  Uncontrolled complexity will drag the code down until no one wants to touch it –  Hosk

One consequences of creating rushed code, is any further enhancements or code interaction will take more time and resources –Hosk

How to cope when you are out of your Developer comfort zone

Don’t be afraid to say you don’t know something, you will always know less than there is to know. All you can do is to keep learning every day – Hosk

Experience is doing something new, making mistakes and not repeating those mistakes next time you do it – Hosk

CRM projects do not seem like the place to want to cut corners and reduce the quality of the end CRM solution by rushing the project to shorten delivery times.  Particularly if the company plans to use the CRM solution for many years to come. – Hosk

Good CRM developers do not like creating rushed code of reduced quality. It feels wrong at the time and hard to use later on. Hosk

Gathering requirements for a CRM solution is like trying to herd cats. when you think you have got them all, you notice some out of reach – Hosk

It’s important to understand business terminology as quickly as possible, this enables you to talk to the customer using their own language. – Hosk

Good developers reuse code, poor developers just keep on creating more code to do the same thing – Hosk
The CRM database can be viewed and the data used but never changed directly – Hosk

Finish work a litter wiser about CRM than you when you started work.  – Hosk

CRM Code and CRM queries should be as simple as possible but not simpler – Hosk

Junior developers  see code in terms of it working/not working

Senior developers see the code as working/not working, structure, design and complexity


Good CRM design should not make users think

A well designed CRM system is where users use the system instinctively without needing to stop and think – Hosk

The brain is a mystery, tucked inside a riddle, riding on the back of a conundrum, poked in the ear of a problem – Hosk

Unit tests to CRM developers is a Marmite question.  Some developers love unit tests other  developers dislike writing unit tests – Hosk

The System Administrator role is a benefit and a curse to CRM developers – Hosk

I get the feeling people are expecting some kind of CRM magic to fly out of my fingertips. That’s the life of a CRM developer 🙂 – Hosk

The CRM SDK is the CRM Developers bible.  They should be reading it on a weekly basis and shouting out the best bits to groups of developers – Hosk

Always start with the CRM SDK, you will find the answer to your current problem and solutions to your future CRM problems  – Hosk

It’s impossible to search for Dynamic CRM without my blog coming up, it even surprises me with posts I don’t remember writing – Hosk

If you catch a whiff of duplicate code in your project, you should refactor it quick,  Otherwise the code will continue to duplicate itself – Hosk

CRM 2013 – Understanding Status and Status Reason and be careful deleting them

Customize CRM in haste and take half a day to tidy up CRM – Hosk

CRM 2013 – How add a status reason using the CRM SDK

Don’t even think about making unsupported changes in CRM because Microsoft will un-support your CRM if they find out – Hosk

Don’t do unsupported CRM customizations, 99.9 percent of the time there is another way.  For the 0.1, tell the customer its unsupported – Hosk

Code complexity = When no one really knows what the code does or how it does it – Hosk

It’s difficult to be critical of your own work which is why is vital to get second opinions for you code and solution designs – Hosk

Code is made up of numerous simple repetitive actions, which become very complex if you put them in a few big classes and methods – Hosk

A career without direction cannot be steered down the path of success – Hosk

A career without purpose is like trying to travel to a unknown destination without a map, you have little chance of arriving there and if you get there you will have probably taken the long way – Hosk

If CRM developers are not creating classes they are creating legacy code. Don’t put all the code in the plugin and create a monster method – Hosk

Don’t let bugs get into production environments

Bugs are lazy, good for nothing trouble makers.  They are too lazy to walk to production environments so they wait for you to change some code and jump on board and let you take them all the way to production before they pop out and blow a raspberry at your customers. – Hosk

CRM plugins who don’t use classes are creating legacy code

Creating CRM plugins without using classes creates a project with lots of technical debt.  Technical debt is increased with the creation of every new plugin.  – Hosk

Creating plugins with classes or using OO principles will lead to CRM project code reaching a legacy level almost before the project is released to the customer. – Hosk

A CRM system without data is as useful as car without petrol, it won’t do anything. – Hosk

Unit tests –  tell you if code changes have introduced an error.  End users – tell you this if you don’t have unit tests – Hosk

Why CRM Developers should always start with the CRM SDK

The CRM SDK is a cruel mistress to those who do not show it respect but if you play nicely and tickle CRM SDK’s belly it will deliver untold development riches – HOSK

A parody of the Full Metal Jacket scene

CRM developers: [chanting]

This is my CRM SDK. There are many others like it, but this one is mine. My CRM SDK is my best friend. It is my life. I must master it as I must master my life. Without me, my CRM SDK is useless. Without my CRM SDK , I am useless.   I must development with my CRM SDK true.  I will.

Before Hosk I swear this creed: my CRM SDK and myself are defenders of my CRM Solution, we are the masters of the CRM Solution, we are the saviours the CRM Solution. So be it, until there is are no bugs, but peace in CRM dev land. Amen.

There is no quick easy way to become a good CRM developer, it takes a plan, experience, hard work and the CRM SDK. – Hosk

Solutions in Microsoft Dynamics CRM give with one hand and bash you over the head with the other –  Hosk

Most first drafts of code can be de-cluttered, refactored and reduced without losing functionality.  – Hosk

The first tool a CRM developer should use to deliver required features is out of the box functionality.  Hosk

CRM insanity is doing the same thing over and over again, when there is a quicker way – Hosk


31 thoughts on “HoskWisdom – Hosk Developer Quotes

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.