As I have been exploring the Power Platform, I continue to make new discoveries every day. I am not a developer, but I have developers on my team. Lately, I am noticing that we are pulling them into projects much less often than in the recent past. I wonder what the future-state of this will be…
Power Platform
We are in that fuzzy time, between something “new and significant” being launched, and the world understanding what it is, and what it means. Many customers are still saying things like, “I don’t want this new Power Platform, I want Dynamics 365“. Of course, Dynamics 365 runs on top of this “new” Power Platform. While confusion remains, I have covered this in other posts, so the “confused” obviously have not read them. For this post, I am more interested in the Developer’s Dilemma.
What is a Citizen?
Lately, Microsoft has been using the term “Citizen Developer”… a lot. To listen, you would think that any boob could build an enterprise grade application in an hour. That may be the case in the future, but we are not quite there yet. However, we are at a point where a technically inclined, non-developer, who understands their business, can indeed get quite far, all the while thinking that C# is either a musical note, or some kind of cheese. So what is the current, and future role of that hard-core developer in this equation?
Deep Water
Even though more apps are now being built by non-developers, most of them will hit some deep water at some point. That deep water is about a mile further out than it was just two years ago, but eventually they will reach it and either settle, or engage a developer to help paddle through it. But they got a mile further before having to do so! That’s a mile of work that previously would have kept a developer busy… and the deep water line continues to move out.
The End of C#?
Not anytime soon, but I can see the need for advanced C# developers fading over time. On most partners’ benches, these are among the highest paid resources. It is because of this, that the off-shore industry was born. But as the need diminishes, and the opportunities become scarcer, rates will come down, and never go back up again. This spells long term trouble for both on-shore and off-shore companies focused on deep development.
Automated Code
I was chatting with my good friend and fellow MVP, Mark Smith (aka @nz365guy) the other day. Mark has been around development for decades. He suggested that all code is logical. At the end of the day, all code results in 1s and 0s. It’s not emotional, it’s not creative. Mark feels that in the not-too-distant future, code will be written by AI. I can’t come up with a single reason to disagree.
What replaces C# Skills?
So, if the world continues to grow… a given, and platforms like the Power Platform continue to evolve in the direction they are… another given, what skills will be needed? Whenever I have looked at complex things built by coders, one thing always stands out to me: it’s some ugly shit. In a world where UI/UX trumps functionality, the world that we have been living in for some time now, it seems the future needs are clear. Business Analysts and Front-end Developers will be the coveted skills. BTW, Mark is with me on that one.
Javascript, HTML and CSS
The tools of the Front-end developer trade, are currently the tools that will become even higher in demand than they are today. I’m not saying that we won’t need that occasional bit of complex code to accomplish some thing, but that box keeps shrinking. Far more important to me, and customers, is the UI/UX we engage with. We don’t really care, or appreciate, what goes on behind it. Just like everything else, UI/UX tools will continue to evolve also, and at some point that skill set may be in jeopardy also.
Rise of the BA
If you abstract out the developers, both front-end and back-end, what is left is the business logic and process. I have always found developers to be lousy analysts, they work with the other side of the brain. But those people who are able to dissect a business, really imagine all of the components of it floating in the air, see how they connect, see where they fail and can improve, from the front all the way to the back… they will be the kings. And they won’t need to know a lick of code. Of course the Business Analysts I have known, are not UI/UX capable, they take more of an “I’ll know it when I see it” approach, rather than a “Here’s what it should look like”. Couple a good analyst, with a good front-end developer, and you can rule the world
Who sees this?
Microsoft sees it. So do the other major players, but Microsoft has a unique set of assets to actually seize upon this. The “Power Platform” is the tool-set that is rapidly evolving to fulfill this exact scenario. I don’t know if Microsoft actually coined the term “Citizen Developer”, but they have taken ownership of it, just like they did with “Cloud”, which contrary to what you might hear, Microsoft did not invent. But unlike Cloud, this time they are not late to the party… they are right on time.
We heard very similar predictions 20+ years ago, when MS Access started gaining traction. Database Application developers would soon be a thing of the past. Every department and Business Unit could create and maintain their own database, data and applications. And they did. We spent the next 20 years cleaning up the ensuing mess.
great comments from so many members of our community — kudos for provoking a serious discussion, Steve
Thanks Jim!
You will always need developer to create complex solutions. The Power Platform means they will use different tools.
Excel can do amazing things but have you ever seen a really complex Excel spreadsheet, no one other than the person who created it dare touch it. A large solution made of many PowerApps and flows have the potential to create a spiders web of unsupportable apps.
Developers have standards and discipline to allow them to create complex solutions.
The example of simple standalone business app examples is great, except this rarely happens in the real world because requirements are complex and they will involve lots of them.
Hi Steve,
As always, I thank for a poignant and thought-provoking blog post. As a Dynamics 365 C# developer (among other things), your perspective provides much food for thought. I accept that ours is a dynamic business (pun intended), with market forces and the whims of huge players changing the game constantly. A similar article about Silverlight circa 2011 would have been spot-on.
Fortunately, C# is not Silverlight. As you emphasize the growing role of the front-end developer, you may be interested to know that through its experimental Blazor project Microsoft is bringing C# to the browser (via WebAssembly, aka WASM). .NET Core 3.0 will officially include Blazor’s server-side capabilities, which bodes well for future inclusion of its client-side features. And lest we fear another Silverlight debacle, you’ll be happy to know that WASM is a standard so Blazor requires zero browser plugins. .NET Core and Xamarin have brought C# cross-platform. With Blazor further expanding it to the front-end, C# and its developers may well escape extinction.
On a broader note, there have been efforts for decades to replace human programmers with coding machines. Granted, the advances in AI may give the automatons an advantage in the foreseeable future, but thus far all attempts have failed.
Perhaps human programmers survive because programming is an art and a science. The science is the binary logic of 0’s and 1’s. The art is describing the desired behavior of those 0’s and 1’s in a language that both human beings and computers can readily understand.
In nearly all programming situations there are multiple ways to do that, each with its pros, cons, and costs – bringing the skill, creativity, business acumen, and style of the programmer (or dev team) into play. Human programmers are far from perfect, but we have yet to find a better replacement (and it has not been for a lack of trying by various interests.) I also contend that BA’s, citizen developers, and front-end developers are subject to human imperfection in equal measure to C# developers.
The rise of the Power Platform and the citizen developer greatly expand what can be done without code, but completely eliminating developers in favor of GUI tools is a tall order. I agree that for codifying day-to-day business logic, the Power Platform will likely leave me mere table scraps of deep customization. But, the business of cleaning up messes will retain its potency for some time.
Plenty of implementations need plenty of work to get to a point where a citizen developer can take the reins. Upgrading legacy code – including stripping out what Business Rules, Flow, and Power Apps can now handle – will be in demand for years. Fixing flawed schemas and migrating data will continue to need development. Demand may decrease, but some tasks will still require dev muscle.
And, as someone who spends considerable energy crafting code to be as readable, maintainable, and dare I say as “elegant” as possible, I’ll see your: “At the end of the day, all code results in 1s and 0s. It’s not emotional, it’s not creative.” And raise you a: “All blog content results in letters and punctuation. It’s not emotional, it’s not creative.”
Obsolescence I can handle, but never impugn my creativity or craftsmanship. lol
All the best,
Aron
The thing we have to keep in context about the term citizen developer is it’s a synonym for “business user that doesn’t know how to design software well”. The domain where these people will largely operate is in the area of small scale narrow scope applications. Microsoft doesn’t want business users to feel they need to hire a developer or hold their breath for IT in order to use their platform. The strategy to empower non-technical users is brilliant, but like any other strategy it also has cons.
As the scale of application needs increases citizen developers will begin to swim into the dangerous waters and there are very real monsters waiting for them. I can give a hammer to my 5 year old daughter, but even if she was well intentioned bad things will happen without proper oversight. Citizen development doesn’t scale, but at the same time that’s okay. The point is at this point the platform will have stickiness to it. If those small time projects grow they’ll eventually end up in the hands of a more experienced implementer and that’s what we want to happen.
I like the “deep water” analogy better than the “cliffless” term that Microsoft uses. I agree with you on C# devs, but I also see an emerging “Azure dev” segment that will be the high demand skill for a while. These are the people that can guide projects through the deep water–not creating Azure VMs and virtual networks, but truly understanding how to leverage Azure services like Service Fabric, Functions, LogicApps, etc.
(As always, thanks for reading your blog to me)
I think developers might evolve.. the nerdy Gods of C# development will be rising on the ashes of the current development trade since all the relatively simple tasks will be within the reach of Citizen Developers. Problem is, those folks will have the skills which are scarce and expensive. There will be less of them, but, as for their salaries.. I would not be so sure they’ll go down.
Hard to fight the law of Supply and Demand