miércoles, 2 de mayo de 2012

Calidad Del Sotware y mitos del ingeniero

Calidad

La calidad en el desarrollo y el mantenimiento del software, se ha convertido hoy en día en uno de los principales objetivos estratégicos de las organizaciones, debido a que cada vez más, los procesos principales de las organizaciones – y su supervivencia - dependen de los sistemas informáticos para su buen funcionamiento.
El principal instrumento para garantizar la calidad de las aplicaciones sigue siendo el Plan de Calidad, el cual se basa en normas o estándares genéricos y en procedimientos particulares. 
Los procedimientos pueden variar en cada organización, pero lo importante es que estén escritos, personalizados, adaptados a los procesos de la organización y que se sean cumplidos. 
La Calidad del Software es resultado del movimiento global dentro del proceso de mejoramiento continuo de los modelos y/ o estándares de producción de sistemas de información y software especializado.
A la hora de definir la calidad del software se debe diferenciar entre la calidad del Producto de software y la calidad del Proceso de desarrollo. No obstante, las metas que se establezcan para la calidad del producto van a determinar las metas a establecer para la calidad del proceso de desarrollo, ya que la calidad del producto va a estar en función de la calidad del proceso de desarrollo. Sin un buen proceso de desarrollo es casi imposible obtener un buen producto. 
La Calidad del Software debe implementarse en todo el ciclo de vida del mismo. 



Aseguramiento
-  Son las medidas preventivas que se toman paso a paso durante un proceso para evitar que el resultado final no sea defectuoso
-  Diferente de Control de Calidad

  • No es solo la Revisión al final del proceso
  • No es solo enfocado al cliente


Modelos De Calidad
Son aquellos documentos que integran la mayor parte de las mejores prácticas
Proponen temas de administración en los que cada organización debe hacer énfasis, 
Integran diferentes prácticas dirigidas a los procesos clave. Permiten medir los avances en calidad




Estándares de Calidad
Son aquellos que permiten definir un conjunto de criterios de desarrollo.
Guían la forma en que se aplica la Ingeniería del Software. 
Suministran los medios para que todos los procesos se realicen de la misma forma
Son una guía para lograr la productividad y la calidad


Modelos y Estándares de Calidad
El objetivo es implantar el Modelo o Estándar de Calidad del Software adecuado y aplicable a las características de la empresa de que se trate. 
La base para diseñar e implantar un buen Modelo o Estándar de Calidad del Software es conocer profundamente las características y necesidades de la empresa que lo aplicará y los deseos y pretensiones de sus clientes actuales y potenciales
Es necesario que todos los elementos del Modelo o Estándar de Calidad se estructuren en forma tal que permitan un control y aseguramiento de todos los procesos involucrados con la calidad.


Estructura de un Modelo de Calidad de Software


Factores de Calidad: representan la calidad desde el punto de vista del usuario y son las características que componen la calidad. También se denominan Atributos de Calidad Externos


Criterios de Calidad del Producto: Estos criterios son atributos que, cuando están presentes, contribuyen al aspecto de la calidad que el factor asociado representa. Se trata de una visión de la calidad desde el punto de vista del producto de software. También se denominan Atributos de Calidad Internos. 


Métricas del Producto: cuales son medidas cuantitativas de ciertas características del producto que, cuando están presentes, dan una indicación del grado en que dicho producto posee un determinado atributo de calidad. 



Atributos De La Calidad De Software

  • Cumplir con los siguientes atributos:
  • Seguro, Fiable, Tolerante a fallas
  • Comprensible, Fácil de usar
  • De complejidad baja,
  • Fácil de aprender a manejar
  • Mantenibilidad
  • Fácil de probar
  • Auditable
  • Extensibilidad
  • Homogeneidad, Adaptable, Modular, Reutilizable
  • Eficaz, Preciso, Exacto
  • Compatible, Portable y Acorde al contexto Tecnológico vigente
  • Viable financieramente (Costos de Adquisición y Mantenimiento Vs Beneficios en generación de Valor)
Cual Es La Necesidad Que El Software Debe Satisfacer
  1. Ser el medio (herramienta) que permita contribuir a “poner en orden la organización”
  2. Que problema puede resolver:
  • Mejor gobernabilidad de los procesos de negocio
  • Mejorar el ambiente colaborativo y los Niveles de Satisfacción de sus Stakeholders
           •Clientes
           •Accionistas
           •Empleados
           •Aliados de Negocios
           •Proveedores
  • Métricas (Indicadores de Desempeño)
  • Posición Competitiva

Propósito Del Software
Mejorar la productividad de las organizaciones y los negocios.
Mejorar la calidad de vida del ser humano (Contrarrestar lo tedioso, riesgoso, incomodo, etc)



Panorama Mundial De La Ingeniería Del Software

  • Costo de $(1 ingeniero USA) = $(2.5 ingenieros Colombianos) = $(5 ingenieros de India) = $(8 ingenieros de China)
  • Si nuestra industria de software no se fortalece aplicando modelos y mejores practicas que internacionalmente sean reconocidos (Cmmi, ISO´s, IEEE, etc) y se capitalicen las tecnologías disponibles ;los grandes negocios (> 500mUsd) se los llevaran las potencias del Software
