#45 - 9 Oct 2020

You're probably not micromanaging; help, I'm a research computing manager; declining a meeting; recognizing open-source contributors; dual-licensing; chaos engineering in healthcare; eBPF

Hi, all:

As I write this, the jurisdiction I live in (Ontario, Canada) is almost certainly about to start additional COVID-19 restrictions - 4-8 weeks later than it should have. The predictable, and predicted, second wave is reminding us that we’re going to be dealing with the pandemic for some time to come.

This time has been hard for some of us, and extremely hard for others. I hope your team is doing well. I do think we will come out of this experience better managers - more deliberate about finding out our team members needs and in our communications, more thoughtful in our planning - but it’s challenging and tiring, and I hope you take some time for yourself.

The roundup follows:

Managing Teams

It’s Management, Not Micromanagement - Kristen Heyer, The Success League

Heyer pushes back on the fears that new managers often have of being “micromanaging”:

Many newer managers confuse management with micromanagement. One of my favorite books on the topic of micromanagement (My Way or the Highway) defines it like this; “Micromanagement is when participation, collaboration and oversight interfere with performance, quality and efficiency.” Unfortunately, management (oversight that adds to performance, quality, and efficiency) often gets confused with micromanagement.

I agree - and I’ve seen way more undermanagement in research computing teams than I’ve seen micromanagement.

Heyer describes management approaches that are not micromanagement:

  • Set metrics-based goals for your team.
  • Hold weekly one-on-ones with all direct reports.
  • Make performance and metrics transparent.
  • Provide active coaching throughout their tenure, not just when they’re onboarding
  • Delegate tasks to team members who are ready

and has a nice table distinguishing micromanagement, management, and just not really managing:

Micromanagement, management, and not really managing

The way I like to think of it is that good management is holding your team members accountable to assigned tasks and goals at the right scope, the right level of detail, the level they’ve shown themselves routinely capable of handling. And that scope can and should expand over time. If you’re inserting yourself into details that they have routinely demonstrated they’re capable of handling without some good, clearly communicated reason, three bad things will happen. They’re going to feel micromanaged, you’ll be wasting your time, and you’ll be risking losing that team member.

10 Habits That Help Me as a Manager - Marty Matheny

Matheny shares his habits he uses to stay focussed on the priorities, motivated, and fully charged:

Daily habits:

  • Identify My Top Six Priorities
  • Write and Share Daily Intentions (e.g. for standup - what is next for you)
  • Keep an Emotional Journal (especially for stressful times like this if you find yourself reacting strongly to things)

Weekly Habits

  • Update My Calendar - block off time for those priorities
  • Exercise
  • Review Indicator Metrics
  • Record Impact I had
  • Share a Weekly Update

Quarterly Habit

  • Record My Quarterly Accomplishments

Annual Habit

  • Create Personal OKRs

My own habits would look a bit like this - I tend to have priorities for a week, and tasks for a day (and try to keep my tasks focussed on my priorities as much as possible). How about you - what are the habits you have that keep you on track?

Help, I’m a Research Computing Manager! - Jonathan Dursi, SORSE event

At the really nicely run SORSE event last week, I gave my 10 minute pitch that research computing actually prepares you pretty well for the advanced skills managing needs, we just need to shore up the basics. The basics I covered won’t be of a surprise to any readers - one-on-ones, feedback, delegation.

The talk and the resources I recommended are on the page; also, I updated my one-on-ones quickstart guide (PDF, epub) that had been written at the start of the pandemic to start them fast fast fast to instead start them up at a more normal pace.

The talk started with a poll - what are the problems the (mostly new or not-yet started) managers see in research software projects? Not surprisingly, they were almost overwhelmingly people or institutional issues:

Fraction of respondents Problem
60% Staffing
50% Funding
47.5% Shifting needs/unclear requirements
42.5% Poor communications with stakeholders
30.0% Getting poeple in agreement on howto move forward
25.0% Poor support from other departments/institutions
17.5% Technology choices

Managing Your Own Career

How to Decline a Meeting - Another Task Done

There’s no such thing as time management; managing time isn’t a power given to we mere mortals. For us, there’s only task management. And the first and most important task management skill is saying no to them.

This post give some helpful sample text for politely declining four kinds of meetings:

  • The weekly status meeting that you don’t have any real role in
  • The meeting with no agenda - always a red flag
  • The brainstorming meeting - at least cutting down the length of these
  • The information broadcast meeting - shouldn’t exist, but they do

