Welcome to this project's final report! This report shares the outcomes, impact and learnings from the grantee's project.
Part 1: The Project
- The Good
We're done! Kiwix Desktop is given a new life and should be easier to maintain in the medium term. Also, as design updates will keep coming in, it will look better and more user-friendly than it's ever been.
- The Bad
Getting there was a lot harder than expected. There's a lot of reasons for that, but in no particular order these include: a tight job market for coders; limited resources to adapt to unforeseen circumstances; Windows' idiosyncrasies; and our own inability to think that minor annoyances can quickly become major blockers and make things astoundingly difficult.
- Bottom line
We did not know it was impossible, and therefore made it. The positive side of the many problems we've had is that it forced us to address a number of issues that impact other Kiwix projects. So here is for indirect benefits.
- Objective 1: Provide a modern and user friendly Kiwix 2.0 for all recent Windows and Linux users
We haven't implemented all of the UX work that has been done, but essentially because in the end we had to trade features for time. The thinking has been done though and won't go away, we'll simply integrate it gradually from the current MVP.
- Objective 2: Apply WMF UX recommendations on all Android apps
We released Kiwix-Android 2.4 this Summer. While it is an abvious improvement over the previous version, we did not add as much as we wanted: this is a consequence of it being a 95% volunteer project, but also that Android was a bonus objective as this platform worked fine already (as opposite to desktop, which was due for deprecation).
- Objective 3: Speed-up ZIM read/write processes
New servers, new processes, new library, new tools. A lot of newness there and a necessary step for a lot of other projects we have in store - starting with an automated ZIMfarm to ensure a reliable update of content files.
Important: The Wikimedia Foundation is no longer collecting Global Metrics for Project Grants. We are currently updating our pages to remove legacy references, but please ignore any that you encounter until we finish.
- In the first column of the table below, please copy and paste the measures you selected to help you evaluate your project's success (see the Project Impact section of your proposal). Please use one row for each measure. If you set a numeric target for the measure, please include the number.
- In the second column, describe your project's actual results. If you set a numeric target for the measure, please report numerically in this column. Otherwise, write a brief sentence summarizing your output or outcome for this measure.
- In the third column, you have the option to provide further explanation as needed. You may also add additional explanation below this table.
|Planned measure of success
(include numeric target, if applicable)
|Publish Kiwix-desktop 2.0||Kiwix 2.0 running on recent Windows/Linux without glitches||The Alpha release is out and reads the new, pre-indexed zim files. We've soft-released the beta, and it works well so far. A couple of UI features haven't been implemented yet but it's a matter of time before they do.|
|Deploy partial cluster decompression||Faster zim read/write processes - that impacts the end user experience (read), but also the way in which we produce zim files (it currently takes three weeks of server time in order to compress enwp)||We need to spend some time doing proper measurements across all platforms, but all the issues we had identified (namespace, clusters) have been cleared .|
Looking back over your whole project, what did you achieve? Tell us the story of your achievements, your results, your outcomes. Focus on inspiring moments, tough challenges, interesting antecdotes or anything that highlights the outcomes of your project. Imagine that you are sharing with a friend about the achievements that matter most to you in your project.
- This should not be a list of what you did. You will be asked to provide that later in the Methods and Activities section.
- Consider your original goals as you write your project's story, but don't let them limit you. Your project may have important outcomes you weren't expecting. Please focus on the impact that you believe matters most.
This was the second project grant we ran, and although we're quite happy with how things went and the final outcome of it all, it also showed the potential and limits of such an exercise. The problem is that Kiwix is not a one-off project (e.g., a workshop, a piece of research, a deployment) but something that needs to be maintained over time and for which we need people: running from project grant to project grant to keep it going prevented us from planning long-term, sustained efforts; this, in turn, prevented us from offering a decent perspective to talented people that approached us, and the intermediate solutions that we had to implement certainly were more costly than they could have been. C'est la vie, however: with hindsight, going through those project grants was the right staging process to show the Audiences department that we were a reliable partner. Without it, the partnership we signed in July 2018 would have been a harder sale (or a greater leap of faith for them).
Getting to specifics, working with contractors is more expensive than with employees. And having to outsource work in order to deliver a product within a fairly tight timeframe nearly got us into trouble when the guy we'd hired to implement the UI ditched us a week before starting: it was too late, or we were too short on time to re-start a hiring process. Luckily, we had learned from our earlier grant that budget wisdom calls for an "unplanned events" line in our budget: and so we expected the unexpected, and were able to absorb the shock. We were also lucky that Matthieu was willing to walk the extra mile and had the time -and skills- to cover for it. But at the same time, having to pay our backend coder to do UI implementation felt like driving an SUV on a golf course: it certainly does the job of taking you where you want to be, but you'll spend a lot more gas and money to achieve your result. There went our safety cushion.
We also were lucky -and this is a clear understatement- to get Robin to produce the UX part: as a Foundation contractor, not only was he quick to onboard on our project, but he also included us as part of his regular team briefs, so that we ended up with input from the whole team. Instead of one already super talented guy we had several great brains to poke at, and that certainly was excellent value for money. We did put a good word to his boss after his contract with us was done, and to our dismay not only did he agree, but also promoted him and gave him such an awesome new job that he couldn't decently spend a third of his time with us anymore. Robin, we will miss you.
Other major learnings: Windows as a platform is a world onto itself, and there clearly was hubris on our part to think that if we could update fairly easily our platform on "superior" OSes like macOS and GNU/Linux, then Windows would be a cakewalk. Well, guess what: it's harder to dance well with a poor partner. Compilation issues plagued the second half of our project, and certainly cost us two solid months of work (and we had already spent our safety net). Hopefully we've solved some major issues on the way, and future generations of Kiwix coders will look at us with a mix of awe and gratefulness; but honestly, this is the kind of foundational work you do not want to deal with when you're working against the clock.
We'll be looking at download numbers to see how Kiwix-desktop 2.0 slowly replaces 0.9, but that will need to be measured over the next few months.
Methods and activities
Please provide a list of the main methods and activities through which you completed your project.
We're not entirely sure that this applies to our kind of project, as most of our activities can essentially be summarized into "Sit in front of computer. Code. Cry a little every now and then. Repeat on a different portion of code." But should anyone be interested, the full list of milestones is here.
- Here is the Github repository
- Here is the folder where you can find the source code (tarball) and Windows/Linux versions.
The best thing about trying something new is that you learn from it. We want to follow in your footsteps and learn along with you, and we want to know that you took enough risks in your project to have learned something really interesting! Think about what recommendations you have for others who may follow in your footsteps, and use the below sections to describe what worked and what didn’t.
As indicated above, we now have had confirmation that nothing ever goes according to plan. If fact, eventhough we had already actively planned for known unknowns (e.g., the hiring process gone wrong), we obviously forgot about unknown unknowns (e.g. Windows compilation repeatedly spitting in our face). But at least we did not invade a foreign country, so there is that.
But let's be positive: a few learnings from this project ended up being showcased mid-October at a University of Zurich event aptly named "Fuck-up nights", where we shared what challenges really look like in the real world (from a fairly mild "Do your accounting right from day one" to the harder "Always have a recruitment plan B" and a few more). Fun was had, and we hopefully gave some aspiring social entrepreneurs decent food for thought.
What worked well
What did you try that was successful and you'd recommend others do? To help spread successful strategies so that they can be of use to others in the movement, rather than writing lots of text here, we'd like you to share your finding in the form of a link to a learning pattern.
What didn’t work
What did you try that you learned didn't work? What would you think about doing differently in the future? Please list these as short bullet points.
- Waiting for the grant decision to start the recruitment process and then hit the ground running not even a month after that was a bit stressful and probably did not help our recruitment effort. The rest was pure bad luck and could have hardly been avoided.
Next steps and opportunities
Are there opportunities for future growth of this project, or new areas you have uncovered in the course of this grant that could be fruitful for more exploration (either by yourself, or others)? What ideas or suggestions do you have for future projects based on the work you’ve completed? Please list these as short bullet points.
With the completion of this project we're pretty confident that all of our platforms are now up to date and ready to help people gain access to knowledge, no matter where they are or how they access it. We have a much more solid code base, and this project, along with the earlier WikiMed one, helped us show we are reliable partners who can deliver. Our next steps still involve working with the Foundation, but on a different scale.
Part 2: The Grant
Please copy and paste the completed table from your project finances page. Check that you’ve listed the actual expenditures compared with what was originally planned. If there are differences between the planned and actual use of funds, please use the column provided to explain them.
|Expense||Approved amount||Actual funds spent||Difference|
|Contractor||CHF 35,000.00||CHF 72,450.00||CHF (37,450.00)|
|UX designer||CHF 20,000.00||CHF 20,038.00||CHF (38.00)|
|Hackathon||CHF 10,000.00||n/a||CHF 10,000.00|
|Project management and other random costs||CHF 12,000.00||CHF 4,846.50||CHF 7,153.50|
|Total||CHF 77,000.00||CHF 87,334.50||CHF (20,334.50)|
Do you have any unspent funds from the grant?
Confirmation of project status
Did you comply with the requirements specified by WMF in the grant agreement?
Is your project completed?
We’d love to hear any thoughts you have on what this project has meant to you, or how the experience of being a grantee has gone overall. Is there something that surprised you, or that you particularly enjoyed, or that you’ll do differently going forward as a result of the Project Grant experience? Please share it here!
We understand this project was a strain on the Project Grants' resources. But Kiwix is definitely not a one-off thing and considering its reach, it still represents excellent value for money. If we had to do it again, we probably wouldn't change much (except, of course, for the budgeting part) as there is no other small-scale step (relatively speaking) we could have used to get were we are today.