sábado, 9 de junio de 2012

Selección de Procesos


A nivel mundial, organizaciones de todos los tamaños han abordado iniciativas de mejora de la calidad del software con énfasis en la mejora de sus procesos de producción de software. La tendencia actual en el mercado de las Tecnologías de Información es la de adquirir un nivel de madurez en los procesos software que asegure la calidad de los productos obtenidos.

Empezando por definir a “un proceso como el conjunto de prácticas que se ejecutan para lograr un propósito que incluye herramientas, métodos, infraestructura y gente; se entiende que un Modelo de Procesos como una colección estructurada de elementos que describen las características de procesos efectivos; los procesos que incluyen son aquellos que en la experiencia han probado ser efectivos”.

En el año 2005 el Standish Group, preparó el reporte del caos en el que plantea que el 51% de los proyectos de desarrollo de Software tienen éxito; esto debido en parte a los procesos de calidad de los productos terminados. Para ello toman como base o referencia los Modelos de Procesos más difundidos de software aunque su estructura no sea fácil de traducir al contexto de una organización que se dedica al desarrollo y mantenimiento de software.



La mejora en los procesos es un esfuerzo estratégico que las organizaciones tienen que encaminar hacia el cumplimiento y que se ven complementados con tiempo, esfuerzo e infraestructura. Esta la base para implementar cualquier modelo de procesos en una organización. Es aquí donde surgen o entran las mejores prácticas que hablamos en clase, como CMMI, MoProsoft, ISO 9000, PSP, TSP y MAAGTIC.

Para explicar cada una de ellas tendría que hacer mucho resumen en el mejor de los casos o tener varios blog para hablar de cada uno de ellos, sin embargo hablaré de manera genérica de cada uno de ellos.

CMMI implica un amplio marco de trabajo donde se describen las prácticas esenciales de un proceso efectivo de desarrollo de software; fue creado en Estados Unidos y se ha convertido en una referencia internacional de la capacidad de los procesos de desarrollo de software. Define 25 áreas de proceso del ámbito de la ingeniería de software y la ingeniería de sistemas.

Por su parte, ISO 9000 es una familia de normas que sirve como guía a las organizaciones (de todo tipo y tamaño) en la implantación y operación de Sistemas de Gestión de la Calidad. ISO 9000 tiene un fuerte enfoque en los procesos y en la satisfacción del cliente; además de que es certificable en México. Sin embargo, por su generalidad, es abstracto y difícil de adecuar al desarrollo de software.


El Personal Software Process, conocido por sus siglas como PSP, es una metodología de reciente creación, proveniente del Instituto de Ingeniería del Software(SEI). PSP es una alternativa dirigida a los ingenieros de sistemas, que les permite mejorar la forma en la que construyen software. Considerando aspectos como la planeación, calidad, estimación de costos y productividad, PSP es una metodología que vale la pena revisar cuando el ingeniero de software está interesado en aumentar la calidad de los productos de software que desarrolla dentro de un contexto de trabajo individual.

Team Software Process (TSP) establece un conjunto de procesos a nivel de equipos de proyecto orientados a la ejecución de las tareas, así como mecanismos de gestión e indicadores de control que permiten gestionar, de manera continua y efectiva, el desempeño del equipo. Es fundamental contar con ingenieros capacitados en PSP que utilicen de manera efectiva el proceso individual y que puedan contribuir al desempeño colectivo del equipo. La ventaja del método es que posibilita el cambio rápido mediante el autoaprendizaje obtenido de los propios resultados, al aplicar las técnicas que integran los procesos.

El Manual Administrativo de Administración General en Materia de Tecnologías de la Información (MAAGTIC), es un marco normativo que en meses pasados publicó la Secretaría de la Función Pública para simplificar, agilizar y hacer más efectivos los procesos bajo los cuales operan las dependencias públicas federales hacia el interior y para con los ciudadanos.

