lunes, 20 de abril de 2015

PERSONAL SOFTWARE PROCESS



Ya que hemos estado hablando de los modelos que certifican la calidad del software es hora de hablar de los modelos que certifican a los programadores e ingenieros de software, es decir de PSP.


PSP (Personal Software Process en inglés) que significa Proceso de Software Personal es un conjunto de prácticas disciplinadas para la gestión del tiempo y mejora de la productividad personal de los ingenieros de software cuando realizan tareas de forma individual. Estas prácticas están diseñadas para emplearse en organizaciones con modelos de procesos CMMI o ISO 15504. 




Aunque realmente lo más recomendable y lógico es que una organización empiece a trabajar con modelos como PSP para que los desarrolladores de software vayan conociendo y adaptándose a trabajar de una manera muy sistemática y disciplinada y que posteriormente tengan la experiencia suficiente para poder trabajar bajo un modelo como CMMI o MoProSoft que incluyen prácticas mucho más complejas. Esto es porque si un programador nunca ha desarrollado software implementando PSP será mucho más difícil que la empresa en la que labora logre certificarse en alguno de los niveles de CMMI, por ejemplo.


Incluso CMMI es un modelo mucho más costoso que MoProSoft ya que el primero es internacional y el segundo es un modelo Mexicano el cual fue desarrollado porque los modelos de evaluación y mejora de CMMI no resultan apropiados para empresas pequeñas y medianas de desarrollo y mantenimiento de software, por lo que a estas empresas les resultaría demasiado costoso implementar el modelo CMMI.



PSP se enfoca en elaborar tablas y en ellas documentar datos que servirán al programador para:



  • Ayudarlo a realizar mejor su trabajo.
  • Proporcionar datos y técnicas de análisis que se pueden utilizar para determinar que tecnología y métodos aplicar.
  • Establecer la estructura que permita comprender por qué se cometen los errores y cómo se pueden detectar.



Existe otro conjunto de prácticas denominado TSP (Team Software Process) Proceso de Software de Equipo el cual fue desarrollado para emplearse en conjunto con PSP para mejorar la calidad y productividad de los proyectos de software realizados por un equipo de trabajo.


Referencias:
http://es.slideshare.net/diego_aacc/psp-personal-software-process-presentation
http://asprotech.blogspot.mx/2010/06/personal-software-process-psp-elementos.html



martes, 3 de febrero de 2015

FACTORES QUE EVALÚAN LA CALIDAD DEL SOFTWARE

Las personas al adquirir un producto ponemos atención en muchos aspectos pero sin duda el más importante es siempre la calidad del producto. Anteriormente les hablé de dos modelos que evalúan los procesos de desarrollo de software y de uso de TI's. En esta publicación hablaremos de cuáles son los factores que evalúan la calidad de un producto software.

Evaluar un producto software con sólo decir es de calidad, no es de calidad o peor aún es de media calidad nos dejaría con muchas dudas sobre qué aspectos del producto si funcionan bien y cuáles no. Por eso existen algunos términos que pueden ser evaluados uno por uno por el usuario del software. Estos términos son los siguientes.

  • Corrección.
El grado en que el programa cumple con su especificación y satisfacer los objetivos que propuso el cliente.
  • Confiabilidad.
El grado en que se esperaría que un programa desempeña su función con la precisión requerida.
  • Eficiencia.
La cantidad de código y de recursos de cómputo necesarios para que un programa realice su función.
  • Integridad.
El grado de control sobre el acceso al software o los datos por parte de las personas no autorizadas.
  • Facilidad de uso.
El esfuerzo necesario para aprender, operar y preparar los datos de entrada de un programa interpretan la salida.
  • Facilidad de mantenimiento.
El esfuerzo necesario para localizar y corregir un error en un programa.
  • Flexibilidad.
El esfuerzo que demanda probar un programa con el fin de asegurar que realiza su función.
  • Portabilidad.
El esfuerzo necesario para transferir el programa de un entorno de hardware o software a otro.
  • Facilidad de reutilización.
El grado en que un programa o partes de él pueden reutilizarse en otras aplicaciones (en relación con el empaquetamiento y el alcance de las funciones que realiza el programa).
  • Interoperabilidad.
El esfuerzo necesario para acoplar un sistema con otro.

Conociendo y evaluando cada uno de estos factores, podemos medir la calidad del producto software que desarrollamos y por consiguiente mejorar nuestro producto.

Referencias:
http://www.eumed.net/tesis-doctorales/2014/jlcv/calidad-software.htm

MODELOS QUE EVALÚAN LA CALIDAD DEL SOFTWARE

Así como existen distintos organismos, estándares y normas que regulan la calidad en los distintos procesos en cualquier tipo de organización, existen también modelos encargados de evaluar y certificar los procesos que utilizan las empresas desarrolladoras de software y que utilizan las TI. Ejemplos de ellos son CMMI y MoProSoft.

CMMI es un modelo internacional para la mejora y evaluación de procesos para el desarrollo, mantenimiento y operación de sistemas de software y proyectos de TI. Proviene de las palabra en inglés Capability maturity model integration y significa Integración de modelos de madurez de capacidades. Este modelo era regulado anteriormente por el SEI (Software Engineering Institute) el cual transfirió todas las actividades relacionadas a CMMI al CMMI Institute.


Por otro lado MoProSoft es un modelo para la mejora y evaluación de los procesos de desarrollo y mantenimiento de sistemas y productos de software. Significa Modelo de Procesos para la Industria del Software y fue desarrollado por la Asociación Mexicana para la Calidad en Ingeniería de Software y la norma técnica a la que da contenido es la NMX-059/02-NYCE-2005. Este modelo fue creado debido a que Moprosoft considera que los modelos de evaluación y mejora de CMMI no resultan apropiados para empresas pequeñas y medianas de desarrollo y mantenimiento de software.


Para las personas a quienes nos interesa el campo de las TI es muy importante que estemos informados sobre estos modelos ya que son los que le darán un plus a nuestra empresa o software.


Referencias:
http://www.sei.cmu.edu/cmmi/
http://es.wikipedia.org/wiki/Moprosoft
http://es.wikipedia.org/wiki/Capability_Maturity_Model_Integration


¿QUÉ SIGNIFICA CIO Y CEO?



CIO Y CEO son acrónimos provenientes de los países de habla inglesa, los cuales han sido adoptados últimamente en nuestro país para hacer referencia a ciertos ejecutivos importantes de las empresas.

CEO es el acrónimo de Chief Executive Officerlo que en México sería Director Ejecutivo y es el máximo responsable de la gestión y dirección administrativa en la empresa.

Por otro lado CIO corresponde al acrónimo de Chief Information Officer, quien es el responsable de los sistemas de tecnologías de la información de la empresa en lo que se refiere a planificación. Su homólogo en los países de habla hispana sería el responsable de sistemas.

Además existen muchos otros acrónimos como los anteriores utilizados para designar a los máximos responsables en distintas áreas como operaciones, de mercadotecnia y financiera. En todos ellos se incluye la palabra Chief que se traduce como "presidente".

Referencias:
http://www.economiatic.com/2013/01/llamando-a-cada-ejecutivo-por-su-nombre-el-significado-de-ceo-coo-cfo-cio-cto-y-cmo/