Introducir "20% de tiempo" en un lugar de trabajo [cerrado]

30

20% de tiempo es la cultura de un empleador, lo que permite que sus empleados pasen el 20% de su tiempo trabajando en proyectos que les parezcan interesantes: puede ser inventar una nueva aplicación o mejorar un proceso existente, etc. Algunas personas pueden conocer esto como mofeta Sin embargo, ese término puede no significar nada (o algo completamente diferente) para usted.

Hay muchos casos documentados de excelentes productos que nacen del 20% / trabajo de mofeta en una empresa. Parece una situación de ganar / ganar; la empresa potencialmente puede obtener un gran producto o aplicación nueva, y el desarrollador tiene la oportunidad de flexionar sus músculos creativos e innovar.

Intenté en numerosas ocasiones introducir alguna forma de 20% / Skunk trabajando en mi empleador anterior sin éxito.

¿Cómo puedo justificarlo mejor ante la gerencia? ¿Cuál es la forma "correcta" de abordar este tipo de arreglo de trabajo?

dannywartnaby
fuente
11
¿Trabajo de zorrillo? ¿Es aquí donde todos fuman cannabis fuerte y escriben código funky real?
Dan Diplo
@Dan theregister.co.uk/1999/10/27/what_the_hell ;) Es un término utilizado para describir el "trabajo no planificado, iniciado por el desarrollador" en una empresa. Típicamente a tiempo parcial. Algunas compañías permiten que su personal pase un porcentaje de su tiempo trabajando en lo que quieran, a veces ese trabajo se convierte en trabajo que la compañía puede usar, o en un producto para lanzar.
dannywartnaby
2
@danny Así no entiendo el término: estás describiendo el "20% de tiempo" de Google. Dudo mucho que Lockheed's Skunk Works haga algo no planeado. Más bien, es "un grupo dentro de una organización con un alto grado de autonomía y sin obstáculos de la burocracia, encargado de trabajar en proyectos avanzados o secretos". (Cita de la página de Skunk Works de WP)
Frank Shearar
1
@SteveBennett: el opuesto lógico extremo del 20% de tiempo es el 100% de utilización, trabajando en silos funcionales, alto grado de especialización, contabilizando el tiempo dedicado a cada función, y mucho, mucho y mucho desperdicio.
azheglov
1
Esta es más una pregunta para el lugar de trabajo, pero ya se ha formulado allí - workplace.stackexchange.com/questions/468/…
ChrisF

Respuestas:

45

La razón principal del 20% de tiempo es mantener la utilización de la capacidad al 80% en lugar de al 100%.

Puede pensar en una organización de desarrollo de software como un sistema que convierte las solicitudes de características en características desarrolladas. Puede modelar su comportamiento utilizando la teoría de colas .

TEORÍA

Si las solicitudes llegan más rápido de lo que el sistema puede atenderlas, se ponen en cola. Cuando las llegadas son más lentas, el tamaño de la cola disminuye. Debido a que los procesos de llegada y servicio son aleatorios, el tamaño de la cola cambia aleatoriamente con el tiempo.

Los matemáticamente inclinados pueden preguntar sobre esta "aleatoriedad": debe haber alguna distribución de probabilidad, entonces, ¿cuál será el tamaño de la cola en promedio? La matemática (teoría de colas) tiene una respuesta a eso: si los procesos de llegada y de servicio son Markov, entonces N = rho ^ 2 / (1-rho).

(Donde rho es el coeficiente de utilización igual a la relación de servicio y tasas de llegada. Si los procesos no son de Markov, la matemática es más complicada, pero no cambia las conclusiones).

Si traza esta función, puede ver que la longitud promedio de la cola permanece baja mientras la utilización es de hasta 0.8 , luego aumenta bruscamente y llega al infinito. Puede comprender esto intuitivamente pensando en la CPU de su computadora: cuando su utilización se acerca al 100%, la computadora deja de responder.

PRÁCTICA

