domingo, 10 de junio de 2012

Mejores practicas desarrollo software y su implicancia en México

 
Como puedes lograr la calidad y eficiencia en las operaciones en TI? que significa CMMI? ITIL? y ahora en el entorno de SW mexicano MOPROSOFT? hay muchas cosas que se escuchan pero que no se entienden, y es de lo que trataremos en este post, además de mostrarlo en una realidad palpable, esto es en que esta pasando en México y en mi opinión cual seria el camino a seguir.
Es indudable que si hablamos de CMMI, ITIL o MOPROSOFT debemos hablar primero de procesos, supongamos que en tu trabajo tienes la labor de llenar un formulario de quejas por cada llamada que recibes (entrada), y esta genera una orden de aclaración (tareas), que explicas o envías al cliente (salida), esto se convierte en un proceso, que es un conjunto de tareas que tiene como origen entradas y como fin salidas. Ahora si lo aplicamos en el desarrollo de software, tendremos requerimientos (entrada) de los cuales creamos un código, en base a arquitecturas, patrones de diseño y etc etc etc… (tareas) para que finalmente tengas un producto o empaquetado (salida) y sabemos nosotros que esto no es tan sencillo como se escribe, ya que si vemos el desarrollo entre diferentes empresas veremos que no llevan la misma idea ni los mismos estándares generales de desarrollo.

Entendiendo conceptos…

El detalle esta en estandarizar ciertos procesos y subprocesos en el desarrollo de software y para eso aparecieron ya desde un tiempo los conceptos iniciales:
CMMI (Integración de modelos de madurez de capacidades): es un modelo para la mejora y evaluación de procesos para el desarrollo, mantenimiento y operación de sistemas de software, estos incluyen el desarrollo, la adquisición  y servicios (Wikipedia). Actualmente el desarrollo de las grandes consultoras del mundo se miden mediante una certificación relacionada con CMMI que mide el grado de madurez (de 1 a 5) en el desarrollo del software, además ha ayudado en la reducción del coste de desarrollo, localización y resolución de defectos, entre otras

ITIL (Biblioteca de Infraestructura de Tecnologías de Información): es un conjunto de conceptos y prácticas para la gestión de servicios de tecnologías de la información, el desarrollo de tecnologías de la información y las operaciones relacionadas con la misma en general (Wikipedia).  La principal ventaja de ITIL es que ha demostrado su eficacia con su enfoque a la gestión de servicios de TI.

Analizando ambos modelos, podemos observar que CMMI se centra en garantizar la calidad en el desarrollo de software mientras que ITIL garantiza la explotación del producto software. Por ello, muchas empresas consideran que ambas metodologías no son excluyentes, sino complementarias, embarcándose en proyectos de análisis y definición de procesos que permitan encajar ambas filosofías de trabajo.


