Simon Willison’s Weblog


VIAL: Preparing for some collaborative testing

1st April 2021

Originally posted to my internal blog at VaccinateCA

With the Airtable limits fast approaching, I’m going to start leaning heavily on people to help verify that VIAL can do the jobs that it needs to do.

I have a few features that I need to land first, but over the weekend I’ll be spinning up documents (and probably videos as well) showing how VIAL can address our core use-cases around data corrections, call scheduling and call QA.

I’ll be asking people to try these flows out on staging, provide feedback on what’s working and what’s missing, and tagging other people to encourage them to kick the tires too.

My hope is that this exercise will help nail down the final steps in the roadmap needed to get VIAL to live-for-California status.

Keeping things flexible

The biggest challenge in building VIAL has always been the need to compete with Airtable. This week I learned that it’s even worse than that: it needs to compete with Google Sheets too! Our QA efforts, lead by Kim, have some extremely sophisticated Google Sheets to help evaluate our new callers.

One reason Airtable and Google Sheets are such powerful tools is that they enable decentralized, permission-less problem solving. We’ve been taking full advantage of this, spinning up smart new features across a dispersed group of people.

Switching to our own custom software will inevitably dent this freedom. Part of the challenge with VIAL is to make this dent as small as possible.

Mechanisms we have in place for this include:

  • The SQL dashboard mechanism, described in Django SQL Dashboard for reporting—this is aimed to replace many of the ad-hoc reports we have created in Airtable, by providing the ability for anyone with SQL knowledge to quickly create custom dashboard reports. Our organization has a far higher level of SQL proficiency than most, so even if you can’t write the SQL for a report yourself you should be able to quickly find someone who can.
  • The ability to export CSV data from both those dashboards and directly from the Django admin. This should help fill in other functionality gaps while we spin up custom code.
  • The importLocations API means anyone with an API key can write scripts to import locations into VIAL. We can add more scripts like thus one as we figure out what is needed
  • I’m also interested in doing more with tagging—our Availability Tags have worked really well already, and indízate that other mechanisms based on staff members creating custom tags could be useful too.

I also plan to experiment with JSON storage (using PostgreSQL JSONB fields) to enable us to capture new data from our frontend apps without first having to build out and deploy new backend APIs.

This is VIAL: Preparing for some collaborative testing by Simon Willison, posted on 1st April 2021.

Part of series VaccinateCA internal blog

  1. APIs for importing locations - March 9, 2021, 5 p.m.
  2. VIAL is now live, plus django-sql-dashboard - March 15, 2021, 5 p.m.
  3. The Airtable formulas at the heart of everything - March 23, 2021, 5 p.m.
  4. VIAL: Preparing for some collaborative testing - April 1, 2021, 5 p.m.
  5. A CSV export, JSON import workflow for bulk updating our data - April 28, 2021, 5 p.m.

Next: Animated choropleth of vaccinations by US county

Previous: Weeknotes: SpatiaLite 5, Datasette on Azure, more CDC vaccination history