domingo, 10 de junio de 2012

Mejores prácticas en desarrollo de SW, Enfoque de procesos y Aplicación Móvil









Modelos de Procesos de Ingeniería de Software

Como Ingenieros de Software, Administradores de Proyecto, Líderes o como CIO's de alguna empresa, es importante conocer los modelos y procesos disponibles para garantizar una planeación estratégica acertada.

Es por esto, que esta entrada del blog la dedicaré a MoProSoft, CMMI y Maag TIC.

MoProSoft

MoProSoft es el modelo de procesos para la industria mexicana de Software, realizado en conjunto por la Secretaría de Economía, la UNAM y AMCIS.
Este modelo está diseñado para medir la capacidad de los procesos que siguen las empresas y para garantizar una calidad constante en los desarrollos y mantenimiento de software.

MoProSoft es un modelo de calidad que permitirá a la pequeña y mediana empresa de desarrollo de software (más de 10 programadores, pero menos de 100), el acceso a las mejores prácticas de Ingeniería de Software de clase mundial.

Debido a que la mayoría de las empresas de Software de América Latina entran en este esquema, creo que es uno de los modelos "a seguir" en la mayoría de las empresas.

CMMI (Capability Maturity Model Integration)

Para las empresas con más de 100 programadores existe el modelo de CMMI.

El ejercito de Estados Unidos se encontraba con un gran problema, ¿cómo garantizar la entrega a tiempo de proyectos de Software?

Respondiendo a esa necesidad, la Universidad Carnegie Mellon creo el modelo de calidad CMM - CMMI.

Los niveles CMM - CMMI son 5:
  • Inicial o Nivel 1 CMM - CMMI. Este es el nivel en donde están todas las empresas que no tienen procesos bien definidos.

  • Repetible o Nivel 2 CMM - CMMI.  Se basa en que el éxito de los resultados obtenidos se pueden repetir. La principal diferencia entre este nivel y el anterior es que el proyecto es gestionado y controlado durante el desarrollo del mismo.

  • Los procesos que hay que implantar para alcanzar este nivel son:
    • Gestión de requisitos
    • Planificación de proyectos
    • Seguimiento y control de proyectos
    • Gestión de proveedores
    • Aseguramiento de la calidad
    • Gestión de la configuración

  • Definido o Nivel 3 CMM - CMMI. A grandes rasgos, este nivel la empresa tiene una  madurez para desarrollar proyectos (gestión e ingeniería) bien definida (documentada, existencia de métricas) con el fin de conseguir objetivos concretos.

  • Los procesos que hay que implantar para alcanzar este nivel son:
    • Desarrollo de requisitos
    • Solución Técnica
    • Integración del producto
    • Verificación
    • Validación
    • Desarrollo y mejora de los procesos de la organización
    • Definición de los procesos de la organización
    • Planificación de la formación
    • Gestión de riesgos
    • Análisis y resolución de toma de decisiones

  • Cuantitativamente Gestionado o Nivel 4 CMM - CMMI. Los proyectos usan objetivos medibles para alcanzar las necesidades de los clientes y la organización. Se usan métricas para gestionar la organización.

  • Los procesos que hay que implantar para alcanzar este nivel son:
    • Gestión cuantitativa de proyectos
    • Mejora de los procesos de la organización

  • Optimizado o Nivel 5 CMM - CMMI. Los procesos de los proyectos y de la organización están orientados a la mejora de las actividades. Mejoras incrementales e innovadoras de los procesos que mediante métricas son identificadas, evaluadas y puestas en práctica.

  • Los procesos que hay que implantar para alcanzar este nivel son:
    • Innovación organizacional
    • Análisis y resolución de las causas


MAAGTIC

Para las entidades gubernamentales de México, existe el Manual administrativo de Aplicación General en materia de Tecnologías de la información y Comunicaciones y de Seguridad de la Información (MAAGTICSI)

El objetivo de MAAG TIC es estandarizar los procedimientos administrativos susceptibles de ser homologados. Esto se refiere a las normas que se repiten en todas las dependencias porque no responden a temas sustantivos de cada entidad.

Impulsada por  la Secretaría de la Función Pública (SFP), MAAG TIC contiene la estrategia para homologar las actividades en materia de TIC en 30 procesos, y abarca desde la estrategia TIC, las actividades internas y de infraestructura tecnológica, así como de desarrollo personal y profesionalización, hasta la sistematización de trámites y servicios de las entidades gubernamentales a la ciudadanía.

