CRM 2016 – ActivityParty and ActivityParty Lists

To code simply you must master complexity and break it down to it’s simpliest form #HoskCodeWisdom

Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it. Alan Perlis

Junior developers create many lines of code and complexity, senior developers then remove lines of code and simplify #HoskCodeWisdom 

The ActivityParty entity catches many new Dynamics 365/CRM developers by surprise because it’s an entity inside an entity.  This blog post looks at ActivityParty and some great resources to help you conquer it.

To spice up CRM development Microsoft likes to throw in a few special entities that have special powers.  Microsoft have created great documentation but then littered it around so it’s hard to piece all the useful bits together.

There are special non standard entities lurking in CRM, this can catch out new developers because they are not standard, they can also annoy some people because we can’t make them
  • Customers (which can hold accounts and contacts)
  • ActivityParty (can hold any of the activity types)
  • regarding (can hold any object)
  • Owner – it can be a user or a team
  • Address entity, it’s half on the account, contact form but you can see it in advanced finds

I got an odd error once with ActivityParty and casting

The ActivityParty is complex record,  its important to understand how it’s linked to Activities,  Microsoft have some excellent documentation here

http://msdn.microsoft.com/en-us/library/gg309626.aspx

This picture quickly summaries ActivityParty

Richard Knudson has a great blog post on ActivityParties

 

First step go to the MDSN definition

http://msdn.microsoft.com/en-us/library/gg328549.aspx

An activity party represents a person or group associated with an activity. An activity can have multiple activity parties.

Where are party lists used?  The most common area in CRM Activity Party is used is the To and From on an email.   The reason the ActivityParty is used is because an email can have multiple email addresses in the TO, CC (it’s a party of people)

Email is a easy way to understand not only how Activity Lists work but why we need them.  The TO field on an email might contain multiple email addresses.  

It also explains the name, each person on an email is an activity party and an activity party is a person or group.

As mentioned before an ActivityParty entity can hold many different entities, to see what type it is you need to check the Activity Party Type

There are 11 activity party types in Microsoft Dynamics 365. The different types are identified by the a different int value as shown below from MSDN documentation.

Activity party type Value Description
Sender 1 Specifies the sender.
ToRecipient 2 Specifies the recipient in the To field.
CCRecipient 3 Specifies the recipient in the Cc field.
BccRecipient 4 Specifies the recipient in the Bcc field.
RequiredAttendee 5 Specifies a required attendee.
OptionalAttendee 6 Specifies an optional attendee.
Organizer 7 Specifies the activity organizer.
Regarding 8 Specifies the regarding item.
Owner 9 Specifies the activity owner.
Resource 10 Specifies a resource.
Customer 11 Specifies a customer.
From the list above the ActivityParty is used with activities –
  • emails
  • appointments
  • phone calls
  • letters
  • faxes.
Not all of the Activity Party types can be used with all all the activities.  e.g. appointments have Organizers, OptionalAttendee, RequiredAttendee but this wouldn’t work with emails.

The following table lists the activity party types that are supported for each activity, and the corresponding activity properties to specify those activity party types. ActivityParty entity

Activity entity name Supported activity party type Activity attribute
Appointment OptionalAttendee
Organizer
RequiredAttendee
Appointment.OptionalAttendees
Appointment.Organizer
Appointment.RequiredAttendees
CampaignActivity Partner
Sender
CampaignActivity.Partners
CampaignActivity.From
CampaignResponse Customer
Partner
From
CampaignResponse.Customer
CampaignResponse.Partner
CampaignResponse.From
Email BccRecipient
CcRecipient
Sender
ToRecipient
Email.Bcc
Email.Cc
Email.From
Email.To
Fax Sender
ToRecipient
Fax.From
Fax.To
Letter BccRecipient
Sender
ToRecipient
Letter.Bcc
Letter.From
Letter.To
PhoneCall Sender
ToRecipient
PhoneCall.From
PhoneCall.To
RecurringAppointmentMaster OptionalAttendee
Organizer
RequiredAttendee
RecurringAppointmentMaster.OptionalAttendees
RecurringAppointmentMaster.Organizer
RecurringAppointmentMaster.RequiredAttendees
ServiceAppointment Customer
Resource
ServiceAppointment.Customers
ServiceAppointment.Resources

Reading a Resource

In this example I will be reading the resources value
 
ServiceAppointment.resources can hold multiple resources
 
the field value is IENumberable but I like to convert it into a list

List<ActivityParty> resources = (List<ActivityParty >)serviceAppointment.Resources.ToList();

On the front end resources can contains users or Facility/equipment.  For those of you haven’t used the scheduling side of Microsoft (I only know about it because you are tested on it for the applications certification and it has been useful to understand how it works as potential customers have asked about it)
 
in my example, if want to display some details about the facilities/equipment and ignore people (they don’t have exciting details!)
 
So after capturing the resources in 
 
The participationTypeMask = 10, which is a resource.
 
There are two guids, ID’s
ActivityPartyId
 
PartyId
 
The ActivityPartyID is the guid of the ActivityParty, the PartyID is the guid of the resource selected (e.g. user or facility/equipment).  
 
In my code I want to check the PartyID, see if it’s a piece of equipment (not user) and if it is lookup the details for 
For an in depth example go to
Some more useful information can be found in the links below
Advertisement

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

 

Looking at the ideas behind SCRUM

Anger in others is an opportunity not something to be feared - hoskwisdom - insta

“No Heroics. If you need a hero to get things done, you have a problem. Heroic effort should be viewed as a failure of planning.”
Jeff Sutherland, Scrum: The Art of Doing Twice the Work in Half the Time

