Hosk’s Top Dynamics 365 Articles of the week – 27th January

Quotes

Quality is never an accident. It is always the result of intelligent effort. John Ruskin

#HoskWisdom Favoutes this week

  • The only limitation to what you can develop is the person developing it #HoskWisdom
  • The end always triggers a beginning #HoskWisdom
  • The pressure to make things complex will be great but you must keep it as simple as possible #HoskWisdom
  • Don’t waste words, make every one count #HoskWisdom
  • Don’t blame other people for your failures #HoskWisdom
  • Constantly talking about doing something is a barrier to doing something #HoskWisdom
  • It’s not just what you say but how you say it #HoskWisdom
  • if you tried your hardest you have nothing to regret #HoskWisdom
  • If something has no value, stop measuring it #HoskWisdom
  • Contributing to a successful team is better than achieving personal goals #HoskWisdom
  • Don’t over think and under act #HoskWisdom
  • The difficulty working with cowboy coders is dealing with the all shit that comes from their code and horses #HoskCodeWisdom
  • Increasing people on a project increases complexity of working, colloborating and communicating #HoskWisdom
  • When I see someone crying when their football team has lost, I want to tell them they need to take football more seriously #HoskWisdom
  • Respect silence, its thinking time #HoskWisdom
  • You cant solve all of life’s problems in a day but you can start with one of your own #HoskWisdom

Want more #HoskWisdom then follow #HoskWisdom or follow @BenHosk

Articles of the week

awesome-1

Using Portal Capabilities in Dynamics 365 (CRM)

Good run through portal capabilities, a detailed step by step guide

Best of the rest

The difficulties of scaled agile projects

Dynamics 365 SDK refreshed (11 January 2017)

10 Types of Dynamics 365 Project for IT Decision Makers

Getting around Delegated Admin Restrictions

Read Barcode Value Using Barcode Scanner Control in Dynamics 365

Step by Step Guide to Setting up your Dynamics 365 Portal Trial

Working with JSON objects in Dynamics CRM Plugins

Smart Buttons in the Ribbon Workbench

ALM for Microsoft Dynamics CRM 2011: CRM Solution Lifecycle Management

Everyday is a school day, yomi fields are for phonetic spelling

Programming/Scrum

5 Steps To Better Agile Retrospectives

Trello board on better retrospectives

It’s Not Just Standing Up: Patterns for Daily Standup Meetings

CannotMeasureProductivity

Other

Maker’s Schedule, Manager’s Schedule

Leadership That Gets Results

Servant leadership – the leadership theory of robert K. greenleaf

Effective Leadership Styles for Scrum Masters

Five books every ScrumMaster should read

Béla Guttmann: the mastermind who was more than just a curse

Stephen Hawking’s Productive Laziness

To Everyone Who Asks For ‘Just A Little’ Of Your Time: Here’s What It Costs To Say Yes

everything Ryan Holiday wrote in 2016

how to improve success rates in NFL drafts

David Foster Wallace: The String Theory

Great course for Scrum masters

How to build a great team and culture

The Hosk – currently reading

The Hosk – just finished reading

Hosk’s CRM Developer Articles

A collection of my favourite CRM Developer articles I have written

CRM 2016 – Tips on passing the MB2-712 customization and config exam

All the CRM 2013 content to help you pass the exam

#HoskCodeWisdom

When you are going through project hell, don’t stop to create the nice to have features #HoskCodeWisdom
Quick fixes are never quick and usually add technical debt, so take longer and do it properly #HoskCodeWisdom
If not managed properly, adding more people to a project can slow it down instead of speeding it up #HoskCodeWisdom
Don’t waste time adding functionality the user might like but hasn’t asked for #HoskCodeWisdom
Never optimize code unless you have to #HoskCodeWisdom
Scrum master should never have answers they should ask the team for answers #HoskCodeWisdom
Writing code is simple but writing simple code is the hardest thing you can code #HoskCodeWisdom
You need to love code with your heart and write code with your head if you want to be good programmer #HoskCodeWisdom
Creating bugs bothers good developers #HoskCodeWisdom
If you don’t find writing code fun, you will never be good developer #HoskCodeWisdom
If you don’t control technical debt, it controls you and the horse you rode in on #HoskCodeWisdom
You cannot be the master coding because some days the code wins and you lose #HoskCodeWisdom
When programmers think they are good, code will find a way for you to waste a whole day on something which doesn’t work #HoskCodeWisdom

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

Conclusion

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 

Complexity 

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 https://hbr.org/2007/02/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).

Sensemaking

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.

Relationships

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.

Solutioning

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

Delivering

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.

Conclusion

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

How to evaluate job offers for Microsoft Dynamics CRM 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?

Moving

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
Consultant
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.

Salary

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.

Experience

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.

Culture

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

Location

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.

Structure

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.

Finally

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

Quotes

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

#HoskWisdom

  • 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?

Other

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

CRM developers tools of the trade – ReSharper

Do not wait; the time will never be ‘just right.’ Start where you stand, and work with whatever tools you may have at your command, and better tools will be found as you go along.

George Herbert

CRM Tools

