Por que as equipes de Data Science precisam de generalistas, não de especialistas

Por que as equipes de Data Science precisam de generalistas, não de especialistas
HIROSHI WATANABE/GETTY IMAGES

Em A Riqueza das Nações, Adam Smith mostra como a divisão do trabalho se torna a principal fonte de aumento da produtividade. Um exemplo é a linha de montagem de uma fábrica de alfinetes: “Um trabalhador puxa o fio, outro o endireita, um terceiro corta, um quarto afia a ponta, um quinto afia a outra ponta para caber na cabeça”. Graças à especialização focada em funções específicas, cada funcionário se torna um especialista altamente qualificado em sua específica tarefa, o que leva ao aumento da eficiência dos processos. A produção por trabalhador aumenta muitas vezes e a fábrica se torna mais eficiente na produção de alfinetes.

Essa divisão do trabalho por funcionalidade está tão arraigada em nossas mentes até hoje que rapidamente organizamos nossas equipes de acordo. A Ciência de Dados não é exceção. Capacidades empresariais algorítmicas complexas exigem múltiplas funções de trabalho, por isso as empresas normalmente criam equipes de especialistas: pesquisadores, engenheiros de dados, engenheiros de aprendizado de máquina, cientistas de causa e efeito e assim por diante. O trabalho dos especialistas é coordenado pelo gerente de produto com a transferência de funções de forma que lembra uma fábrica de alfinetes: “uma pessoa recebe os dados, outra modela, uma terceira executa, uma quarta mede” e assim por diante,

Infelizmente, não devemos otimizar nossas equipes de Ciência de Dados para melhorar a produtividade. No entanto, você faz isso quando entende o que está produzindo: alfinetes ou qualquer outra coisa, e simplesmente se esforça para aumentar a eficiência. O objetivo das linhas de montagem é completar uma tarefa. Sabemos exatamente o que queremos - alfinetes (como no exemplo de Smith), mas qualquer produto ou serviço pode ser mencionado em que os requisitos descrevam completamente todos os aspectos do produto e seu comportamento. O papel dos funcionários é cumprir esses requisitos da maneira mais eficiente possível.

Mas o objetivo da Ciência de Dados não é concluir tarefas. Em vez disso, o objetivo é explorar e desenvolver novas e fortes oportunidades de negócios. Produtos e serviços algorítmicos, como sistemas de recomendação, interações com clientes, classificação de preferências de estilo, dimensionamento, design de roupas, otimização logística, detecção de tendências sazonais e muito mais, não podem ser desenvolvidos antecipadamente. Eles devem ser estudados. Não existem planos para replicar, estas são novas possibilidades com incerteza inerente. Coeficientes, modelos, tipos de modelos, hiperparâmetros, todos os elementos necessários devem ser aprendidos por meio de experimentação, tentativa e erro e repetição. Com os alfinetes, o treinamento e o design são feitos antes da produção. Com Data Science, você aprende enquanto aprende, não antes.

Numa fábrica de alfinetes, quando a formação vem em primeiro lugar, não esperamos nem queremos que os trabalhadores improvisem sobre qualquer característica do produto que não seja para melhorar a eficiência da produção. A especialização de tarefas faz sentido porque leva à eficiência do processo e à consistência da produção (sem alterações no produto final).

Mas quando o produto ainda está em desenvolvimento e o objetivo é treinar, a especialização interfere nos nossos objetivos nos seguintes casos:

1. Aumenta os custos de coordenação.

Ou seja, aqueles custos que se acumulam durante o tempo gasto comunicando, discutindo, justificando e priorizando o trabalho que precisa ser feito. Esses custos aumentam de forma superlinear com o número de pessoas envolvidas. (Como J. Richard Hackman nos ensinou, o número de relacionamentos r cresce de forma semelhante à função do número de termos n de acordo com esta equação: r = (n^2-n)/2. E cada relacionamento revela alguma quantidade do relação de custo.) Quando os cientistas de dados são organizados por função, em todas as fases, em cada mudança, em cada transferência, etc., são necessários muitos especialistas, o que aumenta os custos de coordenação. Por exemplo, os modeladores estatísticos que desejam experimentar novos recursos terão que coordenar-se com os engenheiros de dados que adicionam dados aos conjuntos de dados sempre que quiserem experimentar algo novo. Da mesma forma, cada novo modelo treinado significa que o desenvolvedor do modelo precisará de alguém com quem coordenar para colocá-lo em produção. Os custos de coordenação funcionam como um preço para a iteração, tornando-os mais difíceis e caros e mais propensos a causar o abandono do estudo. Isso pode interferir no aprendizado.