I have looked at the concepts behind Scrum.

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

What is SCRUM?

Start with Wikipedia SCRUM definition

Scrum is an iterative and incremental agile software development framework for managing product development

 

Scrum is a framework which shares values with the Agile Manifesto

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

 

SCRUM and Agile for a time was seen as a magic solution to IT projects, a way to deliver a project successfully and quickly.  There has been a backlash and growing discontentment with Agile and SCRUM.

Here are links criticising Agile/Scrum framework

My experience of working on Agile projects is many of those projects are Agile in name but turn out to be a Waterfall-Agile hybrid often called WaterScrumFall.

Delivering Software with Water-Scrum-Fall

Here is a good point to compare WaterFall and Scrum

Agile vs Waterfall: Comparing project management methods

My experience of mixing Waterfall and Scrum is those projects struggle but not because of the way of delivering the project, these projects struggled because of people and the collaboration between the customer and the project team is weighted to one side (customer), successful projects are always a collaboration.  The mix of project style wasn’t the sole cause of the problems with the project.

Mixing Agile/Scrum with Waterfall removes the benefits of Scrum removing many of the opportunities to inspect and adapt.  One of the major disadvantages is the loss of transparency and time-boxing events.

The Scrum guide online is a simple 16 pages and is adamant you may not change any meetings, artifacts or meeting lengths

Hosk Experience of Agile

I worked on many Agile projects in name but only one was Scrum project which adhered to all the rules.

The project which stuck to all concepts was successful and enjoyable.  Estimating, the retrospective and the daily scrum all worked well and the team bonded. One of the benefits of a Scrum project is the transparency and clear understanding and regularity of the Scrum events and artifacts.

The Agile project in name but not in execution were disorganized and lacked clarity and direction.  The people on the project were not sure when things were happening and the purpose of events.

Little consideration of project was suitable for Agile\Scrum framework or if the customer could execute an Agile project.

One of the most frustrating part of a poorly executed Agile project is a daily scrum which goes on and on and on.  They should not go exceed the 15 minute timebox

Good practices

I have worked on Agile and Scrum projects but not thought about the concepts and ideas behind it.

What is Scrum and Agile

“Adaptive methods are called Agile.  There are many Agile frameworks.  The most famous Agile framework is Scrum.”

The Scrum Master Training Manual: A Guide to the PSM Exam
By Nader K. Rad, Frank Turley

 

Agile is a framework and Scrum is a flavour of it.  The focus on adaptive, prepares the customer the project will need to adapt and change.  The longer the project continues, the more you learn about the business requirements and more feedback from the customer on the iteration/solution created.

Scrum forces customer to prioritize the items on the product backlog, you can add the high priority items to the sprint, which should give the most business value.

The priorities and scope changes with time and feedback, Scrum acknowledges this will happen and encourage

Change is inevitable but customers don’t expect or like  it when it happens to their project. #HoskWisdom

When should you use Scrum?

  • You should use Scrum on projects where its suitable to do incremental and iterative development.
  • The product owner must have a good understanding of the business
  • Where a product is hard to define upfront
  • Where the customer is willing to devote time to the project
  • Customer is willing to make quick decisions

Agile Manifesto

I mentioned the Agile manifesto earlier but lets focus on two points.

Customer colloboration

Successful projects involved a good relationship between the project team and the customer.  The project should be a collaboration between the customer (business knowledge expert) and the technical team (solution experts).

Projects which don’t work well involves unsuccessful relationships between customer and project team dominated by one side, instead of a collaboration, failed projects are often involve one side dictating the solution.

When the customer (business experts) dominate you often end up with poor technical solution.

When the technical experts dominate the product doesn’t help the users achieve the business requirements or contribute to business goals.

Working Software

Sometimes people forget the goal of an IT project is to create a working solution to help the users achieve their business goals.

The Agile manifesto puts it right up front and focuses on getting a working product to the customer quickly to enable open and honest feedback.  Scrum welcome customer feedback which might disrupt the current iteration.

The difference between the planned product and working software can be huge and the sooner the customer can see it and try it the sooner the product can be changed to give the customer an effective product.

Software innovation, like almost every other kind of innovation, requires the ability to collaborate and share ideas with other people, and to sit down and talk with customers and get their feedback and understand their needs.

Bill Gates

Development Team

In Scrum all developers are equal, have the same title and are all focused on delivering the sprint.

The development team are self organised and cross functional, enabling them to deliver a sprint without any outside assistance.

Scrum focuses on team work and empowering the development to find solutions to problems.

Progress monitoring

Splitting the projects into sprints allows the project to never fall to far behind schedule and if it does the customer knows quickly and a discussion can be had.  This limits bad news to never being too bad before it‘s discussed with the customer (if it‘s bad).

Burndowns and velocity monitor the speed of the project and daily scrums make sure everyone is pulling their weight and problems are cleared.

The daily scrums ensure there is constant communication in the sprint team, progress is monitored and problems are raised with solutions found.

Any problems only have the potential to be one sprint long.

Product backlog

The product backlog is a prioritized list of requirements to be done.  A list of deliverable’s grouped into sprints and prioritized (sprint backlog)

The concept of a prioritized list of deliverables avoiding prioritising and say all the deliverable’s are all high priority.

The sprint backlog of a sprint is the items are not changed once the sprint is started.  This means the customer cannot add new items to a sprint and cause the sprint to be delayed.  This process stops users squeezing more functionality in and extended sprints.

