“To see what is in front of one’s nose needs a constant struggle.”
Whilst creating a console app to create email records in CRM I find my CRM dev environment working against me rather than assisting me.
Setting up a CRM environment tasks
- Restore a copy of a CRM organisation
- Configure the custom project data
- Configure CRM settings
- Setting up web service’s (web.config, copying dll‘s)
- Import data (How to create realistic Test Data for your CRM Project and why you should)
- setting up users + security
- testing everything is working
Configuring the data involves having both systems side by side and ensuring environment-specific settings are setup correctly.
Setting up environments is done in copying mode and not thinking mode, which can lead to mistakes.
The frustrating part is I’m not testing but spending time on creating my environment to enable me to test.
Copying and changing data can be done with no need to think.
Create a plan
You were born to win, but to be a winner, you must plan to win, prepare to win, and expect to win.
When creating a test environment, get a piece of paper and create a list of all the items you need to create/import/setup in order for your new Dev environment to be created successfully.
If you don’t create a list, it’s easy to miss important steps. Not having a plan is trying to get to a destination without having a map, you will end up wandering around not knowing how near or far you are.
A common scenario is developers end up, installing and setting up lots of different parts of a new DEV system, not keeping track of what they have done. When the new CRM dev environment doesn’t work they are not sure of the cause because they have changed numerous variables.
If you don’t create a new Dev organization systematically on creation, you will need to work systematically when trying to diagnose the problems.
It will be less frustrating to set up the Dev organisation systematically.
What if it still isn’t working?
Don’t Assume, Know
The above line is a mantra I use when diagnosing problems, which I discuss in this blog post
Make a list of the common problems with setting up your CRM system, check them and tick them off the list.
In this example I found a web service wasn’t working. I tried checking lots of things, before finding the password for the web service app pool user had expired!
I would have found this problem sooner if I hadn’t assumed it was working
As I mention in Sherlock Hosk and the case of the annoying bug you need to work through potential causes, tick them off and narrow the list of potential problems
When debugging, eliminate what isn’t causing the problem and whatever code or customization is left must be the culprit. – Sherlock Hosk
Be a finisher
Don’t give up. Every problem you fix is a step nearer to having a new working Dev environment.
Step back from the task and have a break. This allows you to view problems from a different perspective, giving fresh insights, providing new solutions.
It’s amazing how an impossible problem late one day, is obvious when you start with a fresh mind the next day.
Problems are often solved with clear thinking and not brute force and continued bashing away. It’s easy to get involved in setting up an environment/instance, using effort instead of brains.
Difficult tasks is like navigating a maze, sometimes you need to stop, refocus and realise you have gone down a wrong path.
Don’t suffer in silence
Some developers suffer in silence, other suffer loudly with plenty of swear words :–)
If you get stuck and can’t resolve the problems then try explaining them to a cardboard developer.
This works by explaining the problem to yourself/cardboard developer you are analysing and thinking logically. You are giving your brain time and space to think about the problem.
If you are not making progress then it’s time to ask for help.
Most developers don’t mind helping a fellow developer if they can see the developer has tried lots of solutions but is still stuck. Developers are not so willing to help a lazy developer.
Suffering in silence helps no one, you get frustrated, and the task doesn’t get done.
Part of the job
Setting up new instances or dev environments is a task which isn’t fun or exciting but it has to be done.
It’s in the list with importing solutions to different environments.
It’s better to leave these more manual, less creative tasks to the afternoon when you have depleted your energy, enthusiasm and will power levels.