Introduction: Today I’m interviewing Mikk Andresen of Citizen OS, an open source civic tech non-profit from Estonia that focuses on collaborative decision making.
NOTE: Mikk represents himself, not the organization, so the answers in the interview reflect his personal opinion.
What is Citizen OS in a nutshell?
The Citizen OS organization’s MISSION is to empower as many people as possible to participate in respectful and meaningful discussions in order to collaboratively decide on issues that affect their wellbeing.
The organization’s VISION is together with partners and communities to start numerous globally known participatory e-democracy solutions, which prove the value of collaborative decision making.
Open source software (OSS) development is one of the ways to deliver our mission and vision. Everyone is welcome to collaborate – https://github.com/citizenos.
Tell us a little about how Citizen OS started, particularly how you first got involved as developer #1.
After being a software developer for 2 big companies for around 10 years, I quit to think about what I want to do next. At the time I was a bit tired of software development, especially maintaining legacy code, and searched for new opportunities in other fields of life.
So there I was helping anyone at anything needed, whatever work was offered, I did – metal fabrication, building, woodworking, vintage car restoration, 3D printing etc. I went with the “I don’t know what I’m doing, but I’m doing it anyway” attitude. At the same time when I was asked to come for an interview for a software developer job, I accepted it – just wanted to know what people are doing, what problems they are having.
I was approached by a well known debating instructor and I went for the interview. There I am, he and his associates from well known NGOs like Let’s Do It Foundation explaining to me: “We’re going to fix decision making and online discussions in general”. I’m a very sceptical person so I am there thinking that these people are mad, but then again I see people who think outside the box and have delivered great things including World Cleanup Day. Then I see the user experience (UX) of the software they plan to build to test out their ideas on improving the online collaboration and discussion – the heart of it is real-time document collaboration software, like Google Docs, but with a few extra features.
So I think about it for a few weeks and I accept the challenge because of the mission and the freedom of creating something totally new from scratch.
How did Citizen OS grow beyond its initial purpose into the flexible tool it is now? Did you detect a gap or deficiency in the existing landscape and decide to do things better?
For me, the software has not grown beyond its initial purpose, I’d say all the features are not implemented that were on the first UX slides shown to me. It was always meant to be a big flexible piece of software.
BUT the organization itself has grown way beyond what I ever thought of. We have partners all over the World trying to fulfill the mission and the vision.
I think the biggest problem is the lack of a meaningful online discussion and there seems to be no-one trying to make tools and education to change it. In my head I see Citizen OS becoming the GitHub of online decision making. The GitHub and OSS community is great. We need to take the best of it and apply it to online decision making.
Which feature of the platform was the most challenging to build, and why?
I think when it comes to features, software development is not the most difficult part. The hardest part is making users understand that collaboration is a good thing, it’s good if your ideas are challenged and you challenge other people’s ideas.
We try new approaches to many common problems and it’s difficult to explain why some features are implemented the way they are. To name a few – we have no comments, we have arguments. We also rethought content moderation (https://github.com/citizenos/citizenos-api/wiki/Content-moderation).
From a technical point of view the most challenging part is the collaborative editor.
I looked into operational transform, which is the basis of most collaborative editors and realized that if I try to implement that alone, it would take too much time to implement my own editor.
I was thinking of integrating Google Docs somehow – it is a good editor after all, but we could not extend it with features that were deal-breakers for us. Specifically inline voting. Also it’s a 3rd party service, the aim was to provide in-house deployments.
Then I looked at the Google Wave, if I could take this technology and implement the editor based on that. After looking at the codebase and realizing it is being abandoned, I stopped looking into it.
BUT when looking into Google Wave, I stumbled on Etherpad-Lite (https://etherpad.org/) and this is what we use today. At the time, ~6 years ago, the learning curve was quite steep, but I had nothing else to choose, so I went with it.
How do you overcome the challenge of user identification in countries that lack the suitable electronic ID?
Currently we rely on 3rd party services to authenticate for us (Google, Facebook, Smart-ID, Estonian Mobile-ID etc). While it is a problem for us, at the time I feel like there are enough people around the world tackling this problem and we need to focus on our mission.
We are open source, we hope people will contribute country specific authentication or a service integration that hides country specifics from us.
Also, it forces us to think of solutions where we do not identify a person at all.
What kind of tasks constitute the majority of your work day-to-day at Citizen OS?
6 years in, we have 1.5 developers. At the moment I work part-time for Citizen OS. My regular day consists of looking at Citizen OS GitHub Issue Priorities Project (https://github.com/orgs/citizenos/projects/4) and picking a task from the top of the “TODO – prioritized for development” column and making it happen. We do have meetings, but we have as few of them as we need. I’d say I do software development 85% of the time and 15% is meetings/discussions/social, which in my opinion is very healthy.
How does Citizen OS plan to develop further in the next few years? Are there any additions in the making? Where would you want to see Citizen OS get used?
Citizen OS has all its development plans publicly available in GitHub – https://github.com/orgs/citizenos/projects/1. We are also open to all proposals which can be posted as GitHub issues.
To cherry-pick a few of my favorites:
- public groups (https://github.com/orgs/citizenos/projects/1#card-14133727)
- Rethink the way public groups work in general, what the UX would be.
- user notifications (https://github.com/orgs/citizenos/projects/1#card-14132538)
- Technical challenge.
- user to user messaging (https://github.com/orgs/citizenos/projects/1#card-14132975)
- Technical and moderation challenge.
What are some civic tech projects that caught your eye, from Estonia or elsewhere?
To be honest I’m not keeping track of what is going on in civic tech in general, but other Citizen OS team members are doing a great job at it.
I would like to mention an Estonian initiative called Rahvaalgatus. I think they are doing a great job getting Estonian people’s proposals to the Parliament.
Thanks for taking the time to answer my questions Mikk!
Thank you for having me!
I believe that flying to Mars is less important than fixing the online discussions and decision making. I also believe it to be a big challenge. I think software is just a small part of the challenge; the biggest challenge is changing people’s mindset on how to discuss and resolve issues. That is – it is better to discuss issues openly, give feedback, get feedback with mutual respect among all parties.
Finally, I would like to send out greetings to:
- Citizen OS founders for taking on the challenge and trusting me to be on board.
- Citizen OS team for good vibes, great work and support.
- Citizen OS users.
- The Etherpad Foundation (https://etherpad.org/) and all of it’s contributors for keeping Etherpad-Lite (https://github.com/ether/etherpad-lite) alive.
- Open source software community in general.
- Crowdin (https://crowdin.com/) for excellent localization service that’s free for open-source projects. And special greetings to their Customer Service – always nice, always fast, always competent.
- Rahvaalgatus.ee (https://rahvaalgatus.ee/) for being on board the early days, giving feedback and just growing together.