2. José Luis Lee Rázuri
@JoseLeeRazuri
Ing. Informático
Padre
Gerente
Amante de las TIC
3. Objetivos de la Presentación
• Queremos mostrarles la técnicas modernas de
programación y gestión de proyectos, para esto
hablaremos de:
- Introducción.
- La problemática del Software.
- Metodologías Agiles para gestión de proyectos.
- Nuevas técnicas para desarrollar Software.
8. La problemática del Software.
Buscamos soluciones para mejorar y nos encontramos con:
Información generada por Standish Group en su reporte “Chaos
Report”
http://www.projectsmart.co.uk/docs/chaos-report.pdf
En el 2011: sólo el 34 % de
los proyectos de Desarrollo
de Software fueron
exitosos, el 40%
terminaron fuera de tiempo
y costo y el 26% fallaron.
Y el 64% de la
funcionalidad del SW
nunca se usa.
El 40% de las veces se
estiman mal los proyectos.
http://www.standishgroup.com/
9. Las diez causas principales de los
fracasos en Proyectos de Software
Por orden de importancia, son:
• Escasa participación de los usuarios.
• Requerimientos y especificaciones incompletas.
• Cambios frecuentes en los requerimientos y especificaciones.
• Falta de soporte ejecutivo.
• Incompetencia tecnológica.
• Falta de recursos.
• Expectativas no realistas.
• Objetivos poco claros y procesos de negocio inestables o
pocos maduros.
• Cronogramas irreales.
• Nuevas tecnologías.
Standish Group 2011
10. Los Software no son Tuercas
“Los Software no son Tuercas, no es un Sistema Simple de fabricación, es
UN SISTEMA COMPLEJO (quizás imposible) caracterizar perfectamente a
priori un sistema software”
Requerimientos Estables:
- Material.
- Diámetro.
- Resistencia.
“Los contratos actuales, están bien diseñados para adquirir tuercas, pero no
contratar Servicios de Software”
11. Sistemas Complejos
• Ley de Ziv: Las especificaciones nunca se entenderán
completamente.
• Ley de Humphrey: El usuario no sabrá lo que quiere
hasta que el sistema esté en producción.
• Lema de Wegner: un sistema interactivo nunca puede
ser totalmente especificado ni totalmente testado.
• Lema de Langdon: el software evoluciona más
rápidamente conforme nos acercamos a la región del
caos.
• “Andar sobre las aguas y desarrollar software contra
especificaciones escritas es fácil si ambas están
congeladas” – Ley de Berard
12. Contratos Convencionales
• No son flexible a cambios.
• Todo el riesgo al proveedor.
• Proveedor excede de
funcionalidad “por si las moscas”.
• Se asume conocimiento perfecto
del sistema.
• no suele incluir tolerancias, el
cliente es el que estima.
• Gran tiempo gastado en la
propuesta.
• Favorece proveedor “optimista”
(¿desesperado?) – crea el juego
de oferta baja / coste por
cambios.
13. Contratos Convencionales
• Opciones para que los proveedores no pierdan dinero
“Nadie está en esto para perder dinero (al menos no por
mucho tiempo)”.
• A ) Acolchonar los Desarrollos.
• B) Cobrar caro por cualquier
Cambio.
• C) Llorarle al cliente.
14. Metodologías Agiles para gestión de
proyectos
Valorar:
• A los individuos y su
interacción, por encima de los
procesos y las herramientas.
• El software que funciona, por
encima de la documentación
exhaustiva.
• La colaboración con el
cliente, por encima de la
negociación contractual.
• La respuesta al cambio, por
encima del seguimiento de un
plan.
16. SCRUM
• Paso 1: Definir Historias con el usuario (Product
BackLog).
• Paso 1.1: Priorizar las Historias con el usuario.
• Paso 1.2: El equipo de desarrollo estima las Historias (Se apoya
en el usuario y Product Owner (Analista)).
17. SCRUM
• Paso 2: Planificación de Spring.
• Paso 2.1: Definir el tiempo para entregar los release (Ej: cada 3
semanas)
18. SCRUM
• Paso 3: Desarrollo del sprint.
• Paso 3.1: Reuniones diarias.
• Paso 3.2: Actualizar el avance del proyecto en el tablón de tareas.
21. Nuestra forma de estimación
• Planning poker para estimación
del Desarrollo.
Luego ajuste con Ratios
• 10 % Planificación.
• 15 % Análisis.
• 60 % Desarrollo (incluye las Pruebas Unitarias).
• 10% Pruebas de Sistema y Funcionales.
• 5% Implantación, Capacitación.
22. Nuevas técnicas para desarrollar Software
usadas en JASoft Solutions.
Técnica Usadas Ventaja
SCRUM Ser Iterativo e Incremental (entregas
tempranas).
Testing Unit (Pruebas Unitarias) Pruebas en fase de Desarrollo
TDD (Desarrollo dirigido por pruebas) Incrementar la cobertura de pruebas
Selenium Test Automatización de Pruebas del
Sistema.
Subversión (Control de Versiones) Permite el control de las versiones y el
desarrollo colaborativo
Mantis Bug Tracker Gestión de Errores.
23. • Framework para PHP:
• Orientado al Mantenimiento.
• Orientado a Objetos.
• Notificación de Errores.
• Interfaces HTML Externas con Smarty.
• Mensajes Configurables.
• Uso de Base de Datos Relacional (Mysql, Mssql
y Pgsql).
• Compatible con BIRT.
• Configuración Externa.
• Patrón de diseño MVC.
25. Se Ágil, Gracias.
http://agiles2013.agiles.org/
• ¿Estas interesado en Agile? ¿Quieres conocer más sobre
Agile? ¿Te gustaría ser parte de una experiencia Ágil con
personalidades de renombre a nivel internacional?
• Entonces, ¡no puedes perderte la 6ta Jornada
Latinoamericana de Metodologías Ágiles, Agiles 2013!
• El evento se va a llevar a cabo el 10, 11 y 12 de
Octubre en la Cámara de Comercio de Lima.