And Now to Lead

Posted

As a companion to yesterday’s post about a new stack, I would like to introduce you to Jo:

Jo, 31, completed a PhD in geology three years ago and now works at a national research laboratory. The fracture modeling software they wrote in grad school is being used by a dozen research groups around the world, several of which have started to contribute fixes and extensions of varying quality. Jo has just been given the OK to hire two junior research software engineers to expand the code, and their graduate supervisor has taken on a new PhD student to work on it as well.

Jo is comfortable writing thousands of lines of numerical Python code, branching and merging in Git, testing with Pytest and the coverage module, creating and managing issues in GitHub, running large computational jobs in the cloud using Metaflow, and turning Jupyter notebooks into publishable PDFs. Those skills feel necessary but not sufficient for managing a small, heterogeneous team. Jo now wants to learn:

Most of all, though, Jo wants someone to tell them what else they should be thinking about and what other skills they should try to acquire.

I built and delivered a two-day workshop for people like Jo in 2021–22. It didn’t go well, partly because I didn’t have enough personal experience to draw on at the time, but also because the practical exercises were unsatisfying. When I teach a SQL tutorial, learners can do 2–5 minute exercises several times an hour to check their understanding and to motivate clarifying questions. When I run my workshop on how to teach, participants do a 5–10 minute exercise every 45 minutes, which I think works just as well.

When it comes to management skills, though, I’m really at a loss. Is there anything that will work at that cadence? For example, I’ve given a talk on how to run a meeting a dozen times or more in the past two years. It has always been well received, but I don’t know what I could have people do in 10 minutes immediately after it that would actually make a difference to how they run meetings.

Yesterday, I asked what tools should be part of a new stack. My request today is a bit different: what practical exercises have you done in whatever training you’ve had on managing teams that actually improved your understanding of how you should do that? Given my preferred format (one- or two-day workshop delivered in half-day chunks) I’d like things that participants can do in at most 15 minutes, but “actually improved understanding” is more important. If you have suggestions, please email me, and please accept my thanks in advance.

Note: this report by Dobbins and Kalev on why diversity programs fail highlights the difference between training offered so that people and companies can say, “Well, we told them what they ought to do,” and training that actually changes behavior. With respect to everyone’s good intentions, I’m only interested in the latter.

Also note: I now own eight books published in the last six years on how to be a software engineering manager and/or lead software development teams. Almost all of their content can be summarized as, “This worked for me,” and/or, “This works if everyone is mature and sincere and their goals are aligned.” None of those books have professional ethics or social responsibility in their index, and only two of them even mention the fact that people from marginalized backgrounds usually have a very different experience as first-time managers than straight, cis, white or Asian, physically able, economically secure men like me. As you may already have guessed, I haven’t found those books particularly useful…