This has been a funny old week. I realised on Monday that, given how holidays are falling and so on, I’ve only got about a week left in my current role. I have learned so much, but I also feel guilty because I’ve not delivered anything. At least, I don’t feel like I’ve delivered anything. Maybe I’m underestimating my impact, but also I wonder if there’s value in being a bit selfish. It is a good thing to learn: it is good for me and good for my wider employer.
It just sucks that I feel guilty about being unproductive.
So what have I learned? I think, broadly speaking, it’s this:
Everyone hates meetings that are run badly. Folks think they hate all meetings because most meetings are run badly. 95% of my success in this role has been because I sent an agenda before meetings and actions and notes after. I have previously had the feedback that I don’t provide space in meetings for people to chit-chat, and I’ve fallen back into that tendency over the last 6 months. I am torn on this: while we’re remote,we’ve lost the opportunities for social bonding that we’d normally have around coffee, or over the desk, or at lunch. Making a space for that to happen is vital to get a team that’s a team and not a collection of people engaged in a task. At the same time, I’m reluctant that meetings be that space. I like having a meeting that is focussed on the work, and a separate space and time for socialising. To a certain extent this is because I like boxes that only contain one thing, but it’s also because socialising is an endless and enjoyable experience and preferable to working. Inevitably that means meetings run over, and the time to write or strategise is eroded – and then one ends up working late into the evening.
Team bonding is important enough that I think we should be intentional about it, and as we shift to a more hybrid model I think we’ve got a great opportunity to do exactly that.
This week in Python, or programming more generally, I’m thinking about boundaries and where to draw lines. I’ve built software for people to integrate into the software they’re writing to run their mentoring programme, and also a web-based frontend for people who aren’t building their own software (smart!) but still want to run a mentoring programme. Now, for me this is a good and valuable exercise. I can show potential employers that I know how to maintain a changelog and do semantic versioning and publish a library for other people to use.
It is probably also a bit more complicated than it needs to be. It forces me to reckon with the question of: what goes in the generic mentoring library, and what is specific to my use of it in the CS LGBT+ network? This question is made harder because, as far as I know, nobody else is using my library for their mentoring programme. In fact, I’m extending both the library and the web interface in response to feedback from the LGBT+ mentoring programme – which means it’s definitely not generic!
I also keep coming back to code a couple of weeks later and finding simpler solutions. For example, I started with a lot of different kinds of
Rule. Then I figured that there would have to be a
Disqualify rule, for the attributes that would make a bad match. I ended up passing methods from
Rule objects to
Disqualify objects, and the whole thing started getting very messy.
Then this week I was working with my mentee on mocking, and realised I could simplify a lot of what I was doing with
lambda expressions. Finally, today, I realised most of my different kinds of
Rule could be replaced with a
Generic rule with a custom function…which almost brings you perfectly back in a circle. This is because the Pythonic answer to “classes or functions?” is “yes”.
In short: more learning. More to learn.
As I reflect on six months of work, that same question of boundaries and edges comes up again. I started my current role with a very open brief, and I think I defined the scope of my operating area too early. I’m still learning to get comfortable with ambiguity and not being immediately productive. I’ve had this feedback a couple of times and I’m improving but slowly. Taking two months, eight whole working weeks, to just talk to people is absolutely essential. Otherwise I get bogged down without the right context and spend the full duration of my time rearranging deckchairs while the sea level rises.
I don’t know what the right strategy here is. I think to a certain extent the problem is in me: I don’t feel valuable unless I’m delivering value, and I have to do some intense mental gymnastics to convince myself that it’s okay to be doing non-delivery things. Nobody I’ve ever worked since I graduated for has ever pushed me to deliver from day one. Before that of course it was delivery from minute one: I’ve not yet found a bar job where you can take two months to learn without pouring drinks.
I’m also aware that I get antsy without things to do, and talking to people and reading things doesn’t completely scratch my itch. I probably need to look at ways of gamifying reading and talking to people, so that it doesn’t feel as though I’m shaving a yak.
Anyone else have good strategies for identifying that point of enough talking and reading, time to do some doing?