In this blog post I will tackle the subject of being organised in your CRM development.
CRM developers may not think being organised and structuring their development environment is very important and are already starting to think BORING.
Cluttered and unstructured development environments will contribute to a CRM developer wasting time on a daily basis. Read more to find out why and how you can organise yourself.
It’s OK to be messy outside of work but when developing you should have a professional mindset and be focused, organised and structured in your work.
Why are some people messy and some people tidy?
The brain is a mystery inside a riddle riding on the back of a conundrum, whilst sitting in the ear of a problem. – Hosk
There are thousands of articles on the topic of being tidy/messy, what this says about your personality, how to be tidier. Here is a little brain food snack on the subject
Personally I am a messy person, I seem to enjoy clutter. Maybe I am viewing this the wrong way, Tidy people cannot seem to be comfortable in an untidy/messy room.
If I were to guess I would imagine this must be linked to the brain and perhaps creative people are more comfortable with clutter, maybe due to creativity being an inspirational, unordered processes.
I am not yet persuaded either way with regards to the effects of tidy/untidy desks on a person, I believe tidy people write articles promoting tidy desks and people with untidy desk write articles about the boost in creativity of untidy desks and somewhere in between is a tidy desk with messy drawers full of stuff.
Tidying is a habit
I have trained myself (a bit) and have been trained (nagged) into being tidier and I have found this is a habit. I read this book Level Up Your Day: How to Maximize the 6 Essential Areas of Your Daily Routine which had some interesting
- Tidy up the plates after dinner
- When you have finished lunch
- put the clean washing directly into the drawers and cupboards
- make your bed in the morning
You can also link the habits into a small chain
This article from the excellent Farnham street blog shows tidying and decluttering is a state of mind
The article is excellent (as is the blog), it made me think differently about clutter and why people persistently refuse to throw items away, despite knowing they are unlikely to use them.
I assume it’s part of getting older but I have become less attached to items/things in recent years and I enjoy getting rid of things. Why hoard films, CDs, books I don’t plan on using again. Decluttering is a by-product of having children when you have to get rid of all your stuff to make room for loud plastic toys.
Another article not about actual CRM Development
You might be wondering why is Hosk writing another article which doesn’t contain examples of code or customizations.
If you think how much time you spend actually writing code. In my blog post Should you hire a Rockstar developer for your CRM project?
I mention what non-coding writing tasks developers have to do, not to mention the rule the more senior you become the less code you get to write.
- Gathering/understanding requirements
- Code reviews/mentoring/explaining
- Code Design
Being a developer isn’t just about creating code and customizations, there are lots of other skills and knowledge you need to become a great developer.
Messy developers are wasting time
I said earlier I was an untidy person with a messy desk, my desk could be described
Having these traits as a developer will make your life harder not easier.
Some of the traits mentioned above are signs of a unprofessional\poor development and are mentioned in the article – The problems with complex code and complex CRM Customizations
- Large methods – Monster methods
- confusingly named classes, methods and variables
- methods which do lots of things
- not consistent
- tight coupling
- dependent code
- poorly structured code
The result of complex code is to make the code/customizations hard to understand, modify, debug and extend.
If you were to replace the word method with folder you can see how being disorganised is making your development environment more complex and harder to use. The harder your own development environment is to understand and use the longer everything takes.
Let’s take some points and translate them to the development environment
- Large folders which have lots of different documents in
- No structure to anything
- Poorly named folders, documents
- Internet browsers with lots of disorganised bookmarks
- No Standard approach to Documents
- Ad Hoc approach to TFS projects
The goal of being organised is to make things simplier, easier to understand and use, the same as the goal of writing good customizations – Why your CRM code and customizations should be simple
The concepts can be used when thinking about your development environment.
Manage complexity and make your development environment simplier
I was helping some junior developers set up some project code on their computer. This involved checking some code out of TFS and then doing a bit of configuration.
They started off putting the projects in different locations
Then we needed to get some DLL’s from the CRM SDK, we looked in 3 or 4 locations before we found the right folder.
The problem is only going to get worse the more projects the developer works on and the more versions of CRM which are released.
You might believe I am being picky but consider finding projects, SDK location, CRM tools/solutions, customer are very common tasks a developer will perform multiple times a day. If the developer doesn’t know where these things automatically they will be wasting time every time. This will add cumulatively over time and all these little bits of time will add up to a lot.
Why being organised/structured important for developers
I remember when England won the rugby, Jonny Wilkinson was like the David Beckham of English rugby, always delivering a brilliant performance on the big occasions and indeed kicking the winning drop-kick.
Like David Beckham Jonny Wilkinson was a prodigious practicer, he would spend hours kicking, kicking and then some more kicking.
Wilkinson had a distinctive technique which would involve going through exactly the same steps for every kick, one part of preparing for the kick is putting his hands together
you can read about his technique
Wilkinson himself breaks his regime down into four parts – ball position, measuring the run-up, visualising the ball flight and striking the sweet spot on the ball.
The process Wilkinson goes through during every kick is aimed to focus just on the action of kicking the ball and blocking out all the distractions.
If you compare this to CRM development, there are lots of distractions trying to take your focus away from doing the CRM development
- Where have I put that file
- The internet
You need to block out the distractions and focus on the CRM Development, e.g block out the noise.
What can CRM developers learn from this
In my article 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
If a user stops to think, the user experience goes down and ease of use drops right off, whilst the user searches for clues for where to go or what to do next. This is time wasted thinking about what to do rather than doing it.
A similar experience can happen to developers if they have not organised their development environment.
A disorganized development environment will lead to the developer searching for files/tools/documents/source code instead of developing. If this happens on constant basis the developer can not only have their concentration broken but they can waste lots of time.
Consider the effects of disrupting your focus, developers often need to focus for blocks of hours and disruptions can break you train of thought.
What should be ordered in the developers environment
There are lots of areas of your development environment which should be order the
I believe it’s important to have consistent folder structures on your computer for each of these areas
I put my projects in a folder C:\Projects, I know where to look for each project I have checked out of TFS.
I have a CRM year number (CRM 2013, CRM 2015) off the project folder. Inside the CRM version I have a folders
You will have lots of CRM servers (front end, back end), SQL servers and maybe some other servers.
Have a consisten folder structor and include the same tools on each server.
you could have folder for tools, documentation, config, 3rd party software, Release
It will will help to have a consistent deployment process, this will not only help with the deployment process but will also help you see what has been deployed and older solution files which might be needed to rollback changes.
Don’t have an ever growing list of bookmarks, which slowly grows bigger and bigger.
Use the favourites bar and use folders
Staying up to date with CRM
This isn’t really the development environment but I will add it.
Get an RSS reader software (feedly, Netvibes, outlook, pulse). Subscribe to popular CRM blogs. If you want a list of CRM blogs check out step 1 on the blog Tips to boost your career in Microsoft Dynamics CRM
You can get windows applications but Tweetdeck is a fantastic chrome extension. I would then setup a list to follow some great CRM tweeters.
Create a CRM admin users for each CRM organisation, make this user a deployment administrator. This stops the potential problems which can arise when you lock this functionality to individual users. When the CRM admin, deployment administrator is a single user
The Benefits of an ordered and structured environment
Your development environment should be structured and organised so you can use it quickly, efficently and without thinking.
Your development environment should be consistently structured, so when you switch between projects you know exactly where to look.
The benefit of an organised development environment is it doesn’t slow you down or make you stop to think where to put or where to find items.
Like code you will need to refactor your development environment to ensure it doesn’t get too messy and complex.
Unstructured development environment seems like a small sin but due to the high usage, slower usage will be multiplied many times during a day/week/month/year and could cost a developer a great deal of time by the end of the year.
CRM developers spend enough time on non-coding tasks, don’t reduce the time you have by wasting it on navigating your development environment.