Diseño

Todo lo relacionado al diseño de interfaz de usuario, HTML5, CSS3, Arquitectura de información, Usabilidad, Jquery y más.

General

Opiniones sobre temas tecnológicos de actualidad y su influencia en el mundo de los proyectos TI.

Mobile

Un espacio donde podrás conocer de las nuevas tecnologías y tendencias en el fascinante mundo del desarrollo de aplicaciones móviles.

SQA

Espacio dedicado a todo relacionado con la gestión de la calidad en el desarrollo de Software.

TI

Artículos sobre proyectos TI, nuevas tecnologías y buenas prácticas, gestión de proyectos TI, desarrollo de software, etc.

Inicio Blog Imagemaker
El Blog Oficial de IMAGEMAKER
Domingo 21 de Setiembre 2014

Importancia del Concepto de Calidad en una Empresa

Publicado hace 841 días por Imagemaker

¿Es importante la calidad?
El aseguramiento de calidad juega un rol esencial en cualquier proceso de desarrollo, y el desarrollo de software no es la excepción.

A pesar de que algunas compañías de desarrollo de software pueden considerar la calidad como una actividad adicional y muy a menudo disminuir su importancia, una gran cantidad de ejemplos de éxito nos pueden demostrar que un aproach “ad hoc” a la calidad de software, incluyéndola desde el inicio como parte del ciclo de vida, puede ser de alta trascendencia.
Para muchas personas, este concepto de calidad puede parecer alejado de la vida cotidiana, pero es algo con lo que se lidia diariamente.

Quizás el ejemplo más simple y genérico de calidad es una receta de cocina. Tenemos la receta, que nos sirve para preparar un plato en particular. Ésta describe los ingredientes y los utensilios que se necesitan para prepararlo, el método para cocinarlo, cómo probarlo cuando esté listo, cómo servirlo, guardarlo, y por último cómo conservarlo. Cocinar según una receta, genera mejores y más consistentes resultados. Lo mismo se aplica al usar sistemas en distintas situaciones, como por ejemplo en el desarrollo de software.

Cuando nuestro computador nos muestra un mensaje de error no controlado, o se congela la pantalla por alguna razón, estamos ante un problema de calidad de software. Lo mismo ocurre en nuestros teléfonos móviles, en las pantallas de vuelos de los aeropuertos, cajeros automáticos o incluso en un restaurante, cuando intentamos pagar utilizando un terminal de cobro y no es posible debido a un error o bloqueo del sistema.

Es muy probable que hayamos sufrido estos problemas más de alguna vez, perjudicándonos directamente: Pérdidas de tiempo, de dinero y retrasos, generando estrés y afectando nuestro estado de ánimo. Lamentablemente, estos problemas pueden llegar a ser mucho más graves, influyendo negativamente en sistemas críticos, cuyos fallos pueden llegar a provocar pérdidas económicas de gran envergadura, o incluso comprometer vidas humanas.

Metodologías ágiles en el proceso de desarrollo de Software

La falta de una buena práctica de calidad de software estructurada y sazonada significa fracasar en cumplir con los requerimientos y expectativas de los clientes, lo que conlleva a una exasperación por parte de los mismos a causa de las fallas, y por último, a una mala propaganda de forma viral para la compañía.

Para lograr todo esto, es necesario contar con una metodología ordenada, ágil, efectiva y eficiente. Las buenas prácticas nos ayudan a estructurar y normar el proceso de desarrollo, de tal forma que el sistema de trabajo se hace más práctico y en pocas palabras se hace mucho más fácil detectar falencias y responder rápidamente en momentos de contingencia. Es importante hacer notar que cualquier proceso, por muy estructurado que sea, necesita de un ambiente flexible para sobrevivir.

Uno de los métodos ágiles más utilizados es el TDD (Test Driven Development) o Desarrollo Guiado por las Pruebas. Consiste básicamente en realizar tests automatizados que verifiquen que las pruebas fallen, previo al desarrollo de una funcionalidad. Luego, se codifica con el fin de hacer que las pruebas pasen satisfactoriamente, y por último, se refactoriza el código escrito.  El objetivo de esta metodología es generar un código limpio que funcione desde el comienzo, transformando los requerimientos en pruebas unitarias.

En el siguiente flujo, se muestra el funcionamiento de TDD.

Algunas de las ventajas de implementar TDD, son por ejemplo evitar tener que usar el depurador o “debugger”, como también eliminar código muerto aplicando refactoring, lo que implica menos líneas de código. El resultado de esto es  eficiencia en el proceso de desarrollo, creándose un código más legible, óptimo y fácil de mantener.

