What is a Citizen Developer, why is he taking action and what are challenges in Citizen Development?
Software Development outside the IT Department
A Citizen Developer is a user or employee of a business department who develops software for himself or his department, although he is not a software developer. Basically, there are two interpretations of how a Citizen Developer does this:
- independent of the central IT department,
- with the support of the central IT department, which provides development environments, especially low-code platforms or no code platforms. The use of such platforms requires little or no programming knowledge, since functionalities can be combined in a modular principle.
Long before the concept of the Citizen Developer was invented, there were users in specialist departments who implemented their own solutions – often in the form of MS Excel tables with macros, Access databases, smaller CRM systems, etc. – and who were happy to do so. A Citizen Developer
- can, but doesn’t have to be a professional software developer nowadays. It can be a former developer who is now active in the specialist department, or an employee who programs smaller applications in his spare time. The joint work of several Citizen Developers as a team in one department is also conceivable.
- knows the requirements of a software to be developed or adapted, because he and his department are both users and beneficiaries.
- has no time to wait for the provision of new features, the adaptation of existing functionalities or the elimination of errors.
The tendency in companies to develop applications in the specialist areas is constantly increasing. Providers of low-code platforms and no code platforms have identified this as a large future market and are trying to combine the advantages of shadow IT (also known as shadow development) and central development.
Citizen Development Challenges
Citizen Development offers not only advantages, but also some disadvantages and challenges:
- How good is the process for identifying requirements? How are stakeholders involved, how are scenarios taken into account, etc.?
- What is the quality of the implementation, e.g. in terms of code smells, code coverage, documentation?
- How well is the software tested, how secure is the software and who has what rights and possibilities?
- Who takes care of the maintenance of the software or the new functionality? Who carries out refactoring if necessary? Who is the contact person for problems and who is the deputy contact person?
Some publications mention that the work of the Citizen Developer could reduce development efforts, because their activities would not require any additional resources or programming experts. However, this argument may not be valid when considering full costs and opportunity costs.