Developer Viewpoint is a platform where we explore the opinions of software engineers on issues within the IT industry. The discussion takes the shape of dialogue and in this edition, Ekhor Asemota explores “Low-Code Options for the .NET Software Engineer” with Ben “Power Hosk” Hosking.
Ekhor: I am sure you get this all the time, but I must start with this. Whenever I get stuck with an issue in Dynamics 365 and search on Google, something connected to you always shows up. So, thanks for devoting so much effort towards helping the Dynamics 365 community.
Ben: The Dynamics community is an excellent community with lots of bloggers, vloggers and content which can assist in resolving Dynamics-related problems. The breadth and depth of the community content is very significant.
When I came across a problem, I wrote about it. The logic behind this was that, if I had the problem then other people will most probably have encountered the same problem. Through this, I realised that when I explain something it helped me understand it.
Ekhor: I came into Dynamics 365, from a .NET developer background and have had a lot of struggles adapting to the low-code option which Dynamics 365 offers. Did you have a similar experience when you started working with Dynamics; and as its advocate, what would be your advice to any .NET developer who might have similar struggles like I do?
Ben: Prior to Dynamics, I was a .NET developer. For me, the key fascination with Dynamics was the fact that it did a lot of the plumbing activities out of the box. So, I could focus on creating business functionality. The goal of any developer is to help businesses and users perform their job.
One of the keys to becoming an excellent Dynamics developer is to choose the right level of customisation that delivers business requirements.
Ekhor: A major feature of our industry is the ferocious pace of change — new technologies are popping up all the time. Take for example, the evolution of the C# language — which is now at version 8, with very exciting additions to the language such as Pattern matching and Default interface methods. Low-code technologies don’t generally need any of these. So, what do you think will be the long-term effect on software engineers who are not able to use their coding skills?
Ben: In the technology industry we all must keep up with the latest trend, we must evolve our skills to adapt to the changing environment. The skills and technology used to deliver projects in the future won’t be the same skills you used to deliver projects in the past. If you don’t evolve to new technologies, then you will slowly reduce your usefulness.
A good example in Dynamics is learning Power Apps, Power Automate and Azure functionality. Dynamics moved from on-premises functionality to cloud services. This changed the nature of the solutions we deliver.
We moved from monolithic solutions where all functionality resides inside Dynamics, to using Dynamics Online services where Microsoft restricts the use of its resources.
For example, the 2-minute limit for all plugins and workflow activities. In addition, the emerging online paradigms often demand that long running processes are offloaded into cloud services such as Microsoft Azure, running C# code, Flows and Logic Apps. As such, Dynamics is now able to easily integrate with other services.
Ekhor: Staying on the same issue, maybe the future is low-code. There was a time assembly language was the “hottest” thing in the industry but today, this is no longer the case. Perhaps we are looking at this issue through the wrong prism — our role as software engineers is not as the ‘tool’ but rather delivery of value to the customer. What do you think?
Ben: Customers don’t care what technology or customisation is used to deliver the solution. Technology is a tool which customers use to do their job. In fact, they shouldn’t need to worry about any of the underlying technologies.
Their focus should be on their business needs. The role of the developer is to create the simplest, easiest and most cost-effective solution for customers to do their job and achieve their business goals.
Ekhor: What do you think software engineers must do to remain relevant within this industry, especially in terms of maintaining their coding skills while embracing the new world of low-code?
Ben: Software engineers need to be curious about new features and functionality within the industry. I keep up with this through Twitter and by following people in the Dynamics community.
I like to explore the opportunities which these new technologies offer because it enables me to become the “go-to person” for these new technologies.
Attending conferences is another great way to keep up to date as you get a lot of useful presentations and keynote speeches from presenters such as Microsoft.
I have been lucky enough to attend Extreme Europe for the last few years and always attend talks from Matt Barbour, who is the main technical force behind Dynamics. His presentations always offer a few gems about the future direction of Dynamics.
The best way to learn about new features and the potential of low-code options is by playing with it. Practical skills and experience always beat theoretical knowledge as it enables you to understand what is production-ready. You want to stay on the cutting edge not the bleeding edge of technology.
Ekhor: Sometimes, it seems like these kinds of advice are aimed at “experienced” software engineers. However, I would argue that they are equally relevant to “new” entrants into the industry especially as technologies change so fast. Any thoughts on this?
Ben: Low-code and no-code options offer the potential to create customisations and solutions quickly. However, it is important to remember that the development of a solution is not the end of the story. The developed solution must be maintained over the lifetime of the solution.
In order to create robust solutions comprised of no-code/low-code customisations, the software engineers must be disciplined, adhering to time-tested practices such as standard naming conventions, effective testing strategies and software patterns.
Anyone who has seen a complex Excel spreadsheet can confirm that you can end up with a maintenance nightmare quickly if you don’t create solutions systematically and professionally.
PowerApps, Flows, etc are great. However, imagine if you have 100 or 1000 of them making up a solution. How will you maintain, debug and extend that if you didn’t do this in a standardised manner?
Ekhor: Finally, how do you maintain a healthy life-work balance in this industry?
Ben: A developer’s job is a creative role, you need to manage your energy levels to make sure you come up with good ideas and solutions. The developer focuses on bursts of productivity after designing the solution.
The best way to keep healthy is to sneak exercise into your daily life. For example, if you are working away from home, get a hotel 15- or 30-minutes’ walk from work, as this will ensure you have some time to have a break from work. You must look after your health because you only have one body.
A healthy balance of work and fun is important for your mental health. Thinking about work can be like carrying a weight, initially it doesn’t feel that heavy but the longer you hold it the heavier it gets.
The way to stop this getting too heavy is to put it down and switch off thinking about work. Check out this resource: Stress and the Glass of Water
Developers can be under lots of stress at work with tight deadlines, bugs, incorrect solutions and projects going wrong. Mark Cunningham wrote a great article on this titled Developer Depression.
My advice is to create relationships at work, and remember IT Projects are a team game and no one delivers a project by themselves. Don’t suffer in silence; and speak to the people on the team because it will benefit you and the team.
Remember a happy worker is a productive worker. We only have one life, make it as fun as you can. Work won’t stop giving you tasks to do, so you have to turn off work and do something else.
The best way to do this is to make sure you have something fun to do outside of work. Read books, watch films, spend time with the family, join a club, be social and create fantastic memories
Ekhor: Thanks Ben for spending time talking to us and I am sure there will be lots of questions from our audience.
Be sure to visit Ben’s blog for very useful tips on Dynamics.
Join the Capgemini Microsoft team — apply for available jobs here.