La economía del desarrollo de software es tal que las compañías de software incurren en grandes costos cuando sus colas están en estados de alta cola. Esto incluye oportunidades de mercado perdidas, productos obsoletos, proyectos atrasados ​​y desperdicio causado por las características del edificio en previsión de la demanda.

El 20% del tiempo es, por lo tanto, la respuesta científica al problema de optimizar los resultados económicos: evite estados de alta cola evitando los índices de utilización que los causan. Es esencialmente la holgura lo que mantiene al sistema receptivo.

Varias conclusiones prácticas siguen inmediatamente:

  • si está considerando un 20% de tiempo y está haciendo una contabilidad de costos (el tiempo de los desarrolladores cuesta X, pero / y la empresa puede / no puede permitírselo), lo está haciendo mal.
  • si está asignando un 20% a un viernes cada semana, lo está haciendo mal
  • si está configurando un sistema de envío / revisión / aprobación de propuestas de proyectos del 20%, lo está haciendo mal
  • si estás completando hojas de tiempo, lo estás haciendo mal
  • Si utiliza la innovación como motivador durante un 20% de tiempo, lo está haciendo mal. Si bien los nuevos productos han salido del 20% de los proyectos, no eran el punto. Si su empresa no puede innovar durante sus horas centrales, ¡eso es un problema!
  • El 20% del tiempo no se trata de creatividad. No digas que liberarás tu creatividad con un 20% de tiempo, pregunta por qué no eres lo suficientemente creativo durante tus horas centrales.

RESPUESTAS A PREGUNTAS EN LOS COMENTARIOS

Dan , entendiste bien y describiste con precisión el error cometido por muchos. No puede elegir su porcentaje de utilización, porque es una variable de salida. Es una relación de características de dos procesos, por lo que es lo que es porque los procesos son como son. Una organización tiene influencia sobre ambos procesos; la capacidad y la demanda de correspondencia es uno de los problemas difíciles que aborda el cuerpo de conocimiento de desarrollo de software lean. La utilización es uno de los indicadores de qué tan bien se resolvió este problema en una organización. La holgura emerge a medida que avanza su iniciativa Lean y elimina el desperdicio del flujo de valor. Pero si ordena un 20% de tiempo, terminará en la misma trampa de utilización con menos capacidad disponible.

Kim , todavía es parcialmente una cuestión de cultura. La referencia cultural más cercana que se me ocurre es el nivel sinérgico del llamado modelo Marshall de cambio organizacional. Emerge al final de las transformaciones lean exitosas o está presente en organizaciones construidas Lean desde el principio. ( Aquí hay un enlace al documento técnico de Bob Marshall (PDF)) .

Referencias

La lógica anterior está bien respaldada en la literatura de ingeniería de software. Mary y Tom Poppendieck lo insinuaron en su libro 2006 Implementing Lean Software Development . Donald Reinertsen en su libro de 2009 Principios del flujo de desarrollo de productos (Capítulo 3) brinda un tratamiento exhaustivo de este tema, con fórmulas y gráficos.

azheglov
fuente
Woah, buena respuesta. Nunca lo había considerado, siempre lo vi como algo cultural. +1
Kim Burgess
MUY interesante ... Sin embargo, una cosa que no entiendo: por qué la cola se mantiene pequeña hasta un 80% es porque hay capacidad libre hasta ese punto. Si se exige que el 20% de su capacidad se llene con elementos que no están en la cola, entonces ha reducido su capacidad al 80%, y el 80% es su nuevo 100%. ¿Correcto?
Dan Ray
@KimBurgess: Agregué un comentario a tu comentario a las preguntas y respuestas al final de la respuesta.
azheglov
@DanRay: ¡Tienes razón! Agregué preguntas y respuestas al final de la respuesta.
azheglov
3
Desearía poder votar diez veces.
Daniel Daranas
12

Catorce meses después de escribir esta respuesta, se me ocurrió una mucho mejor .

No he trabajado en un lugar donde tales trabajos hayan sido reconocidos oficialmente. Pero de mis conversaciones e intentos de aprender sobre esta práctica, encontré esto, bueno, principalmente lo que no es el "20% de tiempo":

  • de hecho es una cultura y no una política
  • no puede ser decretado por la alta gerencia
  • no puede ser instituido por un comité de desarrolladores
  • no son 32 horas en esto y 8 horas en eso
azheglov
fuente
Gracias por su respuesta. Supongo que tiene que ser una cultura: no se puede obligar al personal a inventar cosas. También estuve de acuerdo en que no puede ser instituido por un comité de desarrolladores; mis experiencias ciertamente se alinean con eso, así que supongo que la pregunta es de dónde viene esta cultura. Atlassian probó esto, por lo que debe haber sido una decisión de gestión. ¿Crees que esto es algo que solo puede funcionar si está en el corazón de la cultura de una empresa desde su inicio?
dannywartnaby
En el caso de Atlassian, la decisión vino de arriba, pero supongo que tenían el tipo correcto de empleados, los desarrolladores que estaban listos para ello. Aún así, esta publicación de blog: blogs.atlassian.com/developer/2009/02/… informa algunos problemas con su implementación y, aunque dijeron que continuarían su experimento, no han actualizado al público en más de un año y medio. Me mantengo atento.
azheglov
6

" Skunkworks " no es lo mismo que 20% de tiempo. 20% de tiempo es como usted dijo: tiempo en que el desarrollador elige por sí mismo en qué trabajar Skunkworks es totalmente diferente. Un proyecto de Skunkworks es un proyecto de alto valor y alto costo en el que trabaja un equipo (a menudo un equipo astuto de gurús) que no se informa a la alta gerencia, y el equipo decide por sí mismo cómo debe proceder el proyecto sin la dirección de la gerencia . Estos proyectos a menudo están motivados por una necesidad táctica o comercial de hacer algo, pero no hay espacio en el presupuesto para ello. Si hay que hacer algo , se hace: se condenan los presupuestos.

Gestioné un equipo de desarrollo donde implementé el 20% del tiempo. O lo intenté, de todos modos. Tenía la aprobación de mis superiores, así que eso no fue un problema. El problema era que el equipo era demasiado pequeño y especializado. Cada vez que surgían problemas que necesitaban una intervención inmediata, el 20% del tiempo se reducía. Esto terminó sucediendo muy a menudo.

También descubrí que algunos de mis desarrolladores encontraron mi falta de dirección inquietante. Aunque dije "trabaja en lo que quieras, siempre y cuando esté relacionado con la programación", todavía tuvieron dificultades para aceptar la parte de "cualquier cosa". Pensaron que algunos proyectos serían mejores que otros, por lo que inevitablemente trabajaron en solicitudes de implementación de bajo nivel en el producto principal, cosas así. Quería que se ramificaran y crecieran, pero en su lugar profundizaron en su experiencia principal.

Lo volvería a hacer, pero prohibiría expresamente trabajar en el producto principal y podría comenzar con algunas ideas para elegir para comenzar.

John Dibling
fuente
1
¿Por qué era un problema que estuvieran cavando más en su experiencia principal? Parece que estaban felices de implementar cosas que (presumiblemente) debían hacerse, pero no fue así. No a todos les apasionará probar cosas nuevas e innovadoras todo el tiempo, y creo que sería un error forzar esa actitud.
Matt Olenik
No diría que fue un problema , exactamente. Simplemente creo que trabajaron en el producto porque eran reticentes a elegir algo fuera de los límites. Esto se debió en parte a que no expliqué adecuadamente que el dominio del problema elegible lo era todo.
John Dibling
Realmente útil respuesta John, gracias. Es interesante que descubras que la falta de dirección y la relativa libertad para inventar el trabajo fue un factor que contribuyó al 20% de tiempo que no funciona para algunos desarrolladores, ya que es el núcleo del concepto. Supongo que algunos desarrolladores solo necesitan un objetivo claro para obtener lo mejor de ellos. Supongo que la cultura podría ser "dedicar el 20% de tu tiempo a crear algo, pero si no puedes, está bien, quizás aproveches el tiempo para hacer algo mejor, no tiene que ser tu proyecto actual" ...
dannywartnaby
Eso es extraño, me encontré por primera vez con el término "obras de zorrillo" en un libro que describe un valor alto pero bajo que comenzó como un proyecto secreto para un desarrollador y luego cambió la dirección de la organización por completo.
Spoike
4

