Hosk’s recommended Dynamics 365 and other articles April 2019

Quotes

Not all problems have a technological answer, but when they do, that is the more lasting solution. Andy Grove

The bug that stands in the way becomes the way

Articles of the Month

awesome-1

Great Dynamics 365 articles this month

Programming/Scrum

Other/Business/Leadership/Management

The Hosk – currently reading

The Hosk – last 5 recommendations

Selected  HoskWisdom

Last months Monthly articles

Last months recommended monthly articles

Hosk’s CRM Developer Articles

A collection of my favorite CRM Developer articles I have written

Advertisements

The prepared developer writes better code

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

Look beyond today and plan tomorrow #HoskWisdom

Many developers believe writing code is the most important part of development but you can’t create good code without being prepared.  Preparation, planning and understanding requirements helps find problems in solution design and before you create code.

Lack of preparation results in stuttering development, slowed by bugs, missing requirements, technical debt and late delivery.

While persuading my son of the benefits of getting to football early (more practice, more play with his friends and more football), I said the early bird catches the worm; he said the early footballer catches the ball, but what does the early developer catch?

The early developer catches the bug

Replace early with prepared and getting clarity before you code.

Doing things last minute.com, winging it and making it up as you go creates half.  You might disagree, thinking about the time you winged it and it worked but what about the times you were unprepared, usually it results in lower quality work which took longer.

The result of a bad decision can work once but constant bad decisions don’t work in the long term.

Quote from Bill Walsh on being prepared.

“Hearing someone described as being able to “Fly by the seat of his pants” always suggests to me a leader who hasn’t prepared properly and whose pants may soon fall down.” Bill Walsh

Being prepared makes the most of a situation and you can prepare for other outcomes.

If you know the goal, you can get there in the most direct way.

Meetings

A bad meeting has no agenda, too many people, not the right people, not the right materials. The result is a boring, frustrating and ineffectual meeting which takes longer.  A common goal of meetings is to decide but you need information, options, evaluate before you can decide.

A good meeting has an agenda, it allows attendees to be prepared and focused on the topic, it has decision makers and only the people needed.  creating an agenda, preparing material and only inviting key people takes preparation, but it maximises the time of the people invited.

The focus is on the goal and the purpose. The meeting runs to a schedule. The meeting is followed up with a summary, actions, owners and deadlines.

Coding

Bad
A Developer gets a user story, hasn’t read it before, doesn’t understand the business needs or the purpose behind the requirement. Skims the story, jumps to the acceptance criteria and codes.

Result
Developer finds the story is in complete, acceptance criteria missing, has to ask questions, who asks the business, developer waits, he can’t start anything new because he is halfway through. Gets more requirements, repeats the cycle as they get into the details. Developer codes the rest of the story.

The code is built on a changing design. No coherent structure. Duplicate code used because developer hasn’t prepared or designed the code.  Creates new code in an inconsistent style and standards, this gets rejected at code review and he has to fix, developer frustrated.  The developer has looked at the code base to see what’s there, hasn’t read the standards document.

Developer told to write unit tests.  Tester finds bugs, goes back to the developer.  Users test and find it doesn’t do everything they need and find bugs. Code squeezed in to fix bugs making it harder to understand, maintain and extend.

Good example
Developer reads documentation and understand what the business is trying to do, the purpose of the business and the functionality. Developer reads requirements, asks the tester to make sure the requirements are testable. Questions get raised with business, fuller requirements.

The requirements are understood and the technical design is created and discussed before development starts.

The Developer understands code base, structure and what is there. Designs solution using existing code to avoid duplication and improve consistency.  The developer writes unit tests agaisn’t requirements.  The developer considers not only the happy path but tests exceptions, errors and other paths through the code.

The earlier you find problems the smaller the feedback loop and the quicker you can fix it.  The path you want to follow is fixing problems as near to the source as possible, the fewer people and environments you find the problem quicker the bugs are found and fixed.

Testers will find bugs, the developer will take these bugs and create unit tests to fix the bug and then code it.

Conclusion

