Coding Small-Scale Projects with Big Impact

Part 1: The benefits of DIY programming.

A colleague from another college was telling me recently about how she is building “microservices” for her department. By this she meant small, self-contained computer programs to automate tasks in her library. I thought this was an excellent appropriation of this term.

She was drawing on (and modifying) an idea from software development: Microservices are usually a software architecting strategy, where different small concerns are separated so that they can be maintained mostly independently from one another. They are usually contrasted with large, singular, monolith approaches.

But I like my colleague’s version better. She put her own spin on it by tweaking the meaning and making it more relevant to libraries. The implication is libraries have tons of small tasks that can benefit from automation—libraries need microservices too.

She also correctly surmised that some judiciously-applied code can make her library workflows more efficient. In other words, building microservices can be a productive way for librarians to have a big impact on their library. 


More on this topic: Circling Back: How One Library Used UX to Innovate Patron Services


So what can a librarian do? Just pick a small task and take a stab at writing some code to tackle it. Do your best and see how it turns out! You can show it to your co-workers once you have a minimum viable product. They’ll be super impressed! And it’s okay to muddle through; everyone does. That’s the nature of programming.

If you lead a library or a team, encourage and facilitate those who might want to build small programming projects. No need to hire “a developer”; librarians can do remarkable things with code when given the opportunity. Offer low-stakes opportunities. Small tasks are low-hanging fruit for librarians who want to write (or learn to write) code.

A few nice things about library microservices: 

  • They can be written in most common programming languages. A scripting-friendly language like Python is of course a good example, but lots of other languages are perfectly fine too. Librarians can start where they’re at and build from there. 

  • Small projects are also a great entry point into programming. Every new programmer needs realizable projects to tackle. Building a small service can be a great learn-to-code opportunity.

  • Creating a working microservice gives a tremendous sense of accomplishment! Your co-workers will be grateful for your contribution.

  • And lastly, software does not necessarily have to be big, permanent, or “enterprise”. We can build small, ephemeral things that have great value in their limited time and place. For example, we can aim to solve just one task, and we can write some very provisional code to do it.

Using code to tackle small tasks in our libraries can unlock a lot of opportunities. A mindset of building small services can move us forward far more quickly and far further than we might have imagined. 

In a follow-up blog post I’ll talk about a real-world microservice we built for our library: it’s a program that turns a spreadsheet of new books downloaded from a vendor into HTML suitable for pasting into a LibGuide. It’s a (hopefully interesting) small-scale project that has saved us a lot of time. It has allowed our acquisitions librarian to produce content for a monthly LibGuide that would have been prohibitively time-consuming to make by hand. And it’s a good opportunity to take a deeper look to see how some modest code can support a library workflow.



Choice and LibTech Insights gratefully acknowledge our launch sponsor, Dimensions, a part of Digital Science.  Dimensions, is the largest linked research database available and provides a unique view across the whole research ecosystem from idea to impact.


Sign up for LibTech Insights (LTI) new post notifications and updates.

Interested in contributing to LTI? Send an email to Deb V. at Choice with your topic idea.

Leave a Reply

Your email address will not be published. Required fields are marked *