Encuesta de Desarrolladores de Stackoverflow 2019

Encuesta de Desarrolladores de Stackoverflow 2019
HIROSHI WATANABE/GETTY IMAGES

En el libro "La riqueza de las naciones", Adam Smith muestra cómo la división del trabajo se convierte en la principal fuente del aumento de la productividad. Un ejemplo es la línea de ensamblaje de una fábrica de alfileres: "Un trabajador tira del alambre, otro lo endereza, el tercero lo corta, el cuarto afila un extremo, el quinto afila el otro extremo para colocar la cabeza". Gracias a la especialización centrada en funciones específicas, cada trabajador se convierte en un especialista altamente calificado en su tarea, lo que conduce a una mayor eficiencia del proceso. La producción por trabajador se incrementa varias veces, y la fábrica se vuelve más eficiente en la fabricación de alfileres.

Tal división del trabajo por funcionalidad está tan arraigada en nuestras mentes hoy en día que rápidamente organizamos nuestros equipos de esa manera. La Ciencia de Datos no es una excepción. Las complejas oportunidades de negocio algorítmico requieren muchas funciones laborales, por lo que las empresas suelen crear grupos de especialistas: investigadores, ingenieros de análisis de datos, ingenieros de aprendizaje automático, científicos que se dedican a la causalidad, etc. El trabajo de los especialistas es coordinado por un gerente de producto que distribuye las funciones de una manera que recuerda a la fábrica de alfileres: "una persona obtiene los datos, otra los modela, la tercera los ejecuta, la cuarta los mide", y así sucesivamente.

Lamentablemente, no debemos optimizar nuestros equipos de Ciencia de Datos para aumentar la productividad. Sin embargo, lo hacen cuando entienden lo que producen: alfileres o algo más, y simplemente buscan aumentar la eficiencia. El objetivo de las líneas de ensamblaje es cumplir con la tarea. Sabemos exactamente lo que queremos: son alfileres (como en el ejemplo de Smith), pero se podrían mencionar cualquier producto o servicio en los que los requisitos describen completamente todos los aspectos del producto y su comportamiento. El papel de los empleados es cumplir con estos requisitos de la manera más eficiente posible.

Pero el objetivo de Data Science no es cumplir tareas. Más bien, el objetivo es estudiar y desarrollar nuevas capacidades de negocio. Productos y servicios algorítmicos, como sistemas de recomendaciones, interacciones con clientes, clasificación de preferencias de estilo, selección de tamaños, diseño de ropa, optimización de la logística, detección de tendencias estacionales y mucho más no pueden ser diseñados de antemano. Deben ser explorados. No hay planos para reproducirlos, son nuevas oportunidades con su propia incertidumbre. Coeficientes, modelos, tipos de modelos, hiperparámetros, todos los elementos necesarios deben ser analizados a través de experimentos, pruebas y errores, así como repeticiones. Con los pines, el aprendizaje y el diseño se completan antes de su producción. Con Data Science, aprendes en el proceso, no antes de él.

En la fábrica de pines, cuando el aprendizaje es primordial, no esperamos ni queremos que los trabajadores improvisen en ninguna característica del producto, excepto para mejorar la eficiencia de la producción. La especialización de tareas tiene sentido, ya que conduce a la eficiencia de los procesos y a la coherencia en la producción (sin alteraciones en el producto final).

Pero cuando el producto aún está en desarrollo y el objetivo es aprender, la especialización puede obstaculizar nuestros objetivos en los siguientes casos:

1. Aumenta los costos de coordinación.

Es decir, los costos que se acumulan por el tiempo dedicado a la comunicación, discusión, justificación y definición de las prioridades del trabajo que debe realizarse. Estos costos escalan de manera no lineal con la cantidad de personas involucradas. (Como nos enseñó J. Richard Hackman, el número de relaciones r crece de manera similar a la función del número de miembros n de acuerdo con esta ecuación: r = (n ^ 2 - n) / 2. Y cada relación descubre una cierta cantidad de relación de costos). Cuando los especialistas en análisis de datos están organizados por funciones, en cada etapa, con cada cambio, cada transferencia de servicio, etc., se requieren muchos especialistas, lo que aumenta los costos de coordinación. Por ejemplo, los especialistas en modelado estadístico que desean experimentar con nuevas funciones deberán coordinar sus acciones con los ingenieros de procesamiento de datos que complementan los conjuntos de datos cada vez que quieren probar algo nuevo. De igual manera, cada nuevo modelo entrenado significa que el desarrollador del modelo necesitará a alguien con quien coordinar sus acciones para ponerlo en producción. Los costos de coordinación actúan como una tarifa por iteración, lo que las hace más complicadas y costosas y con mayor probabilidad de hacer que se abandonen investigaciones. Esto puede obstaculizar el aprendizaje.