One of the big challenges new managers face is that they finally get to be At The Table for stuff so they want to be at every meeting they get invited to. That’s normal - how are you supposed to know what meetings are important for you and what aren’t until you’ve gained some experience? As the novelty wears off you have to disentangle yourself from meetings, and these are a good way to start.

Product Management and Working with Research Communities

Research managers need friends in high places - Anne Katrin Werenskiold and Meike Dlaboha - subscription required

Unfortunately this article now needs a subscription to view, but it’s interesting that following the success of RSE (research software engineers) in defining a role and ensuring institutional support, other research support professionals like research officers in Germany (this article) and Professional Research Investment and Strategy Managers (PRISMs) in the UK are advocating for more support, funding, and career ladders for their roles.

Research Software Development

How to make research software a first-class citizen in the Netherlands? - NL-RSE
Raising the Profile of Research Software: Recommendations for Funding Agencies and Research Institutions in the Netherlands - Akhmerov, Anton; Cruz, Maria; Drost, Niels; Hof, Cees; Knapen, Tomas; Kuzak, Mateusz; Martinez-Ortiz, Carlos; Turkyilmaz-van der Velden, Yasemin; and van Werkhoven, Ben

As more of these white papers come out it’s interesting to see the commonalities and differences between them. In the blog post, NL-RSE emphasizes the contributions of Leeuwenhoek, who could not have done his pioneering microbiology work without having also made high quality tools - his lenses.

The quite short white paper makes and justifies very specific recommendations, which I’ve paraphrased for length:

Software availability and quality

  • Require that software generated as part of research is archived in compliance with the FAIR principles
  • Open-source research software development by default
  • Provide full lifecycle support for storing and sharing software, including archiving
  • Encourage best practices in software development

Software sustainability

  • Fund open-source software development important to academic research for full life cycle
  • Stimulate community building and workshops around important software topics
  • Survey the research software community to identify the needs for maintaining specific software packages.
  • Require grant proposals to make a strong case for specific existing software to be used in the proposed research project.
  • For grant proposals where new software is proposed to be developed, explain why the existing software is not sufficient either for use or collaborative development


  • Include algorithmic thinking and data management in all core curricula of academic institutions at both undergraduate and graduate level.
  • Provide training opportunities for researchers to develop digital skills
  • Provide researchers with support and guidance on digital competency.
  • Stimulate the training of specialists on digital competency skills (Research Software Engineers and Data Stewards).

Human capital

  • Formalize of Research Software Engineer (RSE) and Data Steward roles, with career progression paths.
  • Recognize and reward all research outputs

Dual licensing GPL for fame and profit - George

I’m a big fan of copyleft licenses for research computing projects (though I don’t always win these arguments at work). I understand the arguments in favour “freer” licenses. and they have their place, but copyleft seems extremely consistent with academic approaches to credit. More to the point it’s not an either/or thing; there’s no reason why code can’t be dual licensed, available as GPL for free for those to whom it meets their needs, and at some charge under other licenses for those who want to be able to distributed change versions of the code without making those changes public.

I’m not naive enough to think this is a sustainability model for much or any of research software, but it’s odd to me that it’s so rarely even discussed as an option. This blog post lays out how it works and some of the benefits.

All Contributors

These are two interesting packages for making it easier to recognize contributors to open source repositories. It looks like All Contributors is a github bot which you can give commands to and will make PRs to a list of files (such as README) to include contributors; Tributors updates some of the standard code metadata files we read about in issue #44 using Github actions.

Translate your data with lenses - Geoffrey Litt, Peter van Hardenberg, Orion Henry

This is a kind of tool I’ve been looking for examples of for some time. It’s a DSL to implement mappers from one schema to another. They use mapping between ticket trackers, API versions, and Kafka events as examples. This is such a common task in data munging and there’s so much boilerplates involved that it’s a wonder there aren’t more tools like this. Does anyone use anything similar?

Research Computing Systems

The How (and Why) of User Flows - Learn UXD

This is a good short introduction to how to plan or document user flows. The context of the article is doing it for web or mobile applications, but really it can be applied to any process a user has to go through (often then called “service design”).

I’m putting this in “Research Computing Systems” because I think in research software development or data management, the research computing teams are generally pretty decent at imagining themselves as the users - writers of simulation or data analysis software for research are often using the software themselves or working very closely with the people who are.

On the other hand the operators of research computing systems are more often - not universally, but more often - quite detached from the day-to-day users of the systems. As a result, for instance I’ve seen user registration processes which are complicated messes which make perfect sense when viewed from the inside as each step ticks some box but from from the outside is convoluted and opaque. Stepping through the user flows helps visualize things from the user’s point of view and points out steps that can be simplified or consolidated.

