Académique Documents
Professionnel Documents
Culture Documents
Introduccin
Usualmente, al escuchar la palabra "metodologa" suena al ya tan famoso concepto de "procesos de desarrollo de software", lo primero que se nos viene a la mente son 3 preguntas fundamentales:
qu es? Para que sirve? debo tomarlo en cuenta?
Qu es?
Es el conjunto de tcnicas y procedimientos que nos permiten conocer los elementos necesarios para definir un proyecto de software; en palabras sencillas es la base para la edificacin de un proyecto de software, la etapa fundamental para lograr los objetivos buscados con dicho proyecto.
Aclaracin
Antes de ir a los conceptos, vale la pena aclarar que implantar un proceso de desarrollo es una labor de mediano a largo plazo, que cuesta tiempo hacer que el equipo involucrado se adapte al proceso pero que es compensado con los resultados obtenidos, es por ello que no tiene sentido ajustarse a un proceso al pie de la letra, sino que hay que adecuarlo a las necesidades de cada empresa.
Cooperativo
clientes y desarrolladores trabajando juntos.
Simple y Directo
el mtodo es fcil de aprender y modificar.
Adaptativo
es posible realizar cambios de ltimo momento.
Scrum
Orgenes:
Jeff Sutherland
Scrums iniciales en Easel Corp en 1993 IDX 500 personas haciendo Scrum
Ken Schwaber
ADM Se presenta Scrum en OOPSLA 96 con Sutherland Autor de tres libros sobre Scrum
Mike Beedle
Patrones Scrum en PLOPD4
vital, aprobados por laFDA Software de control satelital Sitios Web Software para Handheld Telfonos porttiles Aplicaciones de Network switching Aplicaciones de ISV Algunas de las ms grandes aplicaciones en uso
Caractersticas
Equipos auto-organizados El producto avanza en una serie de Sprints" (sprint=carrera corta) de dos semanas a un mes de duracin Los requisitos son capturados como elementos de una lista de Product Backlog" No hay prcticas de ingeniera prescritas Utiliza normas generativas para crear un entorno gil para la entrega de proyectos Uno de los procesos giles
Sprints
En Scrum los proyectos avanzan en una serie de Sprints Anlogo a las iteraciones en XP La duracin tpica es 24 semanas o alo sumo un mes calendario La duracin constante conduce a un mejor ritmo El product es diseado, codificado y testeado durante el Sprint
Scrum Framework
Roles
Reuniones
Artefactos
Product Owner
Define las funcionalidades del producto Decide sobre las fechas y contenidos de los releases Es responsable por la rentabilidad del producto (ROI) Prioriza funcionalidades de acuerdo al valor del mercado/negocio Ajusta funcionalidades y prioridades en cada iteracin si es necesario Acepta o rechaza los resultados del trabajo del equipo
El ScrumMaster
Representa a la gestin del proyecto Responsable de promover los valores y prcticas de Scrum Remueve impedimentos Se asegura de que el equipo es completamente funcional y productivo Permite la estrecha cooperacin en todos los roles y funciones Escudo del equipo de interferencias externas
El Team
Tpicamente de 5 a 9 personas Multi-funcional: Programadores, testers, analistas, diseadores, etc.
Los miembros deben ser full-time Puede haber excepciones (Ej.: Infraestructura, SCM, etc.) Los equipos son auto-organizativos Idealmente, no existen ttulos pero a veces se utilizan de acuerdo a la organizacin Solo puede haber cambio de miembros entre los sprints
Planificacin
Tecnologa Tecnologa
Decidir como alcanzar el objetivo del Sprint (diseo) Crear el Sprint Backlog (tareas) en base a los temas del Product Backlog (user stories / features) Estimar Sprint Backlog en horas
COMO COMO planificador planificador de de vacaciones, vacaciones, YO YO QUIERO QUIERO ver ver fotos fotos de de los los hoteles. hoteles.
Daily Scrum
Parmetros Diaria Dura 15 minutos Parados No para la solucin de problemas Todo el mundo est invitado Slo los miembros del equipo, ScrumMaster y Product Owner, pueden hablar Ayuda a evitar otras reuniones innecesarias
Sprint review
El equipo presenta lo realizado durante el sprint Normalmente adopta la forma de una demo de las nuevas caractersticas o la arquitectura subyacente Informal Regla de 2 hs preparacin No usar diapositivas Todo el equipo participa Se invita a todo el mundo
Sprint retrospective
Peridicamente, se echa un vistazo a lo que funciona y lo que no Normalmente 15 a 30 minutos Se realiza luego de cada sprint Todo el equipo participa ScrumMaster Product owner Equipo Posiblemente clientes y otros
Product Backlog
Los requisitos Una lista de todos los trabajos deseados en el proyecto Idealmente cada tema tiene valor para el usuarios o el cliente Priorizada por el Product Owner Repriorizada al comienzo de cada Sprint
Hacer que la aplicacin se ejecute en SQL Server, adems de Oracle. Servicios Financieros
Soportar ms indicadores tcnicos que la empresa ABC en tiempo real y streaming de datos.
Roles
FDD define tres categoras de roles: Roles claves - Gerente del proyecto - Arquitecto jefe - Gerente de desarrollo - Programador jefe - Propietarios de clases - Experto de dominio
Roles de soporte - Administrador de entrega - Guru de lenguaje - Herramientista (toolsmith) - Administrador del sistema Roles Adicionales - Tester - Escritores de documentos tcnicos
Proceso
FDD consiste en cinco procesos secuenciales durante los cuales se disea y construye el sistema. La parte iterativa soporta desarrollo gil con rpidas adaptaciones a cambios en requerimientos y necesidades del negocio. Cada fase del proceso tiene un criterio de entrada, tareas, pruebas y un criterio de salida.
Proceso
Proceso
Desarrollo de un modelo general: Cuando comienza el desarrollo, los expertos de dominio estn al tanto de la visn, el contexto y los requerimientos del sistema a construir. A esta altura se espera que existan requerimientos tales como casos de uso o especificaciones funcionales. Construccin de la lista de rasgos: Los ensayos, modelos de objeto y documentacin de requerimientos proporcionan la base para construir una amplia lista de rasgos. Estos rasgos son pequeos tems tiles a los ojos del cliente. La lista de rasgos es revisada por los usuarios y patrocinadores para asegurar su validez y exhaustividad, los rasgos que requieran de ms de diez das se descomponen en otros ms pequeos.
Proceso
Planeamiento por rasgos: Incluye la creacin de un plan de alto nivel, en el que los conjuntos de rasgos se ponen en secuencia conforme a su prioridad y dependencia, y se asigna a los programadores jefes. Diseo por rasgos y Construccin por rasgos: Se selecciona un pequeo conjunto de rasgos del conjunto, y los propietarios de clases seleccionan los correspondientes equipos dispuestos por rasgos. Se procede luego iterativamente hasta que se producen los rasgos seleccionados. Una iteracin puede tomar de unos pocos das un mximo de dos semanas. El proceso iterativo incluye inspeccin de diseo, codificacin, pruebas unitarias, integracin e inspeccin de cdigo.
Conclusin
Qu debemos esperar entonces de un proceso de desarrollo? Qu criterios debe cumplir para que aporte algo a la empresa?
Conclusin
Bsicamente el proceso de desarrollo tiene que ayudarnos a escribir software, tiene que poner las reglas necesarias para alcanzar el xito en nuestro proyecto pero dejando la libertad suficiente para no sentirnos agobiados. Esto no nos lo va a ofrecer ningn proceso estndar, de forma que es tarea de cada empresa ( eleccin de acuerdo al proyecto), decidir cual es el mejor modo de llegar a nuestra meta.
Tarea de investigacin y autoestudio Metodologas giles de desarrollo de software Metodologas Crystal Desarrollo de software adaptativo Metodologa de desarrollo de sistemas dinmicos (DSDM)