#4 - Link Roundup, 28 Feb 2020
An Engineering Team where Everyone is a Leader; 10 ways to get untapped talent in your organization to contribute; 1:1s and coaching
Managing Teams
An Engineering Team where Everyone is a Leader - Gergely Orosz
A reader wrote in referencing this article saying that it was useful particularly in the context of a growing research software team supporting multiple projects - providing a structured way to delegate while promoting the team member’s development and responsibility. And it is a great article!
The idea is that, rather than as the team leader you run all of the projects in your team, you tap your team members to run them, with you supervising and coaching. For more junior staff members this could mean designing, kicking off, and managing a project that lasts 3 weeks and is mostly their own work with some contributions from someone else; after racking up some successes it can progress to leading major efforts. By delegating this project management you’re both taking some work off your desk (eventually, anyway - this would take quite a lot of managing and coaching!) and developing your team.
This could end very messily without clear expectations, and the author - who has worked at Uber, Microsoft, Skype & JPMorgan - includes an extremely detailed ten-page google doc of how to run a project; in the article he describes being very prescriptive about “this is the way you will run the project” for his team member’s first attempt or two, and as they become more successful they gain progressively more autonomy about how it’s done. As they grow more confident in their skills, they can even be the ones to mentor the team members who are just starting out on their project management efforts.
I really like this. I see lots of posts along the lines of “Help, I’m a New Manager”, and there’s articles intended to help, like this perfectly decent recent one: This 90-Day Plan Turns Engineers into Remarkable Managers. But the way people learn to manage projects and teams is to actually manage projects and teams - ideally, starting from small and progressing to large, and with a lot of supervision. This is a great way to help your team members do that, and to be ready for their next role, while reducing the number of tasks you are personally juggling.
This reminds me a lot of the idea of the responsibility ladder that Manager Tools introduced me to. I came from an environment where everyone I worked with had gotten a PhD, and so had the experience of managing of at least long-term project - their own dissertation research. The first time I hired someone who didn’t have that experience wasn’t a great time for myself or them — I’d give them a huge multi-month piece of work and just assume they’d figure it out. After all, that’s just how we do things in research, right? They flailed, I was frustrated and baffled - this person was smart, what’s wrong?
Diligently, intentionally walking people up that responsibility ladder, up to managing projects of significant scale, is an excellent way of tackling the two biggest responsibilities we have: getting things done, and developing the people on our staff.
10 ways to get untapped talent in your organization to contribute - Pamela Rucker, O’Reilly Blog
This article pairs quite nicely with the one above - it’s a little more general and gives less specific advice, but the basic idea is the same. While the author spells out ten ways, they all come down to combinations of four basic approaches:
Teaching: coaching and mentoring your people on strategic priorities and using their capabilities correctly
Telling: sharing stories, statistics, and strategies about where you’re going, what’s expected, and what’s worked in the past
Trusting: delegating work to others so you’ll have time to be far more strategic in your own work efforts
Trying: exploring new innovation opportunities as you look for new ways to grow the business or become more efficient.
The idea here is to understand your team members better, find what they’re good at, and find new ways of matching those strengths to things that need to be done, while clearly communicated what the end goals are. It can be applied to turning underperforming team members into good contributors, helping strong performers grow new expertise, or anywhere in between.
How to Coach Employees? Ask these One-on-One Meeting Questions - Claire Lew, KnowYourTeam
The Ultimate 1-on-1 Meeting Questions Template - PeopleBox
All of the above approaches require knowing your team members well - how well they’re doing what they do now, what they’d like to do next, and where they have untapped strengths. Regular one-on-ones, where the focus is on the team member and not on you or on status updates, are by far the best tool we have to learn these things and to build strong working relationships.
Claire Lew’s post focuses specifically on questions around coaching team members so you can help their skill and career development, broken into four categories: their perception of the current state, the ideal outcome of where they need to be, what they are most motivated by, and what’s holding them back.
The resource from peoplebox is a list of 500 (!!) one-on-one questions (plus alternates if you don’t like the wording) that could be useful to skim through occasionally to see if there are any topics that you haven’t been covering but maybe you might want to in the future.
Reproducible Technical Work
Quantifying Independently Reproducible Machine Learning - Edward Raff, writing at The Gradient
We worry a lot about about replication and reproducibility in research computing. In this article, the author — who attempted to independently replicate the results and basic methods in 255 (!!!) ML papers. Crucial here is independent replication; it’s not enough to just run the code, but to implement independently. He was successful 162 times.
That’s enough papers to do some quantitative analysis, and it’s interesting what aspects of the work were not correlated with successful independent replication. A clearly written paper and answering emails was much more important than published source code or worked sample problems.
Project Management
Premortems: The solution to the Preventable Problems Paradox - Shreyas Doshi on Twitter
This is a great twitter thread, which I assume is a summary of one of the author’s presentations, giving very specific advice on how to run a pre-mortem before starting a project to identify potential issues before they arise. It’s so easy for people to see potential issues and not say anything; it could be because they’re not comfortable speaking up, but it could just as easily be because they assume someone more senior would have thought of that already and decided it wasn’t a problem. Get all those tigers, paper tigers, and elephants (you’ll see) out in the open and make sure you have plans for them if you discover them in the wild.
Random
Fastpages from fast.ai is a particularly slick and easy-to-get-started-with setup for starting blogs using Jekyll and github pages. It uses github actions both to get things initially started and to make posts - including making blog posts or pages out of Jupyter notebooks, which seems like it may be of interest to a number of research computing teams.
(Is anyone in research computing using Github actions for anything real yet? It seems like it should be really useful but I’m not seeing the number of uses of it yet that I would have expected.)
This week I learned that you can generate ASCII-Art Mandelbrot Sets and do interactive 3-d rendering in SQLite’s dialect of SQL with recursive queries.
In similar but more baffling “because I can” news: WebAssembly is a bytecode and virtual machine for running code in the browser with speed comparable to natively compiled code. Someone’s decided that it’s a good idea to build a tool that enables running WebAssembly in the kernel.