Está en la página 1de 34

CMMI

Estado Actual de la Industria


del Software
Sesión 1
Objetivo
• Al finalizar la unidad, el estudiante describe la situación
problemática de la industria de software, comprendiendo
las causas principales que la originan.
Agenda
• Problemática Actual de la Industria del Software.
• Desarrollo Artesanal vs Desarrollo basado en Procesos.
• Los Pilares de la Calidad.
El Software en nuestras vidas
▪ Utilizamos grandes cantidades de software en nuestro
día a día.
▪ La mayoría de productos que están a nuestro alrededor
requirieron software durante su elaboración.
▪ Algunos pensadores de este siglo dicen que: “Somos
dependientes del software”.
El Software en nuestras vidas

Grandes Grandes
necesidades oportunidades
de software (Nuevas tecnologías,
cloud, DevOps, etc).

… además, grandes riesgos


Analicemos …

¿El proceso de elaboración de software se encuentra


bajo control? … Es decir:
▪ ¿La calidad del producto resultante es la
esperada (al menos… casi)?
▪ ¿Se entrega a tiempo y sin salir del presupuesto
(al menos… casi)?
¿El Software está bajo control?

Pero…. ¿cuál es la situación real?


▪ No se cumplen compromisos en el 50% de los
proyectos.
▪ El 25% de proyectos se cancelan (*).
▪ Niveles de ‘retrabajo’ incluso mayores al 40%.

(*) Estudios del Software Engineering Institute (SEI)


¿El Software está bajo control?

Algunos mitos que trataremos de descartar:


1. El software es ‘diferente’ a cualquier otro
producto.
2. El software es ‘arte’, por lo que no se puede
“limitar la creatividad” a través de procesos
repetitivos… No se puede tratar como otro tipo
de producto.
3. La industria de software es nueva. Las formas
de trabajo de otras industrias no aplican al
software.
¿El Software está bajo control?

▪ La Industria del software no acaba de salir de la fase


artesanal.
▪ Los proyectos normalmente se realizan con prisa
(Desorganización, Falta de Planificación, Dependencia
de “Héroes”, otros).
▪ Se entregan productos de poca calidad a los clientes.
▪ Numerosas organizaciones dedican entre el 30% y el
44% de su tiempo y presupuesto a corregir software.
▪ Por cada 6 nuevos productos de software de gran escala
que son puestos en operación, otros 2 son cancelados.

Fuente: Standish Group,2003


¿El Software está bajo control?

▪ El 72% de los sistemas grandes tienen fallas de


operación, o no funcionan como se esperaba, o no se
usan.
▪ El 57% de los proyectos de desarrollo de software,
sobrepasan su calendario en más de la mitad del
tiempo.
▪ El 52.7% de los proyectos sobrepasan su costo inicial
estimado en 189%.
▪ El 31.1% de los proyectos son cancelados antes de
que sean terminados.

Fuente: Standish Group,2003


¿El Software está bajo control?

Fuente: Reporte CHAOS 2015


Una Organización Inmadura

▪ Carece de planificación o en caso que cuenten con


planes, muchas veces el proceso de software es
improvisado.
▪ Personal reactivo y con el paradigma de que “no hay
tiempo para mejorar la forma de trabajo”.
▪ Dirigen sus esfuerzos a resolver solamente los
problemas inmediatos.
▪ Presupuestos y calendarios sobrepasan las previsiones.
▪ No hay un objetivo básico para enfocar la calidad del
producto.
¿El proceso de Software es diferente?
¿El proceso de Software es diferente?

> 5,000 Años de aprendizaje acumulado

Desde las primeras experiencias y


metodos de la Ingenieria Civil ……

….. Hasta las prácticas y


maduros metodos actuales
¿El proceso de Software es diferente?

< 50 Años de aprendizaje acumulado …..

Desde las primeras experiencias en


la sala de computo de la ENIAC….

……Hasta los maduros métodos


actuales, detrás de una T/I
sorprendente
Lean Software Development

La filosofía Lean aplicada a la fabricación, adaptación del


sistema de producción de Toyota y de Lean
IT aplicable a la gestión de productos y servicios de
tecnología de la información (IT).

La idea principal de la filosofía Lean es aplicar un


método sistemático consistente en eliminar los
desperdicios, o lo que es lo mismo, el trabajo que no
aporta valor al resultado final (servicio o producto).
El Testing en la industria de Software

En la práctica, muchas organizaciones consideran que


CALIDAD = TESTING.
▪ Los equipos de Testing son muy grandes. En
ocasiones, similares en tamaño al de los
desarrolladores.
▪ Se dedica gran proporción de esfuerzo al Testing.
▪ Se tiene la idea equivocada de que es posible
probar TODO realizando testing.
El Testing en la industria de Software

▪ Típicamente, desarrolladores expertos generan 1


defecto por cada 7 a 10 LOC.
▪ Una aplicación de 100,000 LOC tendría un promedio
de 11,000 defectos.
▪ Entonces, ¿creen posible que se pueda detectar todos
estos errores realizando solamente Testing?
Factores de Éxito en la industria

