¿Qué es realmente un "equipo multifuncional"? [cerrado]

18

El significado general de "equipo multifuncional" es un equipo que combina especialistas en diferentes campos que se requieren para alcanzar la meta.

Pero parece que en la funcionalidad cruzada ágil significa no solo combinar diferentes especialistas, sino hacer que se mezclen. Henrik Kniberg define el equipo interfuncional de esta manera: " Multifuncional solo significa que el equipo en su conjunto tiene todas las habilidades necesarias para construir el producto, y que cada miembro del equipo está dispuesto a hacer algo más que lo suyo".

¿Pero dónde se dibuja la línea? ¿Es normal pedir a los desarrolladores que se conviertan en evaluadores para una iteración si es necesario?

SiberianGuy
fuente
Es común que cada desarrollador esté probando su código. Por ejemplo, el equipo de Scrum no debería tener especializaciones: todos deberían poder escribir y probar el código. La razón es que al comienzo de la iteración (sprint) no hay nada que probar, por lo que el probador puro no tiene nada que hacer.
Ladislav Mrnka
2
@LadislavMrnka ¡Funcionalidad cruzada no significa que aún no debas tener especialistas!
Michael
@Michael: Sí, puedes tener especialistas, pero deberían ser interfuncionales = también deberían poder realizar otras tareas.
Ladislav Mrnka
Ser especialista no significa saber una cosa a expensas de todas las demás.
JeffO
3
¿Por qué es tan frecuente ver hablar de "los programadores deberían poder probar" pero nunca "los probadores deberían poder programar"?
Steve Folly

Respuestas:

11

Mi opinión es que un equipo multifuncional es un equipo que incluye personas de las diferentes funciones de una empresa: ingeniería, TI, redacción técnica, marketing, finanzas, legal, ventas, recursos humanos, operaciones, calidad y ejecutivo.

En las empresas más grandes, estas "funciones" se colocan en silos (líneas de gestión), pero para hacer las cosas generalmente se necesita el tiempo de alguien de todas ellas.

Si está haciendo TDD o algo así, sí, es perfectamente normal.

Sin embargo, en general, la responsabilidad de firmar el trabajo del desarrollador no debe estar en manos de esos mismos desarrolladores.

Peter K.
fuente
2
Esto es exactamente lo que no es la funcionalidad cruzada en metodologías ágiles como Scrum.
Ladislav Mrnka
1
@Ladislav Mrnka: La pregunta no dejaba claro que esto era específico de Agile. En metodologías ágiles, sigo pensando que está en pie. En cualquier metodología, a veces necesita hacer algo fuera de su área de especialización ("función") para hacer el trabajo. C'est la vie, c'est la guerre!
Peter K.
¿Por qué "la responsabilidad de firmar el trabajo del desarrollador no debería estar en manos de esos mismos desarrolladores"? No si quieres disminuir el tiempo del ciclo.
Todd Owen
@ToddOwen Y disminuir la calidad del software.
Peter K.
@Downvoter: ¿Algún comentario sobre por qué no estás de acuerdo? :-)
Peter K.
7

Un equipo multifuncional es aquel en el que expertos funcionales de diferentes dominios se unen para definir qué construir y evaluar si lo que se está construyendo es útil. En un entorno ágil, estas evaluaciones sucederán a menudo.

Sin embargo, los expertos en el dominio determinarán cómo hacer su parte particular de un proyecto . Los desarrolladores de software desarrollarán software. Los probadores probarán. El personal de operaciones ejecutará el software, etc.

Tener las opiniones sobre desarrollo, pruebas y operaciones es extremadamente útil para definir un buen producto, y ahí es donde radica el valor de los equipos multifuncionales.

Jay Godse
fuente
No creo que el equipo defina qué construir, sino cómo construirlo. El dueño del producto decide qué. También creo que los miembros del equipo no deberían limitar sus actividades a un dominio en el que estén especializados. La idea es hacer las tareas que deben hacerse para alcanzar el objetivo del equipo, crear un producto de calidad de producción.
Kwebble
4

Un buen equipo interfuncional tiene y necesita personas que son 'un experto en todos los oficios' pero también un maestro de algunos . Usualmente uno o dos.

Por ejemplo, en los que he trabajado. Me especializo en C ++ y un par de lenguajes web, pero sé aproximadamente un millón. Soy fluido con la edición de video y los medios 3D y ese tipo de cosas aparte, además de la gestión empresarial y de proyectos. Por lo tanto, en este equipo bastante pequeño que asume grandes proyectos, haría algo de codificación hardcore la mayor parte del día y pasaría parte de él haciendo un trabajo duro en el sitio y preparando diferentes medios.

No muchos proyectos usan todas mis habilidades, pero para confiar en múltiples, creo que es una 'funcionalidad cruzada'. Algunas veces es un diseño realmente bueno y eficiente, otras veces no tanto.

Gracias a Dios por cuando no tengo que ser desarrollador / administrador de red ... eso no es divertido. Estas pequeñas empresas en mi área ... están locas. Quién confía su red a los programadores, sheesh. Lo último que desea es verme intentar "depurar" su tabla de enrutamiento: P

Garet Claborn
fuente
4

En mi opinión, un "equipo multifuncional" es más un grupo de generalistas que se unen para hacer el trabajo. La ventaja está en la versatilidad de manejar diferentes tipos de tareas, ya que no existe el cuello de botella que sucedería en un grupo de especialistas donde algunas personas solo pueden asumir algunas tareas.

Sí, es normal que los desarrolladores se conviertan en probadores si es necesario realizar el trabajo para una iteración.


La funcionalidad cruzada puede caer en ese territorio donde es una palabra de moda que puede tener varios significados dependiendo de la empresa. Algunos pueden tomarlo como el nivel más alto, donde un desarrollador puede ser cualquier cosa, desde un Gopher hasta un CEO temporal y otros pueden verlo mucho más especializado para que se utilicen diferentes tipos de desarrolladores. Un desarrollador puede tener que ser un analista de negocios, administrador de sistemas o probador algunas veces. Recuerdo hace unos años, cuando acababa de comenzar un trabajo y otro desarrollador y estaba probando una versión como una de nuestras primeras tareas, ya que había una escasez de probadores en ese momento para probar adecuadamente la versión.

JB King
fuente
1
No creo que los desarrolladores que sean probadores se ajusten a la definición multifuncional. Eso parece más un escenario de tipo de cambio de oficio donde los desarrolladores también prueban, reciben llamadas de ventas, salen y compran café para reabastecer la oficina, etc., lo cual puede ser típico en una startup. Un escenario interfuncional parece más una situación en la que, por ejemplo, usted podría ser un desarrollador y yo podría estar en marketing, pero estamos trabajando juntos como un equipo para construir y comercializar el producto.
jmort253
2

Un equipo multifuncional no se trata solo de áreas de especialización, sino también de actitud para hacer las cosas. Los miembros dan un paso al frente y asumen las tareas en cuestión. No escuchas, "Ese no es mi trabajo".

Las restricciones en un proyecto no siempre son técnicas. A veces no tiene el lujo de contratar a un experto en cada tarea y solo requiere que todos trabajen en su área preferida.

Nunca querrás alejar a los desarrolladores de la codificación, pero en algunos equipos no se puede evitar. Lo normal es relativo.

JeffO
fuente