Perhaps one of the most interesting experiences to arise from my Research Software Engineering job is becoming a project manager and leading software development. Leading and supervising others is not something I haven't done before. As a Post-doc, I have supervised, tutored, taught, and designed projects, lessons and exams for undergraduates and PhD students. But the difference there is often that you are helping to guide and mentor the students, along with the principal investigator that you work for. The ultimate result of the student's research is still on their shoulders. Managing a project, with multiple software developers, is a very different prospect.
I'm involved in a project that is worth multiple millions of pounds of research funding, developing software to enhance chemical discovery. Now currently the team consists of myself, two more developers (of differing experiences) the PI, and some senior developers and managers to give me some advice when required.
Very rapidly I am learning all about software development management. Scrums, Agile, and more, because my previous software development projects were all typically solo experiences. These days there are many tools to facilitate working as a team on such projects, more so since the pandemic. And using these tools we plan out sprints, blocks of work, and define features and milestones.
None of this is new to those who are already in the realm of software development, but for me, coming from a very academic background, it makes it much easier to push back against higher-ups. They can see the progress, the tasks to be done, and it means time and milestones can be properly planned, and expectations met. Perhaps more importantly, by being able to define clear milestones, and drawing a line under some work, the team feels as if there is progress, that something has been delivered, and that they can get enthused about the next features, rather than feeling like it is an endless grind.
What has surprised me, is how much I enjoy project management. It's a puzzle, a challenge in optimisation, and it's about cultivating a good team who synergize well. This is important because I don't work 100% on this project as a developer, as I have other projects I work solo on, but knowing I can come back week after week to see progress made by the team is great.
I think likely the reason I enjoy herding cats for a project, is that it is an application of team management I have learnt from running tabletop games, and playing co-op board games (in particular really complex games like Kingdom Death). You have together your players. Map out a story. Set milestones, goals, and plan in safety nets when things don't go as you expect. Plus what happens when players can't make the game?
Hopefully, soon I can say a lot more about the project I am working on and what impact it should have on science and research.
Comments