I hear a lot of people talk about citizen developer tools. These tools are there to make development of software easy. In this post I’m going to have a look at PowerApps and Flow. Are these two Low-Code tools really for citizen developers? Are these tools also great for the ‘real developers’? Will citizen developers be able to get the most out of these products?
Before looking at some of the Microsoft offerings for citizen developers, it will be useful to have a look at what citizen developer is. I has a look on the Gartner site for their definition of the term citizen developer.
A citizen developer is a user who creates new business applications for consumption by others using development and runtime environments sanctioned by corporate IT. In the past, end-user application development has typically been limited to single-user or workgroup solutions built with tools like Microsoft Excel and Access. However, today, end users can build departmental, enterprise and even public applications using shared services, fourth-generation language (4GL)-style development platforms and cloud computing services.
Sorry Gartner but this really doesn’t cut it for me!
I had a further look and in my opinion Techopedia’s definition is better:
A citizen developer refers to an end user who creates new applications or programs from a corporate or collective code base, system or structure. In a general sense, this developer is not a professional developer who is paid to code applications, but an “amateur,” someone who uses the tools available to him/her for building applications that his/her team can or will use during the course of their work.
Especially the bit “this developer is not a professional developer who is paid to code applications”,is the important part. A citizen developer is not a software developer whose main job it is to develop software. Rather than the term citizen developer, I prefer to use the term “Do it yourself”-developers.
Comparing development to building a house a citizen developer is a DIY-er and a software developer is professional builder.
Can a DIY-er build a house?
Maybe they can. If you give them all the tools they need. But still it will take them longer for a DIY-er to build a house than professional builders and there are multiple reasons for this.
- Builders don’t know everything about every bit of building a house. You have experts in brick work, experts in electricity, experts in water and experts in painting. As long as they stick to their job they will be able to do the job without having to think about how to do something.
- Multiple people, can help each other
- DIY-ers will do the building work in spare time as they still have a job to do. Builders can do the work full time
That’s enough building work for one day. Time to look at PowerApps and Microsoft Flow.
PowerApps and Microsoft Flow
What will a PowerApps and Microsoft Flow developer do? I would split the citizens developers and developers in this case. It is a bit of a grey area of course. I’m assuming that my citizen developer doesn’t want to become a developer. Remember the important line: “this developer is not a professional developer who is paid to code applications”
Typically citizen developers would create applications that will make their work easier.
- Create apps or flows from templates
- Create apps or flows from blank templates
- Add steps to flows
- Add screens and controls to apps
- Use patterns ( e.g. Error handling and State Machine Flows)
Some things that I don’t see citizen developers do are:
- Create solutions to make deployments between environment work
- Create patterns
- Create custom connectors
- Create generic solutions that move from one environment to another without any of the hard work
And then there are a few grey areas
- Responsive applications
- Accessible applications
- Flows supporting large processes that are still easy to understand
Are these two Low-Code tools really for citizen developers?
Yes, they are. It is quite easy to get started. However I do find that many DIY-developers get stuck quite early on. A bit of help to get started is often useful. Of course the community forums can be helpful,but that doesn’t really help you with the how to setup things properly. A bit of trial and error is expected if you get started without any help. Reviewing your apps and flows every now and then when you have learned some new techniques will be important. An alternative way is the hire an expert while you get started. A lot of the approach will depend on if you actually want to become that DIY developer or if you prefer to get the work done quickly.
Are these tools also great for the ‘real developers’?
Personally I come from a coding background. However unlike a lot of coders I prefer to go no or low-code when I can. Over the last few years I have been surprised by how much can be done with PowerApps and Flow and all the systems that these products can integrate with. I have found myself less and less need to go back to code developing solutions for my clients.
Like with building a house, building applications might need some experts to help you as a DIY-developer. Unless you really want to become a full time DIY-developer, in which case you are not a citizen-developer anymore. Like always, get started and see how far you get could be a good approach.
The thing I really like about the tools available in the Power Platform is that development is done at the level of the users rather than the level of the developers. This makes it easier for development to be done resulting in an application that the users want.