Power Chat with Jim Novak

Jim Novak is a Microsoft Business Applications MVP and a D365 technical architect. He leads D365 Saturday and TDG communities in Washington D.C. area. He is an admirable and inspiring community contributor. He frequently arranges events, presents as a speaker and develops tools for the community. I hope you will like this chat with Jim Novak 🙂

For the success of a D365 project, what are a few things (practices or steps) you do when kick-starting a new project?

Set expectations for both the team and the customer – and reassess these throughout the project

Channels of communication – everyone has a say, so speak up!

Key stakeholders on the project who have the authority to make decisions

What delivery methodology you have found useful in projects?

Agile has worked best when it’s actually being followed.  Waterfall usually cannot keep up with faster paced projects

The methodology needs to be established early in the project and the entire team needs to be disciplined in following it, or adjusting when something is not working 

A hybrid of Agile and Waterfall rarely succeeds in my experience

What is one thing that can make a project successful or vice versa?

Lack of communication and setting expectations can destroy a project.  If each group is expecting a different outcome, then someone is going to be upset.

Preparation – when the project starts, being unprepared can cause huge roadblocks. For example, working on a D365 project and the customer has not yet procured licenses and an environment for development and testing

Give me two (or more) tips that will enhance the performance of my applications?

Avoid performing Creates/Updates using LINQ objects

For large queries, avoid LINQ

Reduce round trips wherever possible

Use the Pre stages in plugins to update the Target vs the Post to perform another update

Tell us two things (or more) which will improve the quality of deliveries?

Communication – all around… within your team and to the customer

Trust your team – if someone speaks up, listen.  Even if you disagree, it goes a long way in building trust

In the context of D365 implementation, what does architecture means to you?

Big picture – all the moving parts.  How to configure D365, security, entity model design, integrations, etc. 

Architecture to me means establishing an approach for the above early in the project, implementing, and adjusting as challenges arise.

What few things you consider when you are architecting or designing a solution?

Environment – Government Cloud vs Commercial

Integrations – any integrations required with external systems?

New solution vs move of an existing – can we leverage existing knowledge, technology, or business approaches to the new solution

Tell us anything that you consider is/are the best practice(s) and everyone should follow?

Standards for your team, devs and business analysts, that everyone will follow.  For example, naming conventions on entities, attributes, etc. That can make a big difference when developers write code against the entities.

Another example – documentation… being disciplined in documenting your work. Makes a big difference down the line when you wonder why someone did something!

Share a tip of yours to boost productivity as a dev, consultant or architect?

DevOps – a solid dev ops process can reduce time to deploy, keep the team in sync, and identify issues early. Even for a single dev, this can be a big timesaver

Have you seen an impressive AI application recently, preconfigured or custom which you want to mention?

I have not had the chance to work with any AI

How you analyse and build security in projects? Any tips?

Start early – work on security as you are working out the data model and not as an afterthought

One approach is to start with a restrictive approach from the start.  Assume data is going to be locked down and grant access as required.  And the opposite – assume open and lock down selectively. Each approach means a good understanding of the requirements early in the project

Look at the “day in the life” of an end user. That may offer some insight into how to lock down security if needed.  How will User Group A access data vs User Group B?

How will the end users be accessing this data?  From the UI only, via Reports, or through external integrations?  Answering these questions early will help in applying security

Leverage Team ownership where possible as it often removes a single point of failure when working

While doing configurations do you follow some rules or practices?

Naming on entities, attributes, etc

Naming of form Tabs and Sections. This makes a big difference in Portal work for metadata as records

Documenting in the metadata – makes generating documentation easier

Managed or Unmanaged?

In recent years, I have come around to Managed.  It adds stability to downstream deployments

Early bound or late bound?

Early bound where possible

LINQ, FetchXML or QueryExpression?

LINQ for simple, low row count queries, but not for updates

FetchXml seems to be the fastest

Realtime vs batch?

Batch where possible.  Ex., ExecuteMultiple isn’t supported within a plugin and can cause SQL locks (I speak from frustrating experience there)

No code/ low code or hardcore development?

Yes – low code/no code until you hit the limit

LC/NC puts a LOT of power in to the hands of non developers who typically have a better understanding of the customer requirements

Once you hit the limits of LC/NC, the developer will have a narrower focus rather than building everything

In your kingdom, what sort of testing is mandatory (add more value) and which are optional?

Unit testing can be a lifesaver on a project – reduces errors on releases, can identify bottlenecks, etc.

Unit testing for devs also offers a common framework for building solutions. It can be used to communicate methods / patterns for development. Can also serve as a tool for ramping up devs.  New to the code?  Check out the unit tests for a bit of an idea how things work.

Generally for Integration, which technology and pattern is your choice?

Totally depends on the type of integration.  But recent projects, Azure Function Apps have been super helpful

Any open-source, community development, toolbox plugin that you want someone to develop?

Where do I start!?

Actually, I have a list of plugins that I am working on… I like to build them myself

And I rely on several XrmToolBox tools on a daily basis!

If you have all the resources to improve one thing in D365 what that would be?

Developer tools – loads of capabilities with the SDK but the toolset is fragmented

Deployments – deploying solutions is incredibly powerful, but moving data is a pain

What is one thing in model apps you consider people are not utilizing its full potential?

PCF controls – fairly new so I expect this to change!

If you are selling D365 just by one feature, what that feature is?

Data modelling – in just a few minutes, a non developer can build out a fully functioning and performant enterprise database

Or… security – the security model on the entities is very powerful

What will you suggest to someone who wants to be a D365 professional?

Grab a trial and build something! 

Access to a trial environment is MUCH easier these days, especially for partners and the quality of the documentation in the last year has greatly improved

And I find building something is easier than reading vanilla how-to documents

Check out some of the solution accelerators for ideas

What advice will you give your younger self who is already working as a D365 professional?

Participate in the community!  I missed out on a lot over the years because I was either shy or did not make the time.

The community has a TON to offer for learning

and share with the community. You will be amazed at how much help you have to offer someone!

What are a few things you do to be efficient in working?

I struggle with this – one thing I am working on myself is focus.  There is so much going on in the industry, focus on what is in front of you vs trying to take it all in

What is the best way to keep up with technological advancements and changes?

Follow the community sites – lots is posted about the platform by Microsoft themselves

Follow some community “leaders” – lots of community members have built expertise or have unique access to information.  Find some key people you trust to follow for updates

Thanks Jim.

Let’s Connect 🙂

twIconlnIconfbicon

 

1 Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s