La calidad como objetivo y necesidad

Moving to English this page is a hard work for me. It will be done, but, in the meantime, use Google for a basic tranlation.

La mejora de las prácticas es un objetivo largamente más amplio que la construcción de software. Aquí se hará referencia básicamente a las mejoras aplicadas al Software. No soy un especialista: se trata de atender las recomendaciones de quienes sí lo son, y efectuar una aproximación. Entender el problema siempre es el primer paso para una vía de solución. Sin embargo, es necesario comprender también que ningún proceso de mejora de la calidad del software es posible, si la empresa en conjunto no tiene objetivos concientes de mejora en sus procesos, porque no acompañará en el tiempo los cambios en su área de TI. Mi opinión es que cada integrante debe pensar activamente el conjunto, o nada resultará bien. Por eso, creo que las herramientas de TQM deben ser estudiadas por los desarrolladores de software también, aún cuando algunas cuestiones parezcan algo apartadas

Los enemigos de los buenos resultados son múltiples: He visto esfuerzos valiosos desperdiciados, dinero malgastado, frustración y descreimiento por causas que debieran y pudieran evitarse. Más aún, algunos buenos esfuerzos son ahogados por fenómenos no contemplados en el conjunto de la organización, o e un área fuera del alcance de TI. Esto es particularmente cierto en nuestro ámbito latinoamericano, donde se agregan elementos propios del nivel de desarrollo de los negocios, a problemas típicos de cualquier empresa:

La comprensión de la importancia de aplicar conocimiento e inteligencia a los procesos de negocios, deja mucho que desear en Latinoamérica. Pero ya es una cuestión de supervivencia, antes que la ceguera deje lugar a la desaparición. No será posible conseguir un contrato, no será posible competir con un proveedor extranjero, y finalmente veremos nuestro negocio languidecer, quizá reemplazados. El informe de evolución de implementaciones de CMM del SEI, muestra una escasa participación de Latinoamérica. Por supuesto, no puede ser el único indicador a usar para medir el esfuerzo en aplicar conocimiento y mejorar la calidad en los procesos, pero es que se trata de uno que es consultado en el momento de definir contratos. No quiero decir con ésto que se deba dar "una mano de pintura" a las viejas prácticas, sino que ya no se puede pretender competir usando un estilo artesanal. En fin, pensar así es otra vieja práctica.... (A propósito de esto, una polémica entre consultores norteamericanos e indúes, donde los americanos cuestionan la veracidad del nivel CMM de muchas empresas indúes). Es de destacar la asociación chilena para el mejoramiento de los procesos del Software, SPIN Chile, trabajando en común con el SEI. Tres grupos de empresas en Argentina, se asociaron en busca de obtener los niveles 2 y 3 de CMMI, en la ciudad de Tandil (básicamente IFS), el Polo Tecnológico de la ciudad de Rosario, que creó allí un grupo, y dentro del Cluster Tecnológico de Cordoba, enfocado en simplificar recursos, compartir conocimientos, y proyectarse al exterior. (Entre estas empresas está Prominente, que fuera pionera en el uso de Plex en Argentina). El mayor logro reciente es la obtención del nivel 5 de madurez por parte de la empresa colombiana PSL, que estimuló el impulso de estas prácticas dentro del país. Otro nivel 5 fue obtenido por el grupo indú Tata, para su filial uruguaya, a fines de 2003. Es también destacada la existencia de grupos de afinidad en Brasil. Otro sitio Spin activo es el de Costa Rica. Una lista completa de ellos la podrá ver en el sitio SPIN del SEI. Encontrará aquí referencias a los esfuerzos en perfeccionar los procesos de desarrollo del software en Chile, Brasil, México, Argentina, Uruguay y otros paises de América Latina.