On Call Shouldn’t Suck: A Guide for Managers - Charity Majors

Speaking of imagining things from another’s point of view, Majors points out that if we’re going to make people be on call for our systems, we owe it to our whole team to put in the effort elsewhere to make sure the on-call experience is reasonable - avoiding tech debt, lots of testing, etc. The context is applications but the same is true of the computing systems themselves:

It is easier to keep yourself from falling into an operational pit of doom than it is to claw your way out of one. Make good operational hygiene a priority from the start

The most controversial recommendation is that you should be able to operate in a mode where on-call is voluntary, and if you can’t there’s some other underlying problems.

The second most controversial recommendation from our point of view is that managers should be chipping in, at least as backups :)

Applying Chaos Engineering in Healthcare: Getting Started with Sensitive Workloads - Carl Chesser, writing at InfoQ

I’ve heard more than once when talking about some version of chaos engineering - intentionally failing processes and nodes to make sure the computing system as a whole is resilient - that “we can’t do that in research computing environments, researchers depend on us!”

Well, here’s what they do at Cerner corporation, which makes and runs hospital information systems like health records. Chesser is a principal engineer there and describes how to get started with critical systems like HIS. As always, a deliberate approach towards improved professional practice is the way to go:

With critical systems, it can be a good idea to first run experiments in your dev/test type environments to minimize both actual and perceived risk. As you learn new things from these early experiments, you can explain to stakeholders that production is a larger and more complex environment which would further benefit from this practice.

Emerging Data & Infrastructure Tools

Unlocking eBPF Power - Michał Wcisło
How eBPF Turns Linux into a Programmable Kernel - Joab Jackson, The New Stack

eBPF, started off as Berkeley Packet Filters - allowing processing and monitoring of packets. It now is essentially a way to run almost-arbitrary functions in sandboxed kernel space (stored procedures for the kernel). These two recent articles explore eBPF’s capabilities.

Wcisło’s article is very hands-on, and he walks the reader through his path - starting from nothing, not even knowing how to start, through a solution with code samples, of locking and suspending is laptop using his phone’s Bluetooth.

Jackson’s New Stack article covers a technical session at KubeCon + CloudNativeCon EU, and a series of talks (with linked video) on how eBPF is being used for observability into or helper functions for Kubernetes, and a talk on tooling to make it easier to write eBPF code.

OpenHPC 2.0 - HPCWire

OpenHPC 2.0, the software stack for HPC clusters, is out. This isn’t intended to be backwards compatible with the 1.x series, and it’s intended for people who are starting with a new system. I love the idea of a “standard distro” for HPC clusters; is anyone actually using this?

Events: Conferences, Training

How to understand and improve the performance of your parallel applications using the POP Methodology - Fouzhan Hosseini, SORSE event, Oct 16 09:00 – 09:30 UTC
Becoming a self-employed RSE web developer - Dr. Teri Forey, SORSE event, Oct 16 09:30 – 10:00 UTC

Next up in the SORSE series - parallel performance and freelancing. The talks and Q&A are recorded and show up after a week or so on the SORSE youtube channel.

Persistent Programming In Real Life (PIRL) - Fridays Oct 16, 23, 30 - $50 USD

Tools, approaches, and lessons learned from programming with persistent memory (Intel Octane and the like).


A paean to nethack.

You can get a properly shell-quoted string by typing in the string as a comment in one line on the terminal and then using a history expansion - !:q.

Interesting looking book on applied cryptography, probably at the right level for research computing, coming as a Manning MEAP. Also an interesting approach for a book - starting with the diagrams (drawn for talks, training etc).

argbash - a bash code generator for command-line argument handling.

Not entirely sure what to think about NVIDIA’s DOCA system - what are people’s impressions? It may enable some cool things.

T-SQL compiled stored queries.. for sqlite. (I love embedded databases, so any cute new duckdb/sqlite/leveldb/whatever article or tool will always find its way into the newsletter)

A really nice interactive git tutorial.

Relatedly - the (wrong, but interesting) argument against squashing commits.

Relatedly again - the (wrong, but interesting) argument for just always merging into the main branch.

Manubot: an all-in-one setup for writing your manuscript in markdown with git and publishing into PDF, HTML, or docx with Github actions (or, less feature-fully, Travis-CI).

It’s not news when a climate/weather centre gets a new cluster, or that they’re playing with machine learning. It becomes news when they’re also partnering with the vendor to play with quantum computing applications.

Getting experience with IPv6 by setting up your home IPv6 network.