The working software and feedback keep happening at the end of every sprint.

Successful projects involved a good relationship between the project team and the customer.  The project should be a collaboration between the customer (business knowledge expert) and the technical team (solution experts).

Projects which don’t work well involve unsuccessful relationships between customer and project team, instead of a collaboration, failed projects are often involve one side dictating the solution.

When the customer (business experts) dominate you often end up with poor technical solution.

When the technical experts dominate the product and hurts the users achieve the business requirements or contribute to business goals.

Sprint events

Each sprint has a number artifacts

Sprint

  • The items to be delivered during the sprint

Sprint planning

  • Done at the start of the sprint by the whole sprint team.  The estimating is done by group vote, which gives an accurate average

Daily scrum

  • A daily 15 minute meeting
  • progress is monitored
  • impediments are discussed and resolved
  • standup so not to take too long

Sprint Review

  • Showing the user the functionality of the sprint
  • Feedback

Sprint Retrospective

  • Discuss what worked well in the sprint
  • Discuss what didn’t work well in the sprint

Looking at the framework all the events and activities seem like a great idea and are likely to help a project be successful.  They give opportunities to inspect and adapt, to get feedback.

The reason many Agile projects go badly because often steps are missed and the Scrum team don’t understand what they are doing or why they are doing it.

Retrospective

One method for improving a team and individuals is to analyse past performance and work out what worked and what didn’t.  This reflection often doesn’t happen because people don’t have time or don’t want to do it.

Scrum ensures you learn from past performance by scheduling a retrospective after every sprint.  It looks at

  • People
  • Relationships
  • Process
  • Tools

What worked, what didn’t and how it can be improved for the next sprint.

Review

This quote is inspiring and scary

“We welcome changes in Scrum and encourage them to be demanded, because it increases satisfaction of the customer and will create a final product that better matches the needs of the customer Jeff Sutherland

The quote comes from the book – Scrum: A revolutionary approach to building teams, beating deadlines and boosting productivity

The quote initially seems like it could create a nightmare project with customer potentially giving lots of negative feedback but the goal of the project is create a product which is effective for the end users.  Reviewing the product and getting feedback is a core part of collaboration with the customer and will increase the chance of creating a product the customer wants.

Considering the concepts of Agile and Scrum

Looking a Agile/Scrum I can see many aspects of successful projects.  If you flip it round and look the common problems with IT projects

  • Product not doing what the customer wants or needs
  • Projects falls behind schedule
  • Customer  changing, adding or removing requirements
  • Customer and developer team are not collaborating well
  • Communication between the developers

Scrums uses many tools and techniques to resolve many of the common problems with IT projects.  The goals of Agile projects are positive and if executing well the benefits can be great, faster projects, working product shown to the user and feedback given often.

“Scrum incorporate the concepts of continuous improvement and minimum viable products to get immediate feedback from consumers, rather than waiting until the project is finished

Jeff Sutherland

Scrum: A revolutionary approach to building teams, beating deadlines and boosting productivity

Common language

A benefit of Scrum is it gives a common language for everyone to use.  Common rules and processes must be followed by the customer and project term as outlined by the Scrum framework itself which insists on it.

It makes the customer prioritise requirements and stop adding or changing requirements half way through a sprint.

Summary

Scrum is made up of many good practices such as adaption, incremental/iterative development and getting feedback as soon as possible.

A goal of Scrum is to get feedback from the customer on a product as quickly, so can be changed to create a product useful to the customer.

The individual components of Agile/Scrum are good practices which makes me wonder why it generates such negativity.

Many companies sold Agile to customers as a super weapon to lowers costs, deliver projects quicker but Agile is suited on projects which can be delivered incrementally and where people are trained and experienced delivering Agile\Scrum projects.

The Agile framework reminds me of someone who has got a hammer, suddenly all problems look like nails and all projects look like Agile projects.

Many companies did Agile/Scrum projects without training people in the framework, if you don’t have some people with experience the project could hit problems without someone to guide the project back on course.

Companies need to make sure employees are given time to learn new skills and are not on project work 100 percent of their time.  Agile projects can be relentless and it‘s possible the tasks are all focused on sprint backlogs with no maintenance, code refactoring, builds or house keeping tasks factored in.

Resources

The Scrum Master Training Manual: A Guide to the Professional Scrum Master (PSM) Exam

This ebook is free and gives a good overview

Scrum: A revolutionary approach to building teams, beating deadlines and boosting productivity

Written by Jeff Sutherland who was one of the creators of Scrum

Scrum and Xp from the Trenches 2nd Edition

You can buy it from Amazon or you can download it for free here

Confessions of a Scrum Master

free download here

CRM 2016 – Release management, Solution packager and why you should automate your deployment

I have always found that plans are useless, but planning is indispensable.

–Dwight Eisenhower

I found this articles on Microsoft Dynamics CRM and the application life cycle, I thought I would share them.  These

Deployment best practices

The articles above got me thinking about the CRM deployments best practices but which focuses on manual deployments and the best practices involved with that.

Another consideration is organising your solutions – CRM 2016What’s the best way to organise solutions in Microsoft Dynamics CRM

make surec ustomizations are kept at a high standard

Here are a few bet practices to follow
  • ID on lookups
  • early binding
  • Unit tests
  • never change production
  • CRM Configuration mover
  • Automate where possible

Automate your deployments

When I wrote the article on deployment best practices I only worked on projects which deployed projects manually and I had no experience with the solution packager.

