… or at least a path we don't want to follow.
I was working with no-code or low-code solutions before this term’s popularity exploded worldwide. Over 15 years ago, me and my coworkers realized that the Dynamics CRM engine could be used for building applications that had nothing in common with customer relationship management processes. The main reason for implementing such solutions during those times was the elimination of many, many small, custom-made applications based on Microsoft Office (Excel, Access, etc.) and "developed" by different, very often non-technical employees (so-called "citizen developers" today). We could say that history has come full circle, and right now low-code platform providers (including my favorite Microsoft Power Platform) promote an approach, where every company employee may create an app, that fulfills his or her requirements, the requirements of whole departments, or even the requirements of the company itself.
But in my opinion, it won’t work. Again.
Ok. Maybe I’m too critical. I can see some areas where citizen development may work, and it won’t hurt the whole organization from a bigger perspective. The first one is a very small company. By small," I mean the ones where the CEO combines the roles of IT expert and network (or cloud infrastructure) administrator and/or is responsible for many areas of business. Basically, this is the situation when one person embraces the big picture and can identify the impact of implementing a low-code solution (or any kind of IT solution) for business. The second example may refer to departments of bigger organizations, but only in situations where the data set used inside the citizen-developed app is limited to data used inside the mentioned department. I will explain it in the next section of this article.
And let me be clear in one area. I’m not saying that low-code solutions won’t work for medium-sized or enterprise-level businesses. This statement is obviously not true. What I’m saying is that any kind of IT solution created by unqualified employees is not a good thing when considering its impact on an organization seen as a whole. So basically, my thought is that creating low-code solutions requires a deep level of knowledge about the platform that is used for this purpose and the impact of some design and implementation decisions on the business and solution lifecycle in the future. Let’s discuss some factors that should be taken into consideration when deciding about creating a new app.
Required skillset
Some folks say it is required to spend 10,000 hours on something to become an expert. It is hard to imagine in the 20th century, especially in the IT and programming areas, that it is required to spend over 1000 workdays to be called an expert. The more common practice I’ve observed is promotion to a "senior" position after a year or two in many organizations. Yeah, again, I think it is a pathological thing, but it is a topic for another discussion. And when we go back to the "low-code" area, promoters of low-code platforms say that basically, you don’t need any kind of knowledge (!) or expertise to become an app developer (or whatever we call this role). Of course, I can agree that the entry point is much lower for non-technical people on low-code platforms. However, to become a good (for example) Power Apps creator again, you need to spend many hours working with it, experimenting, making mistakes, studying articles, and gaining knowledge about patterns and best practices. Low-code solutions are no different than any other IT solution at this point. We are saying that good code should work, be readable, and be extensible. And the same thing is true with good "low code"! The toolkit for its creation may be different, but requirements regarding usability, maintainability, error handling, and security are still the same. And to become an expert in the mentioned areas, you will nevertheless spend many hours studying them. So-called citizen developers usually don’t have or don’t want to spend so much time because developing applications is not their primary responsibility in their organizations.
Data is everything
In the 21st century, data is the biggest value for many enterprises and organizations. However invalid, messy data may also be a huge problem and something that may cause any business to collapse. Let’s imagine a situation when different organizations’ departments have their own customer databases and are using dedicated, department-owned Power Apps for their own purposes. Does it sound familiar? Yes, it does, because we already had such a situation twenty years ago. The main purpose of many IT projects was to clean up and unify the data spread between many companies’ departments. The only difference was that the mentioned "low code" applications were based on Microsoft Office software (Excel, Access, etc.). And the consequences of such a situation have been and may still be significant. Let’s imagine attempts to sell the same company’s products by different sales teams or opening new sales processes without taking into consideration customers’ open cases. Yes, the result of such a situation may be discouragement or even losing a long-time customer. The creation of the enterprise data model and data management processes design took many years in lots of organizations to work out. And guess what? Citizen developers just don’t care about it.
Summary
We do not want our roads or bridges built by incompetent people or any kind of “citizen builders”. And the same situation should be with applications and IT systems. They should not be created by unqualified people. Just by engineers. Or at least by people with an engineering approach to solving problems and aware of many different areas except the required functionality set which should be taken into consideration during solution delivery. This is the knowledge, skillset and mindset non-technical people usually don’t have. Otherwise, we will go back to the end of the nineties and the beginning of the 21st century, when dispersed data and inconsistent processes were a pain in the [self-censorship] or even a huge problem in running a business for many companies.