It seems this old new debate is starting again, so now that Jukka and Natraj have posted great articles on the topic:
I really can’t help but chime in, even if not on that same scale.
See, I code. However, I used to write about it before, and I’m still stating the same: I’d be almost insulted if somebody called me a developer (and that happens almost daily, so you can imagine…)
Do I have anything against development? Not really, I just don’t think that’s who I am, and, to start with, I’d be bored to death if I had to be writing code all day long. But doing it a few hours per day? That’s just what I need.
Which, of course, affects my overall development skills, since, even though I used to be a .NET developer before switching to Dynamics in 2010, ever since then I have always been playing a catch up with the development tools/technologies, since I don’t need to use them that often anymore. That was a conscious choice back then, though, so, essentially, I got what I wanted.
Do I miss development? Sometimes, I do. Even while reading Natraj’s article above, I noticed that some of the tools he mentioned I have never even heard about. That definitely hurts, but this is where I need to remember why I transitioned from a traditional pro developer to a Dynamics/Power Platform consultant with development background.
And the reason is that, as much as I like coding every now and then, there is another area which is at least as interesting, and which is on the edge of business analysis and development. It’s designing solutions in collaboration with the clients. Sometimes, this is called architecture, but there are nuances there, since there is classic enterprise architecture that has very little to do with the solution design, and there is solution design/architecture which is very specific to the tools utilized in the solution.
That latter one is exactly what’s making this job attractive to me, and, of course, there is an added layer of occasional development that I need to do when prototyping or implementing more advanced customizations. It’s sort of a perfect mix.
However, thinking of whether I could be a pro developer focusing on the Power Platform, I wonder if there is, really, that option now. I could probably make an argument that, from the beginning, Dynamics CRM was meant to be a low-code platform. We were not supposed to code user interface from scratch, we were not supposed to develop lots of business logic in the plugins. We were supposed to do some of that, but it was meant to be done sporadically, because, after all, if you had to re-write Dynamics functionality using custom code, why in the world would you even go with Dynamics to start with?
And it’s the same with the Power Platform today, just Microsoft has taken it even further by introducing all those extra tools such as Canvas Apps, Power FX, Power Automate, Virtual Agents, etc.
A lot of work in Power Platform is (and always was) supposed to be done without pro code. And I think you would actually have to work for a big implementation partner to be specializing in Power Platform development as a pro developer, since pro development is an expensive activity, and, the way I see it, one might have difficulties finding a dedicated pro developer role on a single project directly with the Power Platform clients. Unless, of course, those are huge clients which may have such requirements occasionally.
It’s much more likely, though, that the clients would need a consultant. In the sense that development would not be the only (or even the main) activity – there would be other things to do. Setting up the users, providing training, providing support, troubleshooting, evaluating requirements, configuring the system, setting up data migration, and, occasionally, still doing development. But not just pro-development, since you’d have to be doing low-code development as well.
Do you think after a few years of this work you are still going to be able to say that you are working on the cutting edge of pro development? I’m sorry, but it’s not going to be the case (and least not through your work experience). You would definitely be on the cutting edge of the Power Platform technology, though.
So, I guess I’m with Natraj in terms of what pro developers could be doing if they wanted to stay pro developers, and I’m with Jukka in terms of what Power Platform consultants could be doing, but there is one caveat.
Essentially, I don’t think pro developers should be really focusing on the Power Platform. If they do want to keep advancing their pro development skills, they might choose to venture into the Power Platform world every now and then, but there is not going to be a lot of cutting edge work there (except, maybe, for the PCF-s, but how often would you be writing an advanced PCF?), so, in terms of maintaining/exercising their skills, somehow they need to find a healthy mix of Power Platform and non Power Platform work.
That’s, actually, the curse of the Power Platform – I don’t think it’s that attractive for pro developers, so that might be another reason why there is a lot of push for the low-code tools. Basically, if we can’t get enough work for pro developers, but we still need code-level customizations, why not to democratize this area and come up with the low-code approach, right?
Except that, when low-code meets pro-code, there can be a clash of cultures, but this is where we would have to start talking about unit-testing, devops, pipelines, git, and all of the other things which are normal for pro-developers, but could be almost alien for the functional consultants or business users who would be using low-code.
Well, it seems there can be no short post on this topic Have fun!