Personalized Community is here!
Quickly customize your community to find the content you seek.
Have questions on moving to the cloud? Visit the Dynamics 365 Migration Community today! Microsoft’s extensive network of Dynamics AX and Dynamics CRM experts can help.
2021 Release Wave 2Discover the latest updates and new features releasing from October 2021 through March 2022.
2021 release wave 2 plan
The FastTrack program is designed to help you accelerate your Dynamics 365 deployment with confidence.
FastTrack Community | FastTrack Program | Finance and Operations TechTalks | Customer Engagement TechTalks | Upcoming TechTalks | All TechTalks
I was reading an excellent article called Produce more by removing more, it instantly struck me this thought process would be useful for development tasks. The article Which is based on a the book below (which is on my to read list)
Essentialism: The Disciplined Pursuit of Less
We can’t know what obstacles to remove until we are clear on the desired outcome. When we don’t know what we’re really trying to achieve, all change is arbitrary. So ask yourself, “How will we know when we are done?
CRM development, development tasks in general can seem illogical or unquantifiable, a lot of unknowns and tasks which are estimated but which contain elements of risk.
Customers can sometimes forget estimates are best guesses, they should be quite accurate because they are created by developers with plenty of experience of similar customizations but each CRM project and piece of CRM development is different and unforeseen circumstances can interfere with the estimates.
Code needs to work and be all structured
A design of a solution can sometimes be found incorrect late in the day when a developer is developing a certain part in more detail, e.g testing the design theory with a practical exam
Whilst I have talked about the various different tasks in a CRM project it’s worth reminding ourselves of the goal of a CRM project.
The end goal of CRM development is to create quality CRM code and customizations
I have considered some of the tasks of CRM development, the goal of a CRM project is to create a quality project to deliver the required functionality to the customer on time and bug free.
With this knowledge of CRM projects, CRM development is not straight forward, consider the facts below
The tasks above initially seem to make a project take longer but they create better code which has fewer bugs, easy to debug/extend/understand, which will save time later (long term benefits)
When you think about your CRM project, concentrate on
What are all the obstacles standing between me and getting this done
What is the obstacle that, if removed, would make the majority of other obstacles disappear?
Here is a list of of items which could be slowing down your CRM project
In the book Essentialism: The Disciplined Pursuit of Less it uses the excellent phrase of finding your slowest hiker.
A lack of knowledge in your team can slow down the project. The reason is CRM developer make mistakes when learning new customizations or code/customizations they do not have any experience of.
This should be expected and factored into the project, I view this as an investment in time by the employer. The employer will be rewarded with a CRM developer who is more experienced.
The real danger can happen when a CRM developer cannot get the customization to work or their design has a fundamental flaw hidden inside, which only becomes apparent later on in the project. The lack of knowledge can be more of a problem when integrating 3rd party software or WCF services which can be more complicated than more standard CRM development.
The best to method to combat a lack of experience is to have senior developers working on the project. Senior developers can
A senior developer acts like a safety net for junior developers, can provide quick answers or advise on the process a junior developer should tackle an unknown problem. The biggest plus is senior developers can help junior developers from wasting time on problems which senior developers can point them away from before they make them.
Poor quality code can be written quickly but afterwards any interaction with the poor code will be difficult, will take longer and is harder to understand.
Poor code usually is created by inexperienced developers who create complex code The problems with complex code and complex CRM Customizations. Complex code makes any interaction with the code difficult and will take longer. The code is usually created like this due to inexperienced developers or because the code has been rushed (Rushed Code projects do not save time)
Projects can have inefficient processes, one of the main culprits is build processes. Moving the complex CRM solutions can take a lot of time spent
The ideal CRM project is a collaboration between CRM supplier and the customer. When this works it’s a beautiful thing, the CRM supplier brings the CRM expertise, the customer brings their detailed business knowledge.
Unfortunately many times it doesn’t happen this way. Sometimes customers can decide to make technical design decisions or demand customizations which are not recommended by the CRM supplier.
A common mistake for the CRM supplier is making incorrect assumptions about business logic or creating code with design flaws or bugs.
A common problem in CRM projects is when a customer constantly changes requirements. Below are the common reasons for constant requirement change
Messy and poorly set-up development environments can make development difficult. Development on CRM projects can often involve multiple developers working from different locations.
Development environments don’t usually make development any easier but a poor development environment can slow things down.
Slow developer computers
Slow development environment
It doesn’t make sense to pay CRM developers lots of money to do their job and to slow them down with poor hardware. Slow hardware has a cumulative effect of slowing development by small amounts many times a day, 5 days a week, 52 weeks a year. It all adds up to many productive hours being lost whilst the CRM Developer waits for his computer or the environment to do it’s thing.
Missing requirements can cause problems
A project with a lot of inexperienced team members can slow down development
In my article Should you hire a rockstar developer for your CRM project, it mentions these points about inexperienced CRM Developers
Experience and CRM Development (and possible development in general) can be summed up by this quote
Inexperienced developers make complex solutions to simple problems
Experienced developers make simple solutions to complex problems.
I have previously talked about experienced developers in this articles
Should you hire a rockstar developer for your CRM project
Experienced developers keep the project on track, help inexperienced members and act as a safety net to stop major problems with a project. Experienced Developers are particular important for the design stage of projects or if a large problems suddenly appears.
Flawed designs are not usually obvious and the flaw often comes to light when development on a section of the solution is investigating at a deeper level. A flawed design is usually due to unforeseen limitations of 3rd party software or some missing/misunderstood requirement
complex code and a lack of unit testing/peer reviews can mean many bugs make it into the production environment
Sometimes projects have too many people to discuss and inform about project decisions. Like trying to agree a party date with a big family (someone always can’t make one day) you can end up discussing availability and other topics instead of the project.
The amount of time wasted in meetings is staggering. Think about all the pointless meetings and the many times people attended meetings they didn’t need to be in.
In some projects telephone meetings can become a habit.
I’m not against all meetings, an effective meeting can save lots of interactions (email, phone) but I recommend analysing who attends meetings and ensuring you can justify everyone’s attendance.
In large organisations IT requests can take weeks, in some situations this can be a bottleneck for CRM projects.
If this is constantly slowing the CRM Project down it needs to be raised with the customer and faster path needs to be arranged
Sometimes certain people can slow down entire projects. It could be a customer wants to do all the tasks and their workload is too large.
It could be only one person on the team has knowledge about a particular process or 3rd party software.
I have gone through some of the common problems in CRM projects, the next step is to identify and remove those problems.
I will admit I love the saying Identify your slowest hiker but I also like the idea. Most projects speed up development process by adding more resources, this is usually effective (although you can get in a situation where you have too many developers who are constantly getting in each others way).
Identifying the slowest hiker is looking at your development environment, the team and the processes to see where your bottle necks.
It could be things like
Once you have audited your Development team, processes and environments the next step is to improve them.
Each CRM Project and CRM environment is different but many lessons and improvements found can be made into best practices for other CRM projects.
Like the design of a solution the design of the CRM Project team is an important step before the project begins.
Changing team members and resources after a project has begun will mean the incoming project team members will have to quickly understand the business rules/logic. The new team members will be considerably less efficient than the current team members (who have a wealth of business logic) who are in the project flow.
It’s better to make project team changes earlier rather than later to give the new team members as much time to learn about the business logic/rules and more time to make a positive impact on the project.
Removing obstacles in CRM projects can sometimes be quick but sometimes can involve changing project processes on a company level
Changes to factors controlled by the customer are best tackled by discussing the issues and both the CRM solution provider and customer working together to find practical solutions. Ultimately it will be in the customers benefit to improve the speed of the project but change is never easy.
Changes on the customer side are the customers prerogative but if you don’t raise the issues with the customer then no improvements will be made, if you raise the issues you have a small chance of improvements :-)
I hoped you enjoyed the article and this was an interesting way to look at the speed/efficency of your CRM Projects.
Some of the solutions focus on improving the quality of your CRM project, the idea being better quality code is easier to work with and results in fewer bugs getting out of the development environment and into the production environment.
Team members of a CRM Project ideally you want to get right at the start of the project due to the time it takes to new members to acclimatise to the new project and learn the business rules/business logic of a project.
Improving the delivery speed of your projects might not always involve adding more people, an interesting thought.
Business Applications communities