En particular, el MAAGTIC tiene como objetivos: armonizar y homologar las actividades que realizan las dependencias y entidades de la Administración Pública Federal Mexicana en materia de tecnologías de la información y comunicación (TIC); establecer indicadores estándar que permitan medir los resultados de la gestión de TIC; y garantizar el uso de mejores prácticas, para alcanzar una mayor eficiencia en las actividades y procesos institucionales del quehacer orientado al servicio y satisfacción del ciudadano.

Enfoque de procesos

El enfoque orientado hacia los procesos, es donde la tendencia actual está inclinándose; pero más que moverse a un proceso debemos enfocarnos en un todo como en la clase hemos discutido la parte esencial de la calidad, donde nuestros procesos nos aseguran unos resultados óptimos y con la mejor calidad. Pero en que ayuda el enfoque  orientado a los procesos? permite una rápida y sencilla identificación de los problemas. Así como la rápida resolución de los mismos. Sin la necesidad de mejorar el resto de elementos que funcionan de manera correcta. Lo que repercute positivamente en las capacidades de la organización, y su capacidad para adaptarse el exigente y cambiante mercado.

El sistema por elementos fases y procedimientos, es más fácil de implementar, y más económico de mantener en correcto funcionamiento. Tiene la ventaja, de que aunque un proceso afecte al resto. Es más sencillo cambiar o mejorar el proceso, o partes de la cadena de procesos, sin que el resto se vea afectado de forma negativa por la transformación. Pero en esta parte debemos ser muy cautelosos porque podemos pensar que nuestros procedimientos son correctos hasta que un tercero nos indica el  error por lo cual durante este tiempo pudimos cometer el mismo error de forma sistemática.

La modificación o cambio de un proceso, no conlleva aparejada la modificación o cambio del resto de items, cuyo funcionamiento, estructura y gestión siguen siendo iguales. Si que afecta al resultado final, por lo que todos las fases, han de cumplir las con las expectativas y necesidades del resto de items. La responsabilidad de la mejora de estos, corresponde a los integrantes del procedimiento, con la ayuda de toda la organización.

Aunque no se mencione en absoluto. Se supone que los recursos técnicos son completamente eficaces y eficientes. Se dispone de los recursos y conocimientos técnicos mas adecuados. Muy difícil o costoso de mejorar, por lo que para mejorar el producto, es mejor mejorar otros aspectos de la organización, como las relaciones entre los miembros de la organización.

Una mejora tecnológica, produce resultados exponenciales. Mientras que una mejora de la organización, sigue una pauta directamente proporcional. Las mejoras tecnológicas, producen resultados inmediatos. Mientras que la mejora de la organización, produce resultados en el tiempo.

Para conseguir la máxima satisfacción en el cliente. Ha de mejorar la tecnología cuando resulte rentable. Pues los beneficios son inmediatos. Y mejorar la organización en el resto de los casos, que produce una aumento constante y predecible de la calidad final. La máxima calidad se obtiene con la unión de las mejoras tecnológicas y en el funcionamiento de la organización.

Actualmente tenemos el ISO 9000, donde nos ayuda a la implementación que nos ayuda a responder algunas de estas sencillas preguntas.

¿Qué implica el “enfoque a procesos” en la gestión de una empresa?

1.Definir sistemáticamente las actividades necesarias para lograr los objetivos planteados
2.Establecer las responsabilidades y obligaciones para la gestión de las actividades clave de cada proceso.
3.Identificar las interfaces y relaciones de las actividades entre los distintos puestos de trabajo definidos en la organización.
4.Conocer y evaluar la incidencia de cada actividad o proceso respecto a la percepción de satisfacción del cliente.

¿Qué beneficio obtengo con el “enfoque a procesos”?

1.Reducción de costes y tiempos de los procesos mediante el uso eficaz de los recursos.
2.Obtención de resultados mejorados, coherentes y predecibles.
3.Priorización y centralización de las oportunidades de mejora.

Consejero de viaje - Aplicación móvil

Realizamos un ejercicio para intercambiar ideas sobre la generación de una aplicación móvil que fuera un consejero de viajes, con la que se tuvieran ingresos mínimos de 500 mil dólares anuales.

Así pues, hicimos un mapa mental para representar a grandes rasgos lo que se busca con dicha aplicación y lo mostramos a continuación:

En lo que respecta a los costos y estrategia comercial para dar vida a esta aplicación, determinamos contemplar lo siguiente:
  • Infraestructura para soportar la aplicación
  • Servicios de Desarrollo de la aplicación
  • Servicios de Mantenimiento de la aplicación
  • Servicios de Mejora y nuevas versiones de la aplicación
  • Recursos Humanos de la empresa

