Author
carlos-garcia
View
709
Download
17
Embed Size (px)
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?