Dicho manual contiene un marco rector de la forma en la que se deben llevar a cabo los procesos de las Unidades Tecnológicas (UTIC's) que existen en cada dependencia. En el se contemplaron las mejores prácticas y estándares internacionales tales como: Balanced Score Card, TOGAF, ISO 9001, VAL IT, PMBOOK, CMMI, MOPROSOFT, ITIL, RISK IT e ISO 27001.


Si bien estos modelos internacionales y nacional permiten determinar la capacidad de procesos de una organización que desarrolla software, no es fácil adaptarlos al contexto de las empresas mexicanas, que en su mayoría son PyMEs. De acuerdo con un estudio hecho, el 92% de las empresas que desarrollan software en México son PyMEs, con menos de 100 empleados .

Es así como surge MoProSoft, por iniciativa de la Secretaría de Economía y gracias al trabajo de académicos y empresarios mexicanos, encabezados por la Dra. Hanna Oktaba, profesora de la Facultad de Ciencias de la UNAM. MoProSoft es un modelo de procesos para la industria de software nacional, que fomenta la estandarización de su operación a través de la incorporación de las mejores prácticas en gestión e ingeniería de software. La adopción del modelo permite elevar la capacidad de las organizaciones que desarrollan o mantienen software para ofrecer servicios con calidad y alcanzar niveles internacionales de competitividad. Es también aplicable en áreas internas de desarrollo de software de las empresas de diversos giros.

Los beneficios de MoProSoft, en palabras de la directora del equipo que lo elaboró, la Dra. Hanna Oktaba, son:
•  Al tener prácticas integradas, que abarcan desde la gestión de negocio hasta el desarrollo y mantenimiento de software, las empresas logran un mayor control sobre su desempeño en el mercado.
• El costo de incorporación del nuevo personal podría disminuir si se enfocan a la educación y a la capacitación sobre un modelo único.
• Las empresas pequeñas, al seguir procesos similares, podrían asociarse con mayor facilidad para afrontar proyectos de mayor envergadura.
• La exportación de servicios de software de las empresas mexicanas será más factible, incluso se podría disminuir la necesidad de la intermediación de las empresas trasnacionales, gracias a que MoProSoft considera las prácticas reconocidas en el ámbito internacional.

En general, MoProSoft es un modelo de calidad que permitirá a la pequeña y mediana empresa de desarrollo de software,  el acceso a las prácticas de Ingeniería de Software de clase mundial.

En mi experiencia laboral y como estudiante, he utilizado y aplicado CMMI y MoProsoft, ambas tienen similitud, sin embargo debemos de darle valor a MoProsoft por ser mexicana y tener el éxito que ha tenido hasta el día de hoy, tuve la oportunidad de que la la Dra. Hanna Oktaba me diera una plática y posteriormente clase del modelo de procesos que ella creo, es muy interesante y emocionante a la vez poder tener el conocimiento que tengo gracias a la creadora de este proceso, sin embargo, algo de lo que no hablamos mucho pero en este momento está de moda es SCRUM.



Scrum es un enfoque ágil para el desarrollo de software. En lugar de un proceso completo o metodología, es un marco. Así que en lugar de proporcionar una descripción completa y detallada de cómo todo lo que hay que hacer en el proyecto, mucho se deja en manos del equipo de desarrollo de software. Esto se hace debido a que el equipo sabrá la mejor manera de resolver el problema que se presentan. Esta es la razón, por ejemplo, una reunión de planificación de Sprint se describe en términos de el resultado deseado (un compromiso con un conjunto de características que se desarrollarán en el siguiente sprint) en lugar de un conjunto de criterios de ingreso, las definiciones de tareas, los criterios de validación, y criterios de salida que se proporcionan en la mayoría de las metodologías.

En fin hablar de SCRUM también nos llevaría tiempo, la elección la tiene cada empresa y mientras tengan resultado con una de ellas será difícil que cambien, por lo cual podría decir que todas tienen una finalidad y si la aplican como se debe obtendrán el resultado que se espera.



Por último, me gustaría compartir la información que todos escucharon en nuestra clase de acuerdo al ejercicio que dejo el profesor en grupo, el cual contiene el mapa conceptual y el proceso de la Guía Turística para que lo puedan visualizar a los que les interese 8).


Proceso
Nombre
Desarrollo de APP
Descripción
Guía a seguir para el desarrollo de Software (aplicaciones Móviles)
Propósito
Determinar el ciclo de desarrollo de software
Objetivos
·         O1. Utilizar mejores practicas
·         O2. Estandarización del desarrollo de Software
·         O3. Determinar el nivel de calidad del software
Indicadores
·         I1. Auditorias de ISO
·         I2. Contar con documentación de los sistemas
·         I3. Pruebas IRM
Metas Cuantitativas
·         M1. Aprobada o No Aprobada
·         M2. Num de documentos aprobados /num de documentos requeridos
·         M1. Satisfactoria o No Satisfactoria
Responsabilidad
Director TI
Subprocesos
·         S1. Concepción del Proyecto
·         S2. Planificación
·         S3. Análisis
·         S4. Diseño
·         S5. Construcción
·         S6. Pruebas
·         S7. Implantación
Procesos Relacionados
·         Procesos Finanzas
·         Proceso de RH
·         Proceso de Publicidad / estudios de mercado
Entrada
Solicitud de aplicación Móvil para Guía turística Nacional e Internacional
Productos Internos
·         S1. Concepción del Proyecto. Obtención de proyecto de acuerdo a la demanda del cliente y realización de carta del proyecto
·         S2. Planificación. Planeación de actividades y fecha de liberación de la aplicación.
·         S3. Análisis. Obtención de requerimientos detallados.
·         S4. Diseño. Diseño de aplicación mediante aprobación de prototipo
·         S5. Construcción. Codificación de aplicación
·         S6. Pruebas. Pruebas unitarias e integrales para validación de aplicación.
·         S7. Implantación. Liberación de la aplicación
Salida
Aplicación de Guía Turística con iOS