Lack of preparation shows in execution.  Preparation allows you to get the right information, consider other options and think about the situation.  An example is presenting, if you prepare and practice it, you deliver a better performance, you can concentrate on the delivery not just the content and make a bigger impact.

For Developers the writing of code is one part of the solution, being prepared saves times and create a higher quality code base with less technical debt.

If you look ahead for bumps in the road you can avoid them

Hosk’s recommended Dynamics 365 and other articles January 2019

Quotes

“New ideas emerge when you question the assumptions upon which a problem is based”   Shane Snow

if you can’t stand the heat of development, step away from the keyboard

When Hosk is the answer, your problems are much worse than you first thought

Articles of the Month

awesome-1

Great Dynamics 365 articles this month

Programming/Scrum

Other/Business/Leadership/Management

The Hosk – currently reading

The Hosk – last 5 recommendations

Selected  HoskWisdom

  • At a high level all projects seem easy, it’s when you get into the details you find its infinitely more complex
  • Code you are proud of today, you will be ashamed of tomorrow.
  • When you see water flowing up hill, a developer has just written code with no bugs in
  • Many project managers are uncomfortable with doing nothing and letting people do thier jobs, they prefer to disrupt, question, prioritize, reorganise, confuse and slow down the project
  • Love is a simple line of code
  • You’re only as good as the code you create
  • Every decision should move you in the right direction
  • It’s better to know your enemy than be wondering where they are and who they are
  • If you think small, you act shall and you stay small
  • When Hosk is the answer, your problems are much worse than you first thought
  • Don’t fear the actions of others, fear your own impatience, mistakes and ego
  • Changing people on a project is a great way to create the illusion of progress
  • You control the decision, not the outcome
  • A persons past reveals their future
  • Learn today for a better tomorrow

Last months Monthly articles

Last months recommended monthly articles

Hosk’s CRM Developer Articles

A collection of my favorite CRM Developer articles I have written

We are all beta testers for Microsoft Dynamics 365

Working with Microsoft Dynamics 365 is often painful but always exciting #HoskCodeWisdom

Microsoft Dynamics 365 version 9 has seen a lot of bugs in Microsoft Dynamics 365, particularly an increase in bugs in the core functionality, not just new functionality.   I have heard a few Dynamics professional say

“We are beta testers for Microsoft Dynamics 365”

What’s happening and why is it so bad

This is my opinion with no evidence to back this up apart from talking to other Microsoft experts and my experiences.  Before Dynamics 365 was rebranded e.g. Dynamics CRM 2016 and before, there would be a few bugs with new features (which we all know to never use a first version e.g. Microsoft Dynamics Marketing)

In version 9 I have seen lots of bugs, obvious bugs, solution bugs.   I wondered if it was just my bad luck but speaking with other Dynamics professionals they have seen an increase in bugs.

Some bugs I have had the pleasure of in 2018

  • Auditing broken
  • lookups have no names
  • Importing solutions times out
  • holding solutions broken and get stuck (breaking other imports)
  • adding visuals breaks solution import
  • Microsoft minor updates creating dependencies
  • minor update stops solution being imported with duplicate guid
  • Problems with performance and scale groups
  • memory leaks in web servers
  • Microsoft adding dependencies in minor patches – When a Patch to Microsoft Dynamics 365 can break your instance
  • Microsoft adding functionality into Case management and breaking solution imports
  • Microsoft updating instances slowly, stopping up solutions being imported between Dynamics 365 environments
  • Dynamics instances getting stuck, disappearing or being unusuable

What might have caused this?

The direction of Dynamics is to move to business applications, take the processing out of Dynamics and put it into Azure via

  • PowerApps
  • Flow
  • Logic Apps
  • Azure functions
  • Azure WebJobs

Dynamics 365 is one part of the solution and integrated with many services. Processing should be moved out of Dynamics to reduce load on Dynamics and move data out to store it where it’s cheap (e.g. not in Dynamics 365 where it’s expensive)

