Las organizaciones que desarrollan software que han adoptado métodos ágiles, se encuentran con un fuerte cambio de paradigma que afecta a las otras funciones de la organización. ¿Qué podemos hacer para enfrentarlo?
¿Por qué hay que aprender a programar? (una actualización)
Desafíos en las organizaciones que desarrollan software
1. Desafíos en la gestión
de las organizaciones
de software
Santa Fe, 7 de mayo de 2014
Alvaro Ruiz de Mendarozqueta
2. Desafíos en la gestión de las organizaciones
de software
LIDICALSO
Laboratorio de Investigación y Desarrollo en Ingeniería y Calidad de Software
LIDICALSO http://www.institucional.frc.utn.edu.ar/sistemas/lidicalso/
Departamento de Ing. en Sistemas de Información
UTN FRC
21. Encuesta 2009 a MIPyME de SSI del Observatorio
PyME Regional Provincia de Santa Fe
89 % con instrucción universitaria o terciaria
Personal
22. 23
Insuficientes recursos humanos o
falta de capacitación
Encuesta 2009 a MIPyME de SSI del Observatorio
PyME Regional Provincia de Santa Fe
23. 18,4
12,2
28,6
40,8
Desarrollo de Sw
No tiene dificultad
Dif baja
Dif media
Dif alta
Encuesta 2009 a MIPyME de SSI del Observatorio
PyME Regional Provincia de Santa Fe
Dificultad para contratar personal
42. No hay dos organizaciones
exactamente iguales
No hay dos organizaciones
totalmente diferentes
Gerald
Weinberg
43. Problemas
Interpretar a los modelos de una
única manera
Repetir recetas sin entender el
contexto
Repetir recetas sin entender al
equipo de trabajo
44. Problemas
No asignar recursos a mejora
“Están ocupados trabajando…”
No planificar
El área de calidad no hace lo que
recomienda…
Personal de calidad sin experiencia
46. Riesgos
SQA no es lo único que se hace
Calidad es lo que hacen los de
calidad
Falta de integración de actividades
Poca planificación
Que la mejora no sea continua
47. Procesos
Toda construcción de software
sigue un proceso:
Formales
Informales
Muchos procesos están tan mal
hechos como el software
48. Horror de proceso
CMMI, PP
SG 3 Commitments to the project plan are established
and maintained.
SP 3.3 Obtain commitment from relevant stakeholders
responsible for performing and supporting plan
execution.
Planilla con firma de cada uno de los
miembros del equipo (pocos participaron
de la confección del plan)
49. Más horror…
Procesos con 15 roles para
una organización cuyo
promedio es de 4 personas
por proyecto
60. El desarrollo de software
es, esencialmente, un proceso
de aprendizaje
Mary & Tom
Poppendieck
Lean Software
Development
61. Manifiesto por el
desarrollo Ágil de software
http://agilemanifesto.org/
Estamos descubriendo formas mejores de
desarrollar software tanto por nuestra propia
experiencia como ayudando a terceros.
A través de este trabajo hemos aprendido a
valorar:
62. A B C
Individuos e interacciones
sobre procesos y herramientas
Manifiesto
Valoramos más
http://agilemanifesto.org/
64. Colaboración con el cliente
sobre negociación contractual
Manifiesto
Valoramos más
http://agilemanifesto.org/
65. Respuesta ante el cambio
sobre seguir un plan
Manifiesto
Valoramos más
http://agilemanifesto.org/
66. principio #1
Satisfacer al cliente
a través de
entregas tempranas y continuas
de software que
provea valor
Manifiesto ágil (‘01)
http://agilemanifesto.org/
67. principio #2
Aceptamos que los requisitos
cambien, incluso en etapas
tardías del desarrollo
Los procesos ágiles aprovechan
el cambio para proporcionar
ventaja competitiva al
cliente.
Manifiesto ágil (‘01)
http://agilemanifesto.org/
68. principio #3
Entregamos software funcional
frecuentemente, entre dos
semanas y dos meses,
con preferencia al período de
tiempo más corto posible.
Manifiesto ágil (‘01)
http://agilemanifesto.org/
69. … de software que
provea valor
despachador de
pedidos
generador de
valor
software que
funciona
software que cubre
una necesidad
73. Martin Fowler
un buen proyecto ágil
tendrá que desarrollar
algo mejor que
lo planeado
originalmente
The New
Methodology
74. Ventajas Agile
Cambios de requerimientos son
bienvenidos
Entregas rápidas
Feedback del cliente todo el tiempo
Software funcionando pronto
Testing temprano
84. Mejora de Procesos
personas e interacción
software funcionando
colaboración con clientes
responder a los cambios
herramientas y procesos
documentación exhaustiva
negociación de contratos
seguir un plan
Parece que valoramos más
foco en los resultados ¿cuál es el foco?
Manifiesto ágil (‘01)
103. Basado en el
plan
Fijo Modelo de calidad Recursos Calendario
Estimado Mejora funcionandoRecursos Calendario
Basado en el
valor
agregado
Tradicional Ágil
Compatible con el
modelo
104. A B C
Individuos e interacciones
sobre procesos y herramientas
Valoramos más
Equipo
Scrum para
la mejora
Proceso de
mejora
106. Colaboración con el cliente
sobre negociación contractual
Valoramos más
Empleados son
los clientes
Despliegue de
procesos
107. Respuesta ante el cambio
sobre seguir un plan
Valoramos más
Implementar
mejora de alto
impacto
Implementar
los procesos
108. Apliquemos el principio #1 a la mejora continua
satisfacer al cliente
a través de
entregas tempranas
y continuas
de software que
provean valor
Manifiesto ágil (‘01)
109. Apliquemos el principio #1 a la mejora continua
satisfacer al cliente
a través de
entregas tempranas
y continuas
de mejoras que
provean valor
Manifiesto ágil (‘01)
111. Empresa de desarrollo de software
con filosofía ágil
Objetivo 2014
Certificación ISO 9001:2008
Toda la organización
Aplicar Agile en toda la organización
112. Comité de calidad
PMO Quality champion
Scrum
El sistema de gestión de calidad es
el producto
Todos los empleados son los
clientes
113. Scrum Team
Representa la mayoría de los roles de
la organización
Define el esfuerzo disponible
Director es el PO
121. Empresa de desarrollo de productos
para grandes empresas
Objetivo 2014
Mejora de un producto y sus
procesos
Consolidar prácticas ágiles
Automatización
122. Scrum
Equipo: multi empresa y multi rol
Cliente: técnico y gestión
Empresa: técnico y gestión
Consultor externo
Scrum master
PO: gerente del cliente
123. Backlog de mejoras priorizado
Implementación de herramientas
Capacitación
Visita a clientes y reuniones con
usuarios finales
131. el enfoque predictivo limita
ciclos de aprendizaje
capacidad de adaptación
generación de valor
Funciones antes que
organigramas
Ejemplo: Modelo EFQM
132. Pasos a seguir
Para cada área o función clave
Determinar las sub funciones
Aplicar el manifiesto ágil
133. what why
Individuals
and
interactions
over
processes
and tools
M#1
Tangible
Results over
comprehensi
ve
documentati
on
M#2
Customer
collaboratio
n over
contract
negotiation
M#3
Responding
to change
over
following a
plan
M#4
continues
delivery
of
valuable
Results
P#1
Products
know the
roadmap
(strategy)
to align
projects and
resources
communicat
e roadmap
often, face-
to-face, and
collect
feedback
roadmap
should be
clear,
making-
sense for
engineering
and business
customer
needs being
covered by
the roadmap
should be
clear for all
parts
make sure
changes and
its reasons
are properly
introduced
and
communicat
ed to all
relevant
actors
roadmap
means
available
for the
whole
involved
people
136. La mejora de procesos no parece
ser efectiva con el enfoque usual
Agile trajo un cambio de
paradigma
Sus principios aportan sentido
común
Pueden extrapolarse a otras
actividades
Mejora de procesos
137. Si hay una oportunidad
para las empresas de
software…
…necesitarán agilidad
para aprovecharla
142. principio #6
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.
Manifiesto ágil (‘01)
http://agilemanifesto.org/
148. diseño de un sistema
de gestión de una
operación de desarrollo
de software, usando
métodos ágiles y
modelos de calidad
Laboratorio de Investigación y Desarrollo en Ingeniería y Calidad de Software
LIDICALSO http://www.institucional.frc.utn.edu.ar/sistemas/lidicalso/
Departamento de Ing. en Sistemas de Información
UTN
150. Qué aprendimos en los proyectos
entregas frecuentes
flujo de trabajo
generación de valor
expandir conocimiento
prácticas XP
construcción de SW
principios Lean
concepto - producto
proceso Scrum-Kanban
gestión de proyectos
disciplina
diseño de calidad
automatización
151. típicamente propuesta
Marco de gestión
procesos
organigrama
conformidad
generación de valor
áreas de responsabilidad
visión / resultados
foco en
organización
mecanismo
157. principio #4
Los responsables de negocio y los
desarrolladores
trabajamos juntos
de forma cotidiana durante todo
el proyecto
Manifiesto ágil (‘01)
http://agilemanifesto.org/
158. principio #5
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.
Manifiesto ágil (‘01)
http://agilemanifesto.org/
159. principio #6
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.
Manifiesto ágil (‘01)
http://agilemanifesto.org/
160. principio #7
El software funcionando es la
medida principal de
progreso.
Manifiesto ágil (‘01)
http://agilemanifesto.org/
161. principio #8
Los procesos ágiles promueven el
desarrollo sostenible.
Los promotores, desarrolladores y
usuarios
debemos ser capaces de mantener
un ritmo constante
de forma indefinida.
Manifiesto ágil (‘01)
http://agilemanifesto.org/
162. principio #9
La atención continua a la excelencia
técnica y al
buen diseño mejora la agilidad
Manifiesto ágil (‘01)
http://agilemanifesto.org/
163. principio #10
La simplicidad, o el arte de
maximizar la cantidad de
trabajo no realizado, es esencial.
Manifiesto ágil (‘01)
http://agilemanifesto.org/
164. principio #11
Las mejores arquitecturas,
requisitos y diseños emergen de
equipos auto organizados
Manifiesto ágil (‘01)
http://agilemanifesto.org/
165. principio #12
A intervalos regulares el equipo
reflexiona sobre
cómo ser más efectivo para a
continuación ajustar y
perfeccionar su comportamiento en
consecuencia.
Manifiesto ágil (‘01)
http://agilemanifesto.org/