Mitos De La Ingeniería Del Software
Mitos de Gestión
  • Resistencia al cambio en la gestión de proyectos
  • Con un libro de estándares es suficiente
  • Computadores modernos = Buen entorno de desarrollo
Mitos de Gestión
  • Experiencia para saltarse las metodologías
  • Incapacidad de los usuarios para comunicar sus necesidades
Mitos del Cliente
  • Ideas genéricas al principio, detalles al final
  • Requisitos en continua evolución
Mitos del Desarrollador
  • El trabajo acaba cuando se ha escrito el programa y funciona
  • Hasta que no se ejecuta el programa no puede comprobarse su calidad
  • Sólo se entrega un programa funcionando
  • Lo que uno crea sólo debe entenderlo él
Mitos Del Ingeniero De Software (punto de vista)
Los ingenieros de software día a día se posicionan más en nuestra sociedad, convirtiéndose así en pilares fundamentales para la creación de software que suplan necesidades de las distintas empresas. Somos profesionales que nos encargamos de maximizar la calidad y minimizar el coste, además no solo nos centramos en el área de los sistemas, sino también en muchas otras áreas, ¿Por qué? Porque hoy día la mayoría de las empresas necesitan de sistemas inteligentes que manejen, organicen y contabilicen lo que se hace, se vende, se produce y la mejor forma de llevar estos datos, son mediantes software que lleven o guarden una mejor consistencia de los datos, almacenándolos en bases de datos en la cual la información esté segura y la empresa no se vea perjudicada por la mala manipulación de estos.
Hoy por hoy en el ámbito de la ingeniería de sistemas se han creado muchos mitos; claro que un ingeniero de sistemas debe estar informado de todo en cuanto a tecnología, pero muchas veces las personas asociamos el concepto de tecnología con un computador, dado que la tecnología abarca mucho más que esto, ahora bien asociando esto con los ingenieros de sistemas vemos como muchas personas tienen ideas o conceptos diferentes al cual se debería dar, por ejemplo, una persona común por decirlo así diría que los ingenieros de sistemas deben saber todo en cuanto a un computador (estructura, componentes, como armarlo y desarmarlo..) en fin debe saber todo acerca de ellos y sí, nos compete a nosotros saber lo que pasa en la tecnología, cuanto avanza, ya que es nuestra herramienta de trabajo, pero no es parte de nuestro trabajo desarmar y arreglar un computador, dado que la verdadera labor de un ingeniero de sistemas abarca muchos ámbitos en especial el ingeniero de software que realiza todas las actividades referentes al desarrollo de software, aunque el Ingeniero sabe desarrollar software, No es un desarrollador. Es decir, no solo se dedica a programar aplicaciones sino que tiene toda la formación para diseñarlo correctamente.
Otro mito que se podría generar alrededor de este tema, es que muchas veces vemos a los ingenieros como personas exitosas que se ganan el dinero fácil, y no es así, como cualquier otra profesión nosotros como ingenieros tenemos que dedicarnos a satisfacer los requerimientos de un cliente y al igual que las demás personas, recogemos frutos trabajando y esforzándonos en lo que hacemos; quizás muchos de nuestros padres nos ven como Bill Gates, uno de los fundadores de Microsoft, como un gran empresario , no sabiendo que para llegar allá, fue con mucho esfuerzo , sacrificio y dedicación.
Un colega Ingeniero de Sistemas, que esta al mismo nivel que yo, me ve con la capacidad de asumir grandes retos, de mostrar grandes resultados a la hora de realizar un proyecto, de desenvolverme de la mejor manera en cualquier escenario y ámbito,  como un profesional con muchas expectativas, pero la realidad es que considero que me falta mucho por aprender, tengo la disposición y las ganas, pero con tantos ingenieros muy bien preparados, es lógico que el campo laboral cuente con muchas personas altamente capacitadas y por ello me falta mucha preparación y experiencia.
Por último, yo como ingeniera de software me veo como la súper empresaria exitosa, como lo piensan mis padres, siendo buscada por muchas empresas para desarrollar grandes proyectos, y aunque yo me vea así, la realidad es otra, actualmente hay muchos ingenieros y tenemos mucha competencia, empresas las cuales por pagar menos contrata a técnicos y tecnólogos, además de no darle suficiente valor al trabajo que se está realizando y no apreciar lo que hacemos, y muchas veces  por ello pienso que el camino es largo, con mucho esfuerzo, pero sobre todo mucha dedicación, la cual sé que al final dará resultados positivos.
En conclusión, se han creado muchos mitos alrededor de los ingenieros de software y no solo de ellos, sino también de los ingenieros de sistemas en general, los cuales valen la pena aclarar, ya que son ideas erróneas en cuanto a lo que realmente hacemos y queremos, pero ya está de parte de nosotros inculcar y demostrar a las demás personas que sus ideas son equivocadas y que estamos acá para generar una nueva visión de las cosas y dar un aporte al desarrollo del entorno en el que vivimos.


Diagrama Arquitectura Cliente/Servidor- saas-soa-mvc-Cloud Computing






No hay comentarios:

Publicar un comentario