To do this, Microsoft needed CDS (common Data Service) to be easy and affective to use. I have always thought of Microsoft Dynamics as a GUI front end to a database and a framework to trigger customisations.

Now CDS is a blank Microsoft Dynamics 365

 

To decouple the default functionality of Sales, Marketing and case management, Microsoft needed to recreate these to use standard and supported solutions. Trickier than you would think because the functionality was created using unsupported customisations because supported customisations couldn’t do.

This explains why the CRM 2011 screens have been sitting in Dynamics 365 for so long, Microsoft couldn’t take them out without rewriting all that unsupported functionality (naughty Microsoft).

Microsoft have recreated the functionality with supported customisations (so they could decouple  it). They needed to create the custom control framework and other cool stuff to do this but they have finally got there.  This will be great once they give us a tool to edit the custom controls.

I like the ability to import Sales, Marketing, Case management solution only if you need them, if you are using Dynamics 365 CE as an XRM framework you can now remove those unwanted dependencies.

This rewrite has caused many bugs but I see this is short-term pain for long-term gain.

Microsoft has moved to Azure SQL and moving from SQL server to Azure SQL caused a bunch of problems no one expected.

Process

We got a bug which was reported as fixed,  we tested it and found it wasn’t.  After some investigation the support analyst told me the developer had forgot to check the code in. How did this get reported as fixed?

Azure

Microsoft has fully moved Dynamics 365 to Azure, they are the largest service on Azure,  they are eating their own dog food. This added infrastructure problems to compliment the bugs it added to the system.

Online

The move to Dynamics 365 online has picked up speed, now all customers want to use Dynamics 365.  This means we are getting different projects, doing different things and find different bugs.   The number of projects, type of projects and crazy things developers are doing with Dynamics 365 online has exploded.

Devops and automation

Best practices like DevOps and automation are being brought to Dynamics projects.  This is finding problems not identified before or seen before.

Will it get better?

I read this article about how they build windows 10 and I’m guessing Dynamics does it a similar way

The one version is coming – The new Microsoft Dynamics 365 release schedule is coming and with this Microsoft are moving to a continuous release cycle and a greater testing.

New Dynamics 365 fixes will be tested by Canary (early release) organisations and smaller regions (sorry smaller regions, the need of the Europe and America is greater than the need of everyone else). Everyone will be on the one version which means more testing will be done on the one version.

Microsoft have just persuaded all Dynamics production instances to test it for them or risk breaking their production instance on upgrade.

 

Microsoft has put the pressure of testing earlier onto its customers, accepting the latest major release is not optional and cannot be scheduled. Companies will have no option but to test the new release in a sandbox instance. The one version (to rule them all) should lead to greater automated and manual testing from Microsoft and all its Dynamics 365 customers, this will find bugs faster but will leave the question on how quickly can Microsoft fix and release these fixes.

Features can be turned off, you can avoid using them until they work 

Microsoft are improving the monitoring and proactive fixing and self healing of Azure resources.  Proactively finding problems with customer Dynamics organisations and send them advice. Microsoft will release a tool to check solutions, which does static checks on code to find poor performing code.

The move towards the one version of Dynamics could initially be painful but will improve Dynamics 365 in the long term. Microsoft seem to making the right noises about moving toward continuous deployments, mentioning automated testing and other improvements should help.

The windows development post ends with a good quot

Adopting the principle that the Windows code should always be shipping quality—not “after a few months of fixing” but “right now, at any moment”—would be an enormous change. But it’s a necessary one. Microsoft needs to be in a position where each new update is production quality from day one; a world where updating to the latest and greatest release is a no-brainer, a choice that can be confidently taken. Feature updates should be non-events, barely noticed by users. Cutting back to one release a year, or one release every three years, doesn’t do that, and it never did. It’s the process itself that needs to change: not the timescale.

Embrace it

What I have always enjoyed working with Dynamics is its attitude to change. Microsoft add new services, new tools and new everything. It’s often painful, but it’s always exciting.

Future projects will look nothing like the projects you have been creating for the last 5-10 years and we are all going to need to learn the limitations and best practices. You will laugh, cry and scream with frustration but hopefully not every day.

