310 likes | 431 Views
MÉTODOS Y PRÁCTICAS. Carlos Mario Zapata J. DEFINICIONES. Un método es la composición de un Núcleo y un conjunto de Prácticas para cumplir un propósito específico.
E N D
MÉTODOS Y PRÁCTICAS Carlos Mario Zapata J. Teoría y Métodos de la Ingeniería de Software
DEFINICIONES • Un método es la composición de un Núcleo y un conjunto de Prácticas para cumplir un propósito específico. • Un método de un equipo actúa como una descripción de la forma de trabajo del equipo y provee ayuda y lineamientos al equipo mientras realiza su tarea. • Una práctica es una descripción de como manejar un aspecto específico de un esfuerzo en ingeniería de software. • Una práctica provee una forma sistemática y verificable de tratar un aspecto particular del trabajo que se está haciendo. Tiene una meta clara que se expresa en términos de los resultados que su aplicación logrará. Provee lineamientos para ayudar y guiar a los practicantes en lo que se debe hacer para lograr la meta y también para asegurar que se entiende la meta y para verificar que se está logrando. Teoría y Métodos de la Ingeniería de Software
Trabajo basado en prácticas: Un comienzo novedoso Un nuevoenfoquequeguía y rige el desarrollo de software que: • Le ayuda a proveer un conjunto de prácticas de maneraescalable, atractiva, flexible y fácil de usar. • Asume un enfoquenovedosoparapresentar y entregarrecomendaciones. • Proveeuna forma de trabajoágil, iterativa y livianaparaayudar al inicio del proyecto. • Preserva lo queya se hacebien, mientrasque introduce nuevasprácticasque le ayudan a mejorar. • Habilita la mejora continua y a largo plazo en el rendimiento Las prácticas de la Esenciaconstituyen la forma másinteligente de cambiar la forma de trabajo Teoría y Métodos de la Ingeniería de Software
Cómo lo aplica MunichRE “Paqueteinicial” Conjunto de prácticas Definalascombinacionesfrecuentes PM para iteraciones Esenciales de expe-riencia de usuario Esenciales de modelado Esenciales de casos de uso Esenciales arquitectónicos Adopción de métodocuando se lanza el proyecto Esenciales de compo-nentes Esenciales iterativos Esenciales de equipos Fundamentación 1 2 Forma de trabajo individual del proyecto Los proyectosindividualespuedenagregarprácticasadicionales a su Forma de trabajo Teoría y Métodos de la Ingeniería de Software
Ejemplo: Rule Financial Se ensambla en Se ensambla en Proyecto: rulebook™ - un conjunto flexible de práctica ágiles y lean para procesos livianos, ajustadas a sus necesidades (véase www.rulefinancial.com). Teoría y Métodos de la Ingeniería de Software
El enfoque es práctico • Se usa el núcleo como terreno común • Se usa el núcleo para definir las prácticas • Los métodos son composiciones de prácticas opportunity stakeholders provide helps to address focuses use and consume demand Prácticas softwaresystem set up to address software system requirements support fulfils updates and changes Iteración Caso de uso Componente Scopes and constrains produces Arquitectura Núcleo work team performs and plans applies guides way of working Teoría y Métodos de la Ingeniería de Software
Hay cientos de prácticas en la Industria … Ciclo de vida del proceso unificado Casos de uso para servicios Arquitectura dirigida por modelos Componentes para reutili- zación Componentes para la Red Scrum deScrum Prácticas Técnicas … Esenciales iterativos Esenciales de Scrum Esenciales de casos de uso Historias de usuario Esenciales arquitectó-nicos Esenciales de compo-nentes Desarrollo basado en pruebas Esenciales de asegura-miento de calidad … Esenciales de procesos Modelado ágil Esenciales sobre equi- pos Esenciales mediciones PSP Prácticas sociales y otras transver-sales … OrgProcessImp Cosecha de prácticas Esenciales de UML Equipos distribuidos Equipos virtuales Práctica aceptada Extensión Convenciones: Teoría y Métodos de la Ingeniería de Software
Su forma de trabajo es sólo una colección de prácticas … Ciclo de vida del proceso unificado Casos de uso para servicios Arquitectura dirigida por modelos Componentes para reutili- zación Componentes para la Red Scrum deScrum Prácticas Técnicas … Esenciales iterativos Esenciales de Scrum Esenciales de casos de uso Historias de usuario Esenciales arquitectó-nicos Esenciales de compo-nentes Desarrollo basado en pruebas Esenciales de asegura-miento de calidad … Esenciales de procesos Modelado ágil Esenciales sobre equi- pos Esenciales mediciones PSP Prácticas sociales y otras transver-sales … OrgProcessImp Cosecha de prácticas Esenciales de UML Equipos distribuidos Equipos virtuales Práctica aceptada Extensión Convenciones: Teoría y Métodos de la Ingeniería de Software
Que la gente ajusta para atender sus necesidades Mi enfoque de taller Mis planti- llas de casos de uso Mi guía de estilo de casos de uso Esenciales de casos de uso Mis ejemplos Mis inno- vaciones en casos de uso … y capturar sus experiencias Teoría y Métodos de la Ingeniería de Software
La separación de prácticas tiene muchos beneficios: Se pueden aprender prácticas individualmente Se pueden aplicar prácticas separadamente Se pueden adoptar las prácticas que uno quiera, cuando quiera y de forma personalizada Se pueden mezclar y encontrar prácticas de cualquier fuente Sólo se tendrían que reemplazar las prácticas que no estén funcionando Separación de Prácticas: La clave para la mejora exitosa y duradera del rendimiento Teoría y Métodos de la Ingeniería de Software
Necesitamos la habilidad de compartir prácticas… • Práctica: un enfoque repetitivo para hacer algo con un propósito específico en mente. Cosas para hacer Cosas para producir Compentencias y habilidades Lineamientos y ejemplos Una práctica …y combinarlas para crear una forma de trabajo novedosa. Teoría y Métodos de la Ingeniería de Software
Necesitamos la habilidad de compartir prácticas… • Práctica: un enfoque repetitivo para hacer algo con un propósito específico en mente. Esto tiene que ver con hacer que las prácticas de todos trabajen juntas. No se trata de prácticas nuevas o “mejores” ni de la creación de más y más métodos. Cosas para hacer Cosas para producir Compentencias y habilidades Lineamientos y ejemplos Una práctica …y combinarlas para crear una forma de trabajo novedosa. Teoría y Métodos de la Ingeniería de Software
Una práctica trata un asunto particular provee un conjunto de actividades y productos de trabajo para dar un valor específico a los interesados particulares promueve “agilidad” con el nivel CORRECTO de formalismo provee un pequeño conjunto de lineamientos para satisfacer una necesidad específica Mínima información y documentación: sólo lo necesario se puede presentar como un simple mazo de cartas Iterativo What is a practice? Teoría y Métodos de la Ingeniería de Software
Las prácticas definen las reglas de juegoSe complementan con tácticas y trucos del contexto SUGERENCIAS • Plantillas • Herramientas • Pistas y consejos • Reglas de oro • Combinaciones de roles • Patrones • Elementos del contexto REGLAS • Cosasesencialesparahacer • Cosasesencialesparaproducir • Competenciasesenciales • Comportamientosesenciales Teoría y Métodos de la Ingeniería de Software
Si se captura la esencia, ¡se pueden hacer las cosas como los expertos! Teoría y Métodos de la Ingeniería de Software
Práctica 1 Al igual que la gente, las prácticas necesitan un terreno común para trabajar juntas Terrenocomún Práctica 3 Práctica 2 Práctica 4 Teoría y Métodos de la Ingeniería de Software
La idea clave es la existencia de un núcleo • El núcleoes un pequeñoconjunto de elementostomado de un gran número de métodosexistentes • Contienecasillasvacíasparacosasquetienecada forma de trabajo.Casillaspara • Competencias, comoanálisis, desarrollo, capacidad de prueba • Cosas con quétrabajarcomorequisitos, sistema, equipo • Cosasparahacer, comoimplementar el sistema y probar el sistema • El núcleoesindependiente de lasprácticas y de los métodos Núcleo El núcleo provee el terreno común que permite que las prácticas y la gente se unan Teoría y Métodos de la Ingeniería de Software
La construcción de una forma de trabajo se inicia con el núcleo • Captura las cosas con las que el equipo de desarrollo de software debe lidiar • No todo, sino los elementos comunes a todo • Describe el proceso de desarrollo de software independientemente de las prácticas • Actúa como un marco para la definición y aplicación de prácticas específicas • Le permite usar tantas prácticas como desee • Permite alinear y comparar proyectos • Provee un modelo de referencia para controlar proyectos y alinear sus formas de trabajo Kernel Se capturan los esenciales del desarrollo de software de manera independiente de las prácticas Teoría y Métodos de la Ingeniería de Software
El núcleo reúne todas las prácticas Una “casilla” de práctica en el núcleo común Núcleo Define una pequeña forma de trabajo “vacía” Forma de trabajo Práctica Contiene las especificidades para agregar al núcleo Teoría y Métodos de la Ingeniería de Software
Cambie la forma de comenzar el proyecto cosechando las mejores prácticas de su propio método + Sus propias mejores prácticas Núcleo Teoría y Métodos de la Ingeniería de Software
Cambie la forma de comenzar el proyecto cosechando las mejores prácticas de su propio método + Sus propias mejores prácticas Núcleo que usted puede ajustar para satisfacer necesidades locales Teoría y Métodos de la Ingeniería de Software
Mejore su método agregando otras prácticas ya probadas Casos de uso PLA + + +++ iterativo Arquitectura Componentes Equipo Núcleo Sus propias mejores prácticas Otras prácticas de muchas fuentes Teoría y Métodos de la Ingeniería de Software
Ayude a otros compartiendo sus prácticas y contribuyendo al intercambio de prácticas Se trata de compartir y no de imponer • Siembre el intercambio de prácticas usando las prácticas existentes • Mejore con prácticas locales • Para que el cambio sea sostenible, convierta sus prácticas en formato estándar antes de compartirlas con la comunidad Intercambio de prácticas Proyecto completo No. 1 Librería de prácticas Community • El rigor y el aseguramiento de la calidad requieren la calidad en las buenas prácticas Teoría y Métodos de la Ingeniería de Software
Las prácticas permiten que los proyectos funcionen de la manera que necesitan Proyecto A Iterativo Historias de usuario Cascada Proyecto B Requisitos declarativos Casos de uso Arquitectura Componentes Arquitectura Proyecto C Componentes Scrum La forma de trabajo del equipo se compone de lasprácticasqueseleccionen Teoría y Métodos de la Ingeniería de Software
El núcleo provee un marco de referencia compartido Proyecto A Proyecto B Proyecto C El núcleo le permite a los equipos usar las prácticas que necesitan dentro de un marco de rigor compartido Teoría y Métodos de la Ingeniería de Software
Panorama General Las actualizanmuchos (usualmenteingenieros senior experimentados) y a menudo. Por lo general se almacenan en herramientas locales (Wikis or presentaciones). Tácticas y trucos Se capturancomoconjuntos de prácticas en uso Las actualizanpocos (agentes de cambio o ingenieros de procesos) y frecuentemente. Incluyenprototipos con herramientas locales (Wikis o presentaciones) y se publican paracompartirusandoherramientasespecializadas de “autoría de procesos. Reglas de juego Se capturancomoconjuntos de prácticascomplementarias de acción, ciclo de vida, inspección y soporte Lo actualizanmuypocosocasionalmente. Se publicaparacompartirusandoherramientasespecializadas de “autoría de procesos” El terrenocomún Los conceptosbásicosaplicables a todo y que se capturan en el núcleo Teoría y Métodos de la Ingeniería de Software
SEMAT promueve el ensamblaje de métodos usando prácticas reutilizables El núcleo contiene los elementos esenciales de la ingeniería de software Cosas con las cuales trabajar Teoría y Métodos de la Ingeniería de Software
El núcleo de la Esencia y otras Formas de Trabajo El núcleo trabaja con cualquier método E.g. Scrum, XP, Kanban, DAD, Safe, DSDM, TSP, RUP, Crystal, etc. No prescriptivo y agnóstico del método El núcleo de la Esencia Los fundamentos 10/30/2014 Teoría y Métodos de la Ingeniería de Software 28
Tópicos avanzados ¿Cómo se puede obtener valor agregado? • Apalancandolasprácticas en el núcleo • Apalancandootrasfacetas en el núcleo • Apalancandolasextensiones del núcleo • Extendiendo la definición del núcleoparasatisfacerlasnecesidadesespecíficas de los proyectos Espacios de actividad Competencias Subalfas 10/30/2014 Teoría y Métodos de la Ingeniería de Software 29
Panorama general: núcleo, métodos, prácticas • Control del progreso • Reflexión del equipo • Gestión del riesgo • Dirección de proyectos Método adaptado (compuesto de prácticas) Método adaptado M Prácticas Generalmente aceptadas Núcleo de la Esencia (Los fundamentos) 10/30/2014 Teoría y Métodos de la Ingeniería de Software 30
ENTREGABLE 2 Representación de, al menos, dos prácticas del método seleccionado incluyendo 1. Diagrama de métodos y prácticas 2. Digrama de prácticas, alfas, productos de trabajo y roles 3. Diagrama de prácticas, espacios de actividad, actividades y fases 4. Diagrama de roles, productos de trabajo y competencias 5. Tarjetas de los productos de trabajo 6. Tarjetas de las actividades 7. Tarjetas de las competencias 8. Tarjetas de los patrones Teoría y Métodos de la Ingeniería de Software