desarrollo de software por

25
@JoseLeeRazuri

Upload: jose-luis-lee-razuri

Post on 04-Aug-2015

174 views

Category:

Education


0 download

TRANSCRIPT

@JoseLeeRazuri

José Luis Lee Rázuri@JoseLeeRazuriIng. InformáticoPadreGerenteAmante de las TIC

Objetivos de la Presentación• Queremos mostrarles la técnicas modernas de

programación y gestión de proyectos, para estohablaremos de:

- Introducción.- La problemática del Software.- Metodologías Agiles para gestión de proyectos.- Nuevas técnicas para desarrollar Software.

Introducción

2010

2011

2012

2013

Somos una empresa joven en proceso de mejora continúa(Filosofía Kaizen , mejora continúa hasta la calidad total).

www.jasoftsolutions.com

App Office

People

Tecnologías

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 % delos proyectos de Desarrollode Software fueronexitosos, el 40%terminaron fuera de tiempoy costo y el 26% fallaron.

Y el 64% de lafuncionalidad del SWnunca se usa.

El 40% de las veces seestiman mal los proyectos.

http://www.standishgroup.com/

Las diez causas principales de los fracasos en Proyectos de SoftwarePor 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

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”

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

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.

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.

Metodologías Agiles para gestión de proyectos

Valorar:

• A los individuos y suinteracción , por encima de losprocesos y las herramientas.

• El software que funciona , porencima de la documentaciónexhaustiva.

• La colaboración con elcliente , por encima de lanegociación contractual.

• La respuesta al cambio , porencima del seguimiento de unplan.

Metodologías Agiles

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)).

SCRUM• Paso 2: Planificación de Spring.

• Paso 2.1: Definir el tiempo para entregar los release (Ej: cada 3 semanas)

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.

SCRUM

• Paso 4: Entregar el sprint.• Paso 5: Retrospectivas.

Nuestros Equipos Scrum

Equipo Técnico

ProductOwner

ScrumMaster

Gerente de Proyectos

Líder Técnico

4 Programadores

Diseñadores

Analista Tester

Nuestra forma de estimación

• Planning poker para estimacióndel 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.

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.

• 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.

Vayamos al código

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 .