Podrá ver que el tema de la calidad aquí mencionado está estrechamente vinculado con la mayoría de los abordados en los restantes apartados: La definición de procesos de administración de los cambios al código, el establecimiento de políticas concientes al manejo de la configuración, el uso de normas de diseño y programación, el uso de una arquitectura orientada a Modelo (MDA), las referencias a las métricas, son piezas que contribuyen a la mejora continua, a lograr un resultado más confiable en nuestro trabajo. Probablemente, la vinculación entre distintas áreas esté mejor expresada en las investigaciones y áreas de trabajo del SEI: Su visión se ocupa no sólo del proceso de construcción del software, (desde el punto de vista de la empresa, el equipo d desarrollo, o cada persona) sino de la evaluación de las arquitecturas, de la adquisición, hasta la definición del mantenimiento de líneas de productos (SPL).

Dónde puede orientarse?

Las metodologías
CMM (Capability Maturity Model) El modelo de madurez de capacidades, puede avanzar en su conocimiento en el sitio de la Universidad Carnegie Mellon. Otras áreas de trabajo del SEI, vinculadas y recomendadas para analizar y aplicar o emular, son el estudio de aplicación de medición, análisis y evaluación (SEMA), la construcción de un equipo (y personas) de alta performance, (TSP y PSP), la construcción de software como líneas de productos (SPL), o las guías para el proceso de adquisición de software.
La guia IDEAL, para SPI Una guia de usuario para la aplicación de mejoras de los procesos de software (SPI), recomendada por el SEI. (Conocida gracias a Felipe Guerrero)
CMM en español Breve sistematización en castellano del enfoque de mejora de la calidad en el Software
Asistente para la Evaluación de CMMI-SW Tanto la presentación, como la tesis de grado del Ing. Mario Luis Peralta, pueden constituír un auxiliar valios para cualquiera que quiera tener una gúia de trabajo al evaluar procesos orientado con CMMI. En sus palabras, "El sistema desarrollado en este trabajo es un asistente que facilita la evaluación de una organización de acuerdo al modelo CMMI, guiando paso a paso al usuario en la evaluación, y generando automáticamente las valoraciones de acuerdo a las reglas del método SCAMPI"
Breve Tutorial CMMI en castellano Roberto Canales Mora, en Adictos al Trabajo, desarrolla un brevísimo tutor de CMMI, aplicado a explicar la instalación de la herramienta CMM-Quest, con algunas referencias vinculadas. Si se lo propone, puede extraer más conclusiones de lo que parece.
CrossTalk, el sitio de The Journal of Defense Software Engineering Información, estudios y recursos de mejora de procesos de software basados en CMM, del Departamento de Defensa de Estados Unidos. Documentos Técnicos, y una larga lista de artículos en Mejora de Procesos, Métricas, Manejo de Configuración, Seguimiento de Defectos, Testeo, etc.
CMM, el modelo de In-madurez Un artículo que describe el modelo inverso, definiendo la inmadurez en los mismos niveles de "perfeccionamiento"
SPICE En palabras de su Web: SPICE es una iniciativa internacional importante para apoyar el desarrollo de un estándar internacional para la evaluación del proceso del software. El proyecto tiene tres metas principales: para desarrollar un bosquejo inicial de un estándar. Para conducir ensayos sobre el estándar. Para promover la transferencia de tecnología en el uso de evaluación del Proceso de Software. Iniciativa sustentada por el Software Quality Institute
SWEBOK:Una sistematización El trabajo del comité de Ingeniería de Software del IEEE, para sistematizar un cuerpo de conocimientos y prácticas recomendadas. En Swebok existe también una breve guía de interpretación que puede servir de aproximación. Wikipedia dedica también un artículo al SWEBOK, acotando algunas observaciones al alcance del cuerpo. Allí se puede encontrar un enlace a los comentarios críticos de Cem Kaner #1 y #2, que es útil leer.
TQM, una introducción El conjunto de nociones quizá más difundido. Gracias al enlace de Rick Craig, en su foro de Roundtables, llegué a este sitio con una buena síntesis de TQM, para conocer su alcance y evolución. Otra Introducción puede encontrarse en las lecturas de Ingeniería de Vanderbilt.
TQM (Total Quality Management) Existe un gran número de instituciones, consultoras y personas que trabajan sobre esta metodología. Para comenzar, una lista inicial puede ser ésta, originaria de la Universidad de Texas
The Quality Portal Lakshmi Daita desarrolla un portal sistematizando información sobre calidad (TQM, Six Sigma, normas ISO) que aporta definiciones, herramientas, y recursos en general, con la particularidad de estar en condiciones de ser leído en varios idiomas, incluyendo el español (no muchas ilusiones...sólo mediante Babelfish, y sólo luego de completar el cuadro de configuración).
El conjunto de recursos asociados a Edward Deming Recursos y escritos de Deming y continuadores en TQM
El sitio de Glenn Mazur sobre Calidad Total Valioso conjunto de recursos sobre TQM. Por ejemplo, la lista de sus trabajos publicados
El sitio de Integrated Quality Dynamics, Inc Esta consultora ofrece un excelente resumen introductorio al Manejo de Calidad, definiendo el área y detallando sus recursos
Recursos en la página de PathMaker PathMaker ofrece un buen conjunto de recursos, que incluyen referencias a los pensadores de la mejora de la calidad, artículos, referencias a metodologías, herramientas, y tipos de cartas de graficos.
TQM e ISO en España Portal de profesionales con áreas dedicadas a TQM e ISO, con recursos, artículos, empresas, foros sobre estos y otros temas
The Swiss Deming Institute
Smithers Quality Assessment (SQA) Consultora dedicada a la evaluación y certificación en normas de calidad. Ofrece una guía de términos del proceso de evaluación, y buen material sobre normas ISO y otras.
La página de Bill Casti Un caótico conjunto de enlaces, pero con excelentes aproximaciones en TQM, Ingeniería de Software y otros vinculados también a la auditoría
Los Poppendieck Sostenedores del "Lean Software Development", son precursores en la aplicación de las ideas de mejora japonesas en la industria estadounidense, adaptando Just in Time al modo de construír el software. Idealmente, llevaron su experiencia en el mundo de la industria, a la construcción del software.
Jurgen Schuldt: Calidad, Mejora Contínua Entre otros temas de Administración, Jurgen Schuldt desarrolla conceptos de Calidad, Mejora Contínua e Innovación. Una historia de la evolución de los conceptos de calidad. Ishikawa, Taguchi, Shingo, Juran.
Six Sigma El movimiento al cero defecto, en sus prácticas y recomendaciones. Orientado a la calidad en los procesos de manufacturas, no obstante puede ofrecer excelentes ideas, en tanto pensemos el software como artefacto de ingeniería, y no como un arte. Puede iniciar el hilo de conocimiento en la Academia Six Sigma, o en la Carlson School. Informit dispone de varios artículos y capítulos de libros dedicados a Six Sigma, de consulta abierta, para cualquier interesado. Requiere asociación (sin costo)
Tutorial de Six Sigma Un sitio dedicado a difundir los conceptos básicos de Six Sigma, que entrega más detalles del método de los que suelen estar a disposición pública. Promovido por Qi2, una consultora dedicada al mejoramiento de la calidad, y redactado por Michael G. White, miembro de PJ Associates, según anuncia en su sitio Qi2.
The Quality Digest/Six Sigma Publicación dedicada a calidad, en proceso de integrar a su sitio al sitio InsideSixSigma, el que aún puede ser consultado como dirección separada. Información, difusión de Técnicas, mención de casos de uso del método.
Curso de Six Sigma en el MIT En el marco del Open Courseware, el sistema de enseñanza abierta del Massachusett Institute of Technology, un curso sobre Lean/Six Sigma, que incluso puede calificar. Sus metas:
* Develop a broad understanding of Lean/Six Sigma principles and practices
* Build capability to implement Lean/Six Sigma initiatives in manufacturing operations
* Operate with awareness of Lean/Six Sigma at the enterprise level