La estrategia comercial inicial será introducir el producto en el App Store (IOS) y posteriormente en el Market de Google (Android) y promocionar el producto en universidades privada esperando una audiencia de cuando menos 10 mil usuarios.

La aplicación contará con reservaciones en línea y otorgamiento de cupones de descuento, asimismo contará con un área para publicidad dirigida.

La obtención de ingresos vendrá de 4 modalidades distintas que a continuación mencionamos:

1. Cobrar una suscripción a 1,000 establecimientos que deseen anunciarse en nuestra aplicación. La distribución de los establecimientos anunciados estará de la siguiente forma:

Porcentaje
Suscripción mensual
Frecuencia absoluta
Total
10%
$ 50
100
$ 5,000
20%
$ 40
200
$ 8,000
70%
$ 30
700
$ 21,000
 
Dados estos porcentajes y modalidades de suscripción, se contará con $38,000 mensuales por concepto de suscripciones.

2. Venta de la propia aplicación.
3. Cobro a los establecimientos por cada reservación que se haga mediante nuestra aplicación.
4. Cobros por publicidad dirigida expuesta en la versión gratuita de nuestra aplicación.

En el rubro de riesgos detectamos que, si viene cierto que el modelo de negocio no es el mismo,  podríamos tener una competencia muy fuerte por parte de FourSquare; por otro lado detectamos que al ser una aplicación que comienza siendo local y de nicho pudiera no tener el impacto deseado.

Por el tipo de negocio al que se da origen, determinamos que la empresa tenga una orientación a procesos en lo que respecta a su estructura organizacional.
Referencias consultada para este blog:

Los comentarios de este blog fueron realizados en colaboración de:
1. Miguel Angel Albores
2. Octavio Ponce
3. Arturo Macías

domingo, 20 de mayo de 2012

Planeación Estrategica, Arquitectura Orientada a Servicios (SOA) y Esquemas de Licenciamiento

En esta ocasión hablaremos, Planeación estratégica, Arquitectura Orientada a Servicios y Esquemas de licenciamiento, tres temas que a los profesionales de las tecnologías de información nos ocupan en algún momento de nuestro andar, así es que dedicaré unas líneas a cada uno.
Planeación Estratégica
Primeramente y para entrar en contexto, es digno mencionar que la Planeación Estratégica es un en realidad un proceso y no un producto, por lo que se hace tangible hasta ver los resultados de transitarla. Es un mecanismo, procedimiento o metodología para monitorear y reaccionar ante un ambiente siempre lleno de incertidumbre. Es justamente este mecanismo lo que hace que algunas empresas puedan sacar ventajas competitivas y otras fracasen aun estando bajo las mismas circunstancias y afrontando cambios sociales, económicos y políticos.
La Planeación Estratégica conmina a las empresas a determinar metas finales y las estrategias para acceder, suministrar y administrar recursos para alcanzar dichas metas, en este proceso es de vital importancia el identificar sus fortalezas y a aumentar su capacidad de adaptación al medio turbulento en el que compiten.
La planeación estratégica puede ayudar a las organizaciones para:
·         Pensar estratégicamente y desarrollar estrategias internas efectivas
·         Desarrollar una base coherente y defendible para la toma de decisiones
·         Mejorar el desempeño de la organización
·         Lidiar efectivamente con circunstancias cambiantes
·         Anticipar problemas y oportunidades futuras
·         Construir trabajo en equipo y experiencia
·         Proveer a los empleados con objetivos claros y directrices para el futuro de la organización
Al hablar de Planeación estratégica debemos hablar también de Pensamiento Estratégico, que de manera natural se relacionan, sin embargo es digno dedicar un momento a identificar la diferencia entre ambos conceptos. La Planeación Estratégica implica capacidad de ANÁLISIS para convertir metas en una serie de pasos, mientras que el Pensamiento Estratégico implica capacidad de SÍNTESIS para que, mediante la intuición y creatividad se entienda el dinamismo del ambiente y se desarrolle la habilidad de ver el futuro de la organización y anticiparse.
Mi conclusión en pocas palabras es que la Planeación Estratégica se pretende establecer directrices claras a fin de minimizar la incertidumbre y dinamismo con los que se convive en todo momento.
“Nunca una batalla se ganó de acuerdo con el plan, pero jamás una batalla se ganó sin un plan.” Eisenhower  

