It's a good bet that early in in your career, you will have created a spreadsheet within an organisation - perhaps even writing some functions to help automate some number crunching. Fast forward to 2019 and you might have started experimenting with other tools, such as Google Datastudio, building custom views to visualise your data and share with your team. Good news! You may well have accidentially become a "citizen developer". 



Gartner defines a "citizen developer" as a user creating business applications for others using tools sanctioned or approved by IT departments. In other words, taking full advantage of all available tools to help solve business problems that have a shared value.

How did we arrive at the "citizen developer" term?

A movement has been happening over recent years - so-called "low code" tools and platforms. Low-code refers to being able to use visual tools to drag-and-drop modules to create applications.

These DIY tools themselves have been around since the days of home computers and long before being given the low-code moniker - simple make-your-own-game type tools where you could use templates to construct a game. Tools such as Microsoft Frontpage - a long-since retired tool for visually creating websites, enabled anyone to make websites without ever looking at the HTML (remember Geocities anyone?). Visual Basic upped the functionality and provided the means to build early Windows apps through stitching together components and interfaces.

Low-code has evolved to be more than providing drag-and-drop tools to non-developers and recognises that development skills are generally in short supply relative to demand. By giving developers tools that automate or greatly simplify tedious and time-consuming tasks, more time can be given to building features and functions.

The "this needs a developer" mindset has blurred along the way - the same tools that save developers time can be readily adopted by non-developers. My personal experience is that it becomes increasingly rare ever to write software that is genuinely new, resources such as StackOverflow provide copy-paste-adapt answers that cover most problems.

This points to the "citizen developer" being able to do more than simply drag-and-drop their way to creation and with good reason. Assuming and encouraging the "citizen developer" role provides a lot of value.

As an individual, becoming self-sufficient can take away frustration and empower you to solve problems. You become more effective.

As a business, you can do more with the same set of resources that is self-equipped to solve problems. 

Let's take a hypothetical problem - you want to check a long list of Twitter account names and verify if they exist so you can gauge the quality of leads. How would a "citizen developer" then approach this with no ready drag-and-drop tool?

For this task, you might throw together a script that makes an http request with the Twitter account name, and then checks for Twitter page status to determine if they exist - 200 OK or 404 Not found. 

We can break the problem down into a set of tasks - make an http call, check http status code and so on.  Googling these yields plenty of solutions in most languages. 

Equipped with the copy-paste-adapt know-how, the less visible part of the challenge is in the sharing aspect. With this script, or now a useful tool, other team members might wish to use it.  

At this point, we come to the purpose of Divio in low-code and the "citizen developer" role. By applying the low-code approach to hosting, deploying and running massively scalable services, Divio enables teams to easily share and deploy their creations.  

Going back to our example, some Googling and adding a simple HTML form where a list is uploaded, run through the script and the results printed is relatively easily achieved. Now we want to set up a real service and share it.

Somewhere between creating a virtual server, learning the Linux commands and installing a web server we land somewhere in DevOps.

How would we practically share our service amongst the team?

With a few clicks, we can have a project setup, our working environment locally setup and we are ready to publish our service. In other words, low-code applied to cloud hosting and deployment tools. Custom network topologies can further strengthen security and ensure applications stay accessible only within an organisation.

The "citizen developer" is a valuable skillset and coupled with easy-to-use tools and shared knowledge of code communities, building and sharing business applications is more accessible than ever and can go far beyond drag-and-drop tooling to address practical problems.