2. Torna o tempo de espera difícil.

Ainda mais assustador do que os custos de coordenação é o tempo perdido entre os turnos de trabalho. Embora os custos de coordenação sejam normalmente medidos em horas – o tempo necessário para realizar reuniões, discussões, revisões de design – o tempo de espera é geralmente medido em dias, semanas ou até meses! As agendas dos especialistas funcionais são difíceis de equilibrar porque cada especialista deve ser distribuído por vários projetos. Uma reunião de uma hora para discutir mudanças pode levar semanas para suavizar o fluxo de trabalho. E depois de pactuar as mudanças, é necessário planejar o próprio trabalho no contexto de tantos outros projetos que ocupam o tempo de trabalho dos especialistas. Trabalhos que envolvem correções de código ou pesquisas que levam apenas algumas horas ou dias para serem concluídos podem levar muito mais tempo até que os recursos fiquem disponíveis. Até então, a iteração e o aprendizado estão suspensos.

3. Restringe o contexto.

A divisão do trabalho pode limitar artificialmente a aprendizagem ao recompensar as pessoas por permanecerem na sua especialidade. Por exemplo, um cientista pesquisador que deve permanecer dentro do escopo de sua funcionalidade concentrará sua energia na experimentação de diferentes tipos de algoritmos: regressão, redes neurais, floresta aleatória e assim por diante. É claro que boas escolhas de algoritmos podem levar a melhorias incrementais, mas normalmente há muito mais a ganhar com outras atividades, como a integração de novas fontes de dados. Da mesma forma, ajudará a desenvolver um modelo que explore todo o poder explicativo inerente aos dados. No entanto, a sua força pode residir na alteração da função objetivo ou no relaxamento de certas restrições. Isso é difícil de ver ou fazer quando o trabalho dela é limitado. Como um cientista técnico é especializado em otimizar algoritmos, é muito menos provável que ele faça qualquer outra coisa, mesmo que isso traga benefícios significativos.

Para citar os sinais que aparecem quando as equipes de ciência de dados atuam como fábricas de pinos (por exemplo, em atualizações de status simples): “aguardando alterações no pipeline de dados” e “aguardando recursos do ML Eng” são bloqueadores comuns. Porém, acredito que a influência mais perigosa é aquela que você não percebe, porque você não pode se arrepender daquilo que ainda não sabe. A execução impecável e a complacência obtida ao alcançar a eficiência dos processos podem mascarar a verdade de que as organizações não têm consciência dos benefícios de aprendizagem que estão a perder.

A solução para esse problema, é claro, é livrar-se do método do pino de fábrica. Para incentivar a aprendizagem e a iteração, as funções dos cientistas de dados devem ser genéricas, mas com amplas responsabilidades independentes da função técnica, ou seja, organizar os cientistas de dados para que sejam otimizados para a aprendizagem. Isso significa contratar “especialistas full stack” – especialistas gerais que podem desempenhar uma variedade de funções, do conceito à modelagem, da implementação à medição. É importante observar que não estou sugerindo que a contratação de talentos full-stack deva reduzir o número de funcionários. Em vez disso, assumirei simplesmente que quando são organizados de forma diferente, os seus incentivos estão mais alinhados com os benefícios de aprendizagem e desempenho. Por exemplo, digamos que você tenha uma equipe de três pessoas com três habilidades empresariais. Numa fábrica de alfinetes, cada técnico dedicará um terço do seu tempo a cada tarefa, uma vez que ninguém mais pode fazer o seu trabalho. Em uma pilha completa, cada generalista se dedica totalmente a todo o processo de negócios, expansão e treinamento.

Com menos pessoas apoiando o ciclo de produção, a coordenação é reduzida. O generalista move-se com fluidez entre recursos, expandindo o pipeline de dados para adicionar mais dados, testando novos recursos em modelos, implantando novas versões na produção para medições causais e repetindo etapas tão rapidamente quanto novas ideias surgem. É claro que a perua desempenha diferentes funções sequencialmente e não em paralelo. Afinal, é apenas uma pessoa. Contudo, completar uma tarefa geralmente leva apenas uma fração do tempo necessário para acessar outro recurso especializado. Portanto, o tempo de iteração diminui.