• Muchas organizaciones de desarrollo de software


aplican pocos métodos de trabajo disciplinado.
• En general, su comportamiento se parece más al de un
taller artesanal, que al de una organización profesional
y madura.
Factores de Éxito en la industria

▪ Tener “héroes” y buenos “bomberos”


Recordemos cuántas veces se premian a estas
personas, en lugar de aquellas que hacen bien su
trabajo desde el inicio…
▪ Suerte y optimismo excesivo: “Después me
preocuparé de esto…. Probablemente nada suceda”.
▪ “Pongamos más personas a hacer testing !!!”
▪ “Es imposible entregar algo sin errores…”
Proceso “Artesanal” de desarrollo
Taller artesanal de software Organización madura
▪ Cada producto es desarrollado ▪ Los proyectos se comportan
independientemente del otro como líneas de producción. Se
(alto nivel de aislamiento). optimiza el uso de
recursos/personas.
▪ Nivel de reutilización bajo. ▪ Desarrollo basado en
componentes.
▪ Desarrollo guiado por
▪ Depende muy altamente de la
procesos establecidos, así
habilidad y pericia de las
como con herramientas
personas (en realidad, de
adecuadas a cada tipo de
algunos “héroes”) .
proyecto / producto.

La habilidad y pericia se enfoca en aquello que es de mayor valor!!


Proceso “Artesanal” de desarrollo
Taller artesanal de software Organización madura
▪ El conocimiento permanece ▪ La porción del conocimiento
en las personas. que corresponde a las técnicas
(cómo trabajar) se encuentran
en los procesos. El resto de
conocimiento es atendido por
entrenamientos gestionados a
nivel organizacional.
▪ La calidad no es consistente. ▪ Procesos + Entrenamiento +
Desarrollo ad-hoc de cada Herramientas permiten
producto. aumentar dramáticamente los
niveles de consistencia.
Proceso “Artesanal” de desarrollo
Taller artesanal de software Organización madura
▪ Desarrollar cada producto es ▪ Menos costo al reutilizar
más costoso. componentes, aplicar procesos
(diseñados para brindar buen
Costo = $ de uso de recursos desempeño y altos niveles de
y personas, por la duración calidad)
del proyecto y el tiempo
posterior de corrección de
problemas
¿Qué es un proceso?

Conjunto de prácticas realizadas con el objetivo de


alcanzar un propósito determinado. Puede incluir
herramientas, métodos, materiales y/o personas.
Es el conjunto integrado de personas, procedimientos,
practicas métodos equipos, y herramientas que
buscan producir un resultado deseado.
Premisas de la Gestión de Procesos

▪ La calidad de un producto se encuentra


altamente influenciada por la calidad del proceso
utilizado para adquirirlo, desarrollarlo y mantenerlo.
▪ Esta premisa implica un enfoque en el proceso así
como en el producto.

Premisa establecida hace mucho en la manufactura (basada en


principios de TQM de Shewhart, Deming y Humprhey)

CMMi Overview, Software Engineering Institute, 2007


Conocimiento y experiencia

Recuerden a un “héroe” en sus


organizaciones

¿Cómo trabajaba?... ¿cómo gestionaba los requerimientos?


¿qué estándares / buenas prácticas de programación seguía?
¿cómo probaba lo que producía?....

¿Si capturamos estas buenas prácticas, de


manera que puedan ser transmitidas al personal …
y nos aseguramos que así sea? ¿Qué puede pasar?
El Talento no lo es TODO

▪ Las organizaciones han aprendido que aún los


mejores profesionales necesitan un ambiente
estructurado y disciplinado, en el cual puedan
realizar un trabajo cooperativo.
▪ La gente de primer nivel es esencial, pero necesitan
el apoyo de procesos ordenados para hacer un
trabajo de primer nivel.
La Calidad

Todos reconocen la
Productos importancia de tener un
equipo de personas motivado
y de calidad, sin embargo
Personas hasta los mejores no se pueden
desempeñar al máximo
Procesos Tecnología
cuando el proceso no es
entendido, o no se encuentra
afinado.

Los procesos, personas y tecnología son los


principales determinantes del costo,
cronograma y calidad del producto
Falacias comunes sobre los procesos

1. Los procesos…
• Interfieren con la creatividad
• Introducen burocracia y reglamentación
• Sólo son útiles en proyectos grandes
• Bloquean la agilidad, en negocios cambiantes
• Cuestan mucho
Falacias comunes sobre los procesos

2. No necesito procesos, yo tengo…


• Personas realmente buenas
• Tecnología avanzada
• Un jefe muy experimentado
¿Por qué enfocarnos en procesos?

¿Que cosas son las que haces realmente bien?


¿Que cosas son las que si mejoraran, podrían
minimizar los problemas y hacernos mas
exitosos ?
¿Preguntas?
GRACIAS

También podría gustarte