I believe automating the deployments would be the best practice because manual deployments are

  • Manual deployments are boring
  • Manual deployments take a lot of time
  • Manual deployments can go wrong due to use error
  • it‘s a waste of developer
  • More environments more time wasted

The question CRM developers should ask is why are most CRM projects not using the solution packager?, it‘s best practice, it saves time, fewer deployment mistakesso why isn’t it standard practice.

Companies and project managers don’t give time for the team to learn and setup the solution packager because it‘s time spent on infrastructure with no business value.  Setting up the solution packager for Dynamic CRM projects is short-term pain for long-term gain.

The solution packager allows you to commit your customisations into source control because it breaks down the customisations into xml files.

One of the reasons I moved to Capgemini is because they have a DevOps team for Dynamics CRM projects.  Capgemini focus on delivery high quality large difficult projects, to do this you need to think long-term, focus on keeping quality of customisations high, keep technical debt low and automate where you can.

Now I have worked on a project with DevOp, the solution packager, continuous integration I am of the opinion all Enterprise CRM projects should have this setup.

Having a dedicated DevOps team or someone who has learnt to use the solution packager and creating builds will help the process.  Building automated build environments takes experience and the job falls to a developer they will take time to get up to speed in the same

Benefits of the Solution Packager

The solution packager is a powerful tool which can automate importing solutions between environments but it has a number of other useful benefits.

Automated deployments

Importing solutions is a boring and time consuming which should be automated to not waste developers time, allowing developer to concentrate on creating customisations.

If you can automate a boring task then you should automate it #HoskWisdom

The solution packager enables scripted automated deployments and some other benefits

Track changes

The solution packager gives you control and visibility on what changed, who changed it, what it was for and when.  The solution packager shows CRM changes, including customisation change (form, fields, views) gives visibility of those changes.  This enables CRM developers to check in changes to tasks and stories

Data

The solution packager can be scripted and incorporated in builds using Visual studio Team Services (VSTS).  Automating the build processs allows data to be imported into different CRM environments (a step which is often missed or done incorrectly).  Automating data import keeps the guids the same between environments.  CRM 2016The importance of keeping the same guids between CRM instances

Solution Packager articles

Here is a collection of Solution packager articles if you want to learn more

Conclusion

The article started out with links to the ALM – CRM lifecycle but morphed into clarifying the purpose and benefits of using the solution packager to automate solution deployment.

The solution packager allows automated builds/continuous integration which can save time and reduce import errors.  The solution packager breaks down CRM customisation to XML files which can be checked into source control (VSTS/GIT) and linked to individual tasks and stories.

Solution packager isn’t easy to configure but the benefits are worth it, companies and projects should see it as an investment in quality, long-term benefits which pay dividends on large CRM projects.

 

Will Dynamics 365 redesign Microsoft Dynamics CRM Online?

Start where you are. Use what you have. Do what you can. Arthur Ashe

Your life will not get better if you don’t move from where you are #HoskWisdom

With the imminent release of Microsoft Dynamics 365 (Dynamics 365 is coming and why you need to be ready) Microsoft is making significant step forward.  I looked at my draft blog posts and found this blog and it seemed an interesting time to publish it.

Dynamics 365 gives Dynamics professionals a time to reflect and ponder the future and the past of Microsoft Dynamics CRM.  Microsoft is removing the faithful CRM from the product, it’s a distinctive move.

Dynamics CRM moves to the cloud, will Microsoft redesign the architecture of Dynamics 365 to a cloud solution and utilize Azure and scalability. Is the one database design creating a bottle neck in performance?

If evolution really works, how come mothers only have two hands? Milton Berle Microsoft Dynamics CRM has evolved at a frantic …

The post was inspired by a response to the blog post The rise of Microsoft Dynamics CRM and a response from Andrew

That’s a great summary. Have been on the CRM journey since being early adopter of 1.2 in the UK. I do wonder if Microsoft need to take a step back and consider the whole product as its rapidly becoming an unmanageable scattergun collection of products..

Fixing some of the really annoying, and in most cases very well established issues in the product that make users stare at you in that ‘are you serious’ way would help.

Bolting several varieties of UI together, new, old an positively ancient makes for a confusing collection of experiences. Lookups that require many mouse clicks to get to the entry you want, the fact you still can’t return a count of how many records you have due to how database, security and localisation conspire against you to kill performance – and sure everyone has some other feature they wish would get sorted.

Don’t get me wrong, overall it’s a great product but stapling on newly aquired functionality at a rate of knots isn’t sustainable.

CRM needs to evolve into a new platform – probably not called CRM as even its name is a distraction.

Take the good stuff, turn it into a cloud based platform then add a modern, mobile first, cross platform adaptive UI and allow us to add or remove stuff so you get the system you actually need minus clutter and bloat. If I am never going to use marketing, or finance entities, allow that.

CRM should then be just one of a number of Dynamics products that sits on the platform. If I need accounts let me add modules from a proper accounting solution, or elements of ERP, or an Event Management solution – all modular, extensible and integrated.

The other core feature that’s needed is inbuilt integration and Master Data capabilities. I should be able to define one instance of contact, address, and account and share across multiple applications. Single version of the truth.

It will be interesting to see how things evolve as it moves to an inevitable cloud only model – looking forwards to the journey..

Thanks for a great blog…

CRM Architecture

The CRM SDK architecture page is a great resource to understand the architecture of Dynamics CRM

this picture explains the architecture, showing the moving parts along with the order and flow of Microsoft Dynamics CRM.

How did the original CRM Artchitecture come about?