La metodología “Fail Fast” por otro lado, nos entrega un sistema de pruebas inteligente, poniendo énfasis en probar por medio de iteraciones cortas, funcionalidades troncales recién desarrolladas, con el objetivo de hacer que la aplicación falle lo antes posible. De esta forma se evita que errores invalidantes/bloqueantes salgan a flote en etapas posteriores del proyecto, lo que causa pérdidas de tiempo y esfuerzo al trabajar dos o más veces los productos para eliminar defectos, y dinero, al reponer o compensar al cliente for las fallas en los mismos, llevando eventualmente al fracaso.

La calidad como concepto colectivo

Muchos cometen el grave error de asignar exclusivamente la responsabilidad de calidad al área de QA. La calidad es responsabilidad de todos, no obstante, el área de QA tiene la obligación de generar la idea de “Cliente Interno” en la mente de cada una de las personas que componen la empresa.

William Edwards Deming aportó  una serie de principios, los cuales debemos adoptar como una filosofía de vida para una empresa ya sea pequeña, mediana o grande, o simplemente llevarlos a cabo diariamente:

1.- Crear constancia de propósito.
Para mejorar productos o servicios. Se basa en crear un plan para permanecer dentro del negocio ya sea a corto, mediano o largo plazo.

2.- Adoptar la nueva filosofía.
Para poder entrar a la nueva era económica, estableciendo un liderazgo dirigido al cambio. Esto hace que las empresas que vivan con la cultura del error, no le puedan asegurar a la compañía su permanencia en el mercado. Los artículos con defectos no son gratis, y puede ser más costoso corregir un error, que producir un artículo nuevo. Sabemos que el cambio de cultura no es fácil y lleva tiempo, pero sólo la alta gerencia puede lograrlo.

3.- Terminar con la dependencia de la inspección.
La inspección siempre es tardía, ineficaz y costosa. El nuevo objetivo de la inspección es la auditoría para poder detectar cambios en el proceso y comprobar medidas preventivas.

4.- Terminar con la práctica de decidir negocios con base en los precios.
No se puede permitir que la competitividad de un producto esté basada únicamente en su precio, menos ahora que las necesidades del cliente se basan en la confiabilidad de los productos.

5.- Mejorar el sistema de producción y de servicios.
Esto debe hacerse de una forma constante y permanente para poder mejorar la calidad y productividad, y así mismo reducir los costos y de la misma manera reducir los errores y desperdicios en los productos.

6.- Entrenamiento del trabajo.
Uno de los principales problemas del entrenamiento y la supervisión, es que no se han fijado estándares para poder medir cuál es un trabajo aceptable y cuál no lo es, porque este estándar solo se ligaba con la necesidad del supervisor de obtener determinada cantidad de producción sin importar la calidad del producto.

7.- Adoptar e instituir el liderazgo.
La supervisión es responsabilidad de la administración, y debe eliminar las barreras que le impidan al trabajador desarrollar sus actividades con orgullo.

8.- Eliminar temores.
El miedo irá desapareciendo en la medida que la administración (incluyendo a los gerentes) se vuelva un apoyo para sus trabajadores e inspire confianza en ellos.

9. Romper las barreras entre los departamentos.
La comunicación entre las distintas áreas de la empresa debe ser óptima y cercana, conociéndose entre ellas, siendo capaz de detectar qué es lo que le afecta a cada una.

10.- Eliminar slogan.
Es muy importante eliminar todo tipo de slogan que implique la perfección o un nuevo nivel de producción, sin proponer cómo lograrlo. El proponer metas sin un método para llegar a ellas, producirá más efectos negativos que positivos.

11.- Eliminar estándares.
Normalmente estos estándares y metas numéricas vienen a sustituir al liderazgo.

12.- Eliminar barreras que impidan alcanzar el orgullo al trabajador.
Remover barreras para apreciar la mano de obra y los elementos que privan a la gente de la alegría en su trabajo. Esto incluye eliminar las evaluaciones anuales o el sistema de méritos que da rangos a la gente y crean competición y conflictos.

13.- Instituir un activo programa de educación.
Es necesario capacitar a las personas. El proceso de capacitación y auto mejora es sencillo, y puede hacerse en todos los niveles.

14.- Implicar a todo el personal en la transformación.
La administración necesitará la orientación de algún experto, pero éste no asumirá la responsabilidad que le compete a la administración. El cambio es trabajo de todos.

Estos 14 puntos nos explican cómo transformar desde las raíces a una empresa con un enfoque erróneo, en una empresa con una visión de unidad y calidad.

Un proceso de QA maduro y ágil durante el ciclo de vida del desarrollo de software (CVDS), sumado a un ambiente de trabajo propicio, buenos líderes y valores, asegura un producto final de alta calidad, lo que consecuentemente se traduce en trabajadores felices, clientes felices, accionistas felices y altas tasas de monetización. Este hecho prueba  la importancia de la calidad de software, y de la calidad en general, incluso al preparar una receta de cocina.

Escrito por:
Sebastián Olavarría H.
@Solavarria
para Imagemaker

Categorías: General, SQA, TI

Escriba un comentario