Leading, and Pairing on, ML projects
Most machine learning projects sit squarely in the intersection between "spend two years on this and get back to me" research and overly pragmatic "let’s ship it tomorrow" engineering. Each company has a preference for where on the spectrum they are; some dedicate full research teams to optimizing the last .001%, while others use whenever open-source code they can find to classify MNIST digits and call it a day. For me, I like to be on, and lead, teams that sit in the middle as full-stack machine learning engineers. However, the difficulty with the middle is that the work required is often very wide encompassing pulling data, exploring data, modeling, building infrastructure, serving, retraining …. The list goes on. Given this, what is the best way to staff people on these types of projects? I’ve tried lots of approaches; Kanban, waterfall, research-focused, variants of Agile. They can all work.
tl;dr Staffing projects all depends on your team dynamics and the individuals that are working with you
However, I have found expectation setting through project leads (not a new concept) and project pairs (a newer concept?) to be helpful for this type of work.
Above are all the different phases of a project. As you can see, it covers a wide variety of areas.
Project leads are formally the individuals responsible for ensuring a project is seen to completion, communicating the status of a project including any changes to the project timeline, as well as leveraging data to assess the impact. These people are your “I trust you to complete this without hand-holding the entire time.” In addition, project leadership is a great opportunity for junior developers to work on smaller features. Here are some expectations I’ve found useful.
Lead Core Expectations
For all projects
Rolling up their sleeves next to the lead, project pairs are the second brain. With the work spanning many different skillsets, tech stacks, and stakeholders, I find it useful to explicitly assign pairs on projects. Both for personal development, “hey, this technology looks cool,” removal of the bus factor, “only Peter knows how our Resnet backbone was trained,” and PR reviews, “There are 15 PRs that have been open for more than a week.” The expectations of a pair depend on the stage of a project.? Some parts of the machine learning lifecycle are well suited for pairing such as model experimentation, while others, deployment, and infrastructure, require the pair to be the primary reviewer on design documents to offer critical feedback. Generally, I’ve found that pairs spend 10-15% of the total time on the project assisting and gathering context.
领英推荐
Pair Core Expectations
For all projects
Pair Secondary Expectations
Project dependent
Anticipated Q&A
Q: Shouldn’t everyone know how everything works?
Q: What about the rest of the team, should they have a say?
Q: You’re making a lot of assumptions about the communication preferences and working styles of people.
Thanks for reading!
?