Microsoft Dynamics CRM is one product made of multiple Microsoft products knitted together.  The programmer in me thinks this is good design, splitting up the solution into logical parts.

  • CRM is made up of many separate parts
  • Active Directory
  • Microsoft SharePoint
  • Reporting Services
  • Microsoft SQL Server
  • Internet Information Services
  • Active Directory Federation Services – ADFS – for expose CRM to the web
  • Microsoft Exchange

The reason for using these separate parts is they are Microsoft products and it made sense to use existing products and delegate responsibility to products and service which specialize in.

When CRM was released cloud solutions were not popular, common or achievable (no Microsoft Data centres).  It made sense for Microsoft to use it‘s own products because it could then persuade people to buy more Microsoft products or integrate CRM with existing Microsoft products a customer already owned (Exchange, Active directory, etc)

CRM evolving

In the article The RISE OF CRM, Microsoft has upgraded the CRM front end making it look better.

The new forms is so they compatible with Microsoft mobile friendly functionality such as Business rules and Business Process flows.

Microsoft Dynamics CRM 2016 has new forms mixed in with old forms.  I learnt this when investigating why I couldn’t add a business rule to the article entity – Why can’t I add a business rule to the article entity and in this article – CRM 2016 – How to rename the default business rule

Architecture

There is a great comment in this article comparing Microsoft Dynamics CRM and Salesforce

Since its day one, Salesforce was designed as a cloud based application with design features optimized for a browser experience not a desktop program experience.

Microsoft created Windows-style drop down menus within its CRM tool and has modified the look and feel dramatically. This gives customers a common user experience across different Windows products and its web-based CRM tool.
The article discusses how products evolve and where you need to stop refactoring and start again.  Starting again and focusing effort on a better long-term strategy is where Dynamics 365 is at.  Creating Dynamics 365 using an app approach or Microsoft services structure will allow Microsoft to stop wasting time and money developing multiple products and instead develop shared services.
The POA (Principle object table) is a constant cause of Microsoft Dynamics erformance problems and I wonder if Microsoft started again would they design the database tables to force security privileges to use one table.   Recent security enhancements tried to work round this with Access teams adding security to teams instead of individual roles.

Where are we

Joel on Software’s article on why you should rewrite/refactor products Things You Should Never Do, Part I recommends you think before you recreate something because it’s easy to underestimated the complexity of the product.

Microsoft Dynamics CRM has a front end with a mixture of modernized forms and old CRM 2011 form style (5 years old).

The architecture wasn’t designed for the cloud.
CRM online can be painfully slow read this
Microsoft cloud solutions needs CRM solution architects to change the way they design solutions, plugins have a limit of two minutes, so you need to do these long running processes in an
When I attended on the Azure architecture training, it opened my mind to the fact as solution architects we biased by old designs.  There are lots of different databases in Azure which can be used in different scenarios.  hey mentioned Amazon shopping basket using a document storage database for it.
I wonder if the single database is a bottle neck for performance, too much table locking with relational databases
Will a common data model help resolve this problem – Powerapps common data model

Conclusion

The article raises questions on the architecture of Microsoft Dynamics CRM, most of them related to the technologies used to create Microsoft Dynamics CRM Online.  Will Dynamics 365 resolve any of these problems?
Will the promise of Dynamics 365 be realized by the performance and functionality of Dynamics 365.
Is Dynamics 365 a great rebranding or will it be a real game changer which tackles the problems Microsoft Dynamics has and creates an environment where integration is a priority.
Dynamics 365 brings enhanced functionality, cheaper prices and greater integration.  Is this the time Microsoft Dynamics makes a decisive move against Salesforce.

Extreme ownership – taking ownership for what you do

IMG_20181021_172339
“There are no bad teams, only bad leadership” Jocko Willink, Leif Babin
Own your actions and take responsibility for them – HoskWisdom

The book Extreme Ownership is written by two Seal officers and the core message is leaders take extreme ownership and responsibility for the actions of their team.

by Jocko Willink (Author), Leif Babin (Author)

There are some great quotes in the book which I’m sure many readers can empathize with

“If I shouted less and encouraged more, my team would have done better

I believe in encouraging effort, skills and ability can be learnt but without a person putting in effort nothing gets done.    Instead of criticizing, shouting or blaming individuals you should focus on encouragement and how people can get better.

Humble

“I had to take complete ownership of what went wrong. That is what a leader does — even if it means getting fired. If anyone was to be blamed and fired for what happened, let it be me.”

The leader must take responsibility for the teams actions.  If someone checks in bad code this is because the person felt it was OK.  If the quality of someone’s work isn’t good enough, it‘s because you have explained the standard you expect.

Implementing Extreme ownership requires checking your ego and operation with a high degree of humility.  Admitting mistakes, taking ownership, and developing a plan to  overcome challenges are integral to any successful team.  Ego can prevent a leader from conducting an honest, realistic assessment of his or her own performance and the performance of the team. Jocko Willink

Standards

“When setting expectations, no matter what has been said or written, if substandard performance is accepted and no one is held accountable — if there are no consequences — that poor performance becomes the new standard. Therefore, leaders must enforce standards.” Jocko Willink

This is true for development if you don’t define the standards you expect or if you let people developers check in lower quality code, this will become the norm and other developers will follow suit.

It‘s not what you preach, it‘s what you tolerate Jocko Willink

Developing CRM customisation should focus on keeping the quality high

 You are responsible

The key message in the book is extreme ownership and you are responsible for the work produced by the team you work in.

You collaborate with other people and teams, sometimes the quality of work or the the time taken to produce the work can have a negative effect on the project.