2. Esto complica el tiempo de espera.

Incluso más alarmante que los costos de coordinación son los tiempos perdidos entre turnos de trabajo. Mientras que los costos de coordinación suelen medirse en horas: el tiempo que se necesita para llevar a cabo reuniones, discusiones, revisiones de proyectos, el tiempo de espera generalmente se mide en días, semanas o incluso meses. Alinear los horarios de los especialistas funcionales es complicado, ya que cada especialista debe estar asignado a varios proyectos. Una reunión que se lleva a cabo para discutir cambios puede llevar varias semanas para alinear el flujo de trabajo. Además, tras acordar los cambios, también es necesario programar el trabajo real en el contexto de muchos otros proyectos que ocupan el tiempo de los especialistas. El trabajo relacionado con la corrección de código o investigaciones que podrían completarse en unas pocas horas o días puede tardar mucho más tiempo en ser disponible. Hasta entonces, la iteración y el aprendizaje se detienen.

3. Esto restringe el contexto.

La división del trabajo puede limitar artificialmente el aprendizaje, recompensando a las personas por permanecer en su especialización. Por ejemplo, un investigador que debe permanecer dentro de su funcionalidad concentrará su energía en experimentar con diversos tipos de algoritmos: regresión, redes neuronales, random forest, etc. Sin duda, una buena selección de algoritmo puede llevar a mejoras graduales, pero, por lo general, se puede obtener mucho más de otras actividades, como la integración de nuevas fuentes de datos. De igual manera, esto ayudará a desarrollar un modelo que aproveche cada bit de capacidad explicativa inherente a los datos. Sin embargo, su fortaleza podría residir en alterar la función objetivo o aflojar ciertas restricciones. Es difícil ver o hacer eso cuando su trabajo está limitado. Dado que el científico especializado se centra en la optimización de algoritmos, tiene muchas menos probabilidades de involucrarse en algo más, incluso si eso ofrece beneficios significativos.

Llamemos a las señales que se manifiestan cuando los equipos de ciencia de datos operan como fábricas de alfileres (por ejemplo, en simples actualizaciones de estado): "esperando cambios en el flujo de datos" y "esperando recursos de ingeniería de ML", que son bloqueadores comunes. Sin embargo, creo que la influencia más peligrosa radica en lo que no notas, porque no puedes lamentar lo que aún desconoces. La ejecución impecable de requisitos y la autocomplacencia, logradas a través de la eficiencia en los procesos, pueden ocultar la verdad sobre que las organizaciones no son conscientes de los beneficios del aprendizaje que están perdiendo.

La solución a este problema, por supuesto, radica en deshacerse del método de fábrica de alfileres. Para fomentar el aprendizaje y la iteración, los roles de ciencia de datos deben ser generales, pero con amplias responsabilidades, sin depender de la función técnica, es decir, organiza a los especialistas en datos de manera que estén optimizados para el aprendizaje. Esto significa que es necesario contratar "especialistas de pila completa" —profesionales generales que pueden desempeñar diferentes funciones: desde el concepto hasta la modelización, desde la implementación hasta la medición. Es importante señalar que no asumo que al contratar especialistas de pila completa el número de empleados deba disminuir. Más bien, simplemente supongo que cuando están organizados de manera diferente, sus incentivos se relacionan mejor con los beneficios del aprendizaje y la eficiencia. Por ejemplo, tienes un equipo de tres personas con tres habilidades comerciales. En una fábrica de fabricación de alfileres, cada especialista dedicará un tercio de su tiempo a cada tarea profesional, ya que nadie más podrá realizar su trabajo. En una estructura de pila completa, cada empleado versátil está completamente dedicado a todo el proceso comercial, aumentando la escala del trabajo y el aprendizaje.

Con menos personas apoyando el ciclo de producción, la coordinación disminuye. El universal se mueve suavemente entre funciones, ampliando el flujo de datos para agregar un mayor volumen de información, probando nuevas funciones en los modelos, implementando nuevas versiones en producción para mediciones causales, y repite los pasos tan rápido como llegan nuevas ideas. Por supuesto, el universal realiza diferentes funciones de manera secuencial, no paralela. Al final, solo es una persona. Sin embargo, completar una tarea generalmente toma solo una pequeña parte del tiempo necesario para acceder a otro recurso especializado. Así que el tiempo de iteración se reduce.

