Through the lens: 10 months of On-Prem – A refresher course – Part 1

D365 On Premise – A Refresher Course

One of my resolutions for this year was to publish a blog article every month. Hoping to resume my blogging journey and share my insights and experiences.

After almost 8 continuous years of meddling with cloud – Azure, Dynamics, and a bit of AWS, I got a chance to come back to the On-Premise version of Dynamics 365. Close to 10 months of 2021 / 2022 have been sort of a refresher course and this time, I was not spearheading the delivery. A client-side application architect role with my day-to-day activities changing almost every day with less control over the deliverables and near zero control over the delivery team.

Photo by Pixabay on Pexels.com

I’m a hands-on architect and this role was completely different from what I used to do. Yes, interesting 10 months.

Like many architects, I prefer sticking to a process. I lay down the platform and make sure my team builds on it. Of course, I have been blessed with some awesome managers, consultants and great team leads / developers to deliver the best. 

But in these last 10 months, I only had a birds-eye view, and interesting enough, it taught me many valuable lessons. I’ll broadly classify them into two categories – Project Delivery and Solution Design.

The delivery side of things.

  1. The art of documentation
    • Documentation is a necessity regardless of the methodology used by the project. Methodology only changes the tools and methods involved in documentation. A typical waterfall model will involve creating a Word document while an agile/kanban/scrum will need user stories in Jira or ADO etc.,
    • Documentation is definitely required when you are requesting an out-of-the-ordinary infra setup, with a clear explanation addressing the – What, Why, and How. In many of my projects, it is normal to give a walkthrough of the document before getting things done.
    • This documentation activity also depends on the right timing. Documents need to be available during the design phase. You can obviously do the required modifications during the build phase.
  2. The urge to share knowledge
    • Every IT project has seen the churn of changing resources. This is part of parcel of life. The quicker we onboard and offboard people (yes, including offboarding), the easier it is to execute a project with the utmost quality.
    • Swift resource rotations are possible only if you have the right ‘Knowledge Base’ set up in your team. It should range from the basics of links to access, architecture, and best practices to the most complex and time-consuming activities that your team does.
    • Knowledge sharing is only going to benefit you more because you move on to the next best thing with your teammate now doing what you already did for many months!. The more you share, the more you gain!
  3. Task planning and tracking
    • There are many simple tools available that can help you plan and track the work of your team. Ranging from simple tools like Microsoft Planners to Advanced tools like Jira /ADO.
  4. Better to delay than to deliver with issues
    • Easy to say, but difficult to practice. Achieving functionality by any means is not the right way to deliver a solution. The technical aspects matter and a project lead should focus on doing justice to the chosen technical components while achieving a solution.
  5. The need for a delivery architect
  6. Roles and Responsibilities
    • Define clear roles and responsibilities. This will help you to achieve your goals with utmost quality as each person will have a specialized skillset and will also keep the morale of your team healthy.
  7. Coding standards, Reviews, and Source code management
    • Typical requirements of any project, when done properly can reduce your delivery time and will also give you a work-life balance. No point in slogging every day, it will only reduce the quality of your deliverable.