It‘s easy to place the blame on other people and think you have done your work so the blame should be attributed to you.  Extreme ownership says you should take responsibility for any work you have worked on.

If you are the leader of a team, you can ask yourself could you have done better.  Could you

  • Explained things clearer
  • helped others resolve their pain points
  • given more help (resources, knowledge)
  • can you work differently to help others to their part of the work

If some part of the project is not working you should think what can you do better to help the team work more effectively because you are responsible for delivering the project and how can you do that better.  You might be working with other people but you should take responsibility of the work done.

When people make mistakes it’s not usually the person who is at fault but the system which let them make a mistake.  The problem is not with the person but inherent in the systems and processes.

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

Quotes

“Remember to always be yourself. Unless you suck.”
Joss Whedon

If a product isn’t easy to use then people won’t use it #HoskWisdom

What I love about the Microsoft Dynamics CRM community is there is always someone willing to help you #HoskWisdom

 

Someone asked me this week if they thought at some point I might run out of #HoskWisdom and I said don’t worry, I’m full of it 🙂 (drum beat followed by symbol clash)

If you can meet writing coding and boring non code tasks
And treat those two impostors just the same;
ours is the Earth and everything that’s in it,
And – which is more – you’ll be a Man, my so

Article of the week

CRM Article of the week

Hands on application integration dynamics CRM using azure service bus

Great article on using Microsoft Dynamics CRM Online with the Azure service bus, it’s a step by step guide

Best of the Rest

Software boundaries and limits for Dynamics CRM 2015/2016/Online Part 1

Microsoft buys LinkedIn – What you need to know

Deprecation announcements with Dynamics CRM Online 2016 Update 1 and 2016 Service Pack 1 

CRM 2016 – How to find the default currency without going into Office 365

An Introduction to Office 365 Groups for Dynamics CRM

salesforce license pricing is more than 2.5 times the price of comparable Microsoft licenses before sandboxes etc

Find out more about the new courses and exams

35 Best Dynamics CRM Blogs of 2016 

CRM 2016 – XRMToolBox – loadFromRemoteSources error

Gotcha Working with Dynamics CRM Web API: Grammar

Getting Started with Fiddler and CRM

Improved Iconator for XrmToolBox

Create an SLA to contact Leads

Thoughts on the MB2-712 – Microsoft Dynamics CRM 2016 Customization and Configuration certification

Programming

write less code

7 deadly career mistakes developer make

other

WHAT! – Germany have a 100% record in World Cup shoot-outs, winning all four and missing only one of 18 penalties.  Now they have an app to help them, read more here

Microsoft once had to rebuild a critical product because even its own managers couldn’t figure out how to use it

AN OLD IDEA, REVIVED: STARVE CANCER TO DEATH

A Leadership Lesson From Eisenhower’s Stoic Reversal at D-Day

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 – How to find the default currency without going into Office 365

Before you do anything, always stop to think #HoskWisdom

I was tasked with moving a customisations, data and config from one CRM Online instance to another.

I was only a CRM System Administrator and didn’t have access to Office 365.  I was checking some of the settings and wanted to know the default currency.

The default or base currency is set when you create your Microsoft Dynamics CRM instance, it’s usually set to the country where the organisation is based.

If you add more currencies you have to keep the exchange rate up to date but CRM calculates all values in the base currency and converts them using the exchange rate on the screen.

If you want to learn more about currencies in CRM this blog is excellent

Investigation

I headed over to check the currency section of Microsoft Dynamics CRM

Settings –> Business Management –> Currencies

Currencies

Having two currency fields meant I didn’t know which one was the base currency field

I tried to use the FetchXML builder to see if there was a field which specified which currency was the default currency but there isn’t.  I never realised the Currency entity has the schema name of transactioncurrency.

Using my Sherlock detective skills the currency with the earliest CreatedOn date would be the first currency record and likely to be base currency.  I’m guessing the base currency would be the one with 1 exchange rate.

Currencies 1

I didn’t want to guess because assumptions can cause problems and bugs in Microsoft Dynamics CRM.

I decided to open the currency records and when I opened GBP and it told me it was the base currency.  The exchange rate is read only

Currencies 3

The EUR exchange rate was editable and it didn’t tell me it was the base currency.

Currencies 2

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

Quotes

if you had more time you could do all the things you wanted. You only have time to focus on one thing you really want to do

#HoskWisdom

Great minds discuss ideas; average minds discuss events; small minds discuss people.

Eleanor Roosevelt

 

Article of the week

Jukka Niiranen has been busted some moves with Sway recently, almost enough to make me want to use it.

Sway is like a cool Powerpoint, I learnt Salesforce has 5 times the market share of CRM (19.7% Salesforce, 4.3% Microsoft).  It’s a great Sway presentation and the information makes you think where the CRM industry is heading in the future

Best of the Rest

Dynamic CRM Salary survey 2016

Thoughts on Microsoft Dynamics CRM Strategy

Three new features of Microsoft social engagement 

Leon Tribe on ADX Portal

Use Machine Learning to Predict Customers You Might Lose (Part 1)

Managing Microsoft Dynamics CRM 2016 online service updates

Data Loader

Dynamics Connector is being discontinued, What does it mean?

Article from technology professional Mitch Milam- summarizing the new features

CRM 2015 – What developers need to know about the activity entity

Project Service and Field Service trials now available as solutions for CRM2016 Update 1 orgs

If Bob Paisley managed a CRM team

Here’s your guide on how to enable and create your first survey with Dynamics CRM 2016 VOC.

How to free storage space in CRM2016 

