When I grow up, I want to run an NGO and spend my day dealing with admin, finance and , HR. I want to spend time worrying about how to pay employee salaries, writing funding proposals and narrative reports, deal with project management, bills, invoices, and relationship management. All the while trying to maintain a reasonable work-life balance. Said no-one ever.
Despite this, I find working in the civic tech space infinitely fascinating. In one sense, we’re a tech shop. We write code, build tools and wrangle data. But our team only has three full-time programmers and occasional freelancers. The rest of our team is comprised of programme leads, a project manager, researcher, graphic designer, admin team, operations, a sometimes data wrangler, and me. Much of our time is spent trying to pick apart how social issues intersect with civic tech and working with communities to understand what issues they face. That, for me, is where the really difficult work is and that which I understand the least. It also has the highest potential for impact, which is why we consider ourselves a people-first-technology-third organisation.
I’m not going to explore that work in this essay. Rather, I thought I might jot down some notes about the tech side of OpenUp.
Running a technology company on an NGO budget
The cost of running a tech shop on an NGO budget is not often discussed. We find ourselves in an interesting, and unenviable position where we compete for skills in the same market as the big players that and pay commercial salaries for technologists. It doesn’t matter how committed your team is to the cause, it is hard to stay motivated if they can find a job paying twice as much in the private sector.
To ensure a diversified revenue stream, 40% of our income is earned from non-grant projects. That’s income from paying clients and it is where dev capacity is a double-edged sword. We can take on paying projects, but also need to ensure that we aren’t distracted by work that is unrelated to our objectives. OpenUp is less of an organisation and more of a mission. We are exploring the nexus of technology and democracy. Were it not for that, I think I would move onto another challenge. My primary goal is to prove the viability, value, and sustainability of civic technology. Ensuring a sustainable organisation is a necessary requirement but not an end in itself.
What’s in? What’s out?
It seems easy to decide whether a project is in scope of our mission, but it isn’t. Our medicine price tool is an easy win. A perfect example of how open data can have real world value. Wazimap is a great demonstration of the democratisation of data. That led to Youth Explorer which is used by [SALDRU] and the Government of the Western Cape to develop programs for 15-24 year-olds. We have subsequently built numerous iterations of Wazimap for various organizations, some of which stray dangerously far from our core work.
What about Vulekamali, a tender awarded by the National Treasury to develop a national and provincial budget portal? We competed against private sector companies for the project. It seems tenuous, until you frame it as a contribution to the open data ecosystem which includes a healthy dose of community engagement and education.
What about building a new website of a local municipality? Obviously out of scope. We should rather focus on building tools that open government to citizens. Hang on, their websites and IT processes are so antiquated that they aren’t able to incorporate any of our work. Perhaps it is worth laying the groundwork by creating that website after all.
Another consideration is long-term maintenance. A new civic tech project is exciting and holds the promise of solving the social problems of the world, feeding the hungry and giving hope to the hopeless. A 5-year-old websites which needs upkeep and occasionally new features to be built is far less attractive. And yet, it behoves us to keep the engine running, fix outstanding bugs and ensure that the security certificates are up to date. This less glamorous work is also generally a grudge purchase and the costs are harder to justify than creating something new.
As I write this, I am waiting to meet with a civil society client to justify why they should pay for refactoring, improved testing and better deployment tooling for their website.
Too much capacity
When new work keeps coming in and you have blown through your existing capacity, it’s tempting to solve the problem by hiring more staff. Beware, there be dragons! Apart from the additional burden of managing a larger team, you have to keep feeding the salary monster with its insatiable appetite. Blink and you find yourself with too many expensive engineers and not enough work.
It is also difficult to say no to projects which represent a unique opportunity to further the organisation’s goals. Your team might hate you for all the extra work, but you don’t really want to reject the opportunity that would be unlikely to present itself again.
Always trust your gut, except when it’s wrong
I have been known to swing, and miss. The work that could open doors, doesn’t. The partnership with long-term potential fizzles out. That quick exploratory project takes longer than anticipated. I have fired clients more than once when we realise that a promising project would not pan out. Perhaps later then I should have. Alas, the price of being an optimist.
Small projects take longer and are more expensive than you think
We can’t work on small projects. They’re too expensive. Charge more? You can’t if your client is a budget-constrained NGO. You may quickly overrun a small project budget and end up subsiding work that should otherwise have resulted in a surplus (note, I avoid using the word profit because making money is treated with disdain when “doing good”).
And yet, I love my job
The challenges above make my job incredibly complex, and I wouldn’t want it to be any easier. The constant refinement to try to become more efficient, reduce costs, increase quality, keep the team happy, maximise impact, and explore the unknown make my work both frustrating and exhilarating. How do we cope with high salary costs? Reduce team size. Insufficient development capacity? Specialise in outsourcing small, well-defined tasks to the global job market. Insufficient managerial capacity? Empower your team to de-centralise decision-making and support them with processes and best practices. Maximise impact on a low budget? Learn how to leverage funds and the momentum of other organizations through partnerships and collaboration.
In a future essay I plan to discuss in more detail some of our recent changes, in the hope that the lessons we are currently learning will help others in a similar position.