Quizá le interese ver también el laboratorio en Ingeniería de Software, y el curso avanzado en Ingeniería de Software.
ISixSigma Portal especializado en Six Sigma, con información de empresas y consultores, foro, y un buen conjunto de recursos. Para destacar: Nuevo en SixSigma?, ubicándolo históricamente, explicando cómo difiere de TQM y Lean, describiendo sus recursos y posibilidades en general. Preguntas y Respuestas, abarcando variados aspectos del trabajo en un proyecto, la actividad de los actores, el uso de herramientas de cálculo, etc.
Sobre SixSigma y el Software, en particular una discusión acerca de la conexión entre SixSigma y CMMI . También de mucha importancia las referencias a software auxiliar y materiales de estadística de Six Sigma.
Robert V. Binder: Cuestionamiento a Six Sigma para Software El consultor R. Binder, dedicado especialmente a Testeo de Software, cuestiona la aplicabilidad de Six Sigma en el campo del software, en un artículo publicado por el IEEE. Su argumento es: ¿Puede un modelo de calidad de la industria de manufacturas ser aplicable para la construcción de software?.

Salvaguarda del IEEE:© 1997 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE

El SEI comenta Six Sigma Jeannine Siviy, en el sitio del SEI, comenta, evalúa y estudia cómo Six Sigma funciona, y cómo CMM/CMMI coinciden o encuadran el método. Incluye además referencias a otros materiales valiosos, como el de Dave Harrold, en CONTROL ENGINEERING.
SoftwareSixSigma Consultora dedicada al método. Además de sus productos y servicios, una colección de artículos aplicando 6S al software.
Las Normas ISO Invocadas y recordadas por todas las iniciativas precedentes, pueden ser consultadas en su sitio, entre otros
Todo relacionado: normas orientadas a la calidad del software The Software Productivity Consortium dedicó un estudio al análisis de estándares y proceso dedicados a la calidad en el software, y sus interrelaciones. El resultado es The Frameworks Quagmire, que es indudablemente útil para orientarse y entender la ubicación de los distintos estándares. Acceso a los papeles desde esta dirección.
The Quality Project Un excelente criterio para avanzar en la calidad, al mantener un pensamiento abierto, acercando buenas prácticas, y trabajando sobre cada área y cada escenario del proceso de creación de software.Es adecuado el enfoque de "The Quality Project", al hablar de "Programación orientada a la calidad".Aprecio su punto de vista amplio, no dedicado a la definición de reglas cerradas, rígidas, sino justamente lo contrario: un enfoque, un modo de acercamiento a cada área de nuestra actividad.
International Software Testing Institute Organización dedicada a obtener excelencia en el área de testeo del software. Actividad en Automatización de testeo, Métricas de testeo, Metodologías, Requerimientos, fases, proceso, etc. Soporte, Educación y consultoría. Un buen número de materiales, y enlaces a sitios especializados en Manejo de Test y seguimiento de errores.
Quality Search Consultora en Aseguramiento de la Calidad, con recursos de interés disponibles: Artículos y herramientas especializadas en testeo, control de cambios y otros.
ISTQB La organización International Software Testing Qualifications Board European Organization for Quality, especializada en testeo de software, ha desarrollado planes de evaluación de la calidad de quienes trabajan profesionalmente en este área. Existe disponible un Syllabus dividido en dos niveles de complejidad, destinado a servir de base de evaluación o examinación de profesionales. También es muy útil para ser usado como base de planificación y capacitación en testeo.
SQAtester Portal dedicado a SQA, con información de productos, noticias, y mucho material en el área de testeo, seguimiento de defectos, documentación, tips, metodologías, casos, historias. Un grupo de discusión asociado, en Yahoo.
GlobalTester El sitio de Jeff Nyman: Calidad, Métodos, Testeo, Manejo del Ciclo de Vida del Software, en el pensamiento de un practitionner, con más de diez años de experiencia en la industria.
IPL Software Empresa dedicada a Testing, con numerosos papeles disponibles dedicados a su especialidad. Testing en Orientación a Objetos, Unit Testing, inserción del test en el ciclo de vida, etc.
Qetest Además de promover sus herramientas para testeo, QE ofrece un conjunto de definiciones, referencias bibliográficas y herramientas dedicadas a testeo, entre ellas las de STORM
RBSC Technology Group Robert Binder, especializado en Testing, ofrece un buen conjunto de materiales y referencias, incluyendo un conjunto de patrones para el diseño de test, herramientas, artículos, y enlaces
...Y la verdadera cara de todo esto... ...en la ironía de Dilbert.