What’s new with Dynamics CRM 2016 and CRM online.

Field Data Auto-complete  

Create Custom Page Template in Adxstudio

Why Microsoft Dynamics CRM presentation

CRM 2016 – Default CRM mobile app works fully offline and the limitations of previous offline versions

Microsoft Sets the Stage for IoT-Enabled CRM 

The rise of Microsoft Dynamics CRM

{Dynamics CRM 2016 Update 1} Organisation Insights Dashboard in Dynamics CRM

Questions on Microsoft Dynamics CRM solutions and environments

Are you aware about this? Dynamics CRM New Feature – Templates for Email Signatures

Struggling with the implementation phase? Here’s How to implement CRM through Phased Approach

CRM developers tools of the trade – ReSharper

Blog Post: salesforce – Hell Freezes Over

other

Ted Talk – Why some of us don’t have one true calling

US government is spending billions on old tech that barely works, says watchdog

“We no longer talk about the lagging indicators of success, right, which is revenue, profit. What are the leading indicators of success? Customer love,” Nadella says.
Whilst on the train I was reading Microsofts Earnings Release FY16 Q3
There were a few interesting things to note
REDMOND, Wash. — April 21, 2016 — Microsoft Corp. today announced the following results for the quarter ended March 31, 2016:
· Office commercial products and cloud services revenue grew 7% in constant currency driven by Office 365 revenue growth of 63% in constant currency
· Office consumer products and cloud services revenue grew 6% in constant currency with Office 365 consumer subscribers increasing to 22.2 million
· Dynamics products and cloud services revenue grew 9% in constant currency with Dynamics CRM Online seat adds more than doubling year-over-year
 Dynamics CRM Online seat adds more than doubling year-over-year

Salesforce (CRM) Chooses Amazon (AMZN) For Cloud Services In $400 Million Deal

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

Thoughts on Microsoft Dynamics CRM Strategy

All failure is failure to adapt, all success is successful adaptation.”
― Max McKeownAdaptability: The Art of Winning in an Age of Uncertainty

Strategy is about shaping the future.  Look at how you can win, where the opportunities are, create actions develop knowledge, skills and resources to deliver the strategy.

Strategy is important because what brought a company success in the past might not work in the future, you must keep evolving at a company.

Successful companies are those who adapt to their changing environments, those who understand the direction of an industry, create and deliver strategies suited to opportunities arising from change.

“Change is inevitable, progress is not.”
― Max McKeownThe Truth About Innovation

Do I need to know about strategy

Individuals need strategies to progress, the skills and knowledge you have might not be in demand in the future, you must learn new skills, technologies to adapt to new roles.

You might think I don’t need to know this, it doesn’t affect me, I go to work, do my job and go home at 5.30 but what about?

What technologies will in the next Microsoft Dynamics CRM project, it could be CRM Online, portal, Azure services, Machine learning, gamification.  Could you deliver this project or will they need to hire someone else?

What are you going to learn next? if you pick one new technology used in Microsoft Dynamics CRM which is it? why did you choose that? is it the best choice?

You are making strategic decision’s daily but if these are not linked with your future vision, you could be investing your time and energy into areas not helping to progress your career.

Plain and Simple

I’m reading the excellent book Leadership:Plain and Simple: Plain and Simple (2nd Edition).  It discusses when John Harper become UK Managing director of Hasbro (a global toy company), when he came in things were in bad shape, losing money, morale and confidence were low.  His plan was to energise and engage the workforce.  He closed the company for a day and they discussed the ideas

  1. What is the future we want want and how great can we be?
  2. How do we play to win and perform at our best
  3. How do we build relationships internally and with customers, so we can deliver the future together as a team.

The questions are direct and decisive, they create a vision of the future and create a strategy to make it happen.  A leader cannot do the work himself, he needs to inspire the workforce deliver the vision.

These quotes highlight the role of a leader and limitation of a leader because without an engaged workforce they have no one to implement the strategy

A leader has the vision and conviction that a dream can be achieved. He inspires the power and energy to get it done.”
— Ralph Lauren

“A leader’s role is to raise people’s aspirations for what they can become and to release their energies so they will try to get there.”
— David Gergen

The book Playing to Win: How Strategy Really Works simplifies strategy to these two questions

  1. Where to play?
  2. How do you win?

Successful companies answers to these two questions seems obvious

Apple

  • High end smart phones and gadgets
  • beautifully designed, easy to use, high quality gadgets

Facebook

  • Social interaction
  • easy to use, different methods

Microsoft and Microsoft Dynamics CRM

To help me understand the questions I would answer the questions if I was head of the Microsoft Dynamics CRM division.  I wrote about the evolution of Microsoft Dynamics CRM in the blog The rise of Microsoft Dynamics CRM

1 – What is the future we want want and how great can we be?

The Microsoft Dynamics CRM strategy filters down from the global strategy of Microsoft – Mobile First, Cloud First.

  • The future for Microsoft Dynamics is Microsoft Dynamics CRM Online.
  • Improve the Microsoft Dynamics service,  redesign the internal design of to incorporate azure’s scalability to improve performance.
  • Improve the mobile functionality to match Resco
  • Microsoft Dynamics CRM act as a hub, linking to many specialist services (Machine learning, Big data analysis), Microservices/app structure.
  • Portals used more, allowing CRM deployments to offer self service portals, contractor functionality and extending CRM to none CRM users.
  • Social CRM to really take off

2.  How do we play to win and perform at our best?