Arquitectura Orientada a Servicios
La arquitectura orientada a servicios de cliente (en inglés Service Oriented Architecture), es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a las necesidades del negocio.
El pensamiento orientado a servicios analiza los procesos de negocio y genera abstracciones de sus partes como si fueran servicios modulares convirtiéndolas en piezas de software dispuestas como fragmentos reutilizables, con ello, este modelo tienen el potencial de soportar el constante cambio de las organizaciones. Es precisamente este punto donde el SOA converge con la Administración de Procesos de Negocio (Business Process Management), conceptos que juntos generan los principios para una gobernanza adecuada y se organicen las soluciones de software a los objetivos de negocio de la organización.
Como consecuencias lógicas de esta disciplina tenemos que se podrá:
·         Proveer información integrada y confiable, que puede ser usada entre los procesos y las aplicaciones
·         Incrementar la gobernanza del cómo y dónde se usa la información
El reto de la Arquitectura Orientada a Servicios es modelar una solución de software para las organizaciones  bajo el principio de fuerte cohesión y bajo acoplamiento, que no es otra cosa más que generar servicios lo suficientemente modulares y genéricos dispuestos generalmente en una capa que gestiona las entradas y salidas de información entre los diversos servicios. Así pues, la entrega de solución de negocio tomará forma con una simple parametrización de los servicios que intervienen en determinado proceso de negocio, manteniendo con ello una constante coherencia con la realidad.

Esquemas de Licenciamiento
El licenciamiento de software nunca ha sido una tarea sencilla, desde la perspectiva del diseñador del software se debe pensar en qué mecanismos de control ponerle para evitar que se utilice indiscriminadamente; desde la perspectiva de los vendedores de software, las presiones del mercado y la innovación hacen de esto un negocio complejo; por otro lado, no debemos olvidar a los usuarios del software que por naturaleza demandan continuamente flexibilidad y variabilidad en los productos tecnológicos.
Así pues, los proveedores de software continuamente deben desarrollar esquemas de licenciamiento que satisfagan tanto las necesidades del mercado como sus propios intereses. Existen diferentes esquemas de licenciamiento de software, los más típicamente usados en el mercado son:
·         Licencias por instalación: esto es cuando se tiene el derecho de instalar el software determinado número de veces.
·         Licencias por usuarios nombrados: esto significa que solamente ciertos usuarios tienen el derecho de usar el software.
·         Licencias por usuarios concurrentes: esto quiere decir que el software puede usarse hasta determinado número de veces al mismo tiempo.
·         Licencias por capacidad: licenciamiento dependiendo de la capacidad o poder de cómputo de la infraestructura donde se instale.
·         Licencias por procesador: licencia de acuerdo al número de procesadores donde se ejecuta el software.
·         Licencias por puntos: licenciamiento donde se asignan puntos o valores a diversos aspectos del uso del software
·         Otros: en este rubro podemos encontrar licenciamientos muy variados y complejos como son los que dependen del número de transacciones que se realizan con el software, de los millones de instrucciones por segundo (MIPS) o de los millones de unidades de servicio de CPU por hora (MSU).
¿Y qué hay del software libre? Como su nombre lo indica, su uso no está condicionado a la adquisición de una licencia y generalmente los usuarios de dicho software deben pagar únicamente si deciden tener acceso al soporte técnico para el mismo.
En la institución donde laboro, que pertenece al sector financiero utilizamos una gran diversidad de software para atender las necesidades de negocio y por lo tanto tenemos software con la mayoría de los esquemas de licenciamiento mencionados. En ella, las decisiones sobre la adquisición del software se toman en base a estudios de mercado, donde se hace una evaluación del esquema de licenciamiento ofrecido por el proveedor como uno de los componentes críticos.
En conclusión, debemos tomar en cuenta tanto al número de usuarios que dará servicio el software como a la infraestructura donde se instalará y con ello elegir el esquema más adecuado. También es cierto que en ocasiones nos topamos con software demasiado especializado donde no es posible elegir el esquema de licenciamiento, en estos casos, será necesario instalarlo en la infraestructura que saque más provecho de dicho software.

domingo, 13 de mayo de 2012

Pay as you go: Cloud Computing

En esta ocasión tuve el gusto de trabajar en conjunto con Tábata y Octavio, dos de mis compañeros de clase, compartimos comentarios y experiencias centrándonos en el modelo de Cloud Computing, tema por demás interesante y extenso, que nos llevó también a hablar sobre governance y mejores prácticas, entre otros.

Sin más preámbulo les presento nuestro trabajo en la siguiente liga:
Pay as you go: Cloud Computing

