Tecnicas ninja

Preview:

Citation preview

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?