The Frustrations of a CRM Developer

 

I was reading this article 10 Software Development Frustrations & What You Can Do To Avoid Them!

Being a developer is cool job and most of the time I enjoy it but there are times when it can be the most frustrating job in the world (yes huge exaggeration but I’m being dramatic).  It can make you so angry you want to do this

 

You know the day when you have been at work all day and accomplished nothing, all the things you have tried have failed

It is one of those days when the bugs win

 

Some days you can suffer for the coding art

  • Computer setup agony
  • Internet down – panic
  • spend all day removing code

It coincides with your partner asking

Q.  How was your day today, what did you do?

A.  Nothing, I contributed nothing to the world today

 

The Frustrations of a CRM Developer

I then I was thinking what are the biggest frustrations of CRM developers
  1. Opening a Visual Studio project only to find it doesn’t load or compile
  2. The code in CRM is different to the source code
  3. The cowboy coder who wrote the code has left the company
  4. The Development environments are not in SYNC
  5. A long manual build process
  6. A developers fix breaks lots of other code
  7. No coding standards
  8.  A disturbing lack of documentation
  9. To busy to help
  10. No Structure
  11. Lack of consistency
  12. Customers not working with you
  13. Ambiguous requirements
  14. Tricky 3rd party software
  15. Lack of customer engagement
  16. Microsoft release another new version and you have hardly used the last one
  17. Having to work on a CRM 4 project
  18. Recruitment consultants constantly sending you rubbish jobs
  19. CRM Developer toolkit has become unsynced
  20. F*%kin solution won’t import
  21. NAV, GP and other Microsoft product do not easily sync with Microsoft Dynamics CRM easily
  22. yesterday you spent all day writing some code, today the customer doesn’t want it
  23. IE crashes for 20th time that day
  24. Somebody overwrites you changes in source control
  25. Someone does a sneaky IISRESET
  26. Debugging on the server
  27. A rockstar developer starts at the company and tells you everything you have done is wrong

1.  Opening a Visual Studio project only to find it doesn’t load or compile

You start work on a different project, you eventually find the code in source control, download it.  Open visual studio only to find the flippin code doesn’t compile.  The other developers are all saying “that’s funny, mine compiles”.  Well it’s good that your project compiles but that doesnt help me does it.

Finally someone realises they haven’t checked in some code.

One frustrating morning lost you will never get back

2.  The code in CRM is different to the source code

You are investing a bug, you look at the code and can’t figure out why CRM is working like that.  You inspect the code and find the code deployed is different to the code in source control.

3.  The cowboy coder who wrote the code has left the company

Somehow a cowboy coder was allowed to create project code which is pure spaghetti code without anyone checking any code they had created until they left the company and it was passed to you.  WHAT THE F&%K.  9 times out of 10 that coder was a contractor, it’s funny because it’s true.

4.  The Development environments are not in SYNC

In projects you usually have these environments

  • DEV
  • TEST
  • UAT
  • LIVE

Sometimes these different environments can suddenly start to drift apart and where they were once identical.  Suddenly a bunch of customizations are different.

This brings about a lengthy resyncing process, which is a slow painful experience.

5.  Long manual build process

Some projects have a build process which goes on and on and involves lots of manual checking and copying of files.  Followed by a long tedious documentation process which no ever reads until you miss one bug off the list.

6.  A developers fix breaks lots of other code

A developer checks in a fix, triumptly shouts yes, fixed that bug, woo I’m the man.  Suddenly you notice lots of the code you are testing has suddenly stopped working.

The developer god fixes one bug with one hand whilst throwing in a handful of bugs with the other hand

7.  No coding standards

A project had no coding standards, which the developers understood this to mean they could add bad code to the project.  To add to the complex nature of the project each developer has a completely different formatting style.

8.  A disturbing lack of documentation

You start working on a project and find there is no documentation anywhere.  There are no developers who worked on the project.  No one knows anything about the damn project.

9.  To busy to help

To continue coding you need help from one developer/consultant but that person is too busy to help.  You wait at your desk stranded

10.  No Structure

The code is full of big monster methods and the code is tightly

11.  Lack of consistency

Every plugin is written in a different style, all of them confusing

12.  Customers not working with you

The customer consistently ignore your advice and then later say it’s your fault for delivering what they asked for

13.  Ambiguous requirements

There is often a moment in a project when you question a requirement and it turns out no one can understand the requirement or who specified it.

14.  Tricky 3rd party software

You have to integrate the project with third party software specified by the customer.  The API documentation is rubbish, no one has ever written anything about the software on the whole of the internet.  Oh dear this isn’t going to be easy

15.  Lack of customer engagement

A project which is idea of the CEO of the customer company, unfortunately none of the staff want the software and instead prefer to use excel.

16.  Microsoft release another new version and you have hardly used the last one

Flippin heck Microsoft, stop releasing new version of CRM, I’m still working on CRM 2011 projects.

It’s also very confusing having the year in version so we end up using CRM 2015 in the year 2014.

17.  Having to work on a CRM 4 project

Oh no, the CRM 4 project needs an enhancement adding to it.  Now then can any remember how to deploy a plugin, what the hell are these CRM variables.  AHHHAHHHHHH

18.  Recruitment consultants constantly sending you rubbish jobs

I am not a contractor, stop sending me stupid jobs I’m not intereseted in.

NO I’m not interesting in a Junior .NET in Sheffield, GO AWAY

AND BEFORE YOU ASK, NO I WILL NOT RECOMMEND ANYONE TO YOU

19.  CRM Developer toolkit has become unsynced

Nooooooo, my CRM Developer toolkit has become unsynced and now it won’t compile

20.  F*%kin solution won’t import

Listen solution, will you just frickin import, oh for gods sake, ok I will go an assign all the workflows to my user, there are you happy now.

What idiot deleted a variable and has now added it with the same name but different type.

Oh yeah and the error message won’t give you any idea what is actually wrong.

21.  NAV, GP and other Microsoft product do not easily sync with Microsoft Dynamics CRM easily

Listen I understand all the products have Microsoft in the title but the reality is Microsoft brought these different products and they are completely different.

So no customers I am afraid they do not easily sync with each other.

I pity any developer who has to try and use the Dynamic Connector, it is certainly not dynamic.

22.  Yesterday you spent all day writing some code, today the customer doesn’t want it

Yesterday you spent all day urgently adding in some functionality.  Then the customer decides they don’t want it after all and you have to spend all day taking it out. GRRRRRR

23.  IE crashes for 20th time that day

Why, why, why, why, why does IE keep crashing

24.  Somebody overwrites you changes in source control

A developer doesn’t do a get latest and then overwrites your changes, The dirty rotter

25.  Someone does a sneaky IISRESET

Hey what happen, everything has stopped working, I was in the middle of setting up a lot of complex data in CRM.  Oh you did an IISRESET, Thanks buddy.

26.  Debugging on the server

Hey has anyone else’s CRM frozen.   Oh I see we all have to wait for you to debug your plugin on the server

27.  A rockstar developer starts at the company and tells you everything you have done is wrong

A new hotshot developer starts at the company, to get off on the right foot he tells all the other developers they are doing everything wrong.

3 months later everyone realises the rockstar developer is an idiot and after 6 months Elvis has left the building.

 

If I have missed any please add them in the comments