The 10 most popular Hosk CRM blog posts in 2015

It’s Christmas, a time where terrestrial TV shows greatest hits and compilations.  Instead of spending time crafting new exciting CRM blog posts I will do my own version of greatest hits by listing the most popular Hosk CRM blog posts of 2015

The most clicked on blog posts in 2015

  1. CRM 2013 – Step by Step Update Plugin Tutorial using the CRM 2013 Development Toolkit
  2. CRM 2013 – Understanding Solutions and how they work
  3. MB2-703 – CRM 2013 Customization and Configuration Certification Information
  4. CRM 2011 – Javascript Xrm.Page Basics
  5. CRM 2013 – Setting up Visual Studio with the Developer Toolkit for Microsoft Dynamics CRM
  6. CRM 2011 – Javascript and Subgrids code example
  7. What are the limitations of Microsoft Dynamics CRM Online and how do you work with them?
  8. CRM 2013 – Javascript to get id of current record
  9. CRM 2013 – quick way to get the guid on a form
  10. CRM 2011 – Quick tip – Javascript to stop a form saving

It seems most readers are still developing with CRM 2013 and CRM 2011, it would be interesting to see the number of CRM deployments and versions.

Most clicked articles written in 2015

  1. What are the limitations of Microsoft Dynamics CRM Online and how do you work with them?
  2. Understanding Plugin sandbox mode
  3. Where is the CRM Developer toolkit for CRM 2015?
  4. CRM 2015 – Why filtered views are useful
  5. Getting the CRM Developer toolkit working with Visual Studio 2013
  6. Why .NET developers struggle with CRM Development
  7. CRM 2015 – how to find Statecode value
  8. What’s new in CRM 2015 SP1 for developers, customizers and admins
  9. CRM 2013 – Understanding SystemJobs and Async Plugins
  10. CRM 2015 – Understanding CRM Metadata

Thanks for everyone who has read and commented on my Hosk CRM blog posts, I look forward to creating interesting content next year.

Blogging is a great way to help learn Microsoft Dynamics CRM, if you haven’t got a CRM blog then I recommend you start writing one NOW.

If you have enjoyed reading my blog posts this year please leave a comment.

Advertisement

Hosk’s Top CRM Articles of the week – 15th December

CRM 2016 is released, which is great news for CRM on premise users because it mens they finally get the functionality delivered to CRM 2015 Service update 1, as well as CRM 2016 functionality.

Download the CRM 2016 preview guide here

It’s worth reading the CRM 2016 preview all the way to the end because then you find out what’s missing

CRM 2016 what's not in it

The Microsoft Dynamics CRM landscape is changing, CRM developers should think Online first and On Premise second for CRM solutions

CRM Online really only works if you utilize Microsoft Azure.  The tricky part is both are evolving at a rapid rate.

Azure is massive, with functionality to be leveraged with CRM 2016 Online.  There are lots of great things like Azure Service Bus, Machine Learning and the new Power apps.

Read more about PowerApps – Introducing Microsoft PowerApps

Quotes

Either you run the day, or the day runs you.

JIM ROHN

if opportunity isn’t knocking down your door, go and find it and demand to know why

Hosk

There are three rules to being a great CRM developer, unfortunately no one knows what they are? in the meantime think, learn and work hard

Hosk

Article of the week

Using Microsoft Social Engagement Together with Dynamics CRM

fantastic presentation from CRM MVP Jukka Niiranen on social engagement

10 Tips for Success designing solutions for Dynamics CRM

This article is a must read for anyone who design solutions for CRM

Best of the Rest

How do multiple developers work on a web resource within the CRM environment

Full CRM Deployment in Azure – Part 1 – Infrastructure

Sample: Auto-complete in CRM control

CRM Developers need passion

Business Process Flows – Considerations and Lessons Learned

Dynamics CRM 2016 Excel Templates

CRM 2015 – How to set focus in Javascript

Tips for working with Business Rules in Dynamics CRM 2015 Online

Support Ending for the .NET Framework 4, 4.5 and 4.5.1

What are task flows and how do they compare to other tools in Dynamics CRM?

Monitoring and Statistics for Sandboxed Plugins

Dynamics CRM 2015 – Delay Load Functions

Modifying Global Search in CRM Online

Tip #533: Tipster guide to automatic record creation in Dynamics CRM

Resco’s perspective on ‘Microsoft to Acquire FieldOne‘

Announcing support for Azure Express Route for CRM Online

Programming

