No-Code vs. Low-Code vs. Pro-Code

No-Code vs. Low-Code vs. Pro-Code

I've been in several side conversations about code, app development and the tools businesses use lately. It's made me give a great deal of consideration to this graphic I snipped from a Gartner paperI read a few weeks back around the idea that anyone can be a developer.

No alt text provided for this image

No-Code

No-code development is a type of development, generally web-based, that lets users create software using some form of graphical user interface (GUI), instead of writing code. It typically provides drag and drop capability letting the user paint a scenario, then creating the source code for the user. The primary driver behind no-code creation is to put creative capability in the hands of the everyday user.

Since many of us lack the programmatic skills to write the underlying code, the idea this simplified painting of an app seems highly desirable. No-code approached eliminate the obstacle of programming skills and allow anyone create a solution.

At the core, no-code provides a layer of abstraction between the user and the underlying code.

Low-Code

Low-code is an application development method that elevates coding from textual to visual.

Similar to no-code approaches, low-code leans on drag-and-crop tools using libraries of capabilities based on models. One argument for low-code is that anyone from end users, to new developers, to highly skilled professionals can build enterprise-grade applications. Code generation is accessible in ways that can drastically speed the development process.

Low-code is not the same thing as no-code. In code code development, there is no code involved by the users. Low-code provides more of a hybrid development environment, ideally blending platform generated code with user written elements, but not necessarily the advanced programming skills a professional developer would bring to bear.

Pro-Code

Pro-code is what most of us think of in terms of software development. This involves trained developers writing code directly. That code might be Python, Ruby on Rails, C#/C++ or any number of traditional programming languages. It often entails long processes hand-crafting the code from scratch. Developers use framework tools and libraries. The end result has to undergo the development coding, testing, debugging, modification and further testing prior to deployment into a production environment.

The are distinct advantage to Pro-Code development. Developers can create very detailed and complex applications with rich security, performance, compliance and scalability features. In the end, a very polished, even commercial solution may well be delivered.

With advantages come disadvantages. In many cases only the author, or another experienced professional developer can make changes or modifications. Development can be a very time consuming process. This reality often drives the cost of development higher, sometimes beyond what the organization will bear.

Reality

In the rush to market, or production, many enterprises have widely adopted no-code and low-code approaches to their detriment. Many of these tools generate more of what we would view as an executable that sources code. Source code may need to be compiled to become executable. The inherent danger in taking executable output and deploying it into production is that visibility to what's really going on under the covers of the application may be impaired.

The unspoken value a pro-code developer brings to the mix is often what we call tribal knowledge. That might be knowledge of relationships between front and back end elements, databases, security concerns, performance or any number of nuanced requirements that a no-code or low-code platform can't possibly know.

In the grand scheme of things, back in the origins of data warehousing, we had a basic model to describe what I'll call data maturity. The DIKW Model.

  • Data formed the basis of of everything. Data is often raw and unfiltered. It might be structured or unstructured.
  • Information was developed by manipulating raw data into tables, pivot tables, graphs and analytical findings.
  • Knowledge is then extracted from the wealth of information gathered.
  • Wisdom was, and remains, the human element. While we can learn a great deal from using tools, ML/AI tools of today are still simply tools. Extracting wisdom and insight from the collection of data, information and knowledge these tools gain, still requires human insight. Today that insight remains unmatched by our computerized systems.

The Bottom Line

As with every aspect of technology solutions, caveat emptor - let the buyer beware. No-code and low-code solutions can bring tremendous capabilities, but at increased risk. Having citizen developers contribute to operational applications can bring efficiency and speed to production. Doing so also brings the risk that the citizen developer doesn't fully understand or even know what corporate requirements - for security, compliance, data privacy, etc. - may exist. While these solutions may add value, they can also create untenable threat vectors putting the enterprise at risk.

Don't underestimate the value of the professional training and tribal knowledge a seasoned staff developer can bring to the table.

Alex M.

CTO | Director of Data Science & AI | Driving Scale & Efficiency with Azure, Fabric, Power BI, and Open Source

2 年

Very informative Ken.

回复
Ken Camp

Enterprise Architecture, IT Strategy, Planning & Operations Leader & Storyteller | Multinational | Public Trust

2 年

As a side comment, in the interest of full transparency, here’s exactly what I said in a conversation the other day - I mildly trust application architects who do full peer code review with wireframes and data flows documented. Everyone else is a threat.

要查看或添加评论,请登录

Ken Camp的更多文章

社区洞察

其他会员也浏览了