Presentación dada en conjunto con Virginia Cuomo (http://ar.linkedin.com/in/virginiacuomo) en la Cámara de Empresas de Software & Servicios Informáticos (http://www.cessi.org.ar/) sobre metodologías ágiles e ISO
1. ISO 9001 y métodos ágiles de desarrollo de Software ¿Es posible cumplir con requisitos formales, sin perder agilidad y flexibilidad? Virginia Cuomo Diego Ferreyra
2. .2 Agenda Contexto actual Repaso de la filosofía Ágil Repaso de ISO 9001 Nuestra experiencia Preguntas y Respuestas
3. .3 Cambios en el mundo de los negocios. Ciclos de productos cortos Clientes fluctuantes La Competitividad implica Servicios y productos de calidad Valor diferencial constante Adaptación Foco en satisfacción y fidelización de Clientes
4. .4 SATISFACCION DEL CLIENTE Métodos Ágiles Estándares de Calidad ¿Sólo código? ¿Documentación y Burocracia? ¿Mitos? ¿Creencias? ¿Verdades?
5. .5 ¿Qué “motiva” a las empresas? SATISFACCION DEL CLIENTE Métodos Agiles Estándares de Calidad Valor al Cliente Foco en la gente Conocimiento colectivo Automatización Niveles de planificación Retrospectivas periódicas Equipos multidisciplinarios Autogestión Adaptación Calidad del proceso Calidad del producto Compromiso organizacional Conocimiento compartido Formación del personal Mejora continua Registros auditables
6. .6 ¿ Se puede implementar metodologías ágiles bajo un estándar de calidad sin perder “agilidad”?
7. .7 ManifiestoÁgil Individuos e interacciones sobre procesos y herramientas Software funcionando sobre documentación extensiva Colaboración con el cliente sobre negociación contractual Respuesta ante el cambio sobre el seguimiento de un plan Esto es, aunque encontramos valor en loselementos de la derecha,valoramos más los de la izquierda.
8.
9.
10. .10 ¿Prácticaságiles con foco en calidad? Ciclos de vida iterativos incrementales Programación de a pares. Desarrollo conducido por las Pruebas (TDD) Diseño simple e incremental Integración Continua Testing automatizado Estándares de código Refactorización Retrospectivas
11. ¿Y por qué los estándares de Calidad? Modelos reconocidos que reúnen requisitos mínimos en busca de la excelencia dentro de una organización. Necesidad de “compararse” frente a la competencia para mostrarse ante sus potenciales clientes con sus similitudes y sus “diferenciales”. Establecen parámetros para la Mejora continua. Otros beneficios (por ejemplo, impositivos..) .11
35. .21 ¿Dudas, consultas, sugerencias? ¿Quéejemplos les gustaríatratar? ¿Cómoimplemento en mi empresalasretrospectivas? ¿Quéregistrosgeneropara la revisión, verificación y validación del diseño y desarrollo? ¿Cómoevidencio la planificación?
36. .22 Espacio para Consultas ¡Muchas Gracias por su atención! Lic. Virginia Cuomo Corporate Process Manager virginia.cuomo@huddle.com.ar http://ar.linkedin.com/in/virginiacuomo Diego Fidel Ferreyra Development Center Manager Diego.Ferreyra@huddle.com.ar http://ar.linkedin.com/in/diego2f
37. Huddle Group S.A. Enterprise Technologies | Products & Services info@huddle.com.ar · www.huddle.com.ar Oficinas en Buenos Aires Pasaje Carabelas 344 · Piso 5 · C1009AAD · Ciudad de Buenos Aires · Argentina Tel.Fax.: (54.11) 5648.1300 Oficinas en Bahía BlancaDonado 74 · Entrepiso 3 · B8000iYB · Bahía Blanca · Buenos Aires · Argentina Tel.Fax.: (54.0291) 400.7070 HUDDLE GROUP S.A. IS A MICROSOFT GOLD CERTIFIED PARTNER
Notas del editor
Vir
VirLa democratización de la tecnología, las finanzas e información, la globalización, etc., han provocado que las empresas necesiten responder al mercado en plazos más cortos con productos cada vez más innovadores que tengan valor diferencial respecto de sus competidores, de manera que la empresa pueda incrementar los resultados de rentabilidad basándose en variables apreciadas por el mercado (calidad, servicio, atención al cliente, etc.) (Click)Esto hace que sea necesario un replanteo tanto del “Como hacemos” las cosas, hasta del concepto de “Calidad” que buscamos, y siempre enfocados en un concepto en común que es lograr la “Satisfacción del Cliente” (click a la siguiente diapo)
Vir
D2F
D2FLas Metodologías ágiles surgen con foco en ayudar a las empresas a que puedan responder a las necesidades del mercado en forma más rápida (ciclos cortos y productos de valor).Los estándares de calidad buscan la mejora continua de los productos y servicios, muchos de ellos a través de procesos.Para comprender mejor como estos dos “aparentes mundos distintos” pueden convivir, haremos un repaso de las características principales de ambos. (click a la siguiente diapo).Luego los vamos a invitar a analizar ISO 9001:2008 en relación a las metodologías ágiles y su implementación conjunta.
D2FLas metodologíaságiles se basan en lo que se conocecomo el Agile Manifesto, paradefinir los valoresquetendránlasprácticas y formas de trabajoque se sugieren.Generalmente, los talibanes del agilismo se centran en decirque los estándares de calidad son demasiadoburocráticos y que se genera demasiadadocumentaciónque el cliente no vecomo valor.(CLICK)Perosianalizamos el manifiesto en detalle, tambiénnos dice que hay valor en todalasactividades, pero se enfocan en algunas de ellas. Por lo tantoesimportanteconsiderarque no se apuntasolamente a escribircódigo sin aplicarprácticasque se enfoquen en la calidad. Al contrario, muchas de lasprácticas de estasmetodologíasestánorientadas a la calidadespecíficamente (porejemplo, XP).No menosprecian los procesos, sino que sostienen que éstos, sin las personas con los conocimientos técnicos y actitud adecuada, no conducen a resultados positivos.No menosprecian la documentación, sino que sostienen que sólo es útil aquella documentación que aporte valor en forma directa al producto. Los prototipos son de especial relevancia en este tipo de metodologías.Se asume que el Cliente es parte del equipo, integrándose y colaborando de similar manera a cualquier miembro del equipo.Asume planificación continua con total adaptación a los cambios, más que planificación y seguimiento de dicho plan. Se planifica a gran nivel, esquemas de releases sin bajar a detalle del alcance, comprendiendo que eso seguramente cambiará con el tiempo.
D2FTodas las metodologías comparten el Manifiesto que está sustentado en un conjunto de principios (Click para ir viendo los distintos principios).Los principioságilesempujan a centrarse en lo que el clientenecesita, mostrandomuyperiódicamente lo construidoparaque el clientetenga la posibilidad de verconcretamenteunasolución y decidircómocontinuar. Esto se lograpormedio de lasdemostracionesque se realizan al final de cadaiteración, comoasítambién a la comunicacióndiariaque se impulsa en el equipo. Estopermite al clientedefinir el camino a seguir, en base a susnecesidades y el descubrimientoque se realiza a medidaque se avanza. Y es super importante no resistirse al cambio, esalgo natural quesucede y que no puedeevitarse. Y paralograr la transparencianecesariarespecto a lo avanzado y cómo se afectará el avance en base al cambioquesurje, es fundamental la comunicacióndiaria, que genera un lazo de confianza y respeto con el cliente.Con respecto a la gentequeparticipia, el foco se pone en que todos comprendanque son un solo equipo. El del proveedor y el del cliente, yaquesiunofalla, todos fallan.La comunicación se vereforzada, planteando la importancia del trabajocolocalizado y en prácticas tales comolasreunionesdiarias, demostraciones o incluso en la programación de a pares, queimplicauna gran comunicación entre las personas quetrabajan en conjuntosobreunafuncionalidad.Sobre estos principios, cada metodología implementa su conjunto de prácticas en función de su fin (Ejemplo: SCRUM está orientada a la gestión e implementa prácticas que permitan gestionar el trabajo bajo estos principios; XP está orientada a las prácticas de Ing. de Software, por lo que cual promueve estos principios con foco en la calidad del software y el proceso utilizado para construirlo).Caramba…. Dije “calidad del producto y calidad del proceso”????
D2FCon respecto al valor entregado al cliente y cómomedir el avance de un proyecto, se planteaque el únicoindicadorválidoes el software construido y funcionandoque el clientepuedeponer en producción. Este quizás sea uno de los puntosquemás se plantea en contra de los estándares de calidad, debido a que un documento no es en general vistocomo valor real que el clientepercibe. Lo importantequizásespensarcómoestoaporta al proyecto y cómopuedesergenerado de la maneramáslivianaposible.
D2FDentro de las metodologías ágiles hay varias prácticas que enfatizan directamente al mantenimiento de la calidad. Ninguna en realidad es algo nuevo, ya que en realidad ellas se enfatizan a partir de haber observado patrones comunes en equipos exitosos previo a la definición de lo que se conoce como XP. Lo novedoso quizás es enfatizar en ellas tan fuertemente. La programación de pares es una práctica muy discutida, debido a que la “memoria muscular” tiene naturalmente a decirnos que no. Si bien nada debe ser tomado como una receta mágica, en muchos casos demostró que se mejora considerablemente la calidad de lo desarrollado. Esto es quizás por tener alguien revisando al instante lo que se está construyendo y con quien diseñar en conjunto a cada instante. En pocas palabras, si estoy solo puedo animarme a dejar pasar algo ;-), pero si hay alguien viendo lo que hago, por lo menos algo de vergüenza me va a dar!! O por lo menos será mi cómplice :-) Con respecto al diseño y TDD, un compañero hacía una buena analogía hace unos días. Comentaba que al comenzar a programar, la mayoría de la gente se centra en escribir código sin un mínimo diseño. Con la maduración, uno se da cuenta de lo importante de esta tarea. Con el testing unitario es algo similar. Una vez que se comienza a trabajar con esto, es inconcebible pensar cómo tantos años de mi vida pude haber trabajado sin realizar esa práctica. Por lo tanto el impulsar estas prácticas se debe no sólo a que se consideran fundamentales para lograr una mejora calidad de lo construído, sino también a que se las considera algo básico. El desarrollo conducido por las pruebas pone también de maniefiesto la importancia de validar tempranamente. Como bien se sabe, cuanto más tardíamente se detecte un bug, más costoso es. También contribuye a asegurar la comprensión de los requerimientos del cliente de manera explícita, logrando así también su satisfacción. Esto también implica un cambio mental importante en las tareas de desarrollo, ya que considera el testing como una actividad intrínseca a la escritura de código y no una etapa posterior. Los estándares de codigo y la refactorización, apuntan fuertemente a lograr un código de alta calidad. La refactorización casi que pone en tela de juicio el honor de cada uno al verse obligado a corregir código que uno ve que puede mejorarse :) Esto depende en amplia medida de la automatización de las pruebas y de la integración continuaY por último las retrospectivas. Esta actividad se centra en mejorar iteración tras iteración el trabajo que uno hace. Qué mejorejemplo de la mejora continua que se intenta lograr a partir de enfocar tan fuertemente las prácticas en la calidad del producto.
VirBuscamos la excelencia dentro de una organización porque es la base para lograr una empresa “perdurable en el tiempo” que genere productos y servicios que satisfagan las necesidad del mercado y sus clientes. Los estándares de calidad son herramientas que facilitan y conducen a la organización en búsqueda de esa excelencia. Entre los estándares de CALIDAD más conocidos en la industria de software tenemos:CMMI concebido para procesos de ingeniería de software, aunque también incluye prácticas de gestión organizacional que facilita la institucionalización de las prácticas a implementar.ISO 9001:2008 de propósito general pero últimamente muy implementado en la industria de software. Orientado al proceso de producción pero dentro de un contexto organizacional completo. Ambos orientados a procesos para mejorar la calidad de los productos generados, ya que se conciben sobre la famosa frase de que la “calidad del producto está fuertemente influencia en la calidad del proceso empleado”.3. ISO 9126 con foco en la calidad del producto de software. Trabaja sobre atributos del producto más que sobre el proceso utilizado y otros asociados a la calidad de servicio como por ejemplo ITIL.Se debe tener en cuenta que muchas veces la complicación no es el estándar en sí mismo sino la rigurosidad del método de evaluación, como por ejemplo SCAMPI para CMMI.El foco de esta presentación es mostrar las características a tener en cuenta para una implementación bajo ISO 9001, por lo que haremos un repaso de los aspectos más relevantes de este estándar.
Vir
VirNecesitamos registros “auditables”Necesitamos procesos escritos…. Pero… - necesitamos procesos para todo??- cómo escribimos los procesos ??Qué nos pide la ISO 9001:2008 como “documentación obligatoria”??Política de Calidad (política general de la organización, sustentada en la Misión y Visión de la Organización) Objetivos de Calidad (objetivos medibles que permiten a la organización conocer como recorren el camino desde la Misión hacia la Visión, son objetivos de negocio y deben mostrar un compromiso con la mejora continua, pero no porque tienen que medir “bugs” y ver que la cantidad baja, sin porque deben estar construidos sobre la base de que deben favorecer la mejora de la organización como tal). En general es el punto que más cuesta implementar en una pyme, recién después de los tres primeros años se puede comenzar a trabajar en gestionar bajo “ciertos” indicadores. Deben ser consistentes con la Política General. Manual de Calidad, describe el Sistema de Gestión en su totalidad. Procedimientos Registros…..
D2FVolvamos al punto de inicio…..Quéopinan? Esfactiblepensar en unaconvivenciasana?
D2FSi vemos los principales o conceptos de cadauno de estaaproximaciones, encontramosque hay variospuntosque se llaman de distintamanera, perotienen un mismoespíritu o los abordandesdedistintasperspectivas, sin restringir la otravisión.Porejemplo, foco en la gente y recursoshumanos.
D2F, Unión de 2 mundos.La aproximación ágilsurgen con foco en ayudar a las empresas a que puedan responder a las necesidades del mercado en forma más rápida (ciclos cortos y productos de valor).Los estándares de calidad buscan la mejora continua de los productos y servicios, muchos de ellos a través de procesos.Si pensamosqueparapodergenerarmejoresproductos, debemosiraprendiendo de lo queyahemosconstruido, optimizandolastareas y garantizandoquesatisfacerá a nuestrosclientes, estamosdiciendoquécosas son necesariasparadar valor a nuestrosclientes. En definitiva, hablamos de conceptossimiliares.
Vir1. Pensar los procesos con un nivel de abstracción con foco en las prácticas base promovidas por la organización ,y deje la forma de implementarla a elección del equipo acorde a las características específicas del proyecto, cliente, producto, tecnología y equipo. Aplicar misma filosofía que el estándar de calidad, plantear el QUE y no el COMO. Trabajar el concepto de adaptación del proceso acorde a las necesidades específicas del equipo, proyecto y cliente.2. Foco en el equipo.3. Los lenguajes formales favorecen la adhesión al proceso o quitan las ganas de leerlo? Sabemos a qué publico está dirigido el proceso de manera similar cuando especificamos un requerimiento?
Vir1. Pensar los procesos con un nivel de abstracción con foco en las prácticas base promovidas por la organización ,y deje la forma de implementarla a elección del equipo acorde a las características específicas del proyecto, cliente, producto, tecnología y equipo. Aplicar misma filosofía que el estándar de calidad, plantear el QUE y no el COMO. Trabajar el concepto de adaptación del proceso acorde a las necesidades específicas del equipo, proyecto y cliente.2. Foco en el equipo.3. Los lenguajes formales favorecen la adhesión al proceso o quitan las ganas de leerlo? Sabemos a qué publico está dirigido el proceso de manera similar cuando especificamos un requerimiento?
VirLanorma exige registros solo para aquellos requisitos que son considerados clave para el SGC.Si analizamos bien la norma, encontramos que para el capítulo 7 donde se aplican las prácticas de ingeniería, se encuentran 11 requisitos que establecen la necesidad de mantener registros.
VirLanorma exige registros solo para aquellos requisitos que son considerados clave para el SGC.Si analizamos bien la norma, encontramos que para el capítulo 7 donde se aplican las prácticas de ingeniería, se encuentran 11 requisitos que establecen la necesidad de mantener registros.
Vir Revisión del diseño y desarrollo: revisiones de código, revisiones de arquitectura, revisiones de requerimientos. (según proyecto y seniority del equipo identificamos cuales aplicamos y cuales no).Verficación del diseño y desarrollo: testing unitario automático favoreciendo la automatización del proceso. Validación del diseño y desarrollo: testing funcional, de integración y test de aceptación, para cual contamos con un proceso documentado según lo pide ISO (Control de producto no conforme). Cuando actividades como estas no se pueden aplicar, el equipo analiza los riesgos, se identifican y monitorean a lo largo del proyecto. Asimismo en las retrospectivas se analiza las cosas que se pueden cambiar.