métodos y prácticas

Download Report

Transcript métodos y prácticas

MÉTODOS Y PRÁCTICAS
Carlos Mario Zapata J.
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
1
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.
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
2
Trabajo basado en prácticas:
Un comienzo novedoso
Un nuevo enfoque que guía y rige el desarrollo de software que:
• Le ayuda a proveer un conjunto de prácticas de manera escalable,
atractiva, flexible y fácil de usar.
• Asume un enfoque novedoso para presentar y entregar
recomendaciones.
• Provee una forma de trabajo ágil, iterativa y liviana para ayudar al
inicio del proyecto.
• Preserva lo que ya se hace bien, mientras que introduce nuevas
prácticas que le ayudan a mejorar.
• Habilita la mejora continua y a largo plazo en el rendimiento
Las prácticas de la Esencia constituyen la forma más inteligente
de cambiar la forma de trabajo
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
3
Cómo lo aplica MunichRE
Defina las combinaciones
frecuentes
Esenciales Esenciales
Esenciales
PM para
de casos de arquitectóni
iterativos
iteraciones
uso
cos
Esenciales
Fundamenta
de compoción
nentes
Esenciales
de equipos
Esenciales
de expeEsenciales
riencia de de modelado
usuario
Adopción de método cuando
se lanza el proyecto
1
2
Los proyectos
individuales
pueden agregar
prácticas
adicionales a su
Forma de trabajo
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
4
Ejemplo: Rule Financial
Proyecto: rulebook™
- un conjunto flexible de práctica ágiles y lean para procesos livianos,
ajustadas a sus necesidades (véase www.rulefinancial.com).
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
5
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
Prácticas
Arquitectura
Iteración
Caso de Componente
uso
Núcleo
opportunity
stakeholders
provide
use and consume
support
set up to address
focuses
software
software
system
system
requirements
fulfils
produces
Scopes and constrains
work
team
performs and plans
way of working
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
6
Técnicas
Ciclo de vida
del proceso
unificado
Esenciales
iterativos
y otras transversales
Prácticas sociales
Prácticas
Hay cientos de prácticas en la Industria
4/13/2015
Casos de
uso para
servicios
Scrum de
Scrum
Esenciales
de Scrum
Esenciales
de casos
de uso
Esenciales
de asegura- Esenciales
miento de de procesos
calidad
Cosecha de
prácticas
Convenciones:
Historias
de usuario
PSP
Org
Process
Imp
Arquitectura Componentes
dirigida por para reutilimodelos
zación
Esenciales
arquitectónicos
Modelado
ágil
Esenciales
de UML
Práctica aceptada
Teoría y Métodos de la Ingeniería
de Software
Esenciales
de componentes
Esenciales
sobre equipos
Equipos
distribuidos
…
Componentes
para la Red
…
Desarrollo
basado en
pruebas
Esenciales
… mediciones
Equipos
virtuales
…
Extensión
7
Técnicas
Ciclo de vida
del proceso
unificado
Esenciales
iterativos
y otras transversales
Prácticas sociales
Prácticas
Su forma de trabajo es sólo una
colección de prácticas
4/13/2015
Casos de
uso para
servicios
Scrum de
Scrum
Esenciales
de Scrum
Esenciales
de casos
de uso
Esenciales
de asegura- Esenciales
miento de de procesos
calidad
Cosecha de
prácticas
Convenciones:
Historias
de usuario
PSP
Org
Process
Imp
Arquitectura Componentes
dirigida por para reutilimodelos
zación
Esenciales
arquitectónicos
Modelado
ágil
Esenciales
de UML
Práctica aceptada
Teoría y Métodos de la Ingeniería
de Software
Esenciales
de componentes
Esenciales
sobre equipos
Equipos
distribuidos
…
Componentes
para la Red
…
Desarrollo
basado en
pruebas
Esenciales
… mediciones
Equipos
virtuales
…
Extensión
8
Que la gente ajusta para atender sus
necesidades
Mi enfoque
Mis plantide taller
llas de casos
de uso
Mi guía
de estilo de Esenciales
casos de uso de casos
de uso
Mis
ejemplos
Mis innovaciones en
casos de uso
… y capturar sus experiencias
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
9
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
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
10
Necesitamos la habilidad de compartir
prácticas…
• Práctica: un enfoque repetitivo para hacer algo con un
propósito específico en mente.
Una práctica
Cosas para
hacer
Cosas para
producir
Compentencias
y habilidades
Lineamientos
y ejemplos
…y combinarlas para crear una forma de trabajo
novedosa.
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
11
Necesitamos la habilidad de compartir
prácticas…
• Práctica: un enfoque repetitivo para hacer algo con un
propósito específico en mente.
Una práctica
Cosas para
hacer
Cosas para
producir
Compentencias
y habilidades
Lineamientos
y ejemplos
…y combinarlas para crear una forma de trabajo
novedosa.
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
12
What is a practice?
Project
Iteration
Objectives
Agreed
Plan Agreed
Code Freeze
Iteration
Assessed
An iteration
is a self-contained, time-boxed
Iteration
mini-project, with a well-defined outcome: a
stable, integrated and tested release. The
project is organized into a series of smaller
iterations.
Iteration Plan
Iterations:
Actively address project risks
•
Prepare versions of working software
•
Provide objective Objectives
feedback and
measurement of progress
Defined
Iteration plans:
•
Enable the team to continually learn and
improve
Resources
• Address the objectives most critical to the
project
Described by:
•
Closed
Iterativo
Essential Unified Process 3.1
An iteration plan defines the objectives and
goals for the iteration and lays out a plan to
achieve them.
•
•
• Focus on actively reducing project risk
• Enable the team to agree on the purpose of
the iteration and the approach to be taken
Defined
1 Iteration Plan
• Are succinct and lightweight
Deliverables
1 Iteration Assessment
Defined
© Ivar Jacobson International, 2005-2007
Activities
Defined
Iterative Essentials 2.1 / rev. 30
Essential Unified Process 3.1
Essential Contents:
• 1..n Objectives with clear evaluation criteria
• 1..n Available resources
© Ivar Jacobson International, 2005-2007
Iterative Essentials 2.1 / rev. 30
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
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
13
Las prácticas definen las reglas de juego
Se complementan con tácticas y trucos del contexto
•
•
•
•
•
•
•
S
U
G
E
R
E
N
C
I
A
S
R
E
G
L
A
S
4/13/2015
•
•
•
•
Plantillas
Herramientas
Pistas y consejos
Reglas de oro
Combinaciones de roles
Patrones
Elementos del contexto
Cosas esenciales para hacer
Cosas esenciales para producir
Competencias esenciales
Comportamientos esenciales
Teoría y Métodos de la Ingeniería
de Software
14
Si se captura la esencia, ¡se pueden hacer
las cosas como los expertos!
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
15
Al igual que la gente, las prácticas necesitan un
terreno común para trabajar juntas
Práctica
1
Terreno
Práctica 2
Práctica 3
común
Práctica
4
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
16
La idea clave es la existencia de un núcleo
• El núcleo es un pequeño conjunto de elementos tomado de un gran
número de métodos existentes
• Contiene casillas vacías para cosas que tiene cada forma de trabajo.
Casillas para
• Competencias, como análisis, desarrollo, capacidad de prueba
• Cosas con qué trabajar como requisitos, sistema, equipo
• Cosas para hacer, como implementar el sistema y probar el sistema
• El núcleo es independiente de las prá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
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
17
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
Kernel
– Provee un modelo de referencia para controlar
proyectos y alinear sus formas de trabajo
Se capturan los esenciales del desarrollo de
software de manera independiente de las prácticas
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
18
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
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
19
Cambie la forma de comenzar el proyecto cosechando
las mejores prácticas de su propio método
+
Sus propias mejores prácticas
Núcleo
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
20
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
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
21
Mejore su método agregando otras prácticas ya
probadas
Casos de uso
+
+
Arquitectura
Equipo
Núcleo
Sus propias mejores prácticas
+++
iterativo
Componentes
PLA
Otras prácticas de
muchas fuentes
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
22
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
Proyecto
completo No.
1
Intercambio de
prácticas
Community
Librería de prácticas
El rigor y el aseguramiento de la calidad requieren la calidad en las buenas prácticas
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
23
Las prácticas permiten que los proyectos funcionen de
la manera que necesitan
Proyecto A
Proyecto B
Proyecto C
Casos de uso Arquitectura
Requisitos
declarativos
Historias de
usuario
Arquitectura
Componentes
Componentes
Iterativo
Cascada
Scrum
La forma de trabajo del equipo se compone de las prácticas que seleccionen
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
24
El núcleo provee un marco de referencia compartido
Proyecto B
Proyecto A
Proyecto C
El núcleo le permite a los equipos usar las prácticas que necesitan dentro
de un marco de rigor compartido
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
25
Panorama General
Las actualizan muchos
(usualmente ingenieros
senior experimentados) y a
menudo. Por lo general se
almacenan en
herramientas locales
(Wikis or presentaciones).
Tácticas y trucos
Se capturan como conjuntos
de prácticas en uso
Las actualizan pocos (agentes de
cambio o ingenieros de procesos)
y frecuentemente.
Incluyen prototipos con
herramientas locales (Wikis o
presentaciones) y se publican
para compartir usando
herramientas especializadas de
“autoría de procesos.
Reglas de juego
Se capturan como conjuntos de
prácticas complementarias de acción,
ciclo de vida, inspección y soporte
El terreno común
Los conceptos básicos aplicables a todo y
que se capturan en el núcleo
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
Lo actualizan muy pocos
ocasionalmente. Se
publica para compartir
usando herramientas
especializadas de “autoría
de procesos”
26
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
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
27
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.
El núcleo de la Esencia
Los fundamentos
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
28
Tópicos avanzados
¿Cómo se puede obtener valor agregado?
• Apalancando las prácticas en el núcleo
• Apalancando otras facetas en el núcleo
Espacios de
actividad
Competencias
• Apalancando las extensiones del núcleo
Subalfas
• Extendiendo la definición del núcleo
para satisfacer las necesidades específicas de los proyectos
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
29
Panorama general: núcleo, métodos, prácticas
Método adaptado M
•
Control del progreso
•
Reflexión del equipo
•
Gestión del riesgo
•
Dirección de proyectos
Método adaptado
(compuesto de prácticas)
Prácticas Generalmente
aceptadas
Núcleo de la Esencia
(Los fundamentos)
4/13/2015
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
4/13/2015
Teoría y Métodos de la Ingeniería
de Software
31