The term “Full Stack Developer” originated in the early 2000s, when web development became more complex and required broader skills. In 2023, while still in broad use, the term is complete bullshit. Describing oneself as such is disingenuous; seeking such will lead to disappointment.
What’s a Stack?
It takes a Team today.
While I personally know many very talented people, it is impossible to be an expert on everything available in the Power Platform. I know multiple Dynamics 365 for Marketing experts and many Power Apps Control Framework (PCF) experts. I know Dynamics 365 Business Central experts, Azure experts, Field Service experts, and even experts for the Center of Excellence (COE). But few of these experts’ knowledge spans more than a couple of areas, and I only mentioned a few of the areas. Also, the experts I am referring to are MVPs, the cream of the crop. The bozos sending me resumes or offering services on Upwork don’t have a chance!
To succeed with Microsoft Business applications today will require multiple people to cover the necessary areas. And how about AI? Everything is changing very quickly right now, and we don’t have any experts!! The only thing worse than a lack of experts is a plethora of pseudo-experts.
What is Success?
Success is clearly in the eye of the beholder. Being keenly aware of all of the elements available yet not an expert in any of them, I describe success as engaging with anything and everything that improves the KPIs of an organization in a cost-efficient manner. Since every organization’s KPIs will vary, the mix of elements will also vary. Success also means being future-proofed (as much as possible) and sustainable. Not the green version of sustainability, but the real version: this solution must operate reliably and efficiently and continuously evolve to improve current and future known and unknown outcomes. Success is not measured at a component level but at a holistic one. The available potential far exceeds the sum of its parts. “Not Failing” is not the same as “Succeeding”.
What’s Wrong with My Developer?
There is probably nothing wrong with your developer; what’s wrong is your expectations. I recently spoke with a customer contemplating hiring a “Full Stack” developer on Upwork for a significant Power Platform project. I attempted to explain that the person he seeks does not exist, and whoever he might hire will only know what they know, and that will become the boundaries within which their project will likely fail to meet expectations. Ironically he shared that another related project was massively behind schedule and over budget. While he claimed that cost was not a factor, whenever I hear that, I know that cost is the most significant factor. I am reminded of the definition of insanity, doing the same thing twice but expecting a different result.
In another case, a customer hired a “developer” in-house. I understand the motivation to save money. This developer’s alleged expertise was with Web Apps, and when your only tool is a hammer, everything is a nail. I’m not sure how many options they explored for a new significant project, but not surprisingly, they chose Web Apps. I mentioned “Sustainability” as part of my Success criteria. To accomplish that, you choose the technology that best suits the challenge, not the one your developer knows. Your developer will move on someday… then what? Upwork is an even higher risk; it’s not even “your” developer. Your success is not their problem.
Yet another customer, exploring the Power Platform for the first time, felt that our team would be a replication of his in-house development team. The overlap of actual skill sets would probably be zero, but some people assume that any “developer” is some universal know-it-all. If they are good, they can eventually learn what they don’t know, but I know from experience that it will take a while, and many mistakes will be made.
Most real developers I know have a high degree of confidence in their ability to learn new things; they’re not humble. Their dilemma is that there are not enough hours in the day to spend time speculatively learning many new things. So how do they learn? On client projects. For example, if asked about Dynamics 365 for Marketing, they will likely say, “no problem”. While you may think you heard was, “Yes, I am an Expert”, they likely meant, “I can learn it”.
Dynamics 365 for Marketing is an example of a complex product, and there are indeed some experts for it. Which path has the highest chance for success? The fact is that almost everything any developer knows beyond the typical coding coursework was learned on client projects. This might explain why the billable hours seem so high for some items. A real expert would likely do a much better job at a much lower cost. Ironically they became a real expert by learning on previous customer projects.
I have touched on this in past posts, but it bears repeating: Microsoft has 100% over-sold the Citizen Developer concept. While this post has explored how even skilled developers are insufficient, how would anyone think a non-skilled person would succeed in anything more than wasting time and making a mess? As I write this, Microsoft is launching AI capabilities that they claim can create an app from a written description. I’ve seen the demos; it creates a basic starter app that does not do much. This will also be 100% over-sold in its actual capabilities.
What about AI?
If you have not been following what is happening in the AI space, particularly around GPT-4, then you will likely be among the first to be replaced by it. While clearly on a trajectory towards Skynet, before we reach that point, there are many benefits that GPT-4 and its surrounding ecosystem could bring to your organization. But we have no experts yet, so if you want to play in that sandbox, be prepared to hire a good team and know they will be learning on your project.
Unfortunately, a while back, I started adding summarizations to my posts. I have also become more rambly, stream-of-conscious, and semi-incoherent in my writing style, making summarizing challenging. As I re-read this thought spaghetti, I think the most crucial point is that it will require a team to succeed, whether from a partner or built internally. The person who knows it all does not exist. One thing is sure, Upwork will fail spectacularly 🙂