Overview
I worked with the Infrastructure Team at the Division of Data Science at UC Berkeley to design and develop new features and roadmaps for Otter-Grader, a lightweight, modular open-source autograder. Prior to coming into my role, the team was comprised of 4 developers and a team lead who acted as a psuedo PM. However, becausse of the vast growth of the number of adopters of Otter-Grader, I was brought onboard to analyze key takeaways and to design new features to iterate on future versions of Otter.
Because Otter is open-source, anyone can open a Github Issue and submit a particular feature request. I compiled data from over 50 different classroom adopters of Otter Grader to establish Key Performance Indicators. I looked at what features Otter Grader were most used, what features adopters thought were most helpful, what features were the most frustrating, and what features would be of interest in future version of Otter.
I was recently promoted to Infrastructure Team Lead where I will be leading the team of developers on developing future versions of Otter-Grader along with 2 other projects!
Takeaways
Improve Technical Writing
Written documents are central to the way that the Infrastructure team conducts day-to-day operations. As a TPM, I had to make sure that our product requirements, use cases, user stories, meeting summaries, and more were documented and documented well. Technical writing became one of the most important skills I developed as a TPM on this team. I used resources like different technical writing courses on Google Developers and Linkedin Learned. Additionally, I asked for feedback from my team lead to understand where I could improve overall documentation.
Reduce Complexity Where You Can
Complexity makes it hard for different users to understand and modify the codebase and system as a whole. Otter-Grader’s codebase was complex and had a lot of different moving parts. As a TPM, I looked into prioritizing how we could simplify the overall complexity of the codebase. This was especially critical in technical handoff from senior developers to junior developers. As a TPM, you are eseentially an advocate for minimizing complexity and best-positioned to empower all members of the team to be able to make decisions. Reducing complexity plays a large role in enabling the team to be more productive and creating a cleaner and more intentional product and codebase.