Métodos Agiles: Productividad vs Actualización

32
A Study of Non-linearity in the Statistical Convertibility of Function Points into COSMIC Function Points Métodos Agiles: Productividad vs Actualización Gabriela Robiolo Facultad de Ingeniería Universidad Austral Buenos Aires, Argentina

description

A Study of Non-linearity in the Statistical Convertibility of Function Points into COSMIC Function Points. Métodos Agiles: Productividad vs Actualización. Gabriela Robiolo Facultad de Ingeniería Universidad Austral Buenos Aires, Argentina. Motivación. - PowerPoint PPT Presentation

Transcript of Métodos Agiles: Productividad vs Actualización

Page 1: Métodos Agiles: Productividad vs Actualización

A Study of Non-linearity in the Statistical Convertibility of Function Points into COSMIC

Function PointsMétodos Agiles: Productividad vs Actualización

Gabriela RobioloFacultad de Ingeniería

Universidad AustralBuenos Aires, Argentina

Page 2: Métodos Agiles: Productividad vs Actualización

Motivación

Una nueva forma de trabajo que pareciera satisface las necesidades de la industria del software.

Promete importantes soluciones a problemas recurrentes detectados en los procesos de desarrollo.

¿Son los métodos ágiles un ambiente de mayor productividad o simplemente una evolución de los métodos tradicionales?

19/04/23Dra. Gabriela Robiolo 2

Page 3: Métodos Agiles: Productividad vs Actualización

Un poco de Historia

19/04/23Dra. Gabriela Robiolo 3

Page 4: Métodos Agiles: Productividad vs Actualización

Aspecto Tradicionales Agiles

Ideas claves Especificación CompletaPredeciblePlanificación intensiva

Código de alta calidad Grupos pequeñosMejora continua del diseño Testing permanenteRápido feed back Adaptación al cambio

Conducción Jefe identificado y control predefinido

Liderazgo y colaboración

Comunicación Formal Informal

Modelo de desarrollo Cascada o espiral Evolutivo, incremental

Organización Burocrática - Grande –Jerárquica

Participativa – Pequeña y mediana – auto_organizados -plana

Control de calidad Planificado – Testing tardío

Control continuo

Métodos Tradicionales vs Agiles

19/04/23Dra. Gabriela Robiolo 4

Page 5: Métodos Agiles: Productividad vs Actualización

Métodos Agiles

19/04/23Dra. Gabriela Robiolo 5

Page 6: Métodos Agiles: Productividad vs Actualización

Métodos Agiles

19/04/23Dra. Gabriela Robiolo

Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de software con valor.

Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.

Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia al periodo de tiempo más corto posible.

Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto.

Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el apoyo que necesitan, y confiarles la ejecución del trabajo.

6

Page 7: Métodos Agiles: Productividad vs Actualización

Métodos Agiles

19/04/23Dra. Gabriela Robiolo

El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus miembros es la conversación cara a cara.

El software funcionando es la medida principal de progreso.

Los procesos Ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.

La atención continua a la excelencia técnica y al buen diseño mejora la Agilidad.

La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.

Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados.

A intervalos regulares el equipo reflexiona sobrecómo ser más efectivo para a continuación ajustar y perfeccionar su comportamiento en consecuencia.

7

Page 9: Métodos Agiles: Productividad vs Actualización

Evidencias empíricas XP [2]

• Difícil de ser adoptado en organizaciones complejas

• Proyectos pequeños

• Funciona

• Diferentes ambientes

• Clientes– Feed-back y respuesta al

cambio

– On site: no es sostenible por un tiempo prolongado

• Grupos experimentados

• Perfiles con facilidad de comunicación interpersonal

• Programación de a pares (opiniones contradictorias)

• Profesionales más satisfechos

• Estudiantes – Entrenamiento para trabajo

futuro

– Dificultad para el testing

19/04/23Dra. Gabriela Robiolo 9

Page 10: Métodos Agiles: Productividad vs Actualización

Evidencias empíricas - Productividad

Apple, una experiencia: la inadecuada utilización de las prácticas ágiles podría ser contraproducente [5]

Un proceso ágil (en un contexto académico) no obtuvo un mejor rendimiento de la inversión (ROI) que un proceso tradicional (o conducido por planificación) [6]

19/04/23Dra. Gabriela Robiolo

XP [2]

10

Page 11: Métodos Agiles: Productividad vs Actualización