Foros y Grupos de Interés dedicados a Calidad
La Fabrica de Software Foro dedicado a Ingeniería de Software, con énfasis en Calidad, en castellano y basado especialmente en la Universidad Católica de Chile
Aseguramiento de la Calidad Grupo Yahoo dedicado fundamentalmente a Calidad, en castellano.
Software-Engineer.org Comunidad en Ingeniería de Software que, además de otros materiales, posee una numerosa comunidad de profesionales, académicos y estudiantes con abundante material relacionado.
SQATester Grupo de discusión dedicado a Testing, con alta participación y recursos disponibles.
QAForums Foro dedicado a Calidad: Testeo, Metodologías de Calidad, Seguimiento de Defectos, Mejora de los procesos, etc, con una gran cantidad de participantes.
The Elsmar Cove Discusión abierta sobre normas ISO, Six Sigma y Aseguramiento de la Calidad. Mas de doce mil usuarios registrados. Marc Elsmar ofrece también recursos y ejemplos en TQM e ISO, con algunos temas desarrollados suficientemente (Implementación de sistemas de manejo de calidad, análisis de fallas, reducción de leadtime, representaciones gráficas de conceptos básicos)

Sitios de Interés en Latinoamérica y España
SPIN Chile La organización Spin chilena, ya mencionada, con una guía de las empresas chilenas en proceso de certificación, y de empresas que prestan servicio en capacitación y consultoría.
Calidad.org Portal Latinoamericano de la Fundación Latinoamericana para la Calidad, dedicado especialmente a TQM, y a manejo de Calidad en todas las áreas, con participación de Argentina, Brasil, Colombia, y otros.
QAFactory Sitio de Pragma consultores, empresa dedicada a Consultoría en Calidad en Argentina y Chile, con un buen número de recursos disponibles, tanto en QAFactory como en Pragma. Propietarios de una herramienta de planificación de actividades de testeo. Un excelente grupo de investigadores dedicados a la calidad.
Lempert Empresa dedicada a la factoría de Software, certificada en ISO y en proceso de hacer una evaluación CMMI de nivel 2 o 3, participante del Cluster tecnológico Córdoba.
America XXI Empresa chilena con soporte de consultoría en CMMI, en condiciones de actuar como evaluador (SEI Authorized Lead Assessors).
TCS Iberoamérica El indú grupo Tata, instalado en Montevideo desde 2002, posee una evaluación de nivel 5 de CMMI desde noviembre de 2003. El grupo posee otra oficina de Desarrollo Global en Brasilia, y filiales o socios en Argentina, Chile, Brasil, Mexico, Colombia, Venezuela, y Perú. En Europa, en Madrid y Lisboa.
SPICE Ecuador El sitio de Alejandro Bedini, coordinador de SPICE en Chile, promotor de Spin-Ecuador y Colombia, consultor, académico y conferencista en CMM y calidad en modo amplio.
Tecnociencia, Informe sobre Calidad Tómelo como un enlace transitorio, pero muy útil, sobre calidad en general, con referencias y definiciones, en general acompañadas de bibliografía. Informe especial de Junio de 2004.
Calidad.com.ar Sitio sostenido por Ricardo Barca, con utilísima información sobre Gestión de la Calidad, especialmente en Normas ISO. Además de ofrecer tutores de varios aspectos de calidad, mantiene un directorio de instituciones Iberoamericanas gestoras de normas, e instituciones y consultoras de soporte.
PerfilGerencial.com Sitio dedicado a temas de negocios, con una página de información abundante en materiales de TQM y Normas ISO, varios de ellos basados en el sitio Calidad.org. Casos de aplicación sectorial.
Calidad del Software.com Sitio soportado por Caelum, consultora española en calidad del software, con información de gestión de calidad, de proyectos, de requisitos, de configuración, con artículos y noticias del sector en el ámbito hispanoamericano y general.

