Developer Viewpoint — Life of a Dynamics 365 Developer
“The standard library saves programmers from having to reinvent the wheel.” — Bjarne Stroustrup
Developer Viewpoint is regular section on the blog a section that involves two developers discussing an issue. The discussion takes the shape of a dialogue and in this issue, Ekhor Asemota explores Dynamics 365 with Tom Ashworth.
Ekhor is an experienced Microsoft developer with experience in DevOps processes for Dynamics 365.
Ekhor: You have been working with Dynamics 365 for a while now and there is a lot of demand for this platform. Could you give our audience an overview of Dynamics 365?
Tom: Dynamics 365 is a package solution offered by Microsoft within their PowerApps family that brings together Customer Relationship Management and Enterprise Resource Planning into a powerful, unified, connected business application. It is flexible with various levels of customization providing a fully featured application from day one including a database and schema, user interfaces for desktop and mobile, and a flexible security model.
Ekhor: Do you think that traditional .NET software engineers should care about Dynamics 365 and if yes, why?
Tom: I have been in the Dynamics space for almost two years. Prior to this, I wanted career based solely on developing custom code. Then, I was introduced to Dynamics 365 which provided so much out of the box functionality — it was eye-opening! So, in my opinion, .NET developers should be considering the Dynamics 365 platform.
Although it comes with a new set of challenges especially working with a product that doesn’t give you 100% control, you are rewarded with a quicker development.
A final note, the salaries of a Dynamics 365 developer are often higher due to it being a niche skill.
Ekhor: Based on your experience, do you think Dynamics 365 can be leveraged to deliver complex solutions and if possible, could you give some examples?
Tom: Complex solutions are possible on the Dynamics 365 platform although whenever possible it should be avoided. As with any solution, the KISS principle should be followed which is especially important for Dynamics. By this, I mean using the no-code customization option offered by the platform for business logic.
I’ve worked on large corporate projects which have involved significant customization to tailor the application in-line business requirements. When working on such projects, its key that the lead developer has sight of how all requirements will be implemented. This will help to manage the customization process.
Ekhor: There is currently a misconception that Dynamics does not involve a lot of “intense” .NET development. However, from my experience, it seems that Dynamics 365 solutions often require complex integration with various aspects of Microsoft Azure. As such, requiring you to put on fully, your software engineering hat. Is your experience with the platform similar?
Tom: No code solutions are recommended but for complex scenarios, you will inevitably require .NET code to achieve business requirements. I have not been on a project that involved “intense” code, but I am aware of some solutions that have.
It’s important, despite the strive for more no code solutions, to identify when a coded solution is ultimately easier and cleaner due to the limitation of the Dynamics platform.
Ekhor: Would you be able to share with us any instance where you or your team had to leverage other technologies within Azure to support a Dynamics 365 development?
Tom: On my current project I have been embracing the wider Power Platform which Dynamics sits within. As a team we are shifting from the internal Dynamics processes to Logic Apps in Azure. We made this decision for processes requiring integration with other system to leverage the connectors (and customer connectors) available and recurring scheduled tasks to reduce long running processors within Dynamics.
We are experimenting with canvas apps to replace HTML web resources which can access data across the CDS and utilize the connectors from Logic Apps.
We are leveraging Azure Service Bus queues (Service Endpoint in the plugin registration tool). This allows for near real-time integration with the client’s chosen integration tool.
I would recommend exploring the wider Power Platform.
Ekhor: I am aware that you have been working on some DevOps activities lately for your current assignment. Is this related to a Dynamics 365 delivery and how are you leveraging some of the DevOps techniques?
Tom: I’ve been aware of DevOps since my first project with Capgemini but I’ve only recently started getting involved with managing a DevOps process. On my current delivery this involves both Dynamics 365 and SharePoint where we follow the principle of “build once and release multiple”.
Within our DevOps pipelines, we execute relevant tests and deploy data to Dynamics instances. DevOps is a crucial part of any software delivery and I’m keen to understand as much of it as i can.
Ekhor: I am sure our audience would be interested to explore some of the areas which we have highlighted today especially in terms of personal development plans. What would be your recommendations to them for DevOps and Dynamics 365?
Tom: I don’t have any specific resources for DevOps, most of my learning is by “just doing it”and researching the problems I encounter. For Dynamics though, there are two resources which I’d like to highlight:
- Our own team’s blog on Medium
- Scott Durow’s recent series called “Power Platform Unpacked” I’ve found very interesting
Ekhor: Finally, we know that the IT industry can be very demanding and as such, it is often difficult to strike a healthy work-life balance. If you don’t mind, could you share with us any strategy you have adopted to thrive within this industry?
Tom: I am studying, it can be hard balancing work, university, and a home life but I try to dedicate specific time to all three with some flexibility.
However, as they all end up using IT, the lines get blurred sometimes. Thankfully, I enjoy my job and the work I do. My routine involves occasionally working long hours and developing my skills outside work — which doesn’t bother me. I understand it is crucial to have downtime from the busy hustle of work and allow time to relax my mind which I plan for.
Read other stories from the Capgemini Microsoft Team.