How End User Development Makes Programming Accessible

Is software development reserved for professionals with serious credentials and many years of experience? That’s a common assumption, but the reality is quite different. Amateurs of all kinds are taking advantage of end-user development (EUD) tools to automate repetitive tasks, solve problems, and even build complete projects.

In fact, if you’ve ever made a function or macro in Microsoft Excel, you’re already an end-user developer.

What Is End-User Development?

The traditional approach to software development typically involves building applications from scratch with standard programming languages or development platforms. The end result might be compiled into native machine code or passed off to a runtime like Microsoft’s .NET Framework. This presents a significant hurdle of technical knowledge before a new programmer is able write a functional program.

End-user development, on the other hand, enables the users of applications to write their own programs. Widely used software like Excel often comes with EUD tools built-in to help users modify functionality on the fly.

Unlike traditional development platforms, many EUD tools strive to be accessible to non-technical users and non-professionals. They make it possible to customize the behavior of systems or perform a variety of computations or analysis. Some even help you develop entire applications.

Another common way of distinguishing EUD from “normal” development is to consider the different objectives of the two approaches. Professional developers are employed specifically to create software and also to later support it in production. On the other hand, end users have particular goals connected to their own areas of expertise, usually unrelated to programming.

How Many End-User Developers Are There?

Due to a lack of hard statistics, it’s difficult to estimate the total number of end-user developers in the world. That said, it’s safe to say that they outnumber professional developers by a wide margin. A widely cited 2005 study estimated that by 2012, up to 55 million American workers could be potential end-user developers. As of today, an estimated 750 million people use Excel worldwide. A significant portion of these likely make use of the provided automation tools.

And that’s just Excel. More and more people are experimenting with programming in various forms; a study from 2013 described 40% of software developers as “hobbyist developers.”

Some Examples

  • As mentioned above, Microsoft Excel is probably the most widely-used end-user development application. Workers around the world make use of functions, macros, and other tools every day.
  • Adobe Photoshop has rich scripting functionality that you can use to automate common tasks or implement more complex functionality. The supported languages include JavaScript, AppleScript, and VBScript.
  • Simple video game engines like RPG Maker are accessible to non-programmers.
  • A variety of tools collectively known as “no code” platforms make it possible to develop apps without programming knowledge of any kind.

Benefits of End User Development

There are perhaps thousands of distinct EUD platforms in common use, each with its own unique qualities. That said, there are some common traits that many of them share.

Easy for Beginners

EUD platforms usually present a low barrier to entry for those with fledgling technical skills. That means little or no coding background required and no need to grapple with intimidating technical documentation.

Programming by Example

Programming by example works by recording end users' actions. You simply “show” the application what to do in a certain context by performing the relevant actions, and the system is able to play them back in a repeatable way and even generalize the process to new cases.

Simple Presentation of Development Principles

In many cases, important software concepts are simplified. For example, common Excel functions like SUM, SUMIF, COUNT, COUNTIF, and VLOOKUP use conventional programming constructs like loops and conditional statements under the hood, but this is invisible to the user.

EUD is Often Visual

Some EUD platforms mainly rely on graphical interfaces. For example, you may work with visual elements like spreadsheet cells rather than abstract data types. Alternatively, there are entirely visual languages to represent programming logic, such as in Scratch.

A Diverse Ecosystem

End-user development is a catch-all term for a variety of different approaches for integrating development tools into user-friendly platforms. What counts as an "end user" can vary greatly as well. Moreover, sometimes standard programming languages are used for end-user development purposes.

Photoshop's support for JavaScript and other scripting languages is a good example. Another is system administrators' use of scripting languages like Perl or Python, which are powerful general-purpose programming languages, for routine automation of administrative tasks. The database query language SQL is used by professional software developers and database administrators to create and maintain databases used by complex systems and applications, but also by less technical business analysts (end users in this case) making simple queries to retrieve some data they would like to work on.

However, even when an EUD tool uses a traditional programming language, it is usually limited to a small subset of the language. That way, it can cater to individual users’ goals without bogging them down in the more difficult or abstruse elements of the language that may be less important for non-professionals.

Different Approaches to End-User Development

It might seem strange that there are so many different kinds of end-user development platforms, all of them with their own quirks. However, this diversity reflects the wide variety of applications and industries that rely on user-focused development.

For instance, a scientific computing application might allow researchers to customize their analysis and computations. In this case, the developers of the application can assume a certain amount of sophistication on the part of the users. They know that many of the researchers will already have programming skills, and so a barebones scripting language might be appropriate in this case.

On the other hand, a game development platform aimed at non-programmers requires a completely different approach. The EUD platform needs to reflect the fact that end users are assumed to have no prior technical skills. A good solution here might be to implement a drag-and-drop interface that makes it visually clear where game elements would appear on the screen at different times.

In a corporate desktop application, the goal might be to allow an employee to adapt the app’s behavior with his or her work needs. These tools allow for much more flexible customization than would be possible with a typical options or preferences dialog, while still remaining accessible to end users.

Looking Forward

End-user development is an active academic field with new ideas and approaches coming out regularly. The research mostly focuses on novel ways to make building software more accessible to a wide range of users, such as through the use of natural language or advancements in visual programming.

On the industry side, companies are always looking for creative ways to integrate end-user modification into their programs. Regardless of how a particular app implements EUD, the goal is always the same: enabling you to create working programs that meet your individual needs.

Benefits for New Developers

Like the examples already discussed, most EUD tools come embedded within a given platform or piece of software. This makes it easy for beginners to learn the basics of programming in a familiar context. All the prior knowledge you have as a user of the application gives you something concrete to use as a reference. That way, you won’t be overwhelmed by abstract concepts while learning the fundamentals.

One of the most appealing things about end-user development from the average user's point of view is the lack of technical prerequisites. In most cases, the platform provides ample working examples that show how to solve common problems with the given EUD language. You can build on these models and create your own solutions with slight modifications, or even use them as inspiration for your own ideas.

Start With What You Know

The easiest way to start is by tinkering with the EUD tools built into the apps you're already a user of. Find some examples of simple, manual tasks that you perform every day and think of how you could automate them.

For example, if you edit photos in an image editor like Photoshop, you could script common transformations or editing tasks such as resizing and cropping images. If you work with Excel and commonly do certain calculations or manual movements of data, try to replicate those actions with macros or functions. This type of simple automation can save you hours with just a minor time investment up front.

If you are more interested in building complete projects, you could jump into one of the many low-code app development platforms like Google App Maker, or build an entire web application with zero programming needed through a “no code” platform like Bubble.

Building some real working scripts or customizing one of your favorite apps can help build up your confidence and break down any anxieties or misconceptions you might have about coding. In fact, EUD has the potential to be a "gateway drug" into the larger world of programming. You might just surprise yourself.

Don't miss these stories: