I am working on some exciting GenAI projects at Google. Through this work, I have found myself truly leading projects for the first time in my life. Often, I am dictating the direction and the pace of the work that my immediate team is doing. This is stressful and I'm not sure that I am ready to lead people in or out of the workplace. I need to improve as an engineer in many ways before I am confident in delivering multi-person projects end-to-end but I have learned a few things so far.
Delegating and Agency
You can either create work or have work handed down to you. Creating work is often uncertain and stressful, but at the same time, very fulfilling. Being handed work takes away your ability to self-determine, but removes a lot of the stress associated with work: knowing that someone can benefit from what you are doing.
In my current work a lot of different things need to be juggled at the same time. Development, evaluations, model tuning, customer outreach, and inter-team politics are just a few of these tasks. It's easy for me to hand off customer outreach because I'm not familiar with the task. I trust that the person I am handing the work to will do it better than I could. Software development, on the other hand, is in my sphere of competence. If I take all the work in this area two things happen: I will be overwhelmed and my teammates will be bored. Thus, I delegate.
I might file a bug and assign it to my teammate. In the bug I describe the problem and my proposed solution. This takes agency away from an otherwise perfectly capable individual. They might have a better idea that they are forced to discard. So then I'll file a bug that has a generic description like "text generations of <type> tend to be lower quality". This opens room for my teammate to innovate while knowing that their work will be appreciated. Lastly, I might file a bug that says "improve generation quality". This is such an open ended problem that I may very well reduce cohesion in my team by introducing unnecessary uncertainty that I could have helped disambiguate.
Moving forward, I will continue to meditate on my struggle with delegation, my team's desire for self-determination, and how to appropriately scope tasks. Maybe I should consider these two topics to be wholly separate?
I think I am good at prioritization. I am not good at dynamically prioritizing as new information comes in. As my seniority increases, new information avenues pop up. Management, sister teams, internal newsletters, customer feedback - it gets overwhelming. My lowest productivity days are those where there is so much I could do that I do nothing at all. Addressing this problem is pretty straight forward:
just do stuff
In the moment, it often feels more complicated than this. It really is this simple, though.
That's about all I have for now. There are a lot of things I have left to improve as I become the professional I want to be, but this is what is on my mind. Thanks!