tecnicas ninja
Embed Size (px)
TRANSCRIPT

Algunas Técnicas
Ninja
en el Proceso de Desarrollo de
Software
Carlos García T.

Primer Objetivo
Encontrar al ”Chicho”

Perfil del ”Chicho”
Tiene mucho interés en el desarrollo del proyecto
Tiene autoridad para hacer ajustes en cuestiones de tiempo y presupuesto
No siempre es un usuario final del sistema, o el que más lo va a usar
Suele tener conocimientos generales del dominio del problema

El ”chicho” es un aliado, no un enemigo
De hecho es muy provechoso y muy recomendable hacer que trabaje junto con nosotros
Que sepa lo que estamos haciendo y como lo estamos haciendo

Preceptos básicos de la filosofía Ninja moderna

El ninja trabaja en equipo
El arma secreta es la comunicación frecuente
Escucha, aprende y mejora de los demás elementos de su equipo (feedbak)
No tiene miedo a equivocarse

El proyecto y el código es de todos
No hay de que ”esa parte del sistema no me tocó a mi sino a Donatello...”
”Esto que hizo Miguel Angel, no me gustó nada como quedó, pero mejor asi lo dejo porque no es mi sección...”

No buscamos heroes Solo se trabajan
40 horas a la semana
El cansancio es contraproducente

El ambiente Zen
Tratar de que el equipo tenga un buen ambiente de trabajo
Que cada uno se sienta valorado e importante

Contrata al que mejor escriba

El ninja nunca trabaja solo
Siempre trabaja en parejas (pair programming)
Cada semana cambia de compañero de trabajo
Así los novatos se integran más rápido y todos aprenden de todos

El ninja previene
Antes de escribir el código de un módulo, escribe el código para probar lo que incluso todavía no hace
Esto previene errores y además da claridad sobre lo que se necesita
Estas pruebas son automatizadas

El ninja primero piensa:YAGNI
You Aren't Going to Need It
Siempre implementar cosas cuando realmente se necesitan, no cuando se piense que se necesitarán
Mantener ante todo un diseño simple
Menos es mas, no hay que emocionarse

Refactorizar todo el tiempo
El ninja sabe volver sobre sus pasos
Cuando ya se tiene un modulo funcionando, el ninja siempre se pregunta si existe una mejor manera de hacerlo
No es volver a hacerlo... solo re-pensarlo

Estándares de Codificación
Los elementos del equipo deben usar un mismo estilo de codificación y acordar las reglas que todos seguirán
Lo ideal es que el código sea autodocumentado (self-documented)

Que NO debe faltar en el arsenal de armas
Control de versiones
Un analizador estático
Automatizar la generación de entregables

Se deben tener pequeños objetivos(sprints)
Levanta la moral del equipo
Da sensación de logro
El cliente ve resultados muy pronto

Los ninja juegan Poker
Las estimaciones de tiempo siempre dependen de la experiencia de cada elemento del equipo

Tablero del Sprint

La reunión matutina diaria

A lo largo del sprint

El ninja siempre gana por nockout
Evitar estimaciones parciales en el avance de las tareas, siempre es 0% o 100%

Por último: El ninja siempre está afilando la
katana Siempre lee sobre
nuevas tecnologías
No menosprecia paradigmas ni lenguajes, siempre trata de encontrar la herramienta que mejor se adecúa a cada misión

Preguntas?