Nosso generalista pode não ser tão qualificado quanto um especialista em uma função específica, mas não buscamos a perfeição funcional ou pequenas melhorias incrementais. Em vez disso, nos esforçamos para aprender e descobrir cada vez mais desafios profissionais com impacto gradual. Com um contexto holístico para uma solução completa, ele vê oportunidades que um especialista perderia. Ele tem mais ideias e mais possibilidades. Ele também falha. No entanto, o custo do fracasso é baixo e os benefícios da aprendizagem são elevados. Essa assimetria promove iteração rápida e recompensa o aprendizado.

É importante notar que a quantidade de autonomia e diversidade de competências proporcionadas aos cientistas full stack depende em grande parte da robustez da plataforma de dados na qual trabalhar. Uma plataforma de dados bem projetada abstrai os cientistas de dados das complexidades da conteinerização, do processamento distribuído, do failover automático e de outros conceitos avançados de computação. Além da abstração, uma plataforma de dados robusta pode fornecer conectividade contínua à infraestrutura experimental, automatizar o monitoramento e alertas, permitir o dimensionamento automático e a visualização de resultados algorítmicos e depuração. Esses componentes são projetados e construídos pelos engenheiros da plataforma de dados, o que significa que não são repassados ​​do cientista de dados para a equipe de desenvolvimento da plataforma de dados. É o especialista em Data Science o responsável por todo o código utilizado para rodar a plataforma.

Eu também já estive interessado na divisão funcional do trabalho usando eficiência de processos, mas por tentativa e erro (não há melhor maneira de aprender), descobri que funções típicas facilitam melhor o aprendizado e a inovação e fornecem as métricas corretas: descobrir e construindo muito mais oportunidades de negócios do que abordagem especializada. (Uma maneira mais eficaz de aprender sobre essa abordagem de organização do que a tentativa e erro que passei é ler o livro Team Collaboration: How Organizations Learn, Innovate, and Compete in the Knowledge Economy, de Amy Edmondson).

Existem alguns pressupostos importantes que podem tornar esta abordagem de organização mais ou menos confiável em algumas empresas. O processo de iteração reduz o custo de tentativa e erro. Se o custo do erro for alto, você pode querer reduzi-lo (mas isso não é recomendado para aplicações médicas ou de fabricação). Além disso, se você estiver lidando com petabytes ou exabytes de dados, pode ser necessária especialização em engenharia de dados. Da mesma forma, se manter as capacidades de negócio online e a sua disponibilidade for mais importante do que melhorá-las, a excelência funcional pode superar a aprendizagem. Por fim, o modelo full stack depende da opinião de pessoas que o conhecem. Eles não são unicórnios; você pode encontrá-los ou prepará-los você mesmo. No entanto, são muito procurados e atraí-los e retê-los exigirá uma remuneração competitiva, valores corporativos fortes e um trabalho desafiante. Certifique-se de que a cultura da sua empresa pode apoiar isso.

Mesmo com tudo isso dito, acredito que o modelo full stack oferece as melhores condições iniciais. Comece com eles e depois avance conscientemente para uma divisão funcional do trabalho apenas quando for absolutamente necessário.

Existem outras desvantagens da especialização funcional. Isto pode levar à perda de responsabilidade e passividade por parte dos trabalhadores. O próprio Smith critica a divisão do trabalho, sugerindo que ela leva ao entorpecimento do talento, ou seja, os trabalhadores tornam-se ignorantes e retraídos, pois as suas funções são limitadas a algumas tarefas repetitivas. Embora a especialização possa proporcionar eficiência aos processos, é menos provável que inspire os trabalhadores.

Por sua vez, funções versáteis proporcionam tudo o que impulsiona a satisfação no trabalho: autonomia, domínio e propósito. Autonomia é que não dependem de nada para alcançar o sucesso. O domínio reside em fortes vantagens competitivas. E o sentido de propósito reside na oportunidade de causar impacto nos negócios que criam. Se conseguirmos deixar as pessoas entusiasmadas com seu trabalho e causar um grande impacto na empresa, todo o resto se encaixará.

Fonte: habr.com

Adicionar um comentário