evergreenils oss tuits

Purposeful Abandonment in Open-Source Projects

With less than a week until the deadline to submit hackfests commitments for the 2023 Evergreen International Conference Tuit Challenge, Rogan is just three commitments shy of getting the opportunity to pick my karaoke song. If somebody commits to working on the next OpenSRF release, he just needs two more people to step up. I am beginning to think I’ll be able to pick my own song.

It’s a good thing too, because the song that came up in the community IRC channel this week is the 8 1/2 minute classic American Pie by Don McLean. I cannot even begin to explain what a bad idea this is. Believe me when I say nobody wants to hear my voice singing for such a long period of time. Most people leave the room when I sing and would gladly commit to any work if it meant they didn’t have to hear my sisters and me belt out yet another rendition of Total Eclipse of the Heart. Apparently, Don McLean is accustomed to hearing terrible voices sing his words, though. He once told the Associated Press “I’ve heard whole bars burst into this song when I’ve been across the room. And they’re so happy singing it that I realized, `You don’t really have to worry about how well you sing this song anymore. Even sung badly, people are really happy with it.”‘

Screenshot of a Tweet in which kmlussier says: "The cat just ran away when I started practicing karaoke by singing Roy Orbison."

In any case, Rogan must inform me of his final selection by Thursday, April 20 since it looks like Thursday the 28th, right after the conference reception, will be the best time to head to a nearby karaoke bar.

Karaoke aside, I would like to thank Susan Morrison, Bill Erickson and Michele Morgan for signing up for the Tuit Challenge over the past week. These commitments to documentation, bug fixing, and general help wherever it’s needed will all contribute to a better Evergreen experience for everyone who uses it.

Now we can move on to our next fun fact about tuits. Last week, we talked about how tuits can reproduce through the presence of other helping hands. It turns out there are many different ways tuits can reproduce, and we’ll explore another method with this week’s fact.

Fun fact about tuits #3
Tuits can reproduce by abandoning those tasks that no longer or never really provided sufficient value to your community.

Last month, I had an opportunity to help out the ALA Core Consortium Management Interest Group by co-facilitating a talk with Ocean State Libraries Executive Director Stephen Spohn on Purposeful Abandonment. I knew little about the topic, but it is a process I am deeply interested in incorporating into my own library consortium. The idea comes from Peter Drucker, who advocated for a monthly process in which organizations identified products, services, programs or activities that could be abandoned to make room for new opportunities for growth. Some of the things ripe for abandonment may have been valuable at one time, but no longer provide much value to the organization. Others may be things that never really took off.

I have been thinking about ways open-source communities could incorporate a Purposeful Abandonment process. A monthly process may be a little excessive, but an hour at an annual event, like a conference or hackfest, could be set aside to step back and consider the things that can be let go in the interest of freeing up tuits for more important items. Dan Rockwell from the Leadership Freak suggested some questions to consider to start this discussion, including the following:

  • What frustrates?
  • What drains energy?
  • What wastes time?
  • What produces small returns?
  • How much would it matter if we stopped …?
  • How are these activities aligned with mission and vision?

Rockwell also suggested creating multiple lists, not just an abandonment list, such as a “do less of” list or a “put it off until you’re tired and grumpy” list. I would also like to suggest an “automate these tasks” list to identify things that could be done in much less time if we automated them. In my own organization, I often zero in on manual, tedious tasks that could benefit from some automation to free up time for new and innovative things.

One challenge in implementing a process like this one in an open-source community is that it could be in direct conflict with what is often seen as a benefit of open-source software: the ability to accommodate niche needs. In essence, some organizations may find open-source appealing precisely because they can build the niche feature that is too uncommon for a major vendor to accommodate in proprietary software; in fact, it may be the precise feature a large commercial vendor chose to purposefully abandon because very few customers were using it.

This fact points to the need for these purposeful abandonment talks to not only happen at the community level, but also at the organizational level. If a niche feature requiring a high level of maintenance is not used by many community members, the larger community may decide it can’t allocate general resources to support it. But the one organization or handful of organizations that depend on the feature may decide in their own processes that it is too valuable to let go. In that case, they may need to commit the resources to ensure that feature is maintained in the larger community software. I advocate for continuing to support it in the core software over maintaining a custom version of the software, which will require even more tuits on behalf of the organization.

An example of where the Evergreen community recently purposefully abandoned maintenance of a feature can be found with the removal of python bindings in OpenSRF, a message routing network supported by the community. OpenSRF was built to be used by other software packages, not just Evergreen, but it really only ended up being used in Evergreen with one small exception. Syrup, an academic course reserves system built in Django (Python), also utilized OpenSRF and required the use of Python bindings. Outside of the University of Windsor, workplace of Art Rhyno, who developed most of the code in Syrup, the software was used by only a few Evergreen consortia and libraries. As academic course reserves were built into Evergreen proper, most of those libraries moved off of Syrup, and developers made the wise decision to remove the Python bindings rather than bringing them up to date with modern versions of Python. The community also removed Java libraries for similar reasons, freeing up time that otherwise would have been spent updating these libraries.

Participation in open-source communities can ebb and flow over time, and one thing a community should avoid in periods of low activity is Purposeful Abandonment’s troublesome cousin, Just Plain Abandonment. This cousin appears when projects, activities and services are let go simply because there are no tuits to support it. No thought is given to whether these things are still needed or not. If you find your community is engaging in Just Plain Abandonment, it may be a good time to start planning a Purposeful Abandonment process to ensure the things you are abandoning are truly those things you can let go of.

For example, let’s say that during an active contributor period, the community sets a policy of predictability in its release schedules with bug-fix releases planned on a monthly basis with two major feature releases scheduled for March and September of every year. In a low-activity period for the community, this schedule may be difficult to maintain, at which point, the community abandons any predictability in its release schedule. Nobody knows when the next bug-fix release is scheduled to come out, knowledgeable users start picking just those fixes important to them while less knowledgeable users are left to deal with the bugs, and the community has lost the feeling of security that comes with predictability. As part of a Purposeful Abandonment process, the developers may determine they can let go of the monthly bug-fix schedule in favor of less frequency in releases, but, in return, maintain the element of predictability. Or maybe they will decide to let go of a very manual process that goes into the release-building process, making it easier to stick to the schedule. Intention built into an abandonment will always be better than abandonment that just happens due to lack of tuits.

Next week’s blog post will feature my last fun fact about tuits, which also happens to be my favorite one. With a college trip planned to the West coast at the end of the week, a slew of cookies to bake during the weekend, and a conference presentation to prepare, the post may be a little late, but I encourage everyone who participated in the Tuit challenge to read it when it comes out.

Tuit Dashboard 4/15/23

  • Days until hackfest: 11
  • Days until deadline to commit to a hackfest project: 6
  • # of hackfest commitments: 13
  • # of additional commitments required for karaoke: 0
  • # of additional commitments required for Rogan to pick the song: 3
  • # of tuit cookie batches kmlussier must make: 2
  • Musical artists mentioned in the context of karaoke in the community:
    • Burt Bacharach
    • Beastie Boys
    • Don McLean
  • Musical artists that have not yet been mentioned in the community (in case somebody [Rogan] is looking for ideas):
  • On a scale of 1-10, level of kmlussier’s anxiety at the idea of singing karaoke: 3
  • # of people kmlussier knows will be participating in the hackfest, but have not submitted a Tuit Challenge form yet: too many to count.