Evidencias empíricas Scrum [3]

Experiencia• Correlación entre el

nivel de adopción del atributo y el éxito del proyecto (medido desde la perspectiva del ingeniero de software)

• Ingenieros de Software (Scrum user group), Recife, PE (Brazil).

Atributo• Entrega regular del software

• Entrega temprana de las características más importantes

• Test de Integración correcto

• Miembros del grupo con alta experiencia

• Aplicación de prácticas de administración de requerimientos de agile

• Aplicación de prácticas de administración de la configuración de agile

• Grupo coherente y auto organizado

• Buena relación con el cliente

19/04/23Dra. Gabriela Robiolo 11

Page 12: Métodos Agiles: Productividad vs Actualización

Evidencias empíricas Scrum [4]

Experiencia• Identificación

de problemas en un mega-proyecto en ámbito político.

• 11 Grupos Scrum de diferentes sub-contratistas

• Entrevistados 13 participantes

Problemas• Restricciones en la colaboración debido a incompleta

explicitación contractual de responsabilidades.

• Baja prioridad de cualidades arquitectónicas y técnicas

• Conflictos entre control organizacional y flexibilidad

• Demorada y volátil definición de requerimientos

• Falta de una visión compartida del producto final.

• Limitada difusión de los conocimientos funcionales

• Dependencias excesiva entre las partes del programa.

• Sobrecarga del personal clave.

• Dificultades para mantener el buen funcionamiento de entornos técnicos.

• Dificultades en la coordinación de las pruebas y la implementación con las partes externas.

19/04/23Dra. Gabriela Robiolo 12

Page 13: Métodos Agiles: Productividad vs Actualización

Evidencias empíricas Scrum [7]

Caso de estudio

• 150 empleados, distribuidos en distintos grupos

• ¿La aplicación de Scrum mejora la calidad del software, en términos de cantidad de defectos?

19/04/23Dra. Gabriela Robiolo 13

Page 14: Métodos Agiles: Productividad vs Actualización

RUP versus Scrum - UA

Motivos de la selección

– Ambos son usados en el ámbito de la industria del software

– Es posible hacer de RUP una metodología ágil

19/04/23Dra. Gabriela Robiolo 14

Page 16: Métodos Agiles: Productividad vs Actualización

UP vs Agile

19/04/23Dra. Gabriela Robiolo

Aspecto UP Métodos AgilesCliente Define y aprueba los

Requerimientos. Valida el sistema.

Es parte del equipo, define prioridades

Fuerza del grupo de trabajo

En el proceso En las personas

Arquitectura Centrado en la Arquitectura Da importancia al códigoRequerimientos Casos de Uso De alguna forma. Lo más

característico: User StoriesDocumentación Consiste en una selección

adecuada de entregables Esta en el código

Testing Es una de las disciplinas Esencial el testing automatizado. Completa la deficinión de los requerimientos

Administración de Proyectos

Es una de las disciplinas Se le da un peso importante, llegando a marcar un estilo propio

Tamaño de Proyectos

Pequeños – medianos - grandes

Chicos

Cantidad de personas por team

No determinado Tendiendo a 10 personas

[1] Traducción del término artifacts

16

Page 17: Métodos Agiles: Productividad vs Actualización

RUP versus Scrum

19/04/23Dra. Gabriela Robiolo 17

Page 18: Métodos Agiles: Productividad vs Actualización

RUP versus Scrum

19/04/23Dra. Gabriela Robiolo 18

Page 19: Métodos Agiles: Productividad vs Actualización

RUP vs Scrum

Preguntas de investigación:– Tamaño funcional: ¿Scrum > RUP ?– Diseño: ¿RUP es mejor que Scrum ?– Comprensión: ¿ RUP > Scrum ?– ¿Existen diferencias significativas en la

implementación de la arquitectura?

19/04/23Dra. Gabriela Robiolo 19

Page 20: Métodos Agiles: Productividad vs Actualización

Definición del experimento

Contexto

– Taller de diseño de 4to año de Ingeniería en Informática

– 3 horas semanales

– Los alumnos desarrollan un producto de software

– Se dividió la clase en 2 grupos: RUP y Scrum equilibrando los grupos en base a:• Rendimiento académico

• Experiencia laboral

• Carga académica

– Ambos grupos desarrollaron un juego de estrategia por turnos partiendo de una misma definición de requerimientos