Other interesting articles

The future of Microsoft Dynamics 365 projects
Will development move towards no code solutions?

Hosk’s recommended Dynamics 365 and other articles December 2018

Quotes

Mediocre people don’t like high achievers, and high achievers don’t like mediocre people.  Nick Saban

There is no such thing as requirements so clear that no developer could misinterpret them

Articles of the Month

awesome-1

Great Dynamics 365 articles this month

Programming/Scrum

Other/Business/Leadership/Management

The Hosk – currently reading

The Hosk – last 5 recommendations

Selected  HoskWisdom

  • All future development roads lead through CDS, PowerApps and Flow. So start heading in that direction now
  • IT projects are not about delivering technology they are about enabling users
  • Too many workarounds never get done properly
  • Code is as complex as you make it
  • Life is too short to write bad code
  • Writing good code is like being sexy, if you have to tell people you are, you aren’t
  • No matter how bad things get, you can always refactor them
  • If you want to do well as an individual, you have to work well in the team
  • There is nothing more persuasive than the other person thinking it’s thier idea
  • Life is short and should not be wasted doing boring work

Last months Monthly articles

Last months recommended monthly articles

Hosk’s CRM Developer Articles

A collection of my favorite CRM Developer articles I have written

Dynamics professionals salary survey 2018 and other stats

Developers aren’t free because they need money and we need work #HoskCodeWisdom
Effort is the price, experience, knowledge and skills is what you get #HoskCodeWisdom

The start of the year is a trigger for people to reflect on their career, goals and happiness in their current role.  The Nigel Frank Dynamics salary survey is a tool to help you understand if you’re paid the market average and other information about Dynamics professionals.

Companies employ many Dynamics professionals but the reality is you work for yourself because people rarely work for one company their whole career.   You should make sure you being paid the market value.

You can download it here Dynamics survey, I have highlighted some interesting facts below but it‘s worth reading the whole survey which contains details about

  • Average wages dependent on country and role in the Dynamics ecosystem
  • Workplace diversity
  • Benefits and retention
  • Microsoft certifications and experience
  • Job satisfaction
  • Top benefits of Microsoft Dynamics product
If you want to see trends over the last 4 years you can read previous posts on the salary survey

WHY KNOWING AVERAGE WAGES IS IMPORTANT

Money should not be the key driver for moving jobs but make sure you are being paid your worth.  Use the average wage statistics to assess if they underpay you, take into your yearly review, tell your manager you are not being paid the market rate and ask what can they do?

Knowing the average wage for your role and experience helps you negotiate in your current role or a new job.

Wages should be based  on the industry average not an increment of what  you were previously paid

Why do people move?

  • 57% lack of salary increase
  • 54% lack of career or promotion prospects
  • 49% Needing a new challenge
  • 36 Lack of leadership and vision

46% are considering moving in the next 12 months, 17% not sure.  This might be due to the increased head hunting by recruiters on LinkedIn.  People who are not looking for jobs might be tempted if jobs with higher salaries keep being sent to them.

Recruitment has changed, people are applying to job adverts less and being head hunted more.

This post will help you evaluate different job offers.

How to evaluate job offers for Microsoft Dynamics 365 roles

Money and moving roles

It’s common to say you shouldn’t move for money but why?  Money isn’t a motivator because after a few months the more money it will stop making you feel happy.  Getting paid more does‘nt  make you enjoy your job or the company culture more.

If you consider your own career, you will have progressed to a more senior role and get paid 2 or 3 times the wage you started on but are you 2 or 3 times happier now?

Those who move jobs for money, lose motivation once used to the new wage.  Money is a problem when you don’t have enough.

if you decide you want to change job  to further your career, go to a company that shares your values or move to a new role which can further  your career.  Think about the things that can improve your job

  • Company culture
  • Training
  • Career progression opportunities
  • Getting new skills
  • Role

 Dynamics 365 professionals UK 2018 salary