Nuestro universal puede no ser tan hábil como un especialista en una función laboral específica, pero no buscamos la perfección funcional o pequeñas mejoras graduales. Más bien, buscamos explorar y descubrir constantemente nuevas tareas profesionales con un impacto progresivo. Con un contexto integral para una solución completa, ve oportunidades que un especialista estrecho pasaría por alto. Tiene más ideas y más posibilidades. También fracasa. No obstante, el costo del fracaso es bajo, y los beneficios del aprendizaje son altos. Esta asimetría favorece una rápida iteración y recompensa el aprendizaje.

Es importante destacar que la escala de autonomía y diversidad de habilidades que un científico que trabaja con pilas completas puede tener depende en gran medida de la fiabilidad de la plataforma de datos sobre la cual puede trabajar. Una plataforma de datos bien diseñada abstrae a los científicos de datos de las complejidades de la containerización, el procesamiento distribuido, la transición automática a otros recursos y otros conceptos informáticos avanzados. Además de la abstracción, una plataforma de datos confiable puede proporcionar una conexión fluida a la infraestructura experimental, automatizar la supervisión y el sistema de alertas, garantizar la escalabilidad automática y hacer visible los resultados de algoritmos y depuración. Estos componentes son diseñados y construidos por ingenieros de la plataforma de datos, es decir, no se transfieren al equipo de desarrollo de la plataforma de datos desde el especialista en Ciencia de Datos. Es el especialista en Ciencia de Datos quien es responsable de todo el código utilizado para poner en marcha la plataforma.

A mí también me interesó una vez la división funcional del trabajo utilizando la eficacia de los procesos, pero mediante prueba y error (no hay mejor forma de aprender) descubrí que los roles típicos favorecen mejor el aprendizaje y la innovación y proporcionan métricas correctas: el descubrimiento y la construcción de un número mucho mayor de oportunidades comerciales que un enfoque especializado. (Una forma más efectiva de aprender sobre este enfoque organizativo que el método de prueba y error a través del cual pasé es leer el libro de Amy Edmondson "Interacción en equipo: cómo las organizaciones aprenden, crean innovaciones y compiten en la economía del conocimiento").

Hay algunas suposiciones importantes que pueden hacer que este enfoque organizativo sea más o menos fiable en algunas empresas. El proceso iterativo reduce el costo de los ensayos y errores. Si el costo de un error es alto, es posible que desee reducirlo (aunque no se recomienda para aplicaciones médicas o fabricación). Además, si está lidiando con petabytes o exabytes de datos, puede requerir especialización en diseño de datos. De igual manera, si mantener la capacidad comercial en línea y su disponibilidad es más importante que su perfección, la excelencia funcional puede superar el aprendizaje. Por último, el modelo de pila completa se basa en la opinión de personas que entienden el tema. No son unicornios; se pueden encontrar o formar internamente. Sin embargo, tienen una alta demanda, y atraer y retener a esos profesionales en la empresa requerirá una compensación material competitiva, valores corporativos sostenibles y un trabajo interesante. Asegúrese de que su cultura corporativa pueda proporcionar tales condiciones.

Incluso teniendo en cuenta todo lo mencionado, creo que el modelo de pila completa proporciona las mejores condiciones para comenzar. Comience con ellos y luego avance conscientemente hacia una división funcional del trabajo solo cuando sea absolutamente necesario.

También hay otras desventajas de la especialización funcional. Puede llevar a la pérdida de responsabilidad y pasividad por parte de los trabajadores. El propio Smith critica la división del trabajo, sugiriendo que conduce a un embotamiento del talento, es decir, los trabajadores se vuelven ignorantes y retraídos, ya que sus roles se limitan a unas pocas tareas repetitivas. Si bien la especialización puede proporcionar eficiencia en el proceso, rara vez inspira a los trabajadores.

A su vez, los roles universales proporcionan todo lo que estimula la satisfacción laboral: autonomía, maestría y enfoque. La autonomía radica en que no dependen de nada para alcanzar el éxito. La maestría se refiere a las ventajas competitivas significativas. Y el enfoque se manifiesta en la capacidad de influir en el negocio que crean. Si logramos atraer a las personas hacia su trabajo y tener un gran impacto en la empresa, todo lo demás se alineará.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster