Atlasingeniería

Comunicación y liderazgo técnicoJuniorTema 4Junior

Llevar una tarea hasta producción

La diferencia más visible entre alguien que recién empieza y alguien con un par de años no es la calidad del código: es dónde considera que termina su trabajo. «Ya hice mi parte» y «está funcionando para los usuarios» son dos definiciones muy distintas de terminado.

Dos personas hacen la misma tarea. La primera escribe el código, abre el cambio para revisión y pasa a lo siguiente. La segunda hace lo mismo, y además verifica en producción que el caso real funciona, revisa que no haya empezado a aparecer un error nuevo en los registros y le avisa a quien lo pidió que ya está disponible.

El código puede ser idéntico. La segunda persona tiene ownership y la primera no, y la diferencia se nota en la cantidad de cosas que quedan a medias en un equipo.

Dónde termina una tarea

Definición de terminadoQué queda sin cubrir
«Escribí el código»Que funcione integrado, que alguien lo revise, que llegue a los usuarios
«Pasaron los tests»Que los tests cubran el caso real; el comportamiento con datos de producción
«Está aprobado»Que se haya desplegado y que efectivamente funcione ahí
«Está en producción»Que el caso de uso real funcione y que quien lo pidió lo sepa
«Funciona para los usuarios y quien lo pidió lo sabe»Nada: eso es terminado
Cada fila es una definición que se usa en equipos reales. Sólo la última no deja trabajo escondido.

Antes de decir que está listo

La lista mínima

  1. Probaste el caso real, no sólo el feliz. Qué pasa si el campo viene vacío, si el usuario no tiene permisos, si el servicio externo tarda.
  2. Miraste tu propio cambio antes de que lo mire otro. Leer el diff completo antes de pedir revisión encuentra la mitad de los comentarios que ibas a recibir: código de depuración olvidado, un archivo que no correspondía, un nombre que quedó mal.
  3. El cambio se puede entender sin vos. Una descripción que diga qué problema resuelve y cómo probarlo. Quien revisa no tiene el contexto que tenés vos.
  4. Sabés cómo verificarlo en producción. Qué vas a mirar para saber que funcionó: una pantalla, un registro, una métrica.
  5. Sabés cómo volver atrás. Si rompe, qué se hace. Aunque sea «se revierte el despliegue».

Antes de seguir, predecí

Tu cambio está aprobado y desplegado. ¿Terminaste?

Después de desplegar

Los primeros minutos después de que algo sale son los más informativos del proceso entero, y casi nadie los usa:

  • Probá el caso real vos mismo, con datos reales si podés, o con una cuenta de prueba.
  • Mirá los registros de errores unos minutos. Un error nuevo que aparece justo ahora casi siempre es tuyo.
  • Avisá a quien lo pidió, con una frase de qué cambió y cómo verlo. Es lo que hace que la próxima vez te consulten a vos.
  • Si algo está raro, decilo antes de que pregunten. Avisar vos de un problema propio vale mucho más que ser descubierto.

Una ayuda que no parece de comunicación

Buena parte de la dificultad de llevar algo hasta producción se resuelve antes, eligiendo el tamaño del cambio:

Cambio de tres díasCambio de medio día
RevisiónNadie quiere empezarla; queda dos días esperandoSe revisa en la hora
Riesgo al desplegarSi algo falla, hay que buscar entre muchos cambiosSi algo falla, se sabe qué fue
Volver atrásSe pierde todo el trabajo juntoSe revierte una pieza chica
Sensación de avanceTres días sin cerrar nadaAlgo terminado cada día
Partir el trabajo no es sólo una técnica de ingeniería: es lo que hace posible terminar cosas de verdad.

Dónde termina la tarea

Escenario · 1 decisión como mínimo

El cambio está aprobado y desplegado. ¿Terminaste?

Arreglaste un error por el que los pedidos de más de diez ítems no se podían confirmar. El cambio está aprobado, mezclado y desplegado hace veinte minutos. ¿Qué hacés?

El código estaba listo en el primer paso. Todo lo demás es lo que separa una tarea entregada de una terminada.

Cierre

Autoevaluación

¿Lo entendiste?

¿Cuándo termina realmente una tarea?
¿Qué conviene hacer antes de pedir revisión de un cambio?
¿Qué es lo más útil de mirar los registros de errores justo después de desplegar?
Rompiste producción con un cambio tuyo. ¿Qué se espera de vos?