Everything You Know About Latency Is Wrong

Software Craftsmanship – Revenge of the SDET

other

9 parenting tips from Warren Buffett to set your kids up for success

Microsoft apologised to Surface owners who have had a ‘less-than-perfect experience’

The Cross of the Moment

Previous top picks

Hosk’s Top CRM Articles of the week – 10th November

Useful Hosk Links

Hosk list Of CRM 2013 Tools

A list and review of CRM 2013 tools, this will probably work in CRM 2015 as well

Hosk’s CRM Developer Articles

A collection of my favourite CRM Developer articles I have written

MB2-703 – CRM 2013 Customization and Configuration Certification Information

All the CRM 2013 content to help you pass the exam

HoskWisdom – Hosk Developer Quotes

 Words of Wisdom from the Hosk.  I have written over 900 articles, surely I should have said a few memorable things

How do multiple developers work on a web resource within the CRM environment

“Alone we can do so little, together we can do so much.” –Helen Keller

 

“None of us is as smart as all of us.” –Ken Blanchard

 

I get asked questions from readers of the blog about general CRM topics such as career advice, finding a job, creating plugins or help with a specific problems/errors.

Ask the Hosk questions

If you are going to ask me a question please be polite, it will increase your chances of me answering your question, don’t forget to say how much you like my blog (that really increases your chances of getting an answer).

Take into account I’m a busy Hosk, I work, I have 2 young children, a wife and sometimes even get to chill out or play football.  Sometimes I could be too busy to answer your question quickly.

I won’t always know the answer to your question, if I haven’t read about a topic or got any experience in the topic I can’t give a good answer.

The CRM Forum

Instead of asking individuals a question I would recommend raising a question in the CRM Forum, for these reasons.

  • It’s free
  • CRM MVP’s answer many questions
  • CRM experts who have experience will answer the question
  • Microsoft CRM support answer questions
  • You might get a number of answers and opinions

A bonus reason to raise the question on the forum is after you have raised the question on the CRM forum, you can email me and ask me to look at the question.

CRM forum

When you raise a question, try to give as much information as possible, this will help anyone who answers your question.

The CRM forums are a great way to learn CRM, you can see common questions raised by CRM users and the answers from CRM experts.  I answered over 400 forums questions and learnt a lot and helped users in the CRM community.

Question

How do multiple developers work on a web resource within the CRM environment?

With traditional web development if there are multiple developers working on the same page then they will each have local copies/websites to develop and test against then merge the changes in source control.

However, CRM web resources usually rely on the XRM SDK and the parent window within the CRM Evironment.

Are there any best practices for being able to have multiple developers work on the same web resource simultaneously?

 

Answer

This is a great question, working with a team of developers can be frustrating when they overwrite your changes, this didn’t quite make it to my list of frustrations of a CRM developer.

It’s a common scenario, particularly on big CRM projects and part of the problem lies with communication and practices

In the book The Mythical Man-month: Essays on Software Engineering the author Brookes discusses why adding more resources doesn’t always speed a project up, a great quote Brooks law

Communication overheads increase as the number of people increases. Due to combinatorial explosion, the number of different communication channels increases rapidly with the number of people.[3] Everyone working on the same task needs to keep in sync, so as more people are added they spend more time trying to find out what everyone else is doing.

 

Communication is key to successfully working with a group of developers, particularly if you are working on a shared environment.

Encourage developers to communicate via talking face to face, phone or instant messaging.

Multiple developers can develop separate parts of a CRM solution.  There will be time when development will overlap.  The quickest technique is to talk and work together, there are some steps to work without overwriting each others changes but this will involve some code merging will can be painful.

Important

If two developers have worked on the same customization, it’s important you test all new functionality to ensure the last modification hasn’t affected the previous modification.

Source Control

Whether you use TFS or something doesn’t matter but what it is important is everyone checks in their code regularly.

Get into a habit of checking in code regularly, at minimum

  • Get the latest code in the morning before starting code
  • Before you are about to change some code, get latest
  • Check in code before you leave

Source control can be a pain, but it will save you skin on many occasions, don’t fight it, embrace it.  The more you refresh and check in your code the less likely you are to suffer merge hell.

Development Environment

Most CRM Development environments are a CRM server hosting a development CRM instance.  Multiple developers access and develop CRM customizations on it.  This lead to some problems if developers were working on the same Javascript file.

Developers will usually be working on separate plugins/Javascript, which avoid conflict and overlapping/overwriting code.

