“Half of my budget is wasted … I just don’t know which half”
Qualilogy
Calidad de Software
Septiembre 2014
2
Jean-Pierre FAYOLLE
• Consultor Freelance Application Quality
Customer Success Management
Experiencia en proyectos internacionales
• Blogger www.qualilogy.com
Amplio conocimiento del ecosistema de Calidad (software vendors, soluciones open-source, partners, etc.)
Skype jpfayolle
Tweet @jpfayolle
3
1. Más y más complejidad
2. ¿Cómo enfrentamos la complejidad?
3. Servicios de Calidad de Software
Agenda
Más y más complejidad
¿Cómo la enfrentamos?
PART ONE
5
Mainframe
AS400 IBM 36
MVS
Unix
1965-1985
Más y más complejidad
1985-2000 2000-2015 2015
ASM
Cobol RPG
C Pascal
PC Mac
Windows
Client-Server
DBMS
Virtualización Cloud
SOA SaaS PaaS
Open Source
Android iOS
L4G SQL
Java PHP C++ VB
Frameworks
ERP
Mobile devices
Cloud
Internet of all things
Big data Analytics
Java C# .NET
Ruby Groovy
Scala Grails
CRM
Java
Objective C
APIs
Contabilidad
RH
Almacenamiento
Producción
Ventas
Intranet / Extranet
Front-end / Back-
end
Consumerización TI
2017: 270 000
millones de descargas
de aplicaciones
6
Más y más complejidad
• Aplicaciones Factor de diferenciación en los
negocios
Time to market / Costes
• Aumenta la complejidad Más aplicaciones
Más capas, más dependencias
Más incidentes, menos mantenibilidad
• Impactos en los negocios SI complejos, pesados, enredados
Reduce la agilidad de negocios
Aumenta los riesgos operacionales
7
• Mejor kit de herramientas Herramientas CASE, programación OO
Reutilizabilidad, Frameworks
• Mejores procesos Automatización (SCM, Builds, Tests, …)
Integración Continua, DevOps
• Mejores metodologías Waterfall, RAD
Agile, Scrum, TDD
CMMI, ITIL
¿Cómo enfrentamos la complejidad?
8
• Externalización Al detrimento de la calidad
« Siempre hay alguien que dice que lo puede hacer más barato »
¿Cómo enfrentamos la complejidad?
9
• ¿Cómo mejorar la calidad de las aplicaciones?
Producir menos = menos defectos
Más gente, más máquinas
Mejor gobernanza
• Gobernanza
Orientación a los negocios: creación de valor
Best practices: mejorar el rendimiento de TI
Control de riesgos: más éxito, menos fracaso
Control de costes: profitabilidad
• Supervisión
KPIs para medir procesos y conseguir feedback
less with less
more with more
more with less
¿Cómo enfrentamos la complejidad?
10
• Todos tenemos los mismos objetivos
Reducir los defectos
Reducir los costes
Mejorar la mantenibilidad
Mejorar el control de los proveedores
• No basta con herramientas
Las herramientas guían el análisis humano
Se necesitan habilidades para optimizar las herramientas
• Proposición de valor
Limitar los costes de herramientas
Invertir en lo más pertinente: el análisis humano
¿Cómo enfrentamos la complejidad?
Qualilogy
Servicios
PART TWO
12
Servicios
Governance
Governanza Management TI
Gestión de portafolio de aplicaciones Management TI
Cartografía de portafolio de aplicaciones Management TI
Control de outsourcers Management TI / Proyecto
Software Quality Management
Implementación de un Centro de Calidad de Software Consultores de Calidad
Implementación de un programa de Calidad de Software Consultores de Calidad
Implementación de una plataforma de Calidad de Software Consultores de Calidad
Auditoría del nivel de madurez de Calidad de Software Consultores de Calidad
Application Quality
Auditoria de Calidad Proyecto / Desarrollador
Integración Continua / Mejora Continua Proyecto / Desarrollador
Gestión de la Deuda Técnica Proyecto / Desarrollador
Quality Gate Proyecto / Desarrollador
Seguridad Proyecto / Desarrollador
Rendimiento Proyecto / Desarrollador
13
Gobernanza
• Gobernanza
Alineación con los negocios
Definición de KPIs (rendimiento, valor, SLAs)
Planes de acción – Catalogo de servicios
Vigilar y controlar
• Gestión de portafolio de aplicaciones
Definición de criterios (valor para los negocios, €, tamaño, etc.)
Cartografía
Análisis de portafolio
Activos y Riesgos
Soporte a la decisión
« Asegurarse de que la inversión en TI produce valor es un componente esencial del Gobierno de TI »
(IT Governance Institute)
« 48% de los CIOs reconocen que su organización tiene
más aplicaciones de las que necesita. 25% de ellas podrían ser
retirada »
(Application Landscape Report 2014, Cap Gemini)
14
Gobernanza
• Gestión de outsourcers
Definición de métricas de Calidad
Benchmarking de proveedores
Definición de SLA
Apoyo en la elección de outsourcers (RFP)
Apoyo en la transferencia de conocimientos
Establecer una relación win-win con los proveedores, basándose en datos objetivos
« Let’s not do it your way or my way. Let’s do it the best way »
15
Gestión de Calidad de Software
• Implementación de un Centro de Calidad de Software
Objetivos, tareas y actores
Definición del catálogo de servicios
Infraestructura (interna/externa, SaaS/PaaS)
Comunicación: informar y publicar
• Implementación de un programa de Calidad de Software
Ayudar a sus proyectos (talleres, auditorias, etc.)
Evitar la regresión de calidad de su portafolio
Supervisar y controlar su propia deuda técnica (método Sqale)
« Ofrecemos un enfoque de calidad totalmente integrado en los procesos de gestión de proyectos, desde el RFP hasta la validación de los entregables y el despliegue en producción »
(Gaz de France – Quality Center)
16
• Implementación de una plataforma de Calidad de Software
Especificaciones - Apoyo a la elección de una solución (software open source o comercial)
Personalización de la plataforma técnica
Documentación
• Auditoría del nivel de madurez de Calidad de Software
« The tooling market should be a mass market , affordable , for every stakeholder, and in the lean culture . We need to bring out Quality measurement out of its expert's world »
(SonarSource)
Gestión de Calidad de Software
17
Software Quality Maturity Model
Nivel 1
Nivel 2 Detectar
Nivel 3 Prevenir
Nivel 4 Medir
Nivel 5 Optimizar
Co
mp
lejid
ad
Sin gestión de la calidad del software
Modo reactivo: auditorias, Quality Gate
Modo proactivo: Integración Continua, Deuda Técnica
Modo organizado : SLAs, Benchmarking, Cartografía, maturity assessment
Modo optimizado: gestión de porta-folio de aplicaciones, Gobernanza
Pro
acti
vid
ad
Reactivid
ad
18
Auditoría de madurez de Calidad de Software
Software Configuration management
Version control
Build Automation
Source Code Analysis
Unit testing
Continuous Integration
Automated Integration tests
Automated QA tests
Code review
Security & Architecture review
Automated deployment
Ejemplo de una Telco francesa
19
Gestión de la Calidad
• Auditoria de Calidad de aplicaciones
Muchos pueden hacer un análisis de código
El consultor proporciona respuestas o Qué: métricas, defectos, tendencias
o Por qué: investigar las causas de la mala calidad
o Cómo: remediar, con propuestas de planes de acción ...
o Cuánto: ... con diferentes escalas de costes / tiempo
« La mayoría de los directores de TI no saben que hacer cuando un proveedor proporciona código malo. ¿Por dónde empezar? ¿Qué medidas tomar? »
20
Quality Management
• Integración / Mejora Continua
Definición de procesos y herramientas
Personalización de la plataforma técnica
Documentación
• Auditoria de Rendimiento / Seguridad
Control de las mejoras prácticas de programación
Identificación de los defectos (tolerancia cero)
« Trabajar en integración continua es como ir desde el viejo oeste hacia el viaje a la luna»
(Responsable Qualité & Méthodes de un banco francés
21
Quality Management
• Quality Gate
Go/NoGo antes de QA / Producción
On demand / Independiente del proyecto
Cumplimiento de SLAs / Control de outsourcers
• Gestión de la Deuda Técnica
Reduzca su deuda / invierta en el futuro
Benchmark proyectos / outsourcers / tecnologías
Construir un tamiz para buscar las pepitas de oro
Método Sqale (www.sqale.org)
www.qualilogy.com
Qualilogy ayuda a las empresas en sus esfuerzos
para implementar y gestionar la Calidad de Software
Cualquiera puede analizar código
Qualilogy responde a sus preguntas
Qualilogy no es un distribuidor de software
Qualilogy es independiente