Como siempre, todo comentario es bienvenido.

domingo, 29 de abril de 2012

Del bisonte a la realidad virtual

En esta ocasión platicaremos en el blog acerca del libro Del bisonte a la realidad virtual de  Román Gubern.
No centraré mis comentarios en torno a la iconosfera, ni en ningún laberinto digital, y mucho menos en batallas de imágenes como bautiza el autor a escenarios que para nosotros son, hoy día, conocidos y hasta cotidianos; en su lugar daré mi opinión desde una perspectiva más general sobre la forma en que el autor plasma y relata sus conceptos.
El autor estructura cronológicamente sus ideas de forma acertada para relatar las diferentes situaciones por las que la humanidad ha ido pasando, comenzando desde los tiempos del hombre de las cavernas primitivas y acabando en los últimos inventos de Realidad Virtual, pasando por un sinfín de inventos del que se analizan exhaustivamente sus causas y consecuencias sociales.
Para los profesionales de la información, que tendemos a pensar y abstraer los conceptos de la realidad con una mentalidad práctica y sintetizada, nos es en ocasiones difícil lidiar con relatos que no concretan ideas ágilmente; por esta razón, para mi este libro representó un gran reto.
En mi opinión, el autor utiliza demasiadas palabras, frases, pasajes y anotaciones colaterales para ejemplificar sus ideas, supongo que con la intención de ayudar al lector a situarse dentro de un contexto, sin embargo, haciendo un balance personal, siento que aporta pocas ideas en esencia, siento que el análisis del autor se excede de explicaciones, muchas veces, meramente transitorias que hacen perder la atención a la lectura fácilmente.
Por otro lado, es digno de admirarse la documentación que adquirió el autor para su obra, es de sorprenderse cuántos nombres de películas, actores, series televisivas, artículos y revistas que el autor cita en el libro.

Por supuesto el tema que veo más interesante es el de la Realidad Virtual y en eso sí valdría la pena intercambiar opiniones, ¿qué si se podrá hacer y qué no mediante esto? De hecho me gustaría compartirles un video que me llamó mucho la atención ya que refleja una pizca de cómo podríamos interactuar como seres humanos en un futuro no muy lejano, espero lo disruten y comentemos al respecto, se trata de lo que se podría hacer cuando convergen varias tecnologías, en esta ocasión se trata de unos lentes que está promocionando Google que contrastan con la idea de que para interactuar en Realidad Virtual tendríamos que usar cascos y anteojos enormes.



Aunque en el video se aprecia más la parte social, lo interesante sería analizar el cambio que seguramente propiciará esta tecnología, tanto en la concepción de los negocios como en nuestra forma de vida.

Todo comentario en bienvenido...

domingo, 22 de abril de 2012

Entropía

Esta palabra que desde que se escucha suena a un concepto extraño. Por un lado nos lleva a hablar de una medida de desorden o ruido, siendo utilizada como una medida de incertidumbre en los ámbitos de la física y de al información.

Este concepto lo debemos primeramente a Shannon como lo expone en su escritos A Mathematical Theory of Communication que la verdad me fue dificil entender en la primer leída que le dí; posteriormente al leer el capítulo 9 del libro The Information A History A Theory A Flood de Gleick se fueron aclarando las cosas. Así pues, haciendo una analogía y sin entrar en tecnicismos, tal como en la termodinámica la entropía se refiere a la cantidad de energía que un sistema puede convertir en trabajo; en el rubro de la información lo refiero a la cantidad de datos, palabras o señales que se requieren para que los mensajes puedan entenderse y convertirse justamente en información.

Si tomamos estos conceptos, podemos  afirmar que todo lo que se haga para evitar desviaciones en la comunicación puede ser tomado como algo para reducir la entropía y me gustaría abordar este tema desde una perspectiva más práctica y centrándonos en la información, Sabemos que siempre hay "ruido" que está destruyendo la comunicación y es ese ruido lo que vamos a mitigar utilizando Tecnología.

En nuestro lenguaje natural existe ruido y debemos contenerlo para que la comunicación sea exitosa, trasladándonos al plano laboral, y muy particularmente a una institución gubernamental como en la que laboro, se tienen diferentes controles como la aplicación de metodologías como Balanced Scoredcard y aplicación de mejores prácticas tanto para la gestión de proyectos como para la entrega de servicios de tecnología; con ello mi diagnóstico es que en esta institución se busca máximizar el orden y con ello se pierda menos información en el andar de las actividades cotidianas.