Estoy trabajando para una startup que ha implementado la política del 20%. Este es mi primer empleador en hacer esto, y cuando lo mencionó en la entrevista de trabajo, me sorprendió mucho, ya que la mayoría de los otros empleadores intentaban no perder una sola hora.

Me uní a la startup cuando se formó, y durante casi un año fui el único desarrollador. Pasé mi 20% básicamente con un par de cosas:

  • Informar / corregir errores en proyectos aleatorios de código abierto : esto puede ser tan pequeño como bifurcar un proyecto interesante en Github y corregir algunos errores tipográficos en los documentos.
  • Escribir "cosas" de código abierto : cosas como desafíos de programación, solo por diversión.
  • Ir a conferencias y sprints : de vez en cuando iba a un sprint donde puedo trabajar en proyectos (algunos de los cuales podrían ser utilizados por la aplicación principal, otros no) y ganar algo de experiencia. Hay algunas bibliotecas que son utilizadas por nuestra aplicación y por aplicaciones desarrolladas por otras compañías que envían desarrolladores a conferencias, por lo que puede verse como un beneficio directo para nuestra compañía.
  • Aprendiendo nuevas tecnologías : así es como aprendí Go , a pesar de que no lo usamos en la empresa. Esto es especialmente alentado por mi empleador. Últimamente he estado siguiendo algunas de las clases en línea gratuitas de Stanford.

Los tiempos no se miden con precisión, definitivamente no son 32 + 8 horas, a veces hay cosas urgentes que hacer cuando simplemente no hay tiempo suficiente para cortar ese 20%, otras veces tengo más tiempo libre.

Estoy trabajando de forma remota, y utilizamos el chat Campfire de 37signal para comunicarnos y rastrear la presencia del otro, y estas horas se registran como horas de "trabajo", estoy conectado al chat y disponible para los compañeros de trabajo, aunque haciendo Está claro que no estoy trabajando en nuestro proyecto en este momento.

Atila O.
fuente
3

Desde mi pequeña experiencia, muchos de nuestros proyectos realmente comenzaron de esta manera. Teníamos tiempo libre y ancho de banda para asumir nuevos proyectos, nos reunimos y se nos ocurrieron posibles ideas interesantes para nuestro departamento. En nuestro tiempo libre desarrollamos un prototipo y, una vez que estaba bastante pulido, se presentaba a un nivel superior y generalmente ven el beneficio.

Me parece que el nivel superior sabe lo que quieren si lo ven, pero no saben que lo necesitan / lo quieren hasta que lo ven. La creación de prototipos nos ha permitido crear nuestros propios proyectos, proponerlos y luego, una vez aprobados, desviarles más tiempo para completarlos.

Chris
fuente
Creo que eso es cierto para la mayoría de las organizaciones: ciertamente he experimentado en el pasado que mostrar cosas interesantes a la gerencia / marketing abre ciertas oportunidades y crea nuevos proyectos, sin embargo, cualquier intento y hacer que esta vez esté 'oficialmente' disponible para la búsqueda de nuevos y futuros las ideas de pensamiento caen muy planas, muy rápidamente. Usted mencionó "tiempo libre": ¿es este tiempo fuera de su horario laboral o dentro de nosotros? Además, ¿puedo preguntar qué tan grande es su departamento? (¿cuántos desarrolladores y cuántos se involucran con esto?)
dannywartnaby
Estos proyectos generalmente se inician entre proyectos fletados. Nuestro equipo es un equipo pequeño (3-7 desarrolladores). Y depende del proyecto quién se involucra en él. A veces hago estas cosas en casa por diversión si quiero aprender una nueva tecnología, otras veces si es algo que puedo hacer un prototipo bastante rápido sin resolver la mayoría de los detalles, haré exactamente eso.
Chris