Ask yourself what is Microsoft good at? why do people choose Microsoft Dynamics CRM?  Office Integration, competitively priced, cloud solutions/Azure functionality is world class.  Microsoft are constantly innovating Microsoft Dynamics CRM and surrounding products.

  • Keep improving Microsoft Dynamics CRM
  • Purchase strategic Microsoft Dynamic Solutions/companies
  • Keeping prices cheaper than Salesforce.
  • Microsoft can continue to benefit from improved Azure functionality and an increase in Azure services and data centres.
  • Microsoft must improve their mobile application or buy Resco
  • Strategic purchased of related services.

3 – How do we build relationships internally and with customers, so we can deliver the future together as a team.

Microsoft work hard to embrace Microsoft Dynamics CRM partners and help enable them to sell Microsoft Dynamics CRM (although perhaps more focused on larger partners and enterprise solutions).  The training materials Microsoft offer is pretty good and the Azure training is really good.

Microsoft offer a competitive price for Microsoft Dynamics CRM Online.

Internally hiring the best people who want to make a difference.  Under Satya Microsoft have started to innovate rather than copy.   This outlook should be brought to the Microsoft Dynamics CRM division to create innovative new functionality and have a workforce engaged to deliver it.

Hosk’s Dynamic CRM Practise

How would I answer those questions with my virtual Hosk’s Dynamic CRM Practise and what strategy would I come up with.

1 – What is the future we want want and how great can we be?

When implementing CRM solutions I find lots of cautious companies who wary about signing up for the project due to earlier bad experiences with IT projects and failed CRM projects.  There are many companies who have lost confidence in their existing Microsoft Dynamics CRM supplier.

Microsoft Dynamics CRM companies don’t sell products they sell people, processes, technical knowledge and experience (I know companies who create products).

The future  vision is to create a reputation for being an innovative company delivery quality projects, collaborating with the customer.  You want your CRM company to be the best in their sector and who put quality and customer satisfaction at the top.

It‘s difficult to differentiate through price alone, focus on being the best choice to deliver CRM projects for the customers requirements with regards to experience, vision and capability (skilled people, resources).

When a customer buys CRM from your company

  • you know the reason,
  • the staff know the reason
  • the customer knows the reason.

To win business you must have strengths which other companies cannot match.  Pick an area of expertise and become the best at it

2- How do we play to win and perform at our best

The future for Microsoft Dynamics CRM practices is to specialise in an industry or technological service.  The Microsoft Dynamics CRM industry is crowded with lots of companies offering similar services and at similar prices.  Ask yourself why would someone buy CRM from my company?

  • price?
  • experience?,
  • an existing solution?

Most successful Microsoft Dynamics CRM resellers and the ones Microsoft have purchased, they focused on a specific area and become the market leader.

FieldOne – The best Field Services company in the Microsoft Dynamics CRM space (the only one I know to be honest).  They were so good Microsoft brought them, which is an indication you are doing something right.

Parature – Fantastic self-service portal, knowledge base, which can run alone and is slowly (very slowly) being integrated with Microsoft Dynamics CRM.

FantasySalesTeam – Microsoft Dynamics CRM and Gamefication (Hosk blog –  Is Gamification in a Microsoft Dynamics CRM a gimic?)

Resco – The leading Microsoft Dynamics mobile application/framework (Hosk blog – Why Resco acquiring CWR’s mobile CRM is important)

My strategies

  • Focus on Microsoft Dynamics Online solutions and specialise in delivering complex Microsoft Dynamics CRM projects online.  Align skills with Microsoft’s vision – Mobile, Cloud (Azure)
  • Concentrate on delivering FieldOne projects.  Field services is a growing marketing with Microsoft Dynamics CRM.
  • Get a head with Azure Machine learning and CRM.
  • Focus on 2 sectors, Create solutions to speed up projects.

3 – How do we build relationships internally and with customers, so we can deliver the future together as a team.

You need leaders, who can create a vision, mission and goals and explain this to the organisation.  Everyone should understand what the company strategy is and it’s goals.

Employees

You need to engage the employees so they will deliver the strategy.  Fully engaged employees not only understand the strategy but add to it with ideas, energy and hard work.  Engaged employees feel valued, listened to and believe they are making a difference, this leads to quality work.

If you think about the difference in amount and quality of work when you were engaged on a project compared to other projects, the difference is huge.

Staff must have the skills/training to deliver projects to high standards, customer satisfaction is vital.  The focus is on quality projects, quality individual performance and constant improvement.  In the Microsoft Dynamics CRM industry you are mostly selling people.  Happy, motivated and engaged in order to deliver great projects.

Team is important in Microsoft Dynamics CRM community, the number of technologies/products and services used in Microsoft Dynamics CRM projects is growing, the team must collaborate, talk, support and share knowledge to deliver quality projects to meet customer expectations and enhance the reputation of the company.

Customers

Great relationships with customers come from delivering projects which meet business requirements and delivered on time.

Conclusion

Writing this article helped me understand I haven’t thought deeply about the subject before and my  thoughts and ideas were other people’s or snippets of articles I had read.   I could see some of original thoughts on the subject emerging but more work is needed to come up with a viable strategy for the Microsoft Dynamics CRM industry.  I’m not sure my Hosk CRM practise would have done particularly well with the strategy outlined above.

It‘s difficult to create strategies without understanding the current Dynamics CRM market, identifying where the Dynamics CRM industry is heading and what opportunities are available.

I hope you found the article interesting, please leave some comments on the subject

If you are interesting in learning more, I recommend these two books

ALL VIEWS AND OPINIONS ARE PERSONAL OPINIONS OF THE HOSK