Below are the average wages for Dynamics 365 CE professionals in the UK, you can see here Nigel Frank salary survey 2018

Certifications

Dynamics 365 professionals who are certified get paid more than Dynamics 365 professional who are not certified.  I have benefits of Dynamics certifications before the message is clear

Get certified and get paid more

Retention

The benefits and rewards are not just financial, consider other benefits when you are negotiating new roles and your yearly review because there might be more flexible with benefits.

The other consideration is the benefits could have a more positive effective on your job satisfaction and life.  Working from home an extra day from home could have a positive affect on your work/life balance.

Interesting facts from this years report

  • 68% of respondents said they are happy in their current role but are open to new opportunities
  • 82% of respondents who have experience with Dynamics 365 said they would recommend it to others
  • 54% of respondents have a Microsoft certification with 61% holding a Business Applications certification
  • 61% of Partner respondents reported an increase in workload over the last 12 months, up 3% from 2017
  • 56% of respondents believe years of experience in Dynamics had the greatest impact on earning potential
  • 68% of respondents said they are happy in their current role but are open to new opportunities
  •  Only 53% of respondents believe their employer pays men and women equally.

The successful growth of the Birmingham CRMUG

Learning and keeping up with Dynamics 365 is difficult, new features, services and functionality is being released at an increasing rate.  This makes working with the Dynamics community and sharing knowledge is more important now than ever

I presented at the Birmingham CRMUG on November 28th, with a presentation on change in Dynamics called – Dynamics 365 is survival of the most adaptable.  This was the 10th meeting of the Birmingham CRMUG and just over 2 years since the first meeting.

Many people have helped create the Dynamics community in the West Midlands, the group now has 151 members with 40 people attending the last meeting in November.

The beginning

On the 17th October I got an email from someone called Imtiaz sent me an email

Hi Ben

The Birmingham Chamber of Commerce has sponsored the first meetup, they have provided a venue and refreshments. The dates they have given me are 7th, 9th or 11th November. times 6pm – 8pm

Would love for you to cover some content on the first meet, or should I put it to the group to see if any one would like to present anything. The topic that have raised interest are Dynamics 365, Azure integration, ADX portals, CRM 2016.

what do you think?

 

I liked the idea but I didn’t like the idea of meeting up with only a few people, so I wrote a post to encourage more people to attend

Birmingham Dynamics Crm User Group has started – Join now 

I managed to persuade in person a bunch of people so the first meeting felt like a great start, here is a picture from the initial meeting

Where is CRMUG Birmingham now?

The last meeting of CRMUG had a great turnout with 55 signed up and 40 people attending.  Three interesting

  • Lucy Muscat – Use Microsoft Teams to Transform sales team collaboration –
  • Imtiaz Hussain – CRM Projects from Conception to Inception –
  • The Hosk – Dynamics 365 is Survival of the Adaptable –

The meeting was vibrant and has progressed from trying to get enough presenters to now have having a choice of presenters and topic.  The meeting can get a good balance of presenters to appeal to a wider range of audience members.

The future

You can’t know what the future holds but it doesn’t stop you excited about it.  Dynamics projects are changing fast with the maturing of the Power platform and CDS.  With Dynamics projects increasing in complexity, it becomes more important to share practical experience and talk about limitations and functionality with those who have done it.

As the CRMUG Birmingham user group grows, the value of attending increases because it attracts a wider range of people with different experiences and skills.

Attend the next meeting on February 6th and meet great Dynamics professional, read more about it here

D365UG / CRMUG Birmingham – Febuarary 6th 2019

Wednesday, Feb 6, 2019, 6:30 PM

Weleyan
Colmore Circus, Queensway Birmingham, GB

9 Members Attending

Our next Dynamics 365 User Group meeting in Birmingham will be on Wednesday 6th February from 6:30-9:00pm. The Wesleyan have again kindly agreed to host our event at Colmore Circus, Queensway, Birmingham, B4 6AR. This is next to Snow Hill Station and a short walk from New Street Station. We’ll confirm the agenda soon … We will have all our usual ne…

Check out this Meetup →