If two developers need to work on the same plugin, you can create and test the code in a separate class, avoiding conflict and merging later.

It’s possible to have separate VM’s on individuals laptops, so each developer has their own separate CRM Instance.  This is possible but the majority of CRM development projects I have not worked with this setup.

Unit Testing

Unit tests allow developers to isolate the business logic by faking/mocking interactions with CRM.  Writing unit tests allows the CRM developer to test their code on their local machine without any dependency on the CRM developer environment.

With unit tests, multiple developers can work on CRM customizations without affecting each other.

No right answer

This question is tricky and I don’t have a right answer or the perfect way for a team of developers working together without stepping on each others toes.

Source control is an important tool for a CRM developer and not just for teams working with multiple developers on the same project. It’s a vital tool which gives an audit trail of the code and saves the code safely in a repository which acts as a disaster recovery for your code on a developer’s laptop.

Source control will help recover overridden code, but it’s unlikely to stop developers overwriting code.  The most effective method is for different developers to work on separate customizations or give allocate only one developer to work on a single customization.

If multiple developers must work on the same customization then communicate with each other to agree on a way of working

 

 

CRM Developers need Passion

My mission in life is not merely to survive, but to thrive; and to do so with some passion, some compassion, some humor, and some style.

 

If you don’t enjoy CRM development, you will produce poor code and have long days.

Instead

  1. Commit to becoming a better CRM developer
  2. contribute to the CRM community
  3. Keep learning CRM, CRM SDK, 3rd party solutions, Azure, etc
  4. Produce great CRM Solutions

If you do the above you will soon be a CRM Ninja and you can give yourself a silly name like THE HOSK!

I listened to an interview with James McAvoy, he was asked if he enjoy promoting films, McAvoy gave an interesting response

He said interviews weren’t the reason he became an actor, but he was contractually obliged to do them.

The presenter replied “but you seem to be having a good time or are you just acting”

McAvoy replied “I found that by being passionate, committing fully to the task made it more enjoyable for me and the interview and then the day seems to go quicker.”

He went on to say you have to go for it, it costs you more energy, but you get more out of it

Do Life on Purpose

It worked for the interview because it seemed both were enjoying participating and I enjoying listening.   The advice and point of view from McAvoy very interesting and it got me thinking it was relevant to CRM development.

Be Passionate

Successful people are passionate about what they do, this passion brings enthusiasm and drive. Examples of a successful people in your field and you will find a person who enjoys what they do and have a passion for it.

Who are passionate in IT? the first two names that pop into my head were Steve Jobs and Bill Gates.

There are aspects of my work and particular tasks I can find boring, try to be as passionate doing these tasks and the interesting fun tasks.

When you do something with passion you fully commit to the task, If you don’t enjoy your job, the days will be long and unenjoyable.

Quality

I encourage CRM developers to become craftsman, produce the best work they can, which they are proud to say they did.

CRM developers who don’t enjoy work do just enough and produce code and customizations which meet the minimum criteria.  Code which works but is complex (The problems with complex code and complex CRM Customizations), hard to read and difficult to maintain e.g. LEGACY CODE 

Sometimes when legacy code groups itself into a whole system, you can end up in a situation like the excellent Dilbert cartoon below
After you write some code, ask yourself
“is that the best I can do?”

Work is sometimes boring

Some tasks of a CRM developer are not as enjoyable as other tasks e.g.
  • Production builds
  • Importing Data
  • creating loads of fields on an entity
  • Morning 15 minute
  • writing release documents
  • debugging line by line to find a bug

Being a CRM developer can be frustrating,  consider the amount of time spent on doing non-coding tasks

Rudyard Kipling advice to CRM developers

If you can meet writing coding and boring non code tasks
And treat those two impostors just the same;
ours is the Earth and everything that’s in it,
And – which is more – you’ll be a Man, my son!

Just kidding read the full poem If here.

Tackle the boring tasks with effort and you will do a good job, you will finish the task quicker.

Learning

If you don’t enjoy your job it’s difficult to improve, improving at something needs practice, learning, energy, enthusiasm and lots of time.
CRM developers have a lot of information to learn and more to learn all the time with new releases of CRM and new technology being used such as Azure, mobile etc.
CRM developers have a lot to keep up, I have found the best method is to contribute and interact with the CRM community.
One final tip, don’t forget to combine thinking with your passion for CRM.

Passion makes idiots of the cleverest men, and makes the biggest idiots clever.