19/04/23Dra. Gabriela Robiolo 20

Page 21: Métodos Agiles: Productividad vs Actualización

Definición del experimento

19/04/23Dra. Gabriela Robiolo 21

Page 22: Métodos Agiles: Productividad vs Actualización

Definición del experimento

19/04/23 Dra. Gabriela Robiolo

22/20

Page 23: Métodos Agiles: Productividad vs Actualización

Definición del experimento

Atributos estudiados– Tamaño funcional– Calidad de diseño– Grado de comprensión del diseño– Características de implementación de la

arquitectura– Diseño externo– Calidad de programación

19/04/23Dra. Gabriela Robiolo 23

Page 24: Métodos Agiles: Productividad vs Actualización

Definición del experimento

Variables controladas–Capacidad del grupo de desarrollo– Ambiente de desarrollo– Tiempo–Nivel de capacitación en el

dominio–Complejidad del producto

19/04/23Dra. Gabriela Robiolo 24

Page 25: Métodos Agiles: Productividad vs Actualización

Resultados - Tamaño funcional

19/04/23Dra. Gabriela Robiolo 25

Producto Medida [T]P1 8P2 10P3 23P4 6P5 51P6 7P7 38

RUPRUP

Agile

Media RUP = 7DesvS RUP = 1

Media A= 30,50

DesvS A= 17,82

Page 26: Métodos Agiles: Productividad vs Actualización

Resultados - Calidad de diseño

19/04/23Dra. Gabriela Robiolo 26

Producto Cantidad de Clases afectadas por los cambios

P1 8P2 17P3 9P4 9P5 9

P6 10P7 10

RUPRUP

Agile

Media RUP = 9DesvS RUP = 1

Media A= 11,25DesvS A= 3,86

Page 27: Métodos Agiles: Productividad vs Actualización

Resultados Grado de comprensión del diseño

o

19/04/23Dra. Gabriela Robiolo 27

RUP

RUP

Agile

Grupo Respuesta clara confusa incorrecta

P1 35 4 6P2 28 19 13P3 39 1 0P4 12 5 0P5 14 5 0P6 18 2 0P7 18 2 0

Media RUP 21,67 3,67 2,00

DesvS RUP 11,93 1,53 3,46Media A 24,75 6,75 3,25

DesvS A 11,18 8,34 6,50

Page 28: Métodos Agiles: Productividad vs Actualización

Resultados Grado de comprensión del diseño

o

19/04/23Dra. Gabriela Robiolo 28

RUPTeam Motivation /

Students’ Commitment

Motivation /

Leader’s Commitment

Leader’s experience

P1 High High MediumP2 Medium High MediumP3 High High HighP4 Medium (*) Medium MediumP5 High High HighP6 Medium (*) High HighP7 High High High

(*) No preferencia por RUP

Page 29: Métodos Agiles: Productividad vs Actualización

Requerimientos

Nro. Function Points

Transacciones Objetos de Entidad

Caminos

UseCase 14 98 26 10 52

UserStory 10 68 12 8 8

Importancia del testing y la participación del cliente

19/04/23Dra. Gabriela Robiolo 29

Page 30: Métodos Agiles: Productividad vs Actualización

Conclusiones de la comparación

RUP– Menos funcionalidad implementada– No hay evidencia de un mejor diseño– Un resultado más acotado y predecible

Scrum– Mayor funcionalidad implementada – Mayor desviación estándar en la productividad– Empezó a producir código funcional en menor tiempo– Mayor dispersión en la comprensión global de la solución

implementada (depende de las personas)– Sensible a la motivación y liderazgo

No se puede afirmar taxativamente que un método sea mejor que otroLa componente humana tiene un gran impacto en los métodos ágiles 19/04/23Dra. Gabriela Robiolo 30

Page 31: Métodos Agiles: Productividad vs Actualización

Conclusiones

Pocas evidencias empíricasNo hay evidencia de una mayor:– productividad– calidad

Profesionales más satisfechosEs una natural evolución que captura características atrayentes para las empresas y jóvenes desarrolladores

Los métodos ágiles son una tendencia

19/04/23Dra. Gabriela Robiolo 31

Agilidad e informalidad responden a parámetros de conducta de los jóvenes

Page 32: Métodos Agiles: Productividad vs Actualización

[email protected]

19/04/23Dra. Gabriela Robiolo 32