Tools play an important part of the CRM developers life, they can save you hours of time and speed up development.  One of the best examples of a tool saving you time and effort is CRM MVP’s Scott Durow’s Ribbon workbench.  The manual process of editing the Ribbon in CRM is incredible tedious, the Ribbon workbench offers a GUI way to do it and it’s free.

Tools allow you to code on the shoulders of great CRM developers

You should checkout Tanguy’s XrmToolBox

I have reviewed a number of tools on this blogpost – Hosk’s CRM 2013 Tools List

Tools

CRM tools are very useful but there are some generic tools which are useful to CRM developers and one I would highly recommend is ReSharper by JetBrains.

ReSharper is a Visual Studio extension for .Net developers.  I have heard a few developers talk about ReSharper, so I thought I would have a look myself.  What you usually find is anyone who has used ReSharper will tell you how good it is.

The downside is this tool isn’t free but it doesn’t cost that much, find the price for personal use here

It is free for various people/groups which you might be part of

Additional options
* For startups (50 percent off)
* For students and teachers
* For education and training
* For Open Source projects
* For .NET user groups
* For Microsoft MVPs

For a personal license it’s 99 pounds.   Which if you use this a few times a week isn’t that much and the benefits to your coding and time spent finding bugs, formatting and other tasks could easily be worth it.  They also have a pay monthly option

ReSharper has a try before you buy scheme
The good news is you can try ReSharper free for the 30 days, so download it and give it a go.
I have tried it and I love it, to get the full benefits you will need to be writing CRM plugins and/or .NET code.
These blog posts highlight the benefits of ReSharper

Lots of features

ReSharper has lots of functionality, one of the difficulties I had was to learn what features were available, what they did and when I should use them.

These blogs were useful in learning about the ReSharper functionality

Warnings not nagging

I appreciate the way ReSharper works because it uses warnings.  These are often best practices but not serious.

It pops a warning mark on the right of the code and if you click on it you will get to a light-bulb.

Often I take these as suggestions, sometimes I do, sometimes I don’t. The way ReSharper warns you I have found not to be annoying or nagging.

Keeps me thinking

One of the positives of Resharper is keeps offering me code assistance and constantly keeps me thinking about the quality of code I’m writing.

  • It has offered to change a query expression to a linq query
  • swap If Else statements to a switch
  • Catching the nulls
  • One great features of Resharper is it warns you if a variable may contain null and offers to add an if statement to catch it.

Correct Naming standards

ReSharper is good for nudging you in the direction of better coding and will warn you to rename fields and functions

  • Lightbulbs – quick fixes
  • closing brackets and quotes automatically
  • Code Generation
  • Alt – INS

RED Errors whilst you type

“Big deal,” you may say. “Visual Studio already has squiggles like that.” True. But Visual Studio only shows the squiggles after you compile. ReSharper points out compiler errors in real-time, as you type. It does its magic completely in the background.

Grey is dead code

If you see grey code, it means you don’t need this code because it’s not being used.  Sometimes this is annoying because you are about to use it.  It’s good for getting rid namespaces you don’t need (ReSharper will get rid of them for you)

One feature I really like is when ReSharper puts up an error, there is an option to click which says

Why is ReSharper suggesting this and it will explain the coding practice to you

Auto Closing Delimiter

ReSharper automatically closes brackets

Not used warning

ReSharper has great features and one of them is to warn when variables are not used

I had an example where I was assigning a value and then overwriting it.  Resharper warned me that variable value wasn’t being used in any code branch

warnings I found annoying

VAR

One warning which annoyed me was Resharper trying to change all varibables to var to improve readability.  Personally I like developers to use the correct variable type and using var is a bit lazy.

it kept trying to persuade me to remove this but FXcop kept advising me to put this in.  Only one way to resolve this

FIGHHHTTT

The good news is it’s easy to turn off the warnings.  You can turn off the warnings in a method or class or project.

Or you can turn the inspect severity and then search for the error you want to remove.

Learn to use your tools effectively

Tools can make speed up development process and make development processes easier. Choosing the right tools is one part of the solution.  The rationale behind this is you probably use your development tools on a daily basis, if you can find functionality which speeds up, automatics tasks you do every day, lots of times a day you will make a considerable time saving.

This sums up my thoughts on resharper, it eases and speeds up my development

information for learning ReSharper

There is a series of screencasts on the Dime Casts website which are quite good as an introduction.There is also the 31 days of Resharper and the official demos give you an idea of what’s possible so you know to dive into the menu.
This article show you how ReSharper’s code creation

Absence makes the heart grow fonder

The time I really notice the work ReSharper does is when I am helping with someone and they don’t have ReSharper.

ReSharper helps refactoring, this article describes why – Why use ReSharper manage refactor code

Overall

ReSharper makes working easier and smoother with lots of great enhancements.

Warning me about unusual variables, methods and usings is useful.

Warnings about code which could be done better is useful

It’s difficult to describe what exactly ReSharper does but it does things better than Visual Studios’s out the box functionality and will make your life easier.  If you use Visual Studio on a daily basis all the small benefits will add up to large benefits.

If you try ReSharper you will see why it’s great and will be tempted to buy it