The difficulties of scaled agile projects

There are many projects which are Agile in name but chaos in reality #HoskWisdom

The Agile framework is like a person with a hammer, all problems look like nails and all projects look like Agile projects #HoskWisdom


Agile/Scrum used on large/enterprise projects with multiple Scrum teams, scaled Agile increases the complexity of a project and if not managed, adding more people can slow projects because there is a cost to adding more people to a project and increasing complexity.

Many agile project require an increase in velocity to meet an earlier completion date, the common method is to add more people to the project.

These Brooks quotes, author of the Mythical man month are apt
Adding manpower to a late software project makes it later. Fred Brooks
The bearing of a child takes nine months, no matter how many women are assigned. Fred Brooks

Adding more resources (usually developers) to a project would seem sensible.  If one team have a velocity of 25 story points Sprint (Story points gets internally translated to days by 91 percent of the population #HoskWisdom).  So if there are 4 teams a velocity of 100 story points per sprint.

The reality is teams and individuals don’t start delivering 100 percent instantly because there are other factors to consider.

Increasing people on a project increases complexity of working, collaborating and communicating #HoskWisdom

These other factors have been explained by Brooks Law

Brooks Law

 Brooks points to the main factors that explain why it works this way:
  1. It takes some time for the people added to a project to become productive. Brooks calls this the “ramp up” time. Software projects are complex engineering endeavors, and new workers on the project must first become educated about the work that has preceded them; this education requires diverting resources already working on the project, temporarily diminishing their productivity while the new workers are not yet contributing meaningfully. Each new worker also needs to integrate with a team composed of several engineers who must educate the new worker in their area of expertise in the code base, day by day. In addition to reducing the contribution of experienced workers (because of the need to train), new workers may even make negative contributions, for example, if they introduce bugs that move the project further from completion.
  2. 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.
  3. Limited divisibility of tasks. Adding more people to a highly divisible task such as reaping a field by hand decreases the overall task duration (up to the point where additional workers get in each other’s way). Some tasks are less divisible; Brooks points out that while it takes one woman nine months to make one baby, “nine women can’t make a baby in one month”.
The problems associated with adding new teams is ramping up, individuals need to learn/understand
  • Business logic
  • Project processes
  • Best resources for situations
  • Project politics
  • Collaborate with others

A scrum team takes 2 sprints to get up to  speed, usually 50% efficiency for sprint 1 and 60/70% in Sprint 2.  When you add the added overhead of trying to collaborate with other teams this can slow new teams further and slow existing teams.  

Deadlines are the common cause of adding more people to a project which adds more pressure to the project and the newly arriving people.

A big overhead is integrating the work from multiple teams into one solution, even with continuous integration there will be problems when bringing solutions together


Sutherland one of the creators of Scrum mentions scaling in this article

InfoQ: Now that more and more larger organizations are using Scrum, the need for scaling increases. Can you give some suggestions how organizations can scale Scrum?

Sutherland: Scrum is designed to grow like a biological system. To create a baby, you need one good cell that replicates. If this cell is bad you have a lot of problems. So the challenge is to first get a single team successful to use as a model for other teams, then replicate it. As you grow, Scrum as large follows the same basic principles as Scrum in the small. If it doesn’t you have introduced waste into the system. You will build out organ systems, just as in the human body that have some specialization and need some training on how to handle cross team coordination, elevating impediments all the way to senior management, avoiding the introduction of unnecessary teams that can compromise performance, and scrumming the entire organization.

We have published several papers showing that a properly scaled Scrum can provide linear increases in global velocity, something never seen before in software development. However, you need to do Scrum really well to make this happen.

Hosk thoughts on scaling agile projects

The first rule of large agile projects is not to do large agile projects #HoskWisdom

Large Agile or Scrum projects are difficult but this doesn’t mean Agile/Scrum are not right for large projects because large projects are difficult and have similar problems no matter the framework or methodology used.

Agile projects have an extra dimension because quick decisions are needed from empowered product owners to give Scrum direction and feedback

Having multiple teams adds the need for more communication and collaboration and managing dependencies between teams.

There are lots of different scaled agile frameworks, many of them discussed in article below

Comparing scaling agile frameworks

Most of the frameworks try to solve problems with shared resources between teams and collaboration between teams (Scrum of Scrums meeting).

If you want existing teams working efficiently, you must remove project level impediments before adding new teams.  When a team works well then try adding one more team at a time.

There are other reasons for project troubles

Is Safe Evil


Big projects are difficult, hard and challenging and having people with experience of large projects helps.  There is pressure with big agile projects because sprinting and collaborating create conflicts and complexity.

Stick with the processes and aim to keep improving your processes and relationships.  Challenging projects are the most satisfying to deliver because you have to work hard and earn the achievement of a successfully delivered project.

A few last great quotes from Fred Brooks on why projects are delivered late
Fifth, when schedule slippage is recognized, the natural (and traditional) response is to add manpower. Like dousing a fire with gasoline, this makes matters worse, much worse. More fire requires more gasoline, and thus begins a regenerative cycle which ends in disaster. [page 14]

How does a project get to be a year behind schedule? One day at a time. Fred Brooks

picture from here

The Top 10 Hosk Dynamics CRM blog posts for 2016

Once you replace negative thoughts with positive ones, you’ll start having positive results. Willie Nelson

The company that needs Microsoft Dynamics CRM, and hasn’t bought it, is already paying for it #HoskWisdom

I have written Dynamics CRM blogs for 6 years and this year I got the most views in a year 673873,  beating last years numbers 661057.  Thanks to all the people who read my blog posts and support the Hosk Dynamics CRM blog post.

I have written blog posts so long the default category is CRM 2011!

A lot of people have told me this year how the Hosk Dynamics CRM blog post has helped them which is great.

Here is a list of the most viewed blog post in 2016 (I am always tempted to write CRM 2016, that will now stop with Dynamics 365).  The views don’t include articles viewed on other sites.

Home page / Archives 48326
CRM 2013 – Understanding Solutions and how they work 13408
Microsoft Dynamics CRM Developer Interview Questions 12904
CRM 2013 – Step by Step Update Plugin Tutorial using the CRM 2013 Development Toolkit 11382
What are the limitations of Microsoft Dynamics CRM Online and how do you work with them? 10162
CRM 2015/CRM2013 – JavaScipt to get the current users name 9753
CRM 2013 – Javascript to get id of current record 7370
CRM 2015 – how to find Statecode value 7141
MB2-703 – CRM 2013 Customization and Configuration Certification Information 7131
CRM Plugins – Stopping infinite loops and understanding PluginExecutionContext.Depth 7005
Where is the CRM Developer toolkit for CRM 2015? 7004

image from here

In Praise of the Incomplete Dynamics 365 consultant

If you’re not making mistakes, then you’re not doing anything. I’m positive that a doer makes mistakes. John Wooden

We are what we repeatedly do.  Excellencethen, is not an act, but a habit. Aristotle

During dynamics CRM projects there are many scenarios when something goes wrong.  Mistakes shouldn’t surprise us, CRM projects are complex, involving multiple people, processes and goals.

A project is organised chaos, setbacks and mistakes can lower affect the morale of the team but when mistake’s are opportunity to make strategic decisions to put the project back in the right direction, ensuring you are delivering the business goals

Don’t be surprised when mistakes happen during a Dynamics 365 project, be prepared #HoskWisdom 


In the excellent book The Mythical Man-month: Essays on Software Engineering Brooks challenges adding more people to a project to shorten time scales, highlighted by this quote

Adding manpower to a late software project makes it later.”
― Frederick P. Brooks Jr.Mythical Man-Month, The: Essays on Software Engineering

In the Mythical man-month Brooks discusses communication overhead, described here  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. 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.”

Microsoft Dynamics 365 CRM projects meet project complexity overhead when a team works on different parts of a project becoming difficult to understand what other people are doing and how their information affects the CRM project.

The book The Checklist Manifesto: How to Get Things RightAtul Gawande examines complexity and knowledge.  A problem doctors face is not having the required knowledge to cure patients but understanding what treatment should be used among a list of possibilities.  The increase in medical understanding has doctors struggling to make the correct diagnoses in time.

“sometime over the last several decades—and its only over the last several decades—science has filled in enough knowledge to make ineptitude as much our struggle as ignorance.”

― Atul GawandeThe Checklist Manifesto: How to Get Things Right

Microsoft Dynamics 365 projects involve teams working on different partscollecting customers’ requirements and creating technical solution. The difficult to create CRM solutions aligned with business requirements, constraints and limitations required by the business, it’s a great breeding ground for mistakes and missteps.

Microsoft Dynamics 365 projects have many moving pieces with different directions and purposes.  You can’t focus on each piece because you need to understand the whole picture and overall strategy.  Dynamics 365 projects focus on many tasks and trying to understand the overall strategy can lead to mistakes because it‘s difficult to focus on many parts of a project with the same intensity.

Think like a datacentre

data center must not fail to keep within it‘s 99.9% uptime promise,  when failure occurs, it must recover because that what the customers pay for.

Microsoft Azure’s data centres need a strategy not to avoid hardware failure but to cope with hardware failure and not lose service.  Microsoft Azure allow you to choose different availability sets to reduce the likely hood of your servers being on the same rack, datacentre and country.

I’m not suggested you work on a project with the aim to fail but you should be prepared there will be mistakes and you must learn from them and not let mistake turn into failure.

Incomplete Leader

The article the In praise of the incomplete leader inspired me to write a CRM version, the quote below gives a flavour.

It’s time to end the myth of the complete leader: the flawless person at the top who’s got it figured out. The sooner leaders stop trying to be all things to all peoplethe better off their organizations will be

The leader’s job is no longer to command and control but to cultivate and coördinate the actions of others at all levels of the organization. Only when leaders come to see themselves as incomplete—as having both strengths and weaknesses—will they be able to make up for their missing skills by relying on others.

Incompleteness and Dynamics 365 Professionals

Incompleteness is a fact of life in the Microsoft Dynamics CRM professional, we
  • Incomplete requirements
  • Incomplete solutions
  • incomplete code
  • Incomplete knowledge
  • Incorrect estimates
  • incomplete knowledge of the project due to communication overhead issues + time issues

Customers expect dynamics 365 consultants and developers to be experts Microsoft Dynamics 365, Dynamics 365 professionals expect customers to be experts in their business, capturing their requirements, limitations and complexities of their business.

There is too much to knowtoo many distractions, not enough time in an IT project.  During a project mistakes are likely, we can miss something, not collect all requirements and there is plenty of scope for misinterpreting the requirements.

We shouldn’t be surprised when things go wrong or off track because this happens with people, complex requirements, complex solutions.

Two things are important

  • communication
  • relationships

When you add the two factors together you get collaboration.  Collaboration is a vital ingredient to a successful project and if you have worked on an unsuccessful project, you will find problems in the relationship and communication which created an environment ineffectual collaboration

Internal collaboration

CRM professionals won’t know everything individually, to be effective you must use the experience, knowledge and ideas of your colleagues.  The size and breath of CRM and related services means no one CRM professional can have deep knowledge of all new CRM features and new products.

Group knowledge/experience is key to delivering projects which don’t implement customisation not suited to the business requirements or might cause problems later down the line.

One attribute of CRM professional is to know when to get help or delegate part of the project to someone who specialises in that area.

Four Capabilities

leadership as a set of four capabilities: sensemaking (understanding the context in which a company and its people operate), relating (building relationships within and across organizations), visioning(creating a compelling picture of the future), and inventing (developing new ways to achieve the vision).


Business requirements must always drive solutions, if a CRM solution is not aligned to a customers business needs it won’t make a significant impact or deliver significant gains to the customer.  When gather requirements the key is to ask the right questions, to do this you have to understand the context of the company and how it operates.

Microsoft Dynamics CRM has generic functionality for sales, marketing, case management etc, most companies do not have generic requirements.  Companies want you to tailor the CRM solution to fit their individual way of working and their particularly business needs.

When gather requirements you must constantly relate them to the companies needs, goals to ensure you solution makes a business impact.

When demoing functionality the CRM professional must simplify the functionality to enable the user to understand what it does and how it works.  On the other side try to get the business users to simplify their requirements and remove any ambiguity.

Sometimes it‘s a case of the CRM professional keep working, understanding the business will help you understand the business requirements.  When you understand the reason behind a business requirement it‘s easier to understand and explain to other members of the team.


A successful project builds on the foundation of a good working relationship between the users and the CRM professional.   During the project you spend time asking the team to do things for the project, the better your relationship the quicker and better the users will carry out those tasks.

The key to building a good relationship is to understand the users perspective and present information so they can understand it.  Encourage input and listen to their options.  Successfull projects are collaborations between the user (business knowledge) and the CRM team (technical CRM knowledge).  Unsuccessful projects occur is when one side is to dominate or doesn’t listen to the other sides opinion.

The article called the key point is you when you understand where the user is coming from you can relate to their business requirements and functionality needed.  CRM professionals will find customers can find it hard to relate to Microsoft Dynamics 365 functionality you should use the customers business language and terminology to help visualise the solution.


You gather requirements, user stories which you use to create a solution.  The features of the solution must be easily traced back to the business goals/objectives.  When creating a solution create a compelling vision of the future and sell this to the customer, they must believe this will make their working life better by helping them to their job more effectively.

When creating the solution get input from the business and technical experts with deep knowledge of Dynamics 365 functionality.  Feedback from business users and technical experts is vital at these stage, you must find flaws and problem areas.  A useful tool is a premortem where you predict the source of problems with the solution and investigate it.

The problems you find in the designing the solution are easier to fix before you started creating the solution.  Problems you find later means rewriting code or reworking a customisation as well as designing an alternative which fits the constraints of an existing solution.

Don’t let bugs get into production environments


The customer needs to be prepared for the incomplete solution, it‘s this time when missed requirements, incomplete requirements and misunderstood requirements can distort the solution to not forefill the customers requirements.  Mmisaligned solutions are often assumptions not fully questioned.

A key part of delivering is to make sure the users get trained on the new system, customers can get frustrated and annoyed if they don’t understand how to use it.  The new system instead of helping them do their work, hinders the user because they can’t do something or it takes longer than the old familiar system.


Successfully delivering a project is an art not a science, you will make mistakes along the way.  A team delivers a project and the more people you have contributing the better it will be.

Projects must relate to the business goals, processes and the people who work there.  When project teams focus too much on technical solutions they can lose sight of the real purpose of the project and the CRM solution, help users archive business goals, which helps the business execute it‘s business strategy.

There are no secrets to success. It is the result of preparation, hard work, and learning from failure. Colin Powell

If someone does make a mistake, make sure they get given the Fail Fairy – The Fairy of failure – Who broke the build

The Birmingham Dynamics 365 user groups historic first meeting

“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

Work is not about being clever it’s about working together

The Birmingham Dynamics 365 user group meeting and 15 people meet up at the chambers of commerce to discuss Dynamics 365 – Dynamics 365, What is it, Pros, Cons?

Group details

  1.  Check out the official meetup page and sign up – Birmingham Dynamics 365 user group
  2. To understand why you should join read this blog post – Birmingham Dynamics 365 User Group has startedJoin now
  3. We have 56 members and new members are joining all the time
  4. We plan on meeting once a month and having a deep dive on new Dynamics 365 features and functionality
  5. The group has great CRM professionals, including a CRM MPV – Neil Parkhurst USD MVP – who blogged a

The first meeting

The meeting started with a small talk from Neil Parkhurst summarising the recent CRM MVP summit.  Unfortunately due to the NDA he couldn’t tell use the details but it was interesting to hear about the work which goes into becoming a CRM MVP and  the MVP summit experience.

15 people turned up to the first meeting and the Dynamics 365 presentation produced interesting discussion on Dynamics 365, everyone’s understanding of it and how it will affect the future of Dynamics professionals and solutions.

bout the first meeting – new user group up and running 

I think the group will grow from strength to strength with more people turning up for meetings and I’m looking forward to seeing some interesting presentations and discussions.

The Hosk Blog

A few people at the meeting  thanked me for the content I published on my Dynamics CRM blog, it‘s great and humbling to know sharing my experiences and knowledge on Dynamics CRM has helped people.

When I started out blogging about Dynamics CRM, the goals of blogging was

  • Increase my knowledge on Dynamics CRM by explaining it to others
  • log errors and workarounds to help myself and others
  • An online brain dump for issues I had resolved
  • develop my understanding of how Dynamics CRM works

My goals focuesd on improving myself and improving my understanding of Dynamics CRM.  I have blogged about Dynamics CRM for years and I am meeting quite a few people recenctly who thank me for writing my blog posts and explain how my blog helped them either learn to develop Dynamics CRM solutions or helped resolve a problem.

I appreciate the great comments and I’m glad other people find the blog useful.

Two people who helped my blog

  • CRM MVP Adam Vero has left many comments which corrected parts of my blog posts and encouraged me to keep writing my blog
  • CRM MVP Gus Gonzalez who encouraged me to create posts featuring my own thoughts and ideas (the first 500 blog posts were of poor quality)

I’m not a CRM MVP but I’m glad the Hosk CRM blog has helped lots of people in the Dynamics CRM community.  Blog writing persistence pays off because I am meeting more and more people who tell me they are readers of my blog.

It gives me a platform to annoy people like Adam with #HoskWisdom to poor subsribers expected Dynamics 365/CRM posts but instead get some HoskWisdom

Signup, learn and have fun

If you live in the Midlands please sign up for the user group and meet excellent Dynamics professionals sharing experience, knowledge, opinions and stories on Dynamics 365 development.

I look forward to more interesting presentations and learning points from future meetings.

Great thanks to Imtiaz for setting up the Dynamics 365 user group


Programmers imagine #NoEstimates

Estimates aren’t bad, but there usage is #NoEstimates #HoskWisdom

Estimates are often incorrect, a waste of time and misused, why do we bother #NoEstimates #HoskWisdom

I heard the words today – Imagine a life with no estimates, for a developer this is a radical idea, particularly if you consider most developers have been beaten with an estimate at some point.

The word imagine instantly made me think of the John Lennon song Imagine

I progressed to imagining the song with the lyrics changed to focus estimating or #NoEstimates, I have done something similar in the blog post Why CRM Developers should always start with the CRM SDK changing Gunnery Sergeant Hartman: Pray! to focus on the Microsoft Dynamics CRM SDK

CRM developers: [chanting]

This is my CRM SDK. There are many others like it, but this one is mine. My CRM SDK is my best friend. It is my life. I must master it as I must master my life. Without me, my CRM SDK is useless. Without my CRM SDK , I am useless.   I must development with my CRM SDK true.  I will.

Before Hosk I swear this creed: my CRM SDK and myself are defenders of my CRM Solution, we are the masters of the CRM Solution, we are the saviours the CRM Solution. So be it, until there is are no bugs, but peace in CRM dev land. Amen.


Here is Imagine no Estimates

Imagine there’s no Estimates
It’s easy if you try
No reports to management for us
Above us only sky
Imagine all the programmers
Writing code for today… Aha-ah…

Imagine there’s no deadlines
It isn’t hard to do
Nothing to deliver late for
And no requirement changes, too
Imagine all the programmers
Writing code in peace… You…

You may say I’m a dreamer
But I’m not the only one
I hope someday you’ll join us
And developers will be as one
(expect arguing about which programming language is best)

Imagine no documentation
I wonder if you can
No need for Word or Powerpoint
A brotherhood of devs, man
Imagine all the programmers
Sharing all their code… You…

You may say I’m a dreamer
But I’m not the only one
I hope someday you’ll join us
And the programmers will live as one

image from here

How to evaluate job offers for Microsoft Dynamics 365 roles


Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do.

Steve Jobs


It‘s likely as a Microsoft Dynamics CRM professional you will move jobs several times, particularly with recruitment consultants on LinkedIn sending potential jobs to CRM professionals on a regular basis.

What should you consider when evaluating job offer’s, why should you take one job offer over another?


We keep moving forward, opening new doors, and doing new things, because we’re curious and curiosity keeps leading us down new paths.
Walt Disney

In this article Job Hopping Is the ‘New Normal’ for Millennials: Three Ways to Prevent a Human Resource Nightmare has a great quote

Ninety-one percent of Millennials (born between 1977-1997) expect to stay in a job for less than three years, according to the Future Workplace Multiple Generations @ Work” survey of 1,189 employees and 150 managers. That means they would have 15 – 20 jobs over the course of their working lives!

The Dynamics recruiters Nigel Frank do a survey of Dynamics professionals every, it has a lot more detail than just the average salary Dynamic CRM Salary survey 2016

34% plan to leave their current job within 12 months (if you listen carefully you can hear recruitment consultants cheering)

34.3% said the reason to move job was lack of Leadership & vision

You need to manage your own career because it‘s unlikely you stay at one company for your whole career you can’t let your employer manage it.  The question of who you work for? is important because you work for yourself and you should ensure you are doing what’s best for your career. 

Identify your dream job and work out

  • What skills and experience do you need for that job
  • Who do you need to network with
  • What is the career path to get to the dream job

People struggle to come up with an answer or don’t know their dream job, it‘s difficult but you should persist., this questions can help

  • What roles have you enjoyed working in?
  • What roles don’t you like?
  • What have you enjoyed doing in your job?
  • Do you like the technical side of Dynamics CRM jobs e.g. coding?
  • What job do you see yourself doing in 5 years, 10 years?

here is a list the common Microsoft dynamics CRM roles, do any appeal?

Senior/Lead Developer
Solution Architect

You will need to climb the ladder of Junior, standard and senior for most roles.

The more thinking you do the closer you get to understanding what you like and don’t like and what your dream role will involve doing.

Once you identify your dream job you can work backwards and plot your route and make a plan.  You can use this information with you current employer and work out ways they can help you get the relevant skills and experience in your yearly appraisal.

When you know you perfect job, you can focus your time and effort in moving towards that role.

Don’t just move for more pay

You should know the average wage for your current position and the wage for roles you applying for, knowing the average wage is a useful bargaining tool to take into your review.  It gives an anchor to the discussion and offers an impartial view of an average wage in the industry.  If you move somewhere which is paying below the market average then you could get more if you moved somewhere else.

Money is important and you should make sure you are getting the going rate for you position but money won’t make you happy in a role.

Money isn’t the most important factor, unless you find out someone in the company is getting paid more than you for the same role #HoskWisdom


Money will stop motivating you and there are many other aspects of the jobs which can make work enjoyable.  

You are at work at least 8 hours a day, you should try to ensure you are doing work you enjoy.

What to consider on job offers

When you have a job offer(s), compare the job offer(s) with your current job.  I like to make a list of the pro’s and the con’s of each position and give them a value between 1-10.   I use a general list (below) and add extra points if they are relevant.

I use a list because it allows you to compare different roles using the same criteria and give more points to factors which are important to you.

This list below is useful as a guide to help you create some questions for the company before your interview.

Job role

Role is important because what you will do and the experience you will get from the role.


compare salary and benefits

Career progression

What is the potential for career progression, what is the companies view of promoting internally.  How do your bosses see your potential and future at the company.


What experience will you get in the role, what projects you will be working on.   Experience can be measured on project size, role, technologies used.


What is the culture of the company? does it fit with how you like to work and your values.


Location is important because if you can reduce commuting time you will save hours of your life you can spend with your family, friends or doing something else

Company size – Pond size

Do you want to work for a big company or a smaller company?  This will effect your impact on the company, in a small company you will have responsibility because there isn’t anyone else to do it.

Larger companies have bigger resources and usually pay better but you might have to accept you are a smaller fish in a big pond.


How is the CRM team structured?

Learning potential

What is the potential to learn at the company?  Is there training material, will you go o n training courses? are there senior CRM professionals for you to learn from?

This blog has some other factors to consider

16 Factors to Consider When Comparing Two Or More Job Offers

You can add other points to consider, the list above its a list to start with.

List done, then what?

Once you have created the list you should have a score for each role and this can give you something to think about.

I recommend sleeping on it and looking at the results of the list again the next day.

Do some research on the company and see if anyone in your network has worked there or is currently working there, they will be able to give you a first hand account of what its like.

Talk the decision through with other people in your network, other people can often give you a considered opinion and can often give you a different perspective on your different options.


Finish a role the same way you started the role with enthusiasm and effort.  You will be asked for a reference and you may work again with the company or quite likely with some of the people from the company.  People who leave jobs badly are not easily forgotten

Why do people stay in boring jobs?

 If you are going for an interview make sure you read the blog post below

Microsoft Dynamics CRM Developer Interview Questions

Hosk’s Top CRM Articles of the week – 27th June


I hated every minute of training, but I said, ‘Don’t quit. Suffer now and live the rest of your life as a champion.

Muhammad Ali


  • A company can save money on all parts of the business, but never on ideas #HoskWisdom
  • Training and learning are not the same thing. Many people learn nothing from attending training sessions. #HoskWisdom
  • Learning can happen anytime and anywhere you want it to #HoskWisdom
  • Stay curious and question everything #HoskWisdom
  • A CRM project is a way to align your business objectives with a CRM solution #HoskWisdom
  • Curiosity leads people to opportunities, courage turns opportunities into success #HoskWisdom
  • If you think you are always right, then you are wrong more than you know #HoskWisdom
  • If you want to make strategic decisions you must make time to think #HoskWisdom
  • Tell customers what to expect in their CRM projects so they don’t overreact to bumps in the road #HoskWisdom
  • The value of a CRM project to a customer should be more than the price #HoskWisdom
  • Justify the price of a CRM project, do not apologise for it #HoskWisdom
  • Every CRM project is a success or failure before it has started #HoskWisdom
  • You don’t get requirements from companies you get them from people #HoskWisdom
  • Don’t react, instead think then act #HoskWisdom

Want #HoskWisdom then follow #HoskWisdom or follow @BenHosk

Article of the week


Best of the Rest

comparing CRM Online with CRM On Premise

Why Code Readability is important

Forms in Microsoft Dynamics CRM 2016 which can’t be missed

MB2-712 – CRM 2016 customisation and configuration Hosk study notes

interesting way of using a blog
Microsoft Dynamics CRM 2011 Notebook
Microsoft Dynamics CRM 2013 Notebook

Dynamics CRM’s invisible man: the Delegated Administrator

Unhandled Exception: An easy guide to interpret Dynamics CRM error messages

Thoughts on CRM Design and converting user requirements to CRM solutions

CRM diagnostic now available in Office 365 Support and Recovery Assistant (SaRA)

CRM 2016 – What you need to know about Themes

Migrating old CRM KB Article data to the new Knowledge Article

The importance of keeping the same guids between CRM instances

Unhandled Exception: An easy guide to interpret Dynamics CRM error messages.

CRM 2016 – Import error – A validation error picklist is outside of the valid range

Koen’s CRM Blog – CRM Giants

Why isn’t code reused in Microsoft Dynamic CRM projects?


Today’s Employees Expect Their Employers to Be Digital…Are You?

This Is What Actually Happens to Your Body When You Don’t Get Enough Sleep

Netflix is on a path to dominate the world, but will its culture survive?

Microsoft: Nearly one in three Azure virtual machines now are running Linux

The Management Myth

Google Reveals Its 9 Principles of Innovation

Don’t just code: Career advice from the programming masters

Where the web is going in 2016

The Hosk is currently reading

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 1000 articles, surely I should have said a few memorable things

Hosk’s Top CRM Articles of the week – 6th June


A small bug can bring down a great Microsoft Dynamics CRM project


The question isn’t who is going to let me; it’s who is going to stop me

Ayn Rand


Article of the week

Introduction to Project Service in CRM 2016 Update 1

Great article on Project services

Best of the Rest

What is the purpose of a CRM Practice

What’s New in Microsoft Social Engagement (Update 1.4)

Workflows in Dynamics CRM

CRM and Microsoft Flow

CRM and Machine learning

CRM 2016 – Why can’t I add a business rule to the Article entity

Use GetValueOrDefault in early bound plugins and say goodbye to catching nulls

Why developers need to be organised and stop wasting time

You can now create Customer field type with CRM 2016 Update 1

Have you wondered why the address fields do not appear on CRM import templates? Here’s the answer.

Enable custom entity for Interactive Service hub in CRM 2016 update 1

Microsoft Sets the Stage for IoT-Enabled CRM 

Organisation Insights Dashboard in Dynamics CRM


Emirates steals the show with the Los Angeles Dodgers | Baseball | Emirates


Successful teams have these four things in common. 

4 Ways to Be More Effective at Execution

The Wisdom of Crowds and The Expert Squeeze

How Disney reinvented itself 

How to Work Alone

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 1000 articles, surely I should have said a few memorable things

CRM 2016 – Why can’t I add a business rule to the Article entity

I never learn anything talking. I only learn things when I ask questions.

Lou Holtz


Welcome to a new episode of Ask Hosk, where I answer a Hosk CRM readers question.

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.

Previous Ask Hosk Questions


Good day to you. I have been reading your post at

CRM 2013 – Businses rule workings, limitations and exam notes

I am quite new to Dynamics CRM so please excuse me, but i am trying to do some business rules for the Articles entity but the option is grayed out. Furthermore when i go to “Customize Entity”, under the Articles entity there is no Business rule option. What am i missing here because according to your post it seems that business rules are available for all entities whether default or custom.

Hosk Answer

This was an interesting question and I’m not sure of the answer but I can put my best guess.  I had seen something system entities before either in a blog post or study for the customisation and config exam, when I mention system entities I am referring to entities which you cannot edit like SystemJob

The first task is to make sure I couldn’t add a business rule, make sure the user was looking in the right place and it wasn’t a permissions issue. NEVER ASSUME THE USER IS NOT DOING SOMETHING SILLY, check the silly things and cross them off.

The article entity is not your standard entity because there are lots of things greyed out

Article Entity question

Notice there is no option for business rules, it seems the Hosk CRM blog reader was right

Article Entity question 1

I was searching through my entity related posts to see if I had the answer

Then I found some answers in my CRM 2013 – entities and fields revision page (highlighting why doing the customization and configuration certification has value)

This gave me some interesting limitations/facts about entities

  • Microsoft Dynamics CRM default instance starts with more than 260 systems entities but which many are hidden from the UI
  • There are two types of entities – Custom entities and system entities
  • More than 90 system entities can be customized
  • Some system entities cannot be customized e.g. system job
  • Entities which can be customized (system and custom) are known as customizable entities
  • Not all components of a customizable entity can be customized e.g. system fields like created on cannot be deleted
  • IF an entity is selected as an activity this cannot be undone
  • System entities cannot be deleted

Interesting things to consider but they weren’t helping solve this problem, I remember one of my CRM developer maxims, always start with the CRM SDK and there is a good page on entities

Introduction to entities in Microsoft Dynamics CRM

I’m guessing not people have read this page because entities are easy to understand but this is a great example why you should read the CRM SDK, there are lots of useful information on this page, I recall coming to this page a few times whilst writing these blogs

It’s here where it gives us an idea of how Entities are structure

Creating an entity record (or, simply a record) in Microsoft Dynamics CRM is like adding a row in a database table. The entities are divided into three categories: system, business, and custom. As a developer working with business data, you will use business and custom entities. System entities are used by Microsoft Dynamics CRM to handle all internal processes, such as workflows and asynchronous jobs. You cannot delete or customize system entities.


A bit further down the page it explains business Entities are account, contact etc

you can set business and custom entities and attributes to be either customizable or non-customizable

You cannot modify a non-customizable entity


There is a msdn page called Which entities are customizable?

In CRM 2016 there are 271 entities, 98 are customizable!  You should note the Article Entity has the schema name of kbarticle and this isn’t included on the fully customizable entity list, instead it’s on the list of customizable entity properties.

The information about entities and what you can do is all held in the Metadata but how do you view that.  Luckily for the Microsoft Dynamics CRM community we have a Tanguy and he has created the awesome XRMToolbox and there is a Metadata browser, here it is.

Article Entity question 2

Business rules thing

lets recap where we are

  • kbarticle does not have Business rules showing on the entity
  • it’s not on the fully customizable entities like account, contact etc
  • The CanCreateForms = False
  • IsVisibleInMobile = False
  • IsCustomizable = True

I felt the answer perhaps was something to do with Business rules.

I go to the Create and edit business rules page looking for clues and under the section How do I configure business rules there is a note

Business rules will only work for Updated entities or custom entities.


I remember a colleague complaining how some of the forms in CRM 2016 are still CRM 2011 style and how the end users complained.  I wrote about it in the blog CRM 2016 – How to rename the default business unit, saying it was weird the Business Unit form was old style.

The technet page describes what has happened

Microsoft Dynamics CRM provides many options for designing forms. The forms for the Updated entities and custom entities provide the most options. We selected a group of entities that are used by most people and gave them a new user experience that includes many new capabilities including support for the Microsoft Dynamics CRM for tablets client, business process flows, and business rules. One of the key requirements in providing these new experiences includes the goal that a form customizer can design once and deploy to all clients.


So here is the explanation, Microsoft have updated the forms of the popular entities, to enable them to use business rules, work on mobile etc.  it goes on to explain

Yet there are still a number of entities that retain the appearance and capabilities carried over from the previous version. Entities using classic forms weren’t updated because they are not used frequently by most people and updating them wouldn’t have a significant impact on the experience of most people using the application. This allowed us to focus our attention on the updated entities.


You can view the Updated Entities by clicking here and then there is a list of 28 entities which are still using the classic form and article/kbarticle appears on the Entities using classic forms , which explains why Business rules are not enabled.  Oddly business unit doesn’t appear on either list.


I have read a bunch of technet/msdn articles and got a better understanding of how Microsoft Dynamics CRM works and why Business rules are not enabled for all entities.

The question I can’t answer is if these entities will ever be able to run Business rules or if their forms will be updated.  Microsoft likes to keep information like this secret, this is frustrating to developers and baffling to customers.

It seems Microsoft have upgraded forms to work with the new functionality such as Mobile, Business Process, Business rules and because there are 271 entities it will take time to upgrade all the entities and some of them it isn’t worth the effort.  The problem is there is no way to request a form to be upgraded.

You need to take into account the effort to upgrade some of the forms, in many of the system entities Microsoft has tweaked things under the hood to offer extended functionality (a form of unsupported customization) which means is difficult to upgrade the entity.


Never leave a CRM developer stranded


What lies behind us and what lies ahead of us are tiny matters compared to what lives within us.

Henry David Thoreau


Developers are a community which spans projects, developers jump in and out of different projects for varying times.  Any code or customizations are developer creates might be maintained by himself or another developer, it‘s important to do a good job to make it easy for yourself and others.

When developers in a company work well as a group, they push each other to keep high standards.  Keep high standards takes pride and enthusiasm because it‘s harder to write simple code than complex code.  When one developer drops their standards, this can infect a whole project, Bad code is like a virus, don’t get infected.

Microsoft Dynamics CRM developers need to work as a group because CRM has lots of pockets of specialisation and impossible for one developer to know the functionality and limitations of all aspects of CRM.  The knowledge of the group of developers can give guidance to developers without knowledge of parts of CRM.

Today I say act like a soldier, in an earlier blog I told you to write code like a boy scout, what will future blogs bring

A Team of individuals

One day a call came into the support desk with an urgent bug on a Microsoft Dynamics CRM project I had not worked on, I had to investigate the bug.

The developers who worked on the project, either left the company or was unavailable.  I read the project documentation, it was outdated and didn’t help.  I looked at the development environment and started my investigation with the code and CRM.

The code wasbig ball of mud, rolled in a plate of spaghetti with technical debt on the side.  This was legacy code with no one to help me, it would be a long day, my fellow CRM developers had left me stranded.

I poked and prodded the code, toyed with the CRM, asked questions, documented my investigation and was 90 percent sure I had found the bug but it‘s scary changing legacy code with no unit tests.

Legacy code evolves to incorporate lots of fixes to particular problems or processes, when viewing the code for the first time often the code doesn’t seem logical unless you understand the business logic.  

Don’t let you fellow CRM developers down struggling with poor code I had written.  When you take shortcuts, don’t document code and write.

Code echoes

Creating code is like creating a baby, the creation is fast and fun but you have to look after the code for years.  

Once the code is written it will be read, maintained, extended, debugged for years.  Complex code will make take up more time, sometimes a small bug fix or code change can take days to do.  Coding faster will slow you down later, particuarly first draft code which has not been refactored.

The code you create today is likely to be used and maintained for years.  Make sure quality is high so the pain of maintaining it is low.   Working with legacy code, finding bugs can take hours/days and thought process of.  My usual approach to legacy code is

If the legacy code ain’t broke, don’t touch it and slowly back away.

Poor quality code will leave developers maintaining that code stranded and struggling with the code and time taken to get it right.

Starship developer

The best things in life are beyond money; their price is agony and sweat and devotion ― Robert A. HeinleinStarship Troopers

Reading Robert A. Heinlein Starship Troopers , in the story it follows one recruits journey in the mobile infrantry.  The mobile infrantry are volunteers, their actions are motivated only by their willingness to be in the mobile infranty and they can leave at any point.

Self motivation is the strongest form of persuasion and motivation.  This theme was discussed In the book  Leading by Sir Alex Ferguson (Author), Sir Michael Moritz (Author) gives insights into management style of Alex Ferguson and motivated to write Leadership

I like to bring the thoughts and opinions from different areas to CRM development to see if there are similarities and differences.  CRM developers are a community who share and help each other and sometimes contribute to the frustrations of a CRM developers The Frustrations of a CRM Developer

  • CRM developers are volunteers, they have chosen to be a CRM developer
  • CRM developers should be proud to be a CRM developer
  • CRM developers can change jobs at any time if they don’t like it
  • CRM developers are part of a team
  • CRM developers are part of the Microsoft Dynamics community

I have nothing to offer but code, customizations, sweat, solutions, tears, documentation and unit tests and blood to offer – Hosk

CRM developers are soldiers, battling bugs, deploying troops, creating customizations to take down customer requirements and keeping our heads down when the flack is flying.

Never leave a man down

The chances of CRM developers dying for the cause are remote, there have been a few close calls but I got away with a few broken bones and nightmares (which mainly consist of having to support CRM 4 projects and SSRS report formatting)

The soldiers creed – I will never leave a fallen comrade.

I saw this in the film Black Hawk down, where a helicopter crashes and is surrounded.  Some troops drive in to rescue them and get stuck themselves.  They fight their way back to base.  They realize not everyone made it back and most of them go back and rescue their comrades.

Why is it important because if you were the man left behind you would hope your buddies would come back to rescue you, it gives that Soldier hope.

The American soldiers have the Soldier’s Creed (US version)

I am an American Soldier.
I am a Warrior and a member of a team.
I serve the people of the United States, and live the Army Values.
I will always place the mission first.
I will never accept defeat.
I will never quit.
I will never leave a fallen comrade.
I am disciplined, physically and mentally tough, trained and proficient in my warrior tasks and drills.
I always maintain my arms, my equipment and myself.
I am an expert and I am a professional.
I stand ready to deploy, engage, and destroy the enemies of the United States of America, in close combat.
I am a guardian of freedom and the American way of life.
I am an American Soldier.

I adapted it, similar to updating the quote from full metal Jacket Why CRM Developers should always start with the CRM SDK 

CRM Developers creed (Hosk Version)

I am a CRM Developer.
I am a coder and a member of a team.
I serve the people of the Dynamics CRM Community.
I will always place the project first.
I will never accept defeat.
I will never quit.
I will never leave a fallen comrade.
I am disciplined, physically and mentally tough, trained and proficient in my code tasks and skills.
I always maintain my code, my computer and myself.
I am an expert and I am a professional.
I stand ready to deploy solutions, engage customers, and destroy the bugs in the code.
I am a guardian of freedom and the Leisurely way of life.
I am a CRM Developer.

Here is an interesting article on the subject Leave no soldier behind – no exceptions

Don’t leave a CRM developer stranded

Leave no man down.  You are part of a team, you might not see or talk to your team mates everyday but you are a group and you must work together

Ways to leave your fellow CRM developer stranded

  • hard to read code
  • poor quality
  • lazy bugs
  • no comments
  • poorly labeled code
  • first draft code/no refactoring
  • no documentation

CRM developers are a team, your code/customizations will be used by your fellow developers, don’t let them down with first draft code

  • Have pride in your work
  • Skilled expert
  • Enjoy working with your team mates
  • If everyone keeps a high standard it works
  • Soldiers are highly trained and have pride in their abilities.
  • Soldiers have faith in fellow soldiers

When someone is out of the office and they call you for help, help them I will never leave a fallen comrade.  Stop what you are doing and bust a gut to find the answer because if you were out on site you would help the team would help you.

Final thoughts

Individual commitment to a group effort – that is what makes a team work, a company work, a society work, a civilization work. Vince Lombardi

To deliver projects successfully it takes a team effort, with many individuals working together.  Strength of a team of CRM developers comes from each individual working together.

CRM developers might not always work in the same team on the same project by CRM developers team is beyond projects.  The code and customizations you create will be used and maintained beyond the life of delivering the project.  Code and customizations expand beyond their project and unite CRM developers together.  Create code and customizations you are proud of and will be easy for your follow CRM developers to maintain and extend.

Don’t leave a CRM developer stranded.

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


This post is my personal opinions and not the views or opinions of my employer 🙂