MOPROSOFT: Es el Modelo de Procesos para la Industria del Software. Un modelo para la mejora y evaluación de los procesos de desarrollo y mantenimiento de sistemas y productos de software. Desarrollado por la Asociación Mexicana para la Calidad en Ingeniería de Software a través de la Facultad de Ciencias de la Universidad Nacional Autónoma de México (UNAM) y a solicitud de la Secretaría de Economía para obtener una norma mexicana que resulte apropiada a las características de tamaño de la gran mayoría de empresas mexicanas de desarrollo y mantenimiento de software. Esto nació por el resultado de la evaluación que hizo PROSOFT cuyo resultado fue: “Ninguno de los estándares o modelos cumple con los requisitos expresados por la industria nacional”.
En México…
Algunos datos importantes:
  • Pymes generan el 74% empleos en el país.
  • 2095 empresas registradas.
  • 83% con menos de 50 empleados.
  • 6% tienen alguna certificación.
  • Se invierte el TI el 1.4% del PBI, la media en OECD 4% y países desarrollados el 7.7%
  • India tiene el 37% del mercado global de BPO (el mayor de la industria)
  • México tiene 6 empresas CMMI-5 (contra los 175 aprox. en India.
  • Estimación de crecimiento en TI en los próximos años: 11%

Esto nos da luces acerca de como esta el SW en México, me sorprendió mucho el tamaño de las Pymes con referencia a las demás empresas, es un gran porcentaje en la industria del sw.

Opinión personal…

Si bien es cierto que MOPROSOFT fue creado para la industria mexicana, no cumple para empresas de gran tamaño, fue creado especialmente para PYMES en donde podremos apreciar procesos diferentes a una empresa de mas de 100 empleados.
Lo bueno es que va a ayudar a estandarizar y mejorar el proceso de desarrollo de las pequeñas empresas, lo malo, es que lo puede condenar a que siempre sean pequeñas.
México puede llegar a ser una potencia de desarrollo de sw, y no estoy exagerando, tiene el capital humano necesario (tenemos un 29% de profesionales que egresan como ingenieros, el doble que la media de la OCDE) y los niveles de ingresos no son tan altos como en otros países. Pero faltan otras cosas importantes como el poder desarrollar empresas que puedan superar su barrera de “PYME” y ser competitivo a nivel mundial y eso se va a construir con estándares y mejores practicas como CMMI e ITIL, debemos apuntar a que las empresas crezcan a que no lleguen a un nivel de confort y no quieran evolucionar.
Esto es muy complicado ya que debemos cambiar la forma como se esta impulsando esto desde el gobierno. La forma como gasta el dinero sin tener una estrategia definida a largo plazo. Los proyectos de gran impacto que no se han desarrollado aun, los grandes contratos que solo se los dan a grandes empresas transnacionales.

domingo, 20 de mayo de 2012

SOA, planeación estratégica y licenciamiento

 

En los últimos años se ha ido desarrollando dos conceptos muy importantes en las empresas y que se complementan uno con el otro, uno de ellos es SOA (Service-Oriented Architecture) y el otro BPM (Business Process Management), y hablo de desarrollar no como un tema de TI sino mas que eso.

Para empezar entendamos que SOA no es un concepto informático, mas bien es un paradigma cuyo objetivo principal es aportar agilidad a la organización, de tal forma que esta pueda responder más rápido ante los cambios del mercado. Aunque las iniciativas SOA normalmente se abordan desde el punto de vista tecnológico, SOA no es una tecnología, sino un enfoque o manera de hacer las cosas que aporta grandes beneficios al negocio. De forma simplificada, SOA consiste en crear elementos software discretos, modulares y reutilizables llamados servicios.

BPM es una disciplina empresarial cuyo objetivo es mejorar la eficiencia de las organizaciones a través de la gestión de sus procesos de negocio.

Desde el punto de vista de BPM, los procesos de negocio son activos que se deben gestionar y el modelado de procesos permite hacerlos explícitos y visibles para la organización. Por otro lado, el análisis de los procesos y su monitorización permiten identificar ineficiencias y oportunidades de mejora.

Desde el punto de vista del negocio, SOA es un habilitador de las iniciativas BPM

La perspectiva común que aporta BPM fomenta que negocio y tecnología estén alineados:
- BPM ayuda a identificar y priorizar los servicios SOA con los que la organización debe contar.
- SOA ayuda a que los sistemas que automatizan los procesos de negocio sean más flexibles y respondan con agilidad a las expectativas de cambio que demanda el negocio.

Y ¿por qué que es importante? pues básicamente todas las empresas están orientándose a este marco de trabajo, SOA ya no es solo un concepto ya es una realidad al igual que BPM y no algo que funcione en un puñado de empresa sino ya esta acaparando cada día mas el mercado.

"Although service-oriented architecture (SOA) and business process management (BPM) are usually initiated independently, they share some common goals - particularly increased enterprise agility. Combining SOA and BPM projects results in increased benefits, which are achieved more quickly than when either is initiated alone, especially for larger initiatives."
Paolo Malinverno | Janelle B. Hill
Gartner

Planeación estratégica

Ya que estamos hablando de como podemos mejorar el rendimiento de una empresa combinando conceptos, también tendríamos que hablar de planeación estratégica.

Éste es un proceso de desarrollo e implementación de planes para alcanzar un objetivo. Imagínense la final de la Champions tanto el Chelsea como el Bayern debieron conformar un equipo, definir que jugadas podrían realizar, saber cuales serian las expectativas del oponente y que jugares tienes disponibles, además de pensar en que puedas llegar a penales o tiempos extras. Entonces ¿cómo elaborar la mejor estrategia? ¿qué pasos debemos seguir?

Pues lo primero que se nos viene a la cabeza es el pensamiento estratégico que normalmente se asocia a un razonamiento analítico para entender las razones, los factores involucrados, el entorno y los resultados posibles de cualquier situación o problema esto convertido o plasmado en un proceso definido y estructurado se llama planeación estratégica.

image image

Normalmente lo asociamos a un FODA (análisis de Fortalezas, Oportunidades, Debilidades y Amenazas) pero es muchas mas que eso tenemos: Formular la misión de la organización, establecer metas, evaluación de la organización y su entorno, formulación de la estrategia, implementación de las estrategias a través de programas operacionales y la evaluación y selección de las estrategias.

¿Que ganamos? pues mayor productividad, competitividad, orientados a los objetivos y muchas otras cosas mas.

Licenciamiento de software

Supongamos que te intereso alguno de los temas anteriores de este post, pues ahora debemos tener un soporte tecnológico que te ayude a desarrollarlos por eso es necesario saber algo de este tema.

Una licencia de software es un contrato entre el que licencia y el que desea la licencia y en el cual permite el manejo del software que se licencia. Para esto se define el tiempo y costo de la licencia.

Formalizando…

Licencia: contrato entre el desarrollador de un software sometido a propiedad intelectual y a derechos de autor y el usuario, en el cual se definen con precisión los derechos y deberes de ambas partes. Es el desarrollador, o aquél a quien éste haya cedido los
derechos de explotación, quien elige la licencia según la cual distribuye el software.
Patente: conjunto de derechos exclusivos garantizados por un gobierno o autoridad al inventor de un nuevo producto (material o inmaterial) susceptible de ser explotado industrialmente para el bien del solicitante por un periodo de tiempo limitado.
Derecho de autor o copyright: forma de protección proporcionada por las leyes vigentes en la mayoría de los países para los autores de obras originales incluyendo obras literarias, dramáticas, musicales, artísticas e intelectuales, tanto publicadas como pendientes de publicar.

y en cuanto a las licencias…

- Primero tenemos a las licencia tipo código abierto, las cuales puedes utilizar el código, modificarlas y no tener el compromiso de pago. Pero tenemos en este caso subtipos, las permisibles (obras derivadas sin obligación) y las robustas (obras derivadas con alguna obligación ya sea tener la misma licencia que esta o cambiarle los términos).

- Después tenemos a las licencias de código cerrado, es decir las que tenemos que pagar y establecer los derechos de uso, distribución, redistribución, copia, modificación, cesión y en general cualquier otra consideración que se estime necesaria.

image

Conclusiones

  • SOA ya no es el concepto teorico de la escuela es una realidad en las empresas y debemos tratar de entenderlo y implementarlo para el bien de las empresas.
  • BPM va ir muy ligado a SOA y debemos entender como los procesos de negocio son el pilar de la empresa, sino vean como India saco provecho con el BPO, pero ya lo comentaremos seguro en otro post.
  • Planeación estratégica nos ayuda a definir nuestros objetivos y metas y no solo es FODA.

sábado, 28 de abril de 2012

Realidad virtual?

Hoy quise ver “The Avengers” (Los vengadores) pero había tanta gente y yo con tanta tarea que preferí esperar para verla,  en el camino me puse a pensar ¿por qué tanta gente le gusta ese tipo de películas?, obvio no por la acción sino por los efectos especiales (efectos visuales) y por mostrar otra “realidad” a través de una pantalla en la que te puedes sumergir y pensar que puedes formar parte de el, recuerdo que cuando llegue a México me impresionó mucho la súper pantalla del Papalote (Imax), porque te hacia casi casi ser parte de esa “realidad” y sin mencionar cuando lo ves en 3D.
Pero ¿cómo se inicio todo esto? Hay un libro muy interesante que leí durante esta semana: “Del bisonte a la realidad virtual: la escena y el laberinto ”(Roman Gubern), el cual es el motivo de este post, que tiene una lectura algo complicada pero puedes tener una idea mas profunda de lo que son las imágenes y como han ido evolucionando en el tiempo, además del poder que ha tenido y tendrá en el futuro.
Los humanos como tal siempre hemos intentado crear nuestro propio mundo (otra realidad), en la pintura siempre hemos querido mostrar lo que imaginamos o en la obras literarias lo que quisiéramos ver, y el tiempo nos ha dicho que para esto es muy importante lo que apreciamos con la vista, una imagen puede significar muchas cosas dependiendo de como lo veamos, donde se encuentre o hasta de nuestras creencias. Estas imágenes nacieron hace muchos años como símbolos, como necesidad de plasmar rostros de personas (doncella de Corinto) o algún evento extraordinario y que fueron (y son) influenciadas por nuestro entorno (cultural, político, filosófico, psicológico, etc.)  y hoy en día son muy importantes, “una imagen vale  mas que mil palabras”, y transmite cosas que las palabras se quedan cortas, como emoción, muchos mensajes en uno solo, impacto, etc.
image
La imagen ya es parte de nuestra vida, no solo en el cine o en el papalote, sino en todas partes, en la televisión, anuncios, videojuegos, etc. y con el tiempo va a mejorar, el desarrollo de las computadoras y demás periféricos nos han ayudado a perfeccionar esta otra “realidad” (imagen virtual), y que es realidad virtual? pues básicamente, como nos indica Roman Gubern, es el engaño de los sentidos, a la inteligencia, hacer creer al observador que “esta ante su referente y no ante su copia”
La realidad virtual no es un tema nuevo siempre ha existido solo que la tecnología nos ha ayudado a explotarlo y este libro nos ayuda a entender esta evolución en el tiempo, con laberintos (los que tienen alguna tendencia a criptosimbolismo u ocultismo), con significancia y con gran valor en la humanidad.

domingo, 22 de abril de 2012

Entropía en la comunicación de las organizaciones

Entropía… cuando escuche esta palabra la semana pasada no se me venia nada a la cabeza (obvio no he sido muy amante de la física ni menos de la termodinámica) pero cuando lo mencionaron relacionado a las organizaciones fue cuando me di cuenta que necesitaba informarme un poco mas del tema. Gran problema encontré al no tener una definición clara y sencilla de esto en internet, por eso espero que este post sea lo suficientemente claro y sencillo para que se pueda entender.
Supongamos que eres dueño de una empresa y a pesar del pasos de los años no cambias ni de estrategia y sigues operando de la misma forma que hace 20 años, y con el tiempo quiebras. Por otro lado supón que estas en la segunda guerra mundial y necesitas pasar una información muy importante a tu base, pero no estas en el radio suficiente de recepción y envío, y eso hace que llegue la información un poco distorsionada a tu base llegando incompleta la información.
¿Que sucedió? La evolución espontánea de un sistema aislado se traduce en un incremento en la entropía. En el primero caso la empresa se mantuvo como un “sistema aislado”, se mantuvo al margen y no hizo ni un cambio en su estrategia, por ende con el tiempo quebró, esto significa para nuestro caso de estudio que su entropía subió y hasta un nivel máximo. En el segundo caso tenemos que en el sistema de comunicación (emisor – mensaje – receptor) existió “ruido” o algún disturbio que no permitió que la comunicación fluya correctamente, a esto se le llama entropía y mientras mayor sea el problema de comunicación mayor será la entropía.
La entropía puede ser aplicado en muchos aspectos, por ejemplo en las organizaciones mide el caos o la desorganización y en la información mide la incertidumbre de la fuente (gracias a Shannon podemos saber cuantos bits necesitas para codificar una cantidad de información de acuerdo a su probabilidad, y estar seguros que con menos bits perderías información).
¿Y cual podría ser la solución para obtener una menor entropía? éste involucra un proceso de cambio, no necesariamente son sistemas aislados, podría interactuar con otros sistemas para corregir este desorden, ruido o lo que interfiera.
En el primer caso involucraría un proceso de cambio de pasar de desorganización a organización, de caos a orden, para esto necesitaremos hacer muchas cosas como por ejemplo: Estar preparados para los cambios, mantener organizaciones flexibles (gran problema de esto es que la mayoría son rígidas), estar conscientes de la entropía, tener personal capacitado, tener objetivos claros, saber para donde vamos, etc.
En el segundo caso (y tema central de este post) cambian un poco las cosas, porque si bien la comunicación puede tener “interferencias” por temas de infraestructura también puede fallar por mal entendimiento.

¿Que sucede si hay entropía en la comunicación en las organizaciones? pues la información se degrada en cuanto a su valor, realmente perdería su razón de ser y hasta podría hacernos tomar una decisión equivocada.
¿Que podríamos hacer? pues básicamente 2 cosas, primero apoyarnos en herramientas de TI que puedan soportar temas de comunicación en nuestras organizaciones y segundo, a pesar de hablar español, pues entendernos y estandarizarnos en la comunicación.
Hace unos años tuve la oportunidad de participar en un proyecto que involucraba a varios países, el corporativo se encontraba en Europa y nosotros formábamos parte de Latinoamérica (habían otros de Estados Unidos y Asia), a pesar de que todos nos comunicábamos en ingles, teníamos grandes problemas de entendimiento, suena increíble porque para una empresa multinacional su infraestructura es lo primordial, pero no solo se necesita tecnología para poder disminuir la entropía en las comunicaciones, en este caso tuvimos problemas por la estructura rígida de la organización, no podíamos comunicarnos con los que realmente participaban del proyecto sino con los encargados de cada país y estos no tenían el conocimiento total técnico y/o funcional, lamentablemente esto sigue perdurando y si no hay un cambio al respecto la entropía tendera a subir.
Finalmente la entropía esta siempre, dependerá de nosotros o de nuestra organización manejar el nivel que se deba tener, mientras menor sea es mejor será.