Software Developers vs. Citizen Developers
Update 2023:
We have updated this article in 2023. To read the full article, visit our website Citizen Developers vs. Software Developers: Is Coding a Thing of the Past? | Five
In the past, software development was the realm of experts (some might say, geeks). Only trained professionals (some might say, brainiacs) knew the difference between Java and JavaScript, between a dictionary and an array, or between == and ===. Building software required specialized skills, from knowing how to code, to solving problems logically, that only developers (some might say, nerds) possessed. But apparently, this is changing.
Some no-code and low-code tools promise that anyone can build applications. Not software developers, but citizen developers are supposedly taking over application development.
Software developers vs. citizen developers: what is happening to the traditional software developer role? And will citizen development?really?be the future of application development?
What Is A Citizen Developer?
The typical definition of a citizen developer is a non-technical person who develops applications.
However, this definition almost seems to be an oxymoron: “non-technical application developer”. And the reality is that in the past, non-technical people simply did not develop applications. So, let’s a closer look at who these citizen developers are, what their skills are, and what they have done before they started building applications.
The Characteristics Of A Citizen Developer
To sum up: a citizen developer is a business professional turned application developer, that does not possess (front-end or back-end) software development skills, and who primarily builds applications visually for their own use.
What Is A Software Developer?
Software developers: the wizards of the digital economy. Software has transformed how people live their lives, and how businesses operate. But who are the people behind the code? Let’s define the characteristics of a software developer.
The Characteristics Of A Software Developer
领英推荐
To sum up: a software developer is a trained professional, who builds applications for someone else’s use in a structured manner.
The Risks Of Citizen Development
Citizen development is an interesting concept, and I applaud anyone who takes the plunge into application development, regardless of their background or role. But it also comes with risks:
To give just one example, remember the Solar Winds breach from 2020: this was a supply chain attack, where software company SolarWinds’ product Orion was compromised through a piece of?malicious code that hackers?inserted into Orion’s software updates. Orion is a software solution written and maintained by a professional team of full-time software developers. It doesn’t take much imagination to foresee vulnerabilities in software that is written and maintained by a non-professional team of citizen developers, who (unlike their professional peers) create applications in addition to their day-to-day work.
Without a sound security policy or involvement of cybersecurity professionals, there is a high chance that citizen development increases exposure to security threats and vulnerabilities.
2. Shadow IT:?shadow IT describes application development that is happening outside the oversight of central IT.Citizen development can easily lead to a patchwork of homegrown software solutions, which exist outside anyone’s control or mandate. While shadow IT can lead to efficiency gains by encouraging grassroots innovation, the risk is that these small, departmental apps are undocumented, untested, and not under anyone’s proper oversight. Because these applications are not provided by a professional vendor, they may develop a life on their own, where they become business-critical without anyone having a contingency plan for when the application breaks down, or when the citizen developers leave the organization. After all, internal citizen developers don’t provide service level agreements (SLAs) or response times.
3. Maintainability:?the third and last risk of citizen development relates to maintainability. Typically, no-code tools for citizen developers use a visual, What-You-See-Is-What-You-Get (WYSIWIG) approach to application development. They try to reduce or eliminate code as much as possible. This contributes to a faster speed of development. But the downside is a loss of control and maintainability.For example, expressing an “if-then” statement in raw code can be much more efficient than building it visually. Even for the very citizen developer who has built an application, it can be hard to go back to an existing application and understand the visual application logic. Reading standard code may look complicated. But sometimes it is in fact the easiest solution to a complex problem. Commonly used programming languages, such as JavaScript, Python, or SQL also have great support communities and documentation. If a software developer encounters a problem, there is a good chance that they can find a solution on?StackOverflow.?The online community and available support for citizen development do not match the size of the developer community (yet).
Software Developers vs. Citizen Developers: Who Should Be In Charge Of Application Development?
Even though the comparison of software developers vs. citizen developers seems to favor software developers, it’s not all black and white.
There's certainly risk involved in assuming that a business professional who has never developed applications before can build complex and business-critical applications. The reality is that a lot of business professionals cannot even create a Pivot table in Microsoft Excel.
However, there are a lot of non-coders who have a demonstrated interest in coding.?Popular coding website Codecademy, for example, has more than 40 million learners. That’s?twice the number of software developers in the world. During the pandemic,?millions of people decided to learn coding (including yours truly) through online bootcamps and MOOCs.
Would these people be considered citizen developers? Certainly not, based on the characteristics described above. They have a basic understanding of programming concepts and languages, such as JavaScript, SQL or Python.
Would they be considered software developers? Again, the answer is no: learning full-stack development requires more than a 12-week bootcamp.
These tech-savvy business users present a middle ground in our discussion of software developers vs. citizen developers. Equipped with the right tool and training,?low-code could be the best programming language to learn for them to drive business outcomes.?And together with professional software developers, they are the best place to start in order to democratize application development.
Originally published at?https://five.co?on November 8, 2022.
Head of Growth & Ops @Alegria.group | Growth Teacher
1 年Companies will always need IT profiles for governance/auditing reasons – and for giving best practices to business teams when scalling. Both teams have to work closely together as business fosters innovations. Way more than IT.