Solution design.

  1. Siebel can do, why not D365?
    • Users generally try to compare products. The delivery team must educate the features possible in a product and make sure the product is used in the right way. Focus on increasing user productivity using a next-gen system rather than on building a like-for-like system
  2. Functional and Technical Objectives – The needed balance
    • Same as the previous point. Use the product in the right way. There is no point in customizing it in incorrect ways just to meet the requirements. Educate the users on the advantages of the chosen product instead of building the Impossible in it.
  3. Data Structure
    • Do you know performance issues can be sorted by fixing the data structure? Yes, you can. Try it. Make your data structure linear if you need better performance. This is what AI says for linear data structure:
    • In the context of Dynamics 365 CE (Customer Engagement), a linear data structure can offer several advantages for organizing and managing data. Some of these advantages include:

      1. **Simplicity:** Linear data structures, like lists or arrays, are straightforward to implement and understand. They provide a simple way to store and retrieve data in a single, linear sequence.

      2. **Efficient Access:** Accessing elements in a linear data structure is usually efficient and fast. In D365 CE, this can be beneficial when handling large datasets or performing quick lookups.

      3. **Sequential Processing:** Linear data structures are ideal for scenarios where data needs to be processed sequentially. For example, when performing calculations or applying business logic step-by-step.

      4. **Memory Efficiency:** Linear data structures can be memory-efficient compared to more complex data structures, as they don’t require additional pointers or metadata to manage relationships between elements.

      5. **Easy Iteration:** Iterating over the elements in a linear data structure is straightforward and requires minimal code complexity. This can be helpful when performing operations that involve all records or entities in D365 CE.

      6. **Predictable Behavior:** Linear data structures provide predictable behavior for operations like adding, updating, or removing elements, making it easier to manage data changes.

      7. **Compatibility with APIs:** Many APIs in D365 CE are designed to work with linear data structures. Using these data structures can simplify data integration and data manipulation tasks.

      It’s important to note that while linear data structures offer advantages in certain scenarios, other data structures like hierarchical or graph-based structures may be more suitable for handling complex relationships and nested data in Dynamics 365 CE, depending on the specific use case and data model requirements. Choosing the right data structure depends on the nature of the data and the operations you need to perform on it.
  4. Notifications and the usual troubles
    • How many times has a notification from a non-prod environment reached a customer? I have seen many Android apps send me ‘Test’ notifications.
    • It is fundamental for any delivery team to build notifications with appropriate checkpoints and gates instead of adding whitelisting/turn-off features after an incident occurs. Think about what might go wrong and bring abilities to overcome it as part of your initial design.
  5. Sharing – Great for Jams, not so good for performance
    • My understanding of the Sharing feature of D365 is to give quick access to a colleague or team when needed. I rarely see a static sharing list, meaning 100k records are always shared with a single team or user!
    • We need to understand the purpose and the need for sharing. By Sharing too many records with too many users, you are also missing a way to find out easily who has access to a record, from UI or advanced find. Not to mention the impact on performance. You can increase the infra as required, but fixing the security model is better than pouring your money on infra.
  6. Security model – KISS
    • Keep it simple. Yes, make it easier for anyone to understand how your security model works. D365 CE offers some good features, stick to it.
    • Stay away from client-side security setups like using JavaScripts and implement column security profiles wherever JS might be required.
    • Reduce sharing
    • Use the concept of business units, teams, and additive security roles
      • In Dynamics 365 CE (Customer Engagement), additive security roles allow users to accumulate privileges from multiple roles. When a user is assigned multiple security roles, the privileges from each role are combined, granting the user access to the combined set of privileges from all assigned roles. This additive approach ensures that users have the sum of permissions granted by each role they belong to.

        For example, if Role A grants Create and Read privileges on Accounts, and Role B grants Update and Delete privileges on Accounts, a user assigned both Role A and Role B will have Create, Read, Update, and Delete privileges on Accounts.

        To assign additive security roles in Dynamics 365 CE:

        1. Go to the Dynamics 365 CE environment.
        2. Navigate to “Settings” and click on “Security.”
        3. Open the “Users” or “Teams” section.
        4. Locate and select the user or team you want to assign roles to.
        5. Click on “Manage Roles” or “Manage Roles for Team.”
        6. In the “Manage User Roles” or “Manage Team Roles” dialog, select the roles you want to add from the available roles list and move them to the “Assigned Roles” list.
        7. Click “OK” or “Add” to save the chan

        Remember that additive security roles can lead to a cumulative set of privileges, which might result in more access than intended. Always carefully review the roles assigned to users and regularly audit security settings to ensure that the access remains appropriate for each user’s role and responsibilities.

Part 2 coming soon..

Leave a comment