Un punto de vista diferente sobre el manejo de la calidad en el software es Extreme Programming, o los métodos Agiles en general. Agile representa un enfoque sumamente interesante, que puede combinar rigor con flexibilidad, aportando simplicidad y puesta en práctica de verdades clásicas. Sólo dos aspectos resultan difíciles de adoptar: La rotación en el abordaje del código de una función, llevada al extremo de algunos adherentes, en que cada dos o tres horas una función la toma otro desarrollador, puede ser contraproducente: Es muy saludable que todo un equipo conozca por trabajo directo cada función, ya que así se reduce mucho el riesgo que representa la pérdida de un integrante del equipo, pero reduce las posibilidades de que cada integrante piense su trabajo. Y ésto debe ser proporcional al tiempo en que rote.
El otro aspecto "difícil" es "pair programming". En este caso, la objeción no está en el método, está basada en nuestros recursos usuales: el desarrollador no suele ser un recurso abundante en nuestro medio, y resulta árduo, o imposible de defender, un esquema de trabajo a pares, salvo bajo circunstancias especiales. Por lo demás, cuando practiqué resultó sumamente útil especialmente para el integrante más novato, aunque puede generar impaciencia en el otro. Una crítica del metodo de programación por pares, extendido en estos argumentos, se puede encontrar en el libro de Stephens y Rosenberg, The Case Against XP (Un comentario en Methods and Tools).
Hay otro tipo de cotejo y revisión que puede jugar un papel igualmente útil, y quizá solo algo menos difícil de defender, que es la revisión de la calidad interna del código. Puede verse este tema discutido y defendido en el escrito de Lidor Wissocky.

Estos son algunos sitios donde puede encontrar investigación y discusión acerca de Agile y Xp:

Agile y XP, recursos
El escrito de Martin Fowler sobre esta metodología Quizá la mejor forma de acercarse a Agile y XP, sea esta discusión introductoria de Fowler, de la que existe una versión en castellano). Me resulta particularmente estimulante el encontrar aquí una visión que sea más crítica respecto a las variantes del UML.
Extreme Programming: A gentle introduction Exposición del método Comentada por Fowler, una clara introducción a XP, en modo gráfico, y en pocas páginas, junto con enlaces guiados a información relacionada
XP Magazine, extreme programming resources XProgramming logo Recursos disponibles, de Ron Jeffries y otros. Punteros a recursos (manuales, artículos de discusión enfocados en XP)
XP FAQs, de Jera Design Jera Logo Una buena mirada a XP enfocado desde distintos puntos de vista, comentando sus objeciones, y relacionándolo con otros esfuerzos, tales como el RUP de Rational Rose, el UML, y los principios de mejora encarados por CMM
OOTips, Object Orientation Tips, on XP OOTips Logo Xp en breve, con una descripción analítica de sus elementos constituyentes. Aquí puede extenderse siguiendo a los aportes de la organización en el modelado orientado a objetos
ObjectMentor Object Mentor Logo

Encontrará un buen número de recursos acerca de Agile y Extreme programming, junto con valiosas discusiones acerca de Patterns, UML y otros asuntos vinculados
Requiere un poco de paciencia para buscar.

XP en The Portland Pattern Repository -WIKI-WIKI Wiki Logo Como todas las Wiki, una oportunidad de colaborar en la discusión
Scott Ambler y Agile Modeling Ambler como Consultor de Ronin, integrante de Agile Modeling, y en su propio sitio de AmbySoft, desarrolla no solo los conceptos de Agile, sino polémicas ideas acerca de UML, los conceptos de Model Driven Architecture, tanto como directamente las nociones de Arquitectura de aplicaciones. Son recomendables, al menos para poner en foco sus fundamentos, sus artículos sobre MDA, UML, y estrategia de diseño.
XP en España Existe una organización al menos en España, dedicada a Extreme Programming y Agile
Foro de discusión Existe un activo y numeroso foro de discusión en Yahoo, con un buen repositorio de documentos disponibles.Yahoo Groups Logo
Un libro de capacitación Macau Productivity and Technology Center (CPTTM). Un equipo dedicado a la capacitación resume en un libro su experiencia en la preparación de desarrolladores entrenados en los métodos ágiles.