JUL-AGO 2005
Transcription
JUL-AGO 2005
• Análisis de Puntos de Función • Casos de Uso Software Guru CONOCIMIENTO EN PRÁCTICA Año 01 No.04 • Julio-Agosto 2005 ENTREVISTA: Carlos González Director de Sistemas de TMM CASO DE ESTUDIO: Active Intelligence CAMBIO, LA ÚNICA CONSTANTE Prepárate para BPM Además: Noticias • Eventos • Fundamentos • Biblioteca • Tecnología • Carrera TECNOLOGÍA: WiMAX DIRECTORIO Edición Ejecutiva Pedro Galván A> EDITORIAL Coordinación Editorial Mara Ruvalcaba Edición y Producción Edgardo Domínguez Dirección de Arte Oscar Sámano Durante una conferencia a la que atendimos recientemente, uno de los participantes preguntó para qué se estaba hablando de procesos de negocio durante una conferencia de TI. Como se podrán imaginar, la mayoría de los asistentes puso cara de “¿cómo se le ocurre preguntar eso?”. Se trata de una pregunta válida, si es que no se tiene clara la razón. Desde hace varios años, las áreas de sistemas en las empresas han estado sufriendo un cambio muy importante; están dejando de ser áreas técnicas, para convertirse en áreas de soporte y habilitación del negocio. Bajo el argumento de que “lo único constante es el cambio”, las empresas están siendo obligadas a ser ágiles y adaptarse rápidamente a los cambios en su entorno. Y lo primero de que se están dando cuenta, es que sus sistemas de información actuales no promueven la agilidad, al contrario, la inhiben. Es por ello que hemos destinado este número a hablar sobre Business Process Management (BPM), que es probáblemente la iniciativa más importante que se ve en esta industria hacia los próximos diez años por lo menos. Esta importancia se debe a que es una iniciativa dirigida por negocio, donde los sistemas responden a las necesidades del negocio, y no viceversa. Es una iniciativa orientada a desarrollar empresas ágiles, soportadas por sistemas de información flexibles y ajustables en tiempo real, sin necesidad del personal de sistemas. Esto no significa que los de sistemas nos vayamos a quedar sin trabajo. Sin embargo, es un hecho que el trabajo que hacemos está cambiando, y debemos estar preparados para este cambio. Después de todo, el cambio es la única constante. Agradecemos a Carlos González por haber compartido con nosotros su visión sobre este tema. Aún siendo un directivo de una importante empresa, Carlos se mantiene como una persona sencilla y con los pies en la tierra. Por último y no por ello menos importante, damos las gracias a todos los colaboradores que han hecho posible este número de Software Guru. A todos los lectores les pedimos que por favor nos hagan llegar su retroalimentación y comentarios a través del sitio web, o en [email protected] Equipo Editorial 02 JUL-AGO 2005 Ilustración Omar Ruvalcaba Consejo Editorial Francisco Camargo, Guillermo Rodríguez, Ralf Eder y Raúl Trejo, ITESM CEM; Hanna Oktaba, UNAM-AMCIS; Luis Cuellar, Softtek.; Luis Vinicio León, e-Quallity - ITESO Colaboradores Ariel García, Jorge Palacios, Antonio Reyes, Paulina Olivares, Amaury Quintero, Francisco López Lira, Roberto Silva, Ernesto Méndez, Rafael Muñoz, Elizabeth Almeraz, Sergio Durán, Axel Nissim, Sergio Orozco, Carlos Macías, Ramón Hernández, Luis Daniel Soto. Ventas Claudia Perea Marketing Natalia Sánchez Webmaster www.aguilahosting.com Contacto [email protected] +52 55 5239 5502 Software Guru es una publicación bimestral editada por Brainworx S.A. de C.V., Malinche no. 6, Col. El Parque, C.P. 53398, Naucalpan, México. Prohibida la reproducción total o parcial del contenido sin previo aviso por escrito de los editores. Todos los artículos son responsabilidad de sus propios autores y no necesariamente reflejan el punto de vista de la editorial. Reserva de Derechos al Uso Exclusivo: 042004-090212091400-102. Certificado de licitud de título: 12999. Certificado de licitud de contenido:10572. ISSN: 1870-0888. Registro Postal: PP15-5106. Se imprimió en junio de 2005 en Litográfica Roma. Distribuido por Sepomex y Thunder Mail www.softwareguru.com.mx contenido jul-ago 2005 número 04 EN PORTADA Business Process Management (BPM) Ha llegado una nueva plataforma de misión crítica para los sistemas empresariales, los sistemas BPM. Conozcamos de que se trata esta tendencia y preparémonos para el cambio. Productos Prácticas LO QUE VIENE Problem Resolution Toolkit, BEA Aqualogic, iBolt 10 REPORTE DE MERCADO BPMS 12 TUTORIAL Ingeniería en Reversa de DB2 14 ADMINISTRACIÓN DE PROYECTOS Análisis de Puntos Función 34 Entrevista 18 Carlos González, CIO de TMM En la segunda parte de este artículo, Sergio Durán nos explica como se determina el tamaño de un sistema utilizando la métrica de los Puntos Función (FPs). PROCESOS 38 BPM Aplicado al Desarrollo de SW BPM se puede utilizar para diferentes tipos de procesos. En este artículo, Axel Nissim analiza su aplicación en procesos de desarrollo de SW Columnas Tejiendo Nuestra Red por Hanna Oktaba 06 Mejora Continua por Luis Cuellar 08 Innovaciones en Software por Luis Daniel Soto 41 Prueba de Software por Luis Vinicio León 44 Cátedra y Más por Raúl Trejo 46 www.softwareguru.com.mx 20 UML Casos de Uso 42 Una de las principales causas de fracaso en los proyectos de SW es un mal manejo de los requerimientos. Sergio Orozco nos habla sobre los fundamentos de la administración de requerimientos basada en casos de uso. Caso de Estudio 30 Active Intelligence En Cada Número Noticias y Eventos Fundamentos Tecnología Biblioteca Carrera 04 48 50 54 56 JUL-AGO 2005 03 NOTICIAS Noticias IT Outsourcing Conference 2005 - IDC El pasado jueves 26 de Mayo se llevó acabo la 2da. edición de la Conferencia IT Outsourcing 2005, realizada por IDC México, en el Centro Banamex. El objetivo de dicha conferencia fue el dar respuestas clave acerca del outsourcing y el Business Process Outsourcing. De acuerdo con IDC, los servicios de outsourcing tendrán un crecimiento en México, para 2005, de 13.6%, y para 2006, de 13.1%. Hay que recordar que la industria de TI, crecerá 8.1% en 2005, y 6.3% en 2006. Por tanto, el outsourcing es uno de los segmentos que tendrá las mayores tasas de crecimiento en dichos periodos. Alejandro Floreán, Gerente del Programa de Investigación de TI y Mercados Verticales en IDC México, comentó que “esto no es más que un indicio de que la madurez del mercado mexicano está comenzando. Los outsourcers no han llegado tarde a México, en realidad el outsourcing es parte de la madurez de las actividades de sistemas y de la misma industria de TI” Praxis obtiene el nivel 3 del modelo Capability Maturity Model (CMM) para desarrollo de Software Praxis, empresa de consultoría, desarrollo e integración de sistemas de información, aprobó la evaluación CMM nivel 3 para el desarrollo de Software que otorga el SEI (Software Engineering Institute), después de un proceso de evaluación que califica a su Fábrica de Software. “En Praxis entregamos soluciones de TI que cumplen con las expectativas de nuestros clientes en tiempo, costo, calidad y alcance. El certificado en nivel 3 de CMM, coloca a Praxis como una empresa de competitividad internacional, consolidando nuestra capacidad para el eficiente manejo de grandes proyectos”, comentó Edmundo Robert, CEO de Praxis. La evaluación fue realizada por José Guerrero, SEI – Authorized Lead Assessor, de la empresa chilena América XXI. Secretaría de Economía en conjunto con AMITI y Microsoft inician actividades del Programa Acelera.Prosoft 2005 La Secretaría de Economía en conjunto con AMITI y Microsoft anuncian el inicio de actividades del programa Acelera.Prosoft 2005, que tiene como objetivo principal mejorar el desempeño de la industria nacional de desarrollo de software, fortaleciendo las capacidades técnicas e incrementando los resultados de negocio de las empresas afiliadas mediante la estrecha colaboración de las empresas Visionaria, Avantare e InterSoftware. Con más de 100 empresas registradas en el programa y beneficios directos a cerca de 600 desarrolladores, Acelera.Prosoft 2005 cubre un amplio rango de empresas dedicadas al desarrollo de software, ofreciendo esquemas de capacitación flexibles, así como asesoría de negocios a empresas con iniciativas de fábricas de software entre otras. Con la reciente disponibilidad de la versión Beta de Kuali, herramienta propiedad de la Secretaría de Economía, una de las herramientas de Moprosoft, disponible en el portal software.net.mx (http://foros.software.net.mx/kuali/), se busca reforzar la competitividad del ecosistema mexicano de desarrollo de aplicaciones mediante el acceso a documentos que facilitan el desarrollo, empleando mejores prácticas y acercando a las empresas a los estándares de clase mundial. Para mayor información visita: www.software.net.mx Inauguran Centro de Excelencia Tecnológica en Mexicali El modelo de gestión de Praxis está basado en las metodologías y procesos de mayor aceptación a nivel internacional. Con esta evaluación, Praxis asegura a sus clientes el cumplimiento de sus proyectos en los términos de costo, tiempo, calidad y alcance. El gobierno de Baja California, IBM y el Centro de Enseñanza Técnica y Superior (CETyS), crearon el primer Centro de Excelencia Tecnológica en Estándares Abiertos del país, que tiene el objetivo de impulsar el desarrollo de sistemas de información abiertos, con la finalidad de especializarse en la creación de software. Este proyecto tendrá como primera fase la capacitación de 25 estudiantes por un periodo de nueve meses, y el siguiente paso será la creación de empresas que proporcionen soporte a las plataformas abiertas como Linux y Java. Para mayor información visita: www.praxis.com.mx Baja California cuenta también con el proyecto de IT@Baja, grupo de 30 empresas dedicadas al desarrollo de software, y con el proyecto del parque tecnológico “Silicon Border”. 04 JUL-AGO 2005 www.softwareguru.com.mx Eventos Julio-Agosto 2005 24-26 Agosto 2005 Top Software Show Mayen Project Management World Trade Center Ciudad de México Info: www.mayen-project.com.mx Tel: (55) 5536 4120 Email: [email protected] 11-13 Agosto 2005 Xpo Linux 2005 Centro Banamex Ciudad de México Info: www.expolinux.org Tel: (001) 210 8920930 Email: [email protected] 25 Agosto y 31 Agosto 2005 Seminario Gratuito “Administración Integral de Tecnologías de Información y ¿Que papel juega TI con el requerimiento de Ley Sarbanes Oxley?” 11 - 13 Agosto 2005 1er Foro Regional Innovación y Tendencias Tecnológicas Itera 25 Agosto - Cd. de México, 31 Agosto - Monterrey, N.L. Info: www.itera.com.mx Tel. (55) 5281 7670 Email: [email protected] Grand Hotel Tijuana Tijuana y Ensenada, Baja California Info: www.tendenciastecnologicas.com Tel: (664) 686-2227 Email: [email protected] 31 Agosto – 2 Septiembre 2005 VI Conferencia Anual “The Future of IT: La Justificación Económica de la TI” 24 Agosto 2005 Security & Business Continuity Conference 2005 Gartner Centro Banamex Ciudad de México Info: www.gartner.com/mx/econit Tel: (55) 5207 2695 Email: [email protected] IDC Centro Banamex Ciudad de México Info: www.idc-eventos.com Tel: (55) 5661 3791 o 01800 504 1529 Email: [email protected] Datos de la Industria NOMBRE UBICACIÓN NO. PERSONAS NIVEL CMM o CMMI FECHA LEAD ASSESSOR NEORIS MTY 600 CMM 3 Oct-03 Mariana Pérez-Vargas, Avantare AZERTIA DF 150 CMM 2 Feb-04 Iñigo Garro, ESI EDS JUAREZ 200 CMM 5 Feb-04 No reportado SOFTTEK Nearshore MTY 1250 CMM 5 Abr-04 Richard Storch, Dick Storch & Associates ULTRASIST DF 30 CMM 4 Jul-04 Mariana Pérez-Vargas, Avantare SIGMA TAO QRO 450 CMM 5 Nov-04 Richard Storch, Dick Storch & Associates IBM - AMS GDL 950 CMMI 5 Dic-04 Luciano Guerrero – Canada IDS DF 350 CMM 3 Dic-04 Cecilia Montero Mejía - Empeiria Quality Services ACTIVE INTELLIGENCE AGS 50 CMM 3 Mar-05 Mariana Pérez-Vargas, Avantare TELEPRO DF 25 CMM 2 Jun-05 Mariana Pérez-Vargas, Avantare PRAXIS DF 350 CMM 3 Jun-05 Jose Guerrero- America XXI www.softwareguru.com.mx Fuente: Recopilación de comunicados de prensa y sitios web de cada empresa. *El modelo CMM ya no es soportado por el SEI. **Otras empresas en México han obtenido estas evaluaciones, pero actualmente no operan. Empresas mexicanas que cuentan con la evaluación Capability Maturity Model para Software* (CMM), o con la evaluación Capability Maturity Model Integration (CMMI), otorgada por el SEI (Software Engineering Institute) JUL-AGO 2005 05 COLUMNA TEJIENDO NUESTRA RED Moda y Tendencias Tercera Reunión del IPRC E n mayo de 2005 se reunió por tercera vez el International Process Research Consortium (IPRC). En esta ocasión nos tocó sufrir los primeros calores de una de las capitales de la moda mundial, que es Milán. Para los interesados en el tema —el de la moda—, les puedo comentar que en las tiendas reinaban los colores puros de arco iris, pero en las calles, las mismas fachas que en el DF, con el único detalle de lentes obscuros tipo “mosca”. La Dra. Hanna Oktaba es profesora en la Facultad de Ciencias de la UNAM. Es fundadora y vicepresidenta de la Asociación Mexicana para la Calidad en la Ingeniería de Software. Actualmente dirige el proyecto para la creación de una norma mexicana para la industria de software. Cambiando del tema, y regresando al objetivo de mi relato, la reunión del consorcio estaba dedicada a identificar los posibles escenarios de las tendencias mundiales políticoeconómico-tecnológicas en los próximos diez años. Una vez identificados los escenarios, se procederá a analizar el posible impacto que éstos tendrán en la forma en que se va a desarrollar el software y, en consecuencia, en los procesos. Al inicio se nos proporcionó una lista de 116 elementos de tendencias, que hemos identificado en las reuniones pasadas, y se nos pidió que escogiéramos las que nos parecieran las más inciertas. Entre ellas estuvieron: 1. El cambio demográfico de los desarrolladores (jóvenes o maduros, occidentales o asiáticos, etc.) 2. Legislación y regulaciones sobre uso de software 3. Globalización (predominación occidental o asiática) 4. Demanda de calidad y seguridad (incremento o resignación) 5. Tipo de cadena de valor (centralizada o volátil) 6. Innovación tecnológica (incremental o perturbadora) Nos dividieron en cuatro grupos y para que cruzáramos los pares de estas incertidumbres con sus extremos y tratáramos de imaginarnos la vida en cada uno de los cuadrantes. Mi grupo escogió cruzar la innovación tecnológica con la estabilidad de la cadena de valor. El mundo más sencillo de imaginar fue el de cadena de valor más o menos estable, como ahora, y los cambios tecnológicos de poquito a poquito. Lo más retador fue imaginarse el mundo donde las cadenas de valor son volátiles y los cambios tecnológicos totalmente inesperados, como en su tiempo fueron la invención de Internet o del teléfono celular. Fue bastante divertido participar con mis colegas en este juego intelectual y observar cómo la imaginación o los miedos personales salen a flote y se vuelven colectivos. La impresión general que saqué de esta sesión fue que esta gente ve una gran probabilidad de que en los próximos años la supremacía tecnológica pase a manos de China, India y Japón, que ya en gran medida la tienen. Y como la mayoría de los participantes del consorcio proviene de occidente, esto les causa bastante preocupación. Medio en broma, comentaban que dentro de diez años el Software Engineering Institute va dedicarse a la promoción de modelos de procesos chinos para América. Otro tema que les preocupa es la estabilidad de las grandes empresas, en particular las trasnacionales. Por ejemplo, los proyectos de código abierto y los servicios en línea son nuevas formas de organizarse que rompen los esquemas tradicionales. Estos nuevos esquemas ofrecen a los clientes mayor flexibilidad, menor costo y, por lo general, buena calidad. Esto empieza a contrastar con la rigidez y relativa lentitud de grandes consorcios. En México también estamos observando este fenómeno a través de la creación de las integradoras que empiezan a multiplicarse en los estados. Será interesante observar su impacto en el mercado local y de exportación en los próximos años. Por último, les quiero comentar sobre algo curioso en un consorcio sobre procesos. Se armó una discusión muy acalorada sobre “¿qué es proceso?”, y que conste que allí participa la gente que sabe del tema. A mí me dio mucho gusto que surgió esta pregunta porque, desde que empezamos a trabajar sobre MoProSoft, buscamos una definición razonable de proceso y la mera verdad ninguna nos gustaba. Nos quedamos con una inventada por nosotros. Y aquí salió que las mismas dificultades tiene la gente para quienes esto es “su mero mole”. Por supuesto no se pusieron de acuerdo. Formaron un grupo que se va a encargar de presentarnos en la próxima reunión una propuesta. Lo que ya se acordó es que habrá que distinguir entre los procesos del lado de la demanda, los procesos de gestión y los técnicos. En MoProSoft ya tenemos los dos últimos, nos falta trabajar los primeros, los del lado de los compradores, para que ambas partes se entiendan mejor. Por este medio abro la convocatoria a los que quieren aportar su conocimiento y talento para definir los procesos complementarios a MoProSoft para la parte de adquisición. Favor mandar las propuestas a Software Guru. Hasta la próxima. - Hanna Oktaba 06 JUL-AGO 2005 www.softwareguru.com.mx COLUMNA MEJORA CONTINUA La Calidad no Cuesta... Pero, ¿Cuál es el Retorno de mi Inversión? H Luis R. Cuellar es Director de Calidad a nivel mundial de Softtek Information Services. Luis es reconocido por la American Society for Quality (ASQ) como Certified Quality Manager, Certified Software Engineer, y Six Sigma Black Belt. En los últimos cinco años ha estado a cargo de la definición e implantación de la estrategia para CMM5 y Six Sigma a través de las diferentes áreas del centro de desarrollo de Softtek. ace algunas semanas participé en una plática con varias compañías que están buscando su certificación de CMMi. Todas ellas compartieron sus experiencias sobre los problemas que viven y los beneficios obtenidos con el avance que se llevaba. Dentro de la conversación se tocó el tema de porqué buscar una certificación. Las respuestas fueron varias, en el orden de: “para competir en el futuro”, “entrar al mercado americano”, o “demostrar nuestro compromiso con la calidad”. Al escuchar estas respuestas, me pareció preocupante lo enfocado que están estos esfuerzos en obtener una certificación, más que en obtener beneficios específicos a corto plazo para la organización. Esto es comprensible tomando en cuenta que la certificación es una meta alcanzable (por lo menos más de uno lo ha hecho antes), fácilmente medible y principalmente muy clara de vender y comunicar dentro y fuera de la organización. Desafortunadamente, manejar la certificación como la única meta de un esfuerzo de calidad no necesariamente es lo más acertado, principalmente si lo que se busca es crear una cultura de eficiencia, respeto por el trabajo bien hecho y mejora continua. El Diablo está en los detalles OK, entonces si la certificación no es la meta, ¿cómo podemos expresar una meta más adecuada? El principal elemento a tomar en cuenta es que buscar una certificación es un proceso que genera un cambio en toda la organización. Normalmente requiere una reestructura de roles, actividades, forma de trabajo, y tal vez hasta una redefinición de los servicios ofrecidos. La idea común de “pongamos a alguien que esté desocupado a definir procesos para que después le digamos a todos que los sigan”, sólo lleva a la frustración y malos resultados. La organización va a cambiar, junto con la forma en que todos hacemos las cosas. Para lograr ese cambio se necesita una razón lo suficientemente importante, clara, y poderosa como para generar ese cambio y mantenerlo a largo plazo. El problema de basar las estrategias de calidad en obtener algo como un documento de certificación, es la cantidad de pequeños problemas que se encuentran todos los días y que nos empujan a mantener todo como está. Imaginemos un escenario en el que tenemos que certificarnos en seis meses, pero también debemos entregar un proyecto para un cliente. Sucede que para entregar a tiempo el proyecto, tendríamos que saltarnos las pruebas unitarias. ¿Qué decisión tomaría la dirección de la compañía? ¿Renegociar con el cliente las fechas diciéndole que nos urge certificarnos?, o ¿entregar a tiempo pero sin las pruebas? Si la respuesta es esta última, el mensaje a la organización es claro: “si te ves en problemas, entonces no sigas los procesos”. En este caso, las razones para generar un cambio no son lo suficientemente fuertes para lograrlo. 08 JUL-AGO 2005 Certificarse es solamente un producto secundario En 1979, Philip B. Crosby escribió un libro cuyo tema principal se resume en: “el esfuerzo que se le dedica a la calidad no cuesta”. Lo que Crosby quería decir en este libro es que los beneficios obtenidos por las estrategias de calidad son mayores al costo de los mismos. Así las metas de la certificación deben de estar íntimamente ligadas a los problemas más importantes que vive la organización: ¿se están barriendo los proyectos?, ¿generamos demasiados defectos?, ¿somos demasiado caros? Si seguimos trabajando con nuestro nivel de costos, ¿cuánto tiempo podríamos seguir compitiendo? Si resolviéramos estos problemas, ¿cuánto dejaríamos de perder?, ¿cuánto adicional ganaríamos?, ¿dónde se vería reflejado este beneficio?, ¿Qué tanto lo queremos?, ¿estamos dispuestos a sacrificar una ganancia el día de hoy para lograr un ingreso mayor el día de mañana? Estas son las preguntas que necesitamos responder, estos son los beneficios que debemos de dar seguimiento y asegurar que se cumplan. Hace algunos años participé en la planeación de la certificación de una compañía mexicana. Al iniciar con el plan de certificación lo principal fue investigar las razones de la certificación. Después de algunas preguntas se llegó a la conclusión de que la organización buscaba ser 10% más productiva el próximo año, debido a que tenía anticipado un recorte de presupuesto y se requería que los individuos siguieran con la misma carga de trabajo. De ahí lo primero que se estableció en el plan fue la definición de las métricas de productividad, y todas las demás actividades se priorizaron de acuerdo a su impacto en productividad. Como actividad secundaria se definió el análisis de implementación, el cierre de la brecha y la preparación de la certificación. Estos objetivos no sólo le dan a la organización un incentivo claro para seguir adelante, sino que también sirve como base para aclarar qué es lo que se espera de las áreas de definición de procesos. Si lo que queremos es reducir nuestros tiempos de entrega, no podemos definir demasiados documentos, si lo que queremos es mantener el cambio durante un crecimiento acelerado, necesitamos un proceso sencillo que sea fácil de entrenar. En conclusión, la certificación no debería ser un objetivo sino una consecuencia secundaria de una mejora que queremos lograr como organización. Entre mejor relación exista entre los objetivos de calidad con los objetivos de negocio, más beneficios podemos lograr de nuestros esfuerzos de calidad a corto, mediano y largo plazo. - Luis Cuellar www.softwareguru.com.mx PRODUCTOS LO QUE VIENE Primeros frutos de cooperacion entre Rational y Tivoli Detección y reparación de errores en sistemas empresariales Durante su conferencia anual para usuarios, IBM Rational mostró dos nuevos productos para acelerar y facilitar la detección y reparación de errores en aplicaciones empresariales: el Problem Resolution Toolkit para IBM Rational Application Developer y el Performance Optimization Toolkit para Rational Performance Tester. Estos productos integran capacidades del suite para administración de aplicaciones Tivoli, para mejorar la detección y solución de problemas en aplicaciones J2EE, middleware de integración y sistemas legacy. Las herramientas funcionan de la siguiente manera: el software Tivoli monitorea el rendimiento de las aplicaciones mientras están en funcionamiento, rastreando y guardando detalles cuando identifica problemas de rendimiento. El Problem Resolution Toolkit permite acceder esta información, para que los desarrolladores puedan identificar rápidamente la fuente de los problemas, minimizando el tiempo de caída de los sistemas. Por su parte, el Performance Optimization Toolkit proporciona colectores de datos, también basados en software Tivoli, que se ejecutan durante el proceso de prueba. Al encontrar un problema, el toolkit sugiere posibles causas y resoluciones. Este es uno de los primeros frutos del esfuerzo de “cómputo autonómico” de IBM para crear sistemas que se reparen a sí mismos. Dado que las herramientas de Rational y Tivoli están basadas en la plataforma Eclipse, su comunicación e integración es transparente para el usuario. PRODUCTOS BEA Aqualogic Cómputo Líquido BEA Systems recientemente lanzó su nueva familia de productos, AquaLogic. El propósito de estos productos es proveer lo que BEA llama una infraestructura de servicios. Esta infraestructura consiste en una especie de contenedor donde los servicios – sin importar la plataforma en que fueron desarrollados –, puedan ser descubiertos, ensamblados y administrados de manera fácil, rápida y segura. Los productos de esta familia que se han dado a conocer hasta el momento son: • BEA AquaLogic Service Bus, para la integración y administración de servicios web en ambientes heterogéneos. • BEA AquaLogic Data Services Platform, permite acceder de manera unificada los datos de diversas fuentes disponibles en la empresa. • BEA AquaLogic Enterprise Security, una infraestructura de seguridad orientada a servicios para proveer seguridad a aplicaciones distribuidas. Ademas de estos, se espera que en un futuro próximo se agreguen nuevos productos a esta familia. Al parecer, la nueva visión de BEA está completamente comprometida con AquaLogic y el concepto del cómputo líquido. Incluso ha cambiado su logo y slogan, el cual ahora es “think liquid” (piensa líquido). 10 JUL-AGO 2005 Integración Dirigida por Negocio Recientemente Magic Software liberó la versión 2.5 del iBolt Business Integration Suite, una plataforma de integración empresarial. Utilizando iBOLT, las empresas pueden alinear rápida y fácilmente sus necesidades del negocio con su infraestructura IT. iBolt también posee capacidades de BPM, así que las empresas pueden desarrollar nuevos procesos de negocio, crear nuevas aplicaciones compuestas e implementar de manera más flexible las Arquitecturas Orientadas a Servicios. El suite está formado por los siguientes componentes: • iBolt Studio – Herramienta para modelar y desarrollar visualmente los procesos, flujos, conectores, datos, topologías, etc. • iBolt Server – El engine o ambiente de ejecución para proyectos creados en iBolt Studio. • iBolt Monitor – Herramienta para monitorear en tiempo real la ejecución de procesos de negocio. Adicionalmente existe la Special Edition (SE) de iBolt, que es una edición especialmente diseñada para SAP Business ONE, que integra todas las capacidades de iBolt en esta plataforma. www.softwareguru.com.mx PRODUCTOS REPORTE DE MERCADO BPMS Aumentando las Expectativas E l 2005 muy probablemente será recordado como el año en que los sistemas BPM despegaron. De acuerdo con encuestas realizadas en Estados Unidos, BPM ha tomado el primer lugar en la lista de prioridades de los directores de sistemas, por encima de iniciativas como outsourcing y seguridad en TI. En México todavía falta tiempo para llegar a esto, pero es de esperarse que pronto lo haremos, así que es importante que comencemos a monitorear este mercado. Historia El mercado de los sistemas BPM es relativamente nuevo. Los expertos del tema concuerdan en que los primeros productos que realmente pueden ser considerados como BPMS hicieron su aparición entre 1999 y el 2000. En México, los analistas de la industria apenas este año comenzaron a monitorear el mercado de estos productos. Tal es el caso de IDC, quienes en su “Mexico Semiannual Software Tracker 2004”, consideraron el rubro de BPM por primera ocasión. • Cumbre de expectativas – Evangelización y proyectos iniciales. El entusiasmo llega a su punto mayor. • Valle de desilusión – Escepticismo generado cuando la tecnología no cumple con todo lo que había anunciado, o no se logra en el tiempo que se esperaba. • Pendiente de claridad – Con el mayor uso y experimentación, por fin se aclara el verdadero potencial, beneficios y riesgos. • Meseta de productividad – Los beneficios reales se demuestran y reciben aceptación general. Las herramientas relacionadas con la tecnología se estabilizan y maduran incrementalmente. En la gráfica 1, mostramos los puntos donde creemos que actualmente se encuentra esta tecnología tanto en Estados Unidos como en México. Tamaño De acuerdo con información reportada por IDC en el estudio previamente mencionado, el tamaño de este mercado en México en el 2004 fue de 3.9 millones de dls., lo cual representa tan sólo 2.1% del segmento de back office (182.1 millones dls.). Sin embargo, se espera que este mercado crezca en dobles dígitos anuales durante los próximos tres o cuatro años. Vale la pena recalcar que estas cifras se refieren exclusivamente a licencias de software. Evolución Este mercado actualmente cruza un momento muy importante. Las expectativas están en un nivel muy alto, lo cual provoca que todos los proveedores quieran “subirse al barco”. Una enorme cantidad de proveedores están desarrollando “capacidades BPM” dentro de sus productos, y otros tantos han hecho adquisiciones de empresas especializadas en tecnología BPM, para integrarlas dentro de su oferta. De acuerdo con Jim Sinur, analista de Gartner, existen más de 225 proveedores cuya oferta tecnológica abarca diferentes aspectos de BPM. Es evidente que poco a poco este mercado se irá consolidando, y la oferta quedará reducida a unos cuantos proveedores. Al igual que la mayoría de las tendencias tecnológicas, los BPMS están sujetos a una curva de evolución o madurez. Una manera de representar esta evolución, es apoyándose en el modelo del “Hype Cycle” (ciclo de expectativas, o de exageración), creado por Gartner. De acuerdo con este modelo, las tendencias tecnológicas típicamente siguen cinco etapas: • Lanzamiento – El disparo inicial generado por un lanzamiento, demostración pública, u otro evento que provoca que la industria empiece a poner atención en la tecnología en cuestión. 12 JUL-AGO 2005 Como podemos apreciar, en México todavía estamos en el ascenso hacia la cumbre de expectativas. Esto significa que durante los próximos meses seguiremos escuchando mucho respecto a este tema. Mientras tanto, parece que en Estados Unidos el punto máximo de expectativas ya se alcanzó, y ahora se está buscando convertir estas expectativas en realidad. Los analistas consideran que los BPMS alcanzarán la meseta de la productividad en Estados Unidos durante el 2007. Nosotros creemos que en México ésta se alcanzará de 18 a 24 meses después. Industrias El sector donde mayor adopción están teniendo los sistemas BPM hasta el momento, es el financiero. De acuerdo con cifras en Estados Unidos, 46% de los proyectos de BPM son en este sector, seguido por telecomunicaciones (12%), salud (10%), y gobierno (8%). Aunque datos como estos todavía no están disponibles en México, y realmente son muy pocos los proyectos de BPM hasta el momento, es de esperarse que la mayor adopción también se dé en el sector financiero y de aseguradoras, seguido por gobierno y grandes tiendas de autoservicio (retail). www.softwareguru.com.mx Estos son algunos de los principales proveedores de tecnología BPM con representación en nuestro país, listados en orden alfabético. Carnot (www.carnot-usa.com) Magic Software (www.magicsoftware.com) El Carnot Process Engine es uno de los productos que podemos llamar “BPM puro”, ya que se limita a proveer la funcionalidad exclusiva de un BPM. Esto, en conjunto con su arquitectura basada en estándares, le da gran flexibilidad. Por ejemplo, puede funcionar sobre diversos servidores de aplicación y manejadores de base de datos. Horbis (www.horbis.com) es distribuidor de Carnot en México. Su producto iBolt, es una plataforma de integración empresarial que ha evolucionado y ahora incluye capacidades BPM. Al usarlo en conjunto con eDeveloper —un producto de la misma empresa para desarrollar aplicaciones visualmente sin necesidad de programar—, ofrece una solución conveniente para integrar y desarrollar aplicaciones dirigidas por negocio. Roca Sistemas (www.rocasistemas.com.mx) es el distribuidor de Magic Software en México. Fuego (www.fuego.com) Software AG (www.softwareag.com) La Fuego BPM Suite puede ser calificada como una solución de “gran escala”. Está orientada a grandes empresas con ambientes heterogéneos y grandes volúmenes de operación. La oficina de contacto para Latinoamérica se encuentra en Miami, pero en México se puede adquirir a través de Axxis (www.axxis.com.mx). La empresa alemana creadora de productos como Natural, Adabas y Tamino XML Server, recientemente lanzó un producto BPM llamado Interstage Enterprise Process Manager, el cual es resultado de una alianza entre Software AG y Fujitsu. Handysoft (www.handysoft.com) Sterling Commerce (www.sterlingcommerce.com) BizFlow es otro BPM puro y multiplataforma. Su enfoque está en la facilidad de uso y administración. En conjunto con el SOXA Accelerator (otro producto de la misma empresa), brinda una solución “out-of-thebox” para lograr cumplimiento de Sarbanes Oxley. Grupo Ecce (www.grupoecce.com) es distribuidor de Handysoft en México. Como parte de su plataforma MESA (Multi Enterprise Services Architecture) para colaboración interempresarial, Sterling Commerce ofrece el Gentran Integration Suite. La suite está orientada a automatizar procesos de negocio colaborativos a lo largo de su interacción entre clientes, proveedores y otros socios de negocio. IBM (www.ibm.com) Ultimus (www.ultimus.com) IBM acostumbra estar presente en todo lo que se refiere a TI, y esta no es la excepción. Su suite para BPM lleva el nombre de Websphere Business Integration. Estos productos descansan sobre la capa de middleware provista por otros productos como Websphere Application Server y Websphere MQ. IBM también es uno de los principales impulsores de estándares para lenguajes de descripción de procesos de negocio, como BPEL. Así que este gigante está presente en todos los frentes: estándares, middleware y productos finales. Ultimus es una de las empresas pioneras en BPM. Una de sus principales fortalezas de su Ultimus BPM Suite es su integración avanzada con tecnología de Microsoft. Por ejemplo, usa unos componentes llamados “flobots”, que son agentes que automáticamente interpretan, generan y distribuyen documentos de Office. www.softwareguru.com.mx PRODUCTOS TUTORIAL Ingeniería en Reversa de DB2 iSeries Utilizando XDE Por Amaury Quintero En este artículo veremos cómo utilizar Rational XDE para hacer la ingeniería inversa de una base de datos DB2 albergada en un servidor iSeries o AS/400e. XDE es un ambiente integrado para desarrollo de software (IDE), que incluye capacidades para modelado visual con UML. H ay ocasiones en las que necesitamos hacer ingeniería inversa a una base de datos existente para poder conocerla, entendarla y posiblemente modificarla. Esto suele suceder cuando heredamos una base de datos de un sistema legado. Veamos entonces cómo podemos utilizar Rational XDE para realizar la ingeniería inversa y generar el modelo correspondiente. Para realizar esta práctica vamos a necesitar el IBM Toolbox para Java. Este es un conjunto de clases Java que nos permite accesar los datos en servidores iSeries y AS/400e. En caso que el servidor no contase con el IBM Toolbox para Java es necesaria su instalación. Para instalar este conjunto de utilidades haga lo siguiente: • Desde la línea de comandos escriba GO MENU (LICPGM) y presione [ENTER]. • Selecione 11. Install licensed program. • Seleccione 5722-JC1 IBM Toolbox for Java. UML y el modelo Entidad-Relación (E/R) XDE no maneja directamente los diagramas EntidadRelación tradicionales. Lo que hace es utilizar diagramas de clases, complementados con el perfil de UML para bases de datos. Este perfil incluye estereotipos para modelar los elementos de un diagrama entidadrelación. Por ejemplo, las tablas se representan como clases con el estereotipo <<Table>> mientras que las relaciones se representan como asociaciones entre clases. Las columnas de las tablas se representan como si fueran atributos de clase, y los constraints como operaciones. 14 JUL-AGO 2005 Para comenzar, creamos un nuevo proyecto en el XDE y seleccionamos alguno de los tipos de modelos predeterminados para realizar el modelado de datos. En nuestro caso utilizaremos el DB2 iSeries Data Model, el cual nos van a permitir albergar los elementos que esten dentro de la base de datos DB2. Para realizar la ingeniería inversa podemos partir de un script DDL que contenga las sentencias SQL de la estructura de la base de datos, o nos podemos conectar directamente a la base de datos y obtener esta información. El script se puede generar con el IBM iSeries Navigator, a través del cual nos conectamos a la base de datos, seleccionamos los esquemas deseados y generamos el archivo. Para conectarnos a la base de datos desde XDE, podemos utilizar DB2 Connect. Esta es la herramienta de selección cuando necesitamos tener acceso a DB2 ya sea de la plataforma zSeries, iSeries y AS/400 principalmente. Sin embargo, desde XDE también podemos accesar una gran variedad de manejadores de bases de datos sobre diferentes plataformas. Una vez que XDE haya importado el contenido de la base de datos (ya sea a través del DDL o por conexión directa), se procede a generar diagramas donde se puede modelar visualmente los elementos de la base de datos. Pasos 1. En la vista del Explorador de Modelos, que se encuentra ya abierta en la perspectiva de modelado, seleccionar el modelo que recibirá la ingeniería inversa. 2. Activar el asistente de ingenieria en reversa haciendo click derecho sobre el modelo de datos y seleccionando Data Modeler > Reverse Engineer (Fig. 1). Seleccionamos la opción de DDL Script, el tipo de base de datos IBM DB2 iSeries 5.x y el archivo con las sentencias SQL que nos proporcionó el iSeries Operation Navigator. 3. Luego debemos filtrar los elementos de la base de datos que necesitamos conocer (índices, procedimientos almacenados, vistas, tablas, etc) y con esto terminamos la operación. Siempre debemos verificar en la vista de Output de XDE que no se hayan reportado problemas a la hora de leer el script, de ser asi, debemos revisar los errores y corregirlos manualmente en el archivo con sentencias SQL. Esto evita que algún detalle de la base de datos sea omitido. Una vez que el asistente es ejecutado, XDE hace una correspondencia entre el DDL y el perfil UML, por ejemplo; cada sentencia CREATE TABLE es transformada a una tabla del modelo relacional y cada CREATE DISTINCT TYPE es convertido a una columna del dominio dentro del modelo del dominio. www.softwareguru.com.mx Fig. 1. Invocando al asistente para ejecutar la ingeniería en reversa. Terminado esto, pasamos a revisar el contenido del modelo generado en el Explorador de Modelos, podemos modificar el nombre de la base de datos, por uno más representativo. El Nombre RDB (Relational Database Name) es el nombre de la base de datos en el servidor (Fig. 2) y se puede obtener con el comando de línea WRKRDBDIRE. Fig. 2. Representación de la base de datos del servidor y tablas de los esquemas seleccionados. Utilizando los diagramas de clases o de formato libre de XDE podemos crear algunos que nos den una idea de cómo están asociadas las diferentes entidades de nuestro modelo de www.softwareguru.com.mx PRODUCTOS TUTORIAL A través del modelado visual podemos entender mejor la estructura de una base de datos, así como sus dependencias. datos (Fig. 3), lo cual nos brinda una forma sencilla de visualizar el modelo. También podemos revisar la correspondencia que efectuó XDE entre los datos de DB/2 UDB iSeries y el perfil UML para base de datos consultando la ayuda de XDE. 2. Si el servidor de aplicaciones se encuentra en otra máquina, entonces necesitamos un driver JDBC, de preferencia el que viene con el IBM Toolbox para Java. Este es un manejador tipo 4, que es un manejador de protocolo nativo que provee un mejor rendimiento que los drivers del tipo 1 y 2, ya que se comunica directamente con el host utilizando sockets sin pasar por la capa de ODBC. La clase que lo implementa es com.ibm.as400.access. AS400JDBCDriver Conclusión Fig. 3. Diagrama de clases visualizando la relación entre los componentes del modelo de datos. Luego de conocer nuestro dominio y ejecutar cambios sobre este, el diseñador puede pasar a aplicar estos cambios a la base de datos, posicionandose sobre uno de los esquemas modificados y nuevamente haciendo click derecho Data Modeler > Forward Engineer, seleccionamos los elementos que queremos actualizar y el nuevo archivo donde se guardarán las sentencias SQL con las modificaciones a la base de datos. Para hacer los cambios efectivos, este archivo tenemos que ejecutarlo sobre el iSeries Operation Navigator como un script SQL. Asegurese que la ejecución no le arrojó mensajes de error, si es asi corrijalos y continue la ejecución. A través del modelado visual podemos entender mejor la estructura de una base de datos, así como sus dependencias. El modelado visual es una de las mejores practicas del desarrollo de de software que contribuyen a aumentar la probabilidad de la ejecucuión exitosa de proyectos de software. Hay que recordar que la ingenieria en reversa debe ser considerada una herramienta que nos asiste en el proceso de entender y visualizar una configuración existente, y no como una fuente de verdad irrefutable. El resultado debe ser revisado para asegurarnos que la herramienta ha capturado los detalles de manera correcta. Drivers para producción Si fuese el caso que los cambios serán puestos en producción, tenemos dos opciones para conectarnos a la base de datos desde el servidor de aplicaciones de Java, dependiendo de donde se encuentre instalado éste: 1. Si el servidor de aplicaciones se encuentra en la misma máquina que la base de datos, conviene utilizar el driver nativo, que viene dentro del AS/400 Developer Kit, que es más rápido y está implementado con la clase com.ibm. db2.jdbc.app.DB2Driver. Este driver también lo podemos obtener directamente del mismo servidor AS/400, el archivo que deben buscar es /QIBM/ProdData/http/Public/jt400/lib/jt400.jar Referencias • IBM Developerworks www-136.ibm.com/developerworks/ • iSeries Information Center publib.boulder.ibm.com/iseries/ v5r2/ic2924/ • JDBC Drivers: How Do You Know What You Need? archive.devx.com/dbzone/articles/ dd_jdbc/sosinsky-1.asp Amaury Quintero es consultor de Itera especializado en Análisis y Diseño, donde se encarga de la iniciativa de Nuevas Herramientas de IBM Rational. Es graduado de Cibernética-Matemática en la Universidad de La Habana, Cuba y actualmente cursa la Maestría en Ciencias de la Computación en el CIC del IPN. 16 JUL-AGO 2005 www.softwareguru.com.mx ENTREVISTA Ing. en Computación de la UNAM y con 38 años de edad, Carlos González es director de sistemas de Grupo TMM, una de las empresas más importantes del país. Carlos inició su carrera profesional en Oracle, como consultor. Después llegó a TMM, donde coordinó los esfuerzos de ingeniería de software durante un par de años. En 1999 decidió dedicarse a dar cursos y consultoría de manera externa, pero pronto regresó a TMM para apoyar en la definición de los procesos operativos del área. Un par de años después, en el 2001, asumió la dirección de sistemas. Carlos González Director de Sistemas de TMM ¿Qué te hizo regresar a TMM cuando ya te habías ido? Ahí hay una cuestión medio filosófica. Cuando me fui de instructor esos siete meses, durante un taller hicimos un ejercicio en el que me pusieron el símil de la escalera. Se supone que tu camino en la vida es una escalera, así que si quieres llegar a algún lugar, tienes que pensar en si lo que estás haciendo hoy en día te está ayudando a subir escalones o no. Yo lo pensé y me di cuenta que lo que yo quería era ser director de sistemas, así que por eso me regresé. Siento que hice una buena decisión porque estoy haciendo algo que me apasiona. 18 JUL-AGO 2005 Tu camino a la dirección de sistemas fue a través de las áreas de procesos y metodología. ¿Crees que este es un buen camino? Sí, porque al trabajar en esta área también conoces los procesos del negocio. Yo creo que este es el camino más adecuado, no porque yo haya pasado por ahí, sino porque me he topado con otras personas que no han tenido esa progresión, y carecen de las herramientas suficientes. También es importante captar suficiente experiencia antes de llegar a un puesto directivo, ya que con esto será más fácil asumir una responsabilidad y lidiar con la incertidumbre. Porque estar en un puesto directivo es lidiar continuamente con la incertidumbre, la ambigüedad completa. ¿Cuáles son los principales proyectos que tienen en curso en TMM? Al igual que muchas otras empresas en México, TMM tuvo una época difícil en los últimos dos o tres años. Esto nos obligó a detener un poco ciertas iniciativas que traíamos. Al día de hoy, los principales proyectos que tenemos son en términos de actualización de infraestructura, seguridad, etc. El siguiente paso que queremos dar es desarrollar una arquitectura de servicios que nos permita ofrecer nuevos y mejores servicios a los clientes. Esta arquitectura también nos permitirá ligar nuestras cadenas de suministro con nuestros clientes y proveedores para tener una interacción mucho más directa y eficiente. Durante 2004 TMM redujo significativamente sus costos administrativos. ¿Fue tijeretazo o en realidad hubo mejoras en eficiencia? ¿Qué papel jugaron las TI? Usualmente en la mayoría de las empresas con una dinámica de negocio normal, donde se está ganando dinero de manera continua, se empieza a dar un desperdicio. Esto pasa siempre, y no es evidente hasta que el desperdicio es demasiado. Lo que nosotros hicimos fue analizar nuestros procesos, y entonces nos dimos cuenta que había ineficiencias como pasos duplicados, sistemas que hacían lo mismo, áreas que trabajaban con la misma información pero de diferente manera. Así que al corregir esto mejoramos nuestra eficiencia. Lo otro que hicimos fue acercarnos a nuestros proveedores y buscar maneras creativas de resolver las cosas. Por ejemplo, que pasa si en lugar de adquirir y despreciar los activos empezamos a arrendarlos en un esquema de demanda, o si en lugar de comprar licencias rentamos servicios, o si en lugar de tener a los programadores ahí sentados, nos apoyamos en proveedores externos. www.softwareguru.com.mx ¿Qué criterios de evaluación utilizas para escoger proveedores de servicios de TI? Más que nada nos fijamos en el nivel de la gente. Normalmente cuando tú encuentras un despacho que trae elementos de buen nivel, eso habla mucho de la empresa y cómo escoge a su personal. ¿Cuáles consideras que son los principales retos que viven los CIOs hoy en día? Uno de los mayores retos es la alineación de TI con el negocio, lograr tener esa visión lo suficientemente profunda para entender cómo es que la tecnología afecta la operación central del negocio. Hoy ya no es como antes, cuando el contador te decía “necesito un sistema para llevar la contabilidad”, así que era fácil definirlo y justificarlo. Hoy en día ya estamos hablando de iniciativas mucho más complejas, como por ejemplo, Business Process Management. Entender estos conceptos requiere madurez no sólo en términos de tecnología, sino principalmente de la operación del negocio. ¿Cómo ha evolucionado el rol de las áreas de sistemas y hacia dónde va? En los 90s el rol del área de sistemas era una cuestión eminentemente técnica. Ese periodo ya pasó y hoy más que nada lo que hacen es administrar la tecnología como un recurso. Esto significa que cada peso que la organización destina a los sistemas debe ser lo más inteligentemente gastado, para que de ser posible pueda devolver dos pesos. Hacia el futuro, creo que esta área deberá estar mucho más involucrada en el negocio, para proveer una visión “tecnologizada” de éste. Como parte de esta visión, su responsabilidad será proponer iniciativas que mejoren el negocio o lo habiliten hacia nuevas oportunidades. ¿Entonces ya no bastará con saber programar? Así es. Cualquiera puede programar hoy en día. El único diferenciador que puedes tener es el conocimiento de negocio. El saber hacer negocio con la tecnología es muy relevante. ¿Crees que BPM sea una moda o que sea real? BPM a fin de cuentas es un concepto, cuyos fundamentos están en la operación del negocio. No es algo nuevo, lo que sucede es que hace muchos años las herramientas que había eran poco adecuadas, y estaban completamente desligadas entre sí. La orquestación de procesos entre sistemas era imposible, ya que tenías que meterte a las tripas de cada sistema y desarrollar procedimientos y llamadas a nivel de sistema operativo, entonces esto era muy poco práctico. Hoy en día la tecnología ya evolucionó, y todo esto es mucho más natural. ¿Nos puedes contar algo sobre su proyecto para cumplimiento de Sarbanes Oxley? La ley de Sarbanes Oxley es un mandato para todas las empresas públicas que cotizan en el mercado de valores de Nueva York, como nosotros. Esto significa básicamente tener una definición de controles lo suficientemente robusta para permitir a los auditores hacer una atestiguación de que estás controlando adecuadamente la empresa y no estás defraudando a los inversionistas. ¿Crees que Sarbanes Oxley trae beneficios más allá de cumplir con el mandato? Sí. Cualquier empresa debe tener idea de qué hace, cómo lo hace, cuándo lo hace, y qué oportunidades tiene de mejorarlo. Y la única forma de lograr esto es teniendo clara la definición de los procesos. No hay mejora si no hay procesos. ¿Cuáles son las principales habilidades y conocimientos que necesita tener un CIO? Al igual que para cualquier profesión, el conocimiento más importante es el de ti mismo. Hay que saber cómo es que aprendes, cómo resuelves problemas, cómo enseñas. Esto te hace ver tus principales fortalezas y debilidades, y a final de cuentas te permite mostrar una imagen auténtica de ti. ¿Qué características consideras importantes en una persona que quieres reclutar? La actitud es lo más importante. La gente debe estar dispuesta a aprender, crecer, y entrarle a la chamba difícil. El conocimiento es secundario porque se puede adquirir. ¿Qué le pedirías al gobierno, las instituciones educativas y las empresas para desarrollar la industria de software? Al gobierno, apoyo para facilitar el establecimiento de nuevas empresas. A las instituciones educativas, que generen profesionistas más completos, que además de habilidades técnicas cuenten con habilidades complementarias para que puedan hacer una presentación, administrar el tiempo, comunicarse adecuadamente, etc. A las empresas, mayor determinación e innovación. Frecuentemente, en México, cuando hay oportunidades que involucran riesgo, simplemente no le entramos. Esperamos a que llegue alguien más y lo haga. Creo que debemos aventarnos a vivir el sueño, en lugar de seguirlo soñando. ¿Qué mensaje le dejas a nuestros lectores? Que lean la revista, tiene cosas muy interesantes. Mucha gente está más pegada al rollo de los lenguajes de programación y los bits y los bytes, que en tratar de entender el proceso completo de desarrollo de software. JUL-AGO 2005 19 EN PORTADA BPM Una Herramienta de Competitividad Por Francisco López Lira Las empresas enfrentan un entorno complicado. Por un lado, la competencia es global y se hace contra países con sueldos menores, lo que implica que las empresas deben reducir sus costos o crear mayores diferenciadores para competir. Por el otro, la situación económica adversa ha hecho que se disponga de menor cantidad de recursos y ahora es necesario hacer más con menos. Además, los clientes están más informados y cuentan con mayor poder de elección, lo cual genera más presión para venderles y retenerlos. Por si esto no fuera poco, los mercados y las condiciones cambian continuamente, requiriendo de las empresas rapidez de adaptación y una mayor flexibilidad para el cambio. 20 JUL-AGO 2005 “Hay un método en esta locura” —Horacio M uchas han sido las iniciativas que a lo largo de los años se han propuesto para que las empresas puedan afrontar estos retos. Desde la Gestión de Calidad Total (TQM) hasta Six Sigma (6σ), pasando por Reingeniería de Procesos de Negocio (BPR), Just in Time (JIT), Costeo Basado en Actividades (ABC), Kaizen, Supply Chain Management (SCM) y Balanced Scorecard (BSC), por nombrar algunas. Por supuesto, la tecnología de información ha estado presente con propuestas propias, que se remontan a la promesa de los Sistemas de Información Gerenciales (MIS) y la tecnología Cliente/Servidor hasta llegar a los ERP y los CRM, sin olvidar las soluciones Business to Business (B2B). Tristemente, estas iniciativas no siempre han dado los resultados esperados. Muchas fueron las empresas que con gran ilusión se embarcaron en la ola de Reingeniería de los 90’s, obteniendo resultados muy por debajo de lo esperado. Según el propio Michael Hammer, 70% de estos proyectos resultaron en fracasos. Esto ha dado lugar a un gran escepticismo y ha creado el síndrome de cure du jour. Por el lado de los proyectos de tecnología de información, los fracasos acumulados en la industria han dado lugar a que los Directores de Sistemas enfrenten ahora una creciente presión para (a) probar que la tecnología de información entrega valor a la organización, (b) involucrar a las diferentes áreas en las decisiones tecnológicas, (c) reducir costos, y (d) mantener bajo control los riesgos, lo cual ha dado lugar al concepto de Gobernanza de TI (IT Governance). ¿Por qué estos esfuerzos no han tenido el éxito esperado? Un estudio sobre la utilización de 200 herramientas administrativas en 160 empresas durante un lapso de diez años, encontró que las empresas que alcanzan un desempeño superior son las que dominan cuatro elementos fundamentales: estrategia, cultura, estructura y ejecución, independientemente de la herramienta utilizada. Esto implica que las organizaciones, primero, deben de elaborar una estrategia adecuada, que permita aprovechar las condiciones externas y las capacidades internas. Una vez que se cuenta con ésta, la cultura —los supuestos compartidos— debe alinearse para permitir alcanzar los objetivos, al igual que debe crearse una estructura organizacional que soporte las iniciativas dentro de la organización. Ahora bien, ¿cómo pueden las organizaciones ejecutar adecuadamente? Las organizaciones sólo cuentan con dos formas de instrumentar las estrategias: los proyectos y los procesos. Recordemos que un proyecto es “un esfuerzo temporal que se lleva a cabo para crear un producto o servicio único”, mientras que un proceso puede definirse como “un conjunto de actividades que transforman insumos en productos de valor para un cliente”. Es importante hacer notar que los proyectos, a su vez, están formados por procesos y que 80% del fracaso o éxito de los proyectos está relacionado con una buena administración. Los elementos clave para la ejecución son pues, los procesos y su administración. Si repasamos las iniciativas citadas, veremos que en todas los procesos tienen un papel clave: son un área importante dentro de un esfuerzo de TQM, son el foco central de BPR, Kaizen y 6σ, y son cruciales en JIT, ABC y BSC. Los procesos también ocupan un lugar trascendente en las iniciativas tecnológicas. Por ejemplo, ¿quién puede negar su importancia en un ERP o B2B? Los procesos son importantes porque es a través de ellos que la organización genera valor para sus clientes, integrando la participación de diferentes áreas funcionales a través de toda la cadena de valor. En este contexto, surge con mucha fuerza una iniciativa llamada Business Process Management (BPM) que puede ayudar a consolidar todos los esfuerzos anteriores. En el año 2000, Gartner predijo que BPM sería el siguiente gran fenómeno, y posteriormente comentó que “BPM gana la triple corona por ahorrar dinero, ahorrar tiempo y añadir valor”. Otro estudio realizado por el BPM Institute arrojó que 96% de los encuestados indicaron que un enfoque centrado en procesos era crítico para el éxito de su compañía. ¿Qué es BPM? BPM consiste administrar el ciclo de vida de los procesos, apoyándose en herramientas de automatización del flujo de trabajo, conocidas como Business Process Management Systems o BPMS. Aunque algunos opinan que BPM no necesariamente involucra un BPMS, en mi opinión esto le resta potencial a la solución y no permite distinguirla fácilmente de otras propuestas como Kaizen, por ejemplo. El ciclo de vida de un proceso cubre su conceptualización, representación (gráfica y/o textual), optimización, automatización, simulación y prueba, e implantación en la organización. Por otro lado, la administración incluye la planeación, seguimiento, monitoreo y control. JUL-AGO 2005 21 EN PORTADA Beneficios En su reporte Technology Focus: Business Process Management, Doculabs lista como beneficios para las organizaciones la reducción de costos, mejor servicio al cliente, reducción de riesgos y una rápida respuesta a las condiciones cambiantes. De acuerdo con un estudio de Gartner, 78% de los proyectos de BPM arrojaron una tasa interna de retorno mayor a 15%, y algunos llegaron a 360%, lo cual justifica el costo de la solución. BPM es la convergencia de iniciativas administrativas anteriores: toma el concepto de enfoque de procesos y de mejora continua de Kaizen y TQM, la posibilidad de innovar radicalmente los procesos de BPR, el enfoque en la mejora con base en datos estadísticos de 6σ, la idea de operación en línea de JIT, el costeo de procesos de ABC, la integración de procesos de SCM y la idea de un tablero de control de BSC. Los BPMS, por otro lado, aprovechan nuevas tecnologías como XML y web services, pero —maravillosamente— habilitando la integración con sistemas legados, ERPs, CRMs y herramientas de BI. Todo esto sin perder de vista el proceso desde el punto de vista del negocio. BPMS Para entender lo que es un BPMS, enlistemos sus componentes funcionales típicos: • Modelador de procesos.- Ayuda a descubrir y modelar los procesos. • Herramientas de desarrollo.- Diseñador de formas y editor de reglas. • Integración.- Habilita la integración para interactuar con otras aplicaciones. • Máquina de procesos.- El motor que habilita la ejecución de procesos. Ejecuta instancias de procesos en base al estado de los objetos y las reglas definidas. • Repositorio.- Almacena meta-definiciones de procesos, participantes e integración. • Gestión.- Provee registros de auditoría. Adicionalmente habilita la intervención manual para redirigir, abortar o modificar la instancia de un proceso en caso de emergencia. • Reporte y Análisis.- Permite visualizar y analizar la ejecución de los procesos. Contraste con Paquetes Los proveedores de paquetes y aplicaciones empresariales acostumbran argumentar que sus productos cubren prácticamente todas las necesidades de una organización. Sin embargo, sabemos que esto dista de ser verdad. Según Gartner, un ERP cubre en promedio únicamente 30% de la funcionalidad requerida en las empresas. Adicionalmente, existen muchas actividades que involucran participación y toma de decisiones por parte de las personas. Cuando estas actividades no están incluidas en las aplicaciones, se crean actividades fuera del proceso automatizado. Si el proceso requiere la intervención de varios sistemas, se crean islas de automatización que obligan a las personas a utilizar papel o paquetería de oficina para pasar de una “isla” a otra. Son famosas las historias de cómo las personas se ingenian para usar una hoja de cálculo y “darle la vuelta” a un ERP. Aún cuando a un paquete se le integre una máquina de procesos, la solución está centrada en los “recursos” o “los clientes” y no en los procesos de negocio. Así como un manejador de bases de datos está hecho para manejar bases de datos, tablas, columnas e índices, un BPMS está diseñado para manejar procesos, instancias, versiones y variantes, componentes, reglas y participantes de procesos. Esto cambia el enfoque de centrado-en-datos a centrado-en-procesos. Impacto al área de TI BPM tiene una repercusión importante para los roles relacionados con el software. Los proyectos de BPM serán parte del portafolio de proyectos de las áreas de Sistemas y deberán ser controlados por el Director. Los desarrollos de software a la medida incluirán cada vez más la identificación y modelado de los procesos de negocio. Los desarrollos de software basados en un BPMS requerirán que los desarrolladores entiendan los procesos de negocio y sepan usar la herramienta. Los analistas de sistemas deberán aprender sobre análisis de procesos, al igual que los usuarios. Los testers deberán realizar pruebas con una visión del proceso completo. Los administradores de bases de datos deberán incorporar bases de datos de procesos. Los administradores de redes deberán incluir en su administración servidores de procesos y considerar el ancho de banda necesario para asegurar el tráfico de la información de los procesos, no sólo a través de la organización sino también con los socios de negocio. Los administradores de configuración tendrán que considerar entre sus ítems a los procesos y sus objetos derivados. Los administradores de proyectos deberán entender las implicaciones de la participación de los usuarios de negocio y de los analistas de procesos. Los especialistas en seguridad deberán ahora brindar seguridad a todo el proceso. Pero no todo es mayor trabajo para el personal de Sistemas. En retribución, los sistemas desarrollados tendrán una mayor visibilidad y una mayor participación de las áreas usuarias. Será posible reanimar sistemas “muertos” o poco utilizados. Los usuarios podrán contar con una interfaz común sin importar si detrás está un ERP o un sistema legado. Quizá lo más importante para nuestra industria es que se aprovecha y potencía la inversión existente en tecnología de información. ¿Cómo se relaciona BPM con los esfuerzos de mejora de procesos basados en modelos? ¿No son BPM también? Los modelos como CMMI o MoProSoft son un gran avance ya que llevan el concepto de administración de procesos a las organizaciones de sistemas/software. Existen otros modelos, como SCOR para cadena de suministro (Supply Chain), ITIL para servicio tecnológico, o COBIT para el control de los objetivos. Todos ellos se basan en procesos y considera en menor o mayor grado su administración. Las diferencias cruciales, quizá sean que BPM primero lleva estos conceptos a toda la organización, y además, tomando ventaja explícita de la tecnología para crear procesos digitalizados. Esto no significa que los esfuerzos basados en estos modelos compitan con BPM. Más bien, son un paso importante en el sentido de lo que se buscan con BPM. Por último, más no por menos, es importante mencionar que además del expertise técnico en BPM, un esfuerzo exitoso de este tipo requiere incluir una administración efectiva de los proyectos, administrar el cambio organizacional, obtener el patrocinio suficiente, y alinearse con los objetivos estratégicos del negocio. Referencias: • William Joyce, Nitin Noria, Bruce Robertson. “What Really Works”. Harvard Business Review. Julio 2003 • Jim Sinur, Jess Thompson. “The Business Process Management Scenario.” Gartner Research. Junio 2003 • Thompson, Michael. “Requirements for effective BPM”, Butler Group. Junio 2003 Francisco José López Lira e Hinojo es Director Operativo de Process & Project Health Services, firma dedicada a la consultoría en BPM y mejora de proyectos, Presidente de la Asociación Mexicana para la Calidad en Ingeniería de Software (AMCIS) y Vicepresidente de la Asociación BPM de México. Su correo es [email protected] 22 JUL-AGO 2005 www.softwareguru.com.mx Desde hace varios años las organizaciones (empresas privadas o instituciones públicas) han ido incrementando el uso de procesos con el objeto de mejorar su desempeño y mantener su operación. Podemos ver reflejada esta megatendencia en muchos contextos donde el proceso es una entidad relevante: paquetes empresariales de software basados en modelos estándar de procesos (CRM, ERP, SCM), modelos de gestión del desempeño empresarial (Balanced Scorecard), modelos de calidad (ISO 9000:2000, TQM), métodos de mejora de procesos (Six Sigma, BPR), modelos de referencia de madurez y capacidad de procesos (CMMI, SPICE), modelos de procesos específicos (RUP, SPEM, ITIL), entre otros. BPMS La Nueva Plataforma de Misión Crítica Por Roberto Silva En la actualidad, los proveedores requieren acelerar la entrega de más valor a sus clientes y al mismo tiempo disminuir sus costos. Sin embargo, las organizaciones no han comprendido la naturaleza básica de los procesos y aún no han encontrado una infraestructura de TI que signifique valor real para el negocio en términos financieros (para las organizaciones no lucrativas varía la unidad pero no el concepto de valor). www.softwareguru.com.mx JUL-AGO 2005 23 EN PORTADA A finales de la década pasada aparecieron los primeros Sistemas de Administración de Procesos de Negocio o BPMS (Business Process Management Systems) que permiten a las organizaciones mapear, integrar, liberar, medir, monitorizar, controlar, analizar y optimizar procesos de negocio de misión crítica que requieren ser integradas en una verdadera cadena de generación de valor para un cliente final y ligada directamente al logro de objetivos estratégicos. El objetivo de este artículo es dejar claro qué es un BPMS, qué podemos hacer con él, pero sobre todo, entender porqué es la plataforma de misión crítica para toda organización que pretenda sustentar el logro de sus objetivos y mantener sus ventajas competitivas en un ambiente complejo de cambios constantes[1]. Fundamentos Considerando que los proveedores de software o sus representantes son especialistas en generar confusión alrededor de productos innovadores en el afán de venderlos, considero muy importante aclarar que la Dirección de Procesos de Negocio o BPM (Business Process Management) al igual que, por ejemplo, CRM (Customer Relationship Management), no son términos acotados únicamente a un paquete de software especializado ni tampoco es una meta que puede ser alcanzada en un cierto plazo ejecutando una serie de proyectos, es una manera de vida. ¿Qué es BPM? BPM es toda una filosofía de trabajo que coloca al proceso de negocio al centro de su universo, es la manera moderna de administrar un negocio, donde su propósito es asegurar la mejora continua del desempeño organizacional en un ambiente de cambios constantes. Una empresa que practica BPM entiende y vive tanto la operación como el desarrollo organizacional en términos de procesos de negocio integral y naturalmente. Los procesos de negocio son las unidades de sincronización de cambios, de generación de valor para los clientes, y de logro de objetivos estratégicos, más adelante ahondaré al respecto en el bloque de pensamiento sistémico. 24 JUL-AGO 2005 En una organización hay tres tipos básicos de procesos de negocio. Los centrales son aquellos procesos cuyo cliente es el beneficiario de la oferta de valor de la organización: los clientes comercialmente hablando; los estratégicos son aquellos cuyo cliente es la organización como un todo, ya que el valor obtenido es mejor infraestructura organizacional en términos, por ejemplo, de mejores profesionales o mejores sistemas de información; finalmente los procesos de soporte son aquellos cuyo cliente es otro proceso de negocio, ya que el valor que recibe es una entrada necesaria para poder lograr su objetivo particular. Sin embargo, un cuarto tipo es el más importante en BPM. Los procesos de negocio empresariales o EBP (Enterprise Business Process) son los vitales, ya que corresponden a las grandes cadenas de generación de valor que involucran varias entidades internas y externas a la organización (atraviesan varios departamentos funcionales, requieren el uso de diversos sistemas y aplicaciones de software, involucran proveedores y muchas veces aliados de negocio) cuyo alto desempeño significa el logro de objetivos estratégicos. El BPMG[3] define a un EBP como: “la coordinación de lado a lado (a través de departamentos o inclusive fronteras organizacionales) de las actividades de trabajo que genera y entrega valor real a clientes”. El gran reto es desarrollar esta nueva capacidad que requiere, como primer paso, romper el paradigma del pensamiento funcional. ¿Qué es un BPMS? Desde el punto de vista BPM, un BPMS es el principal facilitador para implantar un programa permanente de mejora continua en la práctica, ya que es imposible administrar sistemas tan complejos como lo son los procesos de negocio empresariales, simplemente, ¿cómo podríamos medirlos y monitorizarlos en tiempo real? Desde el punto de vista organizacional, un BPMS es el medio de organización, alineación y sincronización de las entidades (recursos) de negocio más importantes en un mismo sistema integral y coordinado: personas, reglas de negocio, datos, sistemas informáticos existen- tes y aplicaciones de software (especialmente servicios) nuevas sin importar su ubicación ni alcance, ya que las personas pueden pertenecer a diferentes departamentos u organizaciones y estar en diferente piso o país, siempre que el BPMS esté basado en estándares. Desde el punto de vista técnico, un BPMS es una plataforma que permite integrar la infraestructura tecnológica existente en un ambiente Web que, a su vez, permite preservar los beneficios específicos de aplicaciones legadas. Al mismo tiempo, es un bloque de construcción esencial para un nuevo tipo de arquitectura aplicativa, basada en estándares y orientada a servicios (SOA). Soporta además procesos B2X (B2B, B2C, B2P, B2E, etc.) y permite a los diseñadores de aplicaciones construir soluciones orientadas a procesos de una manera muy rentable y efectiva. Desde el punto de vista del negocio, un BPMS es el medio que finalmente permitirá integrar Negocio y TI con un sentido estratégico, donde por un lado TI se enfoca al desarrollo de la infraestructura tecnológica centrada en procesos y arquitecturas aplicativas orientadas a servicios (SOA) y por otro lado le regresa el control del negocio al negocio: extrayendo las reglas de negocio implantadas mediante mecanismos internos a los sistemas o los manejadores de datos. Según Gartner, las tecnologías de información son el principal impedimento para la agilidad organizacional, ya que han sido enfocadas a la mejora de necesidades funcionales. Además, si consideramos que 80% de los requerimientos de cambio corresponden a reglas de negocio (también según Gartner), regresar el control significa manejar las reglas de negocio como parte integral de los procesos de negocio modelados y administrados dentro del BPMS de manera independiente a las aplicaciones de software. La Importancia del Pensamiento Sistémico Desde hace muchos años, W. Edward Deming, el padre del movimiento de la calidad, puntualizó que el problema es el “sistema”. Los procesos de negocio empresariales que atraviesan las organizaciones funcionales de www.softwareguru.com.mx Figura 1. Infraestructura de Software de Misión de Crítica lado a lado son sistemas dinámicos, pero desafortunadamente los profesionales que dirigen y ejecutan los procesos generalmente no están entrenados en el pensamiento sistémico. Lo común es que su perspectiva esté restringida a prácticas de negocio de muy bajo nivel de abstracción (procedimientos muy específicos y rígidos), realmente pocos profesionales tienen una perspectiva amplia de su contexto más amplio dentro de la organización. Hoy día es evidente que conforme avanza el tiempo tanto el entorno como el interior de las empresas se van volviendo más complejos y de hecho la tendencia es hacia ambientes cuya dinámica será progresivamente más compleja. Afortunadamente ya tenemos la respuesta a la interrogante: ¿cómo hacerle? Precisamente el manejo de esta complejidad es el objetivo del pensamiento sistémico. Este se enfoca en el todo, no en las partes, de un sistema complejo. Se concentra en las interfaces y las fronteras de componentes, en sus conexiones y organización, hacia una búsqueda de sistemas holísticos que potencialmente generen resultados con mucho más impacto que el de la suma de sus partes. Cuando el pensamiento sistémico es dominado, podemos afirmar que el mayor obstáculo para construir organizaciones administradas por procesos ha sido sorteado, ya que cada proceso de negocio será entendido, ejecutado y administrado como un sistema completo. Es por esto que la competencia central más importante que debe tener una organización para aprovechar los beneficios de BPM es el pensamiento sistémico o “process thinking”. Los invito a hacer un ejercicio mental muy sencillo, dediquen unos 20 segundos a mirar con detenimiento a su alrededor y después unos 30 segundos más a elaborar una lista de los cinco elementos más relevantes que se les quedaron grabados considerando que nuestro objetivo es trasladarnos de un punto A hacia un punto B, seleccionados por ustedes en el entorno visible. Ahora traten de hacer lo mismo pero enfocados en toda la colonia o entorno mayor en el que se encuentren, planteando un trayecto más amplio. ¿La segunda lista tiene algún elemento? Ahora repitamos el ejercicio, pero esta vez imaginen que se han www.softwareguru.com.mx subido a un helicóptero y se han elevado unos 50 metros sobre el punto donde hace un momento se encontraban, en este caso les propongo dos preguntas: ¿qué pueden ver si están a 50 metros de altura a un nivel todavía más amplio, digamos a nivel de la delegación, municipio o inclusive país en el que se encuentran? Desde esta perspectiva, ¿qué impacto relativo tienen en su vista los cinco elementos originales que teníamos a la mano a nivel del piso? El problema para las organizaciones tradicionales de pensamiento funcional es que el reto de acelerar la generación de cada vez más valor para sus clientes finales y al mismo tiempo disminuir costos está como a 1,000 metros de altura. El helicóptero es el BPMS, por eso son necesarios para una organización que quiera sobrevivir, crecer o destacar en un entorno de cambios constantes, pero no hay que perder de vista que no es suficiente, no por subirnos al helicóptero ya resolvimos el problema, simplemente estamos en condiciones de aspirar a ello con mucho mayor probabilidad, ya que en el fondo un BPMS sólo es una herramienta muy poderosa que debe ser utilizada correctamente para poder obtener todos sus potenciales beneficios que a continuación abordaré. El otro elemento clave es el piloto del helicóptero, es decir, el pensamiento sistémico. Plataforma de Software Centrada en Procesos La plataforma de misión crítica predominante durante ya varios años son los RDBMS, con los cuales administramos el ciclo de vida completo de datos de negocio, establecemos y mantenemos las relaciones y estructura de los datos de negocio, controlamos el acceso y modificación de los datos de negocio en función a privilegios, hacemos consultas en función a criterios que se aplican al repositorio de datos de negocio, entre otras capacidades. Si sustituimos la palabra “datos” por “procesos”, estaremos hablando de un BPMS. Por cierto, el fundamento del éxito de los RDBMS es ni más ni menos que las matemáticas, el álgebra relacional como la base de los motores relacionales. Para el caso de los BPMS su éxito tiene el mismo nivel de sustento en la misma ciencia, sólo que en este caso es teoría de procesos como la base de los motores de procesos, que es el corazón de un BPMS. RDBMS vs. BPMS En el caso de la plataforma de misión crítica del pasado (para muchos todavía el presente), los sistemas informáticos son las entidades que llevan el control de las actividades y en general determinan el cuándo, el cómo, y el quién hará uso de los servicios del DBMS. En el caso de la nueva plataforma de misión crítica del presente y del futuro, los procesos de negocio en sí mismos son las unidades de negocio que llevan el control de la ejecución y en general determinan cuándo, cómo, y quién hará uso de los servicios del BPMS (ver Figura 1). En el fondo, lo que estamos consiguiendo es contar con una plataforma de mayor nivel de abstracción y por lo tanto de mucho mayor impacto y visibilidad a nivel negocio. Es por esto que muchos consideran a los BPMS como una herramienta más orientada al negocio que a TI. De hecho, Delphi Group, en sus reportes anuales acerca del estado y tendencias en el mercado de software BPM a nivel mundial, ha confirmado en más de una ocasión, que dos de cada tres decisiones positivas para adquirir un BPMS son realizadas por algún ejecutivo de negocio ajeno al departamento de TI. Esta percepción es muy simplista, superficial y errónea. Como ya lo he dicho, debemos romper JUL-AGO 2005 25 EN PORTADA estándares como el Xf-XML del WFMC[4] en combinación con el XPDL del mismo WFMC o el WS-BPEL de OASIS[5] hacen posible la colaboración entre instancias bajo esquemas de seguridad confiables y donde inclusive cada parte podría tener un BPMS distinto (ver Figura 1). Infraestructura de Software Empresarial Centrada en Procesos Figura 2. Administración de Procesos de Software Orquestados el paradigma tradicional del pensamiento funcional que ha mantenido separados a los departamentos de las empresas, especialmente a Negocio y TI, cuando debemos entender que TI es una parte fundamental (subsistema) del negocio (sistema). De hecho, con la inclusión de un BPMS en la arquitectura de TI estamos logrando que por fin la aportación de TI al negocio sea visible a todo lo largo de las cadenas de generación de valor medible en términos financieros y alineables a objetivos de negocio. Por si fuera poco, incrementa la visibilidad del valor generado por cada uno de equipos de trabajo que ejecutan procesos, fortaleciendo el entendimiento, la comunicación y su aportación al logro de la estrategia organizacional. Dimensiones de un BPMS El motor de procesos (corazón de un BPMS) es representado por un cubo, donde la cara superior representa la dimensión correspondiente a la capacidad central de orquestación de procesos de negocio, la cara izquierda representa la dimensión correspondiente a la integración tecnológica realizada hacia el interior de la organización, y la cara derecha representa la dimensión correspondiente a la colaboración con entidades externas a la organización. La orquestación de procesos de negocio es la capacidad de coordinar la ejecución de cadenas de generación de valor al grado de llegar a conseguir una armonía sistémica orientada a la optimización del uso de recursos y generación de resultados tangibles para un cliente final común en el menor tiempo y costo posibles. Los elementos primarios que son coordinados son los flujos de tareas, reglas de negocio, roles de negocio (responsabilidades definidas en tiempo de diseño), y personas (usuarios en tiempo de ejecución a través de su mapeo a roles de negocio). La integración tecnológica orientada a procesos es la capacidad de integrar sistemas existentes, aplicaciones nuevas, datos de negocio, directorios y archivos al nivel de abstracción del proceso de negocio en el que participan, es decir, al nivel de la cadena de generación de valor a la que pertenecen. Una ventaja muy relevante es que las aplicaciones quedan desacopladas entre sí, es decir, ya no se comunican directamente con el enfoque tradicional de integración de aplicaciones punto a punto, lo que simplifica enormemente el desarrollo y mantenimiento de software con valor real para el negocio y por lo tanto sus costos asociados son minimizados, de hecho, esta es la base conceptual de SOA. La dimensión de colaboración representa la capacidad organizacional para ser parte integral de cadenas de generación de valor más amplias donde nuestros procesos de negocio empresariales pasan a ser subprocesos de procesos de negocio intercompañía con un potencial mucho mayor. La disponibilidad de El beneficio directo de un BPMS es que permite asegurar la mejora continua del desempeño del propio proceso de dirección de procesos de negocio. Es decir, un BPMS permite aterrizar la filosofía BPM como un proceso estratégico cuyo resultado de valor son procesos de negocio de alto desempeño, donde el cliente es la organización como un todo. Al ver BPM como un proceso podemos administrar su ciclo de vida completo con el soporte de la nueva plataforma de misión crítica (ver Figura 2). El Business Process Management Group[3] (BPMG) ha establecido que BPM es “el enfoque deliberado y colaborativo para manejar sistemáticamente todos los procesos de negocio de una organización” donde sus dos facilitadores fundamentales son el pensamiento sistémico y las tecnologías de información centradas en procesos. Este mismo consorcio ha puntualizado los dieciséis grandes retos que enfrentan las empresas en la actualidad (para sobrevivir, crecer o destacar en un mundo complejo donde lo único constante y seguro son los cambios[1]) durante el proceso de adopción de BPM y en trece de ellos el BPMS es la pieza fundamental para soportar el desarrollo y mejora continua de las capacidades organizacionales requeridas para afrontar estos retos con éxito. Especialmente es destacada su aportación directa para el desarrollo de las capacidades “agilidad” y “adaptación”. Referencias 1. Roberto Silva, “Negocios Ágiles”. Impulsare e-zine. www.impulsare.com 2. Howard Smith and Peter Fingar, Business Process Management: The Third Wave, MeghanKniffer Press, 1st Edition 2003. 3. The Business Process Management Group, In Search of BPM Excellence: Straight from Thought Leaders, Meghan-Kniffer Press, 2005. 4. WFMC: The Workflow Management Coalition www.wfmc.org 5. OASIS. www.oasis-open.org Roberto Silva es Socio Fundador de Impulsare, empresa dedicada a la educación y consultoría en integración de negocios. Es Director de Horbis, enfocada exclusivamente al diseño e implantación de soluciones de integración de cadenas de valor centradas en procesos. Tiene nueve años de experiencia como empresario y catorce años como consultor en el desarrollo e integración de sistemas de negocio y software para diversos sectores en México y América Latina. Es Consultor Asociado de la Fundación Mexicana para la Innovación Gubernamental y Empresarial y miembro activo del Business Process Management Group. 26 JUL-AGO 2005 www.softwareguru.com.mx Por más de 15 años me he dedicado al desarrollo de sistemas con lenguajes de programación estructurado, no estructurados, y orientados a objetos. Estos siempre habían sido mis herramientas de trabajo en la programación para automatizar procesos. A continuación les presento mi experiencia realizando este mismo trabajo bajo un nuevo paradigma. BPM Desde la Perspectiva de un Desarrollador Por Ernesto Méndez Solís www.softwareguru.com.mx JUL-AGO 2005 27 EN PORTADA Como consultor en el desarrollo de software, es muy común ser asignado a proyectos en los que participan consultores de otras empresas formando de esta manera equipos de trabajo interdisciplinarios y multiempresa; unos se encargan de la administración y metodología del proyecto, otros más del análisis, diseño, modelación, desarrollo, documentación y pruebas, por mencionar solo algunas de las diferentes tareas involucradas. Fue de esta manera que fui asignado a participar en un proyecto en el que había que automatizar el flujo de un proceso administrativo de una empresa dedicada a la comercialización, industria perteneciente al sector conocido como retail. Así que me integré al equipo, que estaba conformado por tres diferentes empresas y fui asignado a la fase de desarrollo. Solo requería tener conocimientos básicos de programación orientada a objetos y experiencia en el análisis, diseño y desarrollo de sistemas. La herramienta que se iba a utilizar para este desarrollo se llamaba Fuego. En mi vida había oído hablar de esta herramienta, por supuesto que no se requería experiencia, se dedicaría un periodo inicial para capacitar a los desarrolladores antes de iniciar formalmente el proyecto. Así fue como conocí el concepto BPM. Fuego, es mas que una herramienta de desarrollo, es un ambiente de trabajo. Este ambiente de trabajo, se puede dividir a su vez en dos: el ambiente de producción y el ambiente de desarrollo y configuración. Estos están basados en aplicaciones comunes a los ambientes de sistemas: navegadores, servidores web, servidores de bases de datos y servicios de directorio, por mencionar algunos. Algunas aplicaciones propias de Fuego complementan el ambiente de producción y desarrollo: motor de orquestación, portal de trabajo, administrador de componentes, administrador de la organización, diseñador de procesos, consola de ejecución y el analizador de procesos. Aunque pudieran parecer una gran cantidad de aplicaciones, realmente no es tan complicado preparar el ambiente de operación y desarrollo, inclusive el de desarrollo se puede preparar en un solo equipo para poder trabajar en forma independiente y aislada para posteriormente poder desplegar el proceso en el ambiente de producción. Recuerdo que en alguna ocasión me tocó programar aplicaciones del tipo “flujo de trabajo” utilizando lenguajes de programación convencionales. Esto representó un reto algo diferente al de cualquier otro tipo de desarrollo, pero nada que impidiera alcanzar finalmente el éxito y la automatización del proceso correspondiente. Sin embargo, los BPMS están específicamente diseñados para automatizar en forma sencilla este tipo de procesos. La clave del éxito de este tipo de ambientes de desarrollo es el denominado “diseñador de procesos”, la herramienta central del BPMS. Al mismo tiempo, representa el mayor de los retos que los programadores de lenguajes tradicionales enfrentan al pretender automatizar un proceso. En este caso, la clave es “modelar el proceso” tal como se desarrolla en la práctica; lo que implica primero, identificar los diferentes pasos que el proceso incluye para posteriormente, apoyado en una serie de íconos para el modelado, representarlo gráficamente en el diseñador, considerando los participantes en el proceso y los conectores que comunican las actividades o pasos. Aunque esta representación gráfica del proceso esta diseñada para que cualquier analista de negocio e inclusive ejecutivo participante del proceso lo pueda entender, la construcción o modelado del proceso requiere de un nivel de abstracción adicional al requerido simplemente para su entendimiento. Un elemento fundamental a considerar al momento de modelar es lo que se denomina una “instancia”. Las instancias son las ejecuciones individuales de un proceso. Cada vez que se inicia un proceso, se crea una instancia y el sistema mantendrá un estricto control de ésta mientras fluye por cada una de las actividades hasta llegar al punto final. Paralelamente, el sistema almacena la información de la instancia en la base de datos para poder conocer el detalle particular de su flujo, en función de la actividad particular en la que se encuentre. Todavía hay un par de factores más a considerar en el modelado de un proceso: la transformación o característica que agrega cada una de las actividades a la instancia y la descomposición de una instancia en dos o más partes para poder realizar procesos paralelos que permitan posteriormente la reintegración de la instancia en una actividad posterior. Considerar todos estos factores para poder modelar un proceso, resulta ser una tarea no muy fácil cuando no se tiene experiencia y se esta acostumbrado al proceso tradicional de desarrollo de aplicaciones. Por instinto uno quiere aplicar sus conocimientos de programación al modelado de procesos, lo cual solo crea gran frustración y largas horas de reproceso. Desde mi punto de vista, esto requiere de un cambio de paradigma en el proceso de conceptualización y análisis cuando se utilizan herramientas BPMS. Para contextualizar, equivale al cambio de paradigma que los programadores de la vieja guardia tuvimos que hacer cuando pasamos de la programación estructurada a la programación orientada a objetos. Se dice en forma muy sencilla, pero este cambio de paradigma resulta bastante difícil de realizar. Sin embargo, cuando una persona que aprende a programar, lo hace inicialmente bajo el paradigma de objetos, se le facilita ya que no está acostumbrada a un paradigma alterno. Lo mismo aplica en el caso de los BPM, los consultores que normalmente no realizan las tareas de análisis, diseño y codificación de sistemas, se les facilita un poco más el entender el concepto de modelado de procesos. Una vez superada esta primera fase del proceso, la modelación, sigue la fase con la que los programadores estamos más familiarizados, la codificación. Cada una de las actividades modeladas, lleva intrínsicamente una cierta funcionalidad, la cual es posible expandir utilizando un lenguaje script, fácil de usar y que permite configurar las actividades a la necesidad particular del negocio. Algunas de las características comunes de configurar en las actividades son por ejemplo: el tiempo máximo que puede permanecer una instancia en la actividad, y el manejo de excepciones y envío de notificaciones a otros integrantes del proceso entre las más importantes. Con el lenguaje script se puede conseguir funcionalidad adicional como: presentación de mensajes en pantalla, acceso a la base de datos, manejo de variables, expresiones condicionales, bucles y manejo de sentencias de entrada para obtener información de parte del operador. Cuando la funcionalidad requerida en cualquiera de las actividades va mucho mas allá de lo que se puede lograr con el lenguaje script, se puede desarrollar un componente que posteriormente se puede mandar ejecutar desde cualquier actividad. Los componentes permiten realizar formatos de captura de in- El Ing. Ernesto Méndez Solís es consultor independiente especializado en administración y liderazgo de proyectos de desarrollo de software. Ha trabajado para varias empresas relacionadas con el desarrollo de software como: Siga Desarrollos, Arthur Andersen e Interfaces. [email protected] 28 JUL-AGO 2005 www.softwareguru.com.mx formación mucho más complicados en forma relativamente sencilla para solicitar información al operador e ir automatizando el proceso según sus requerimientos particulares. Otra característica interesante que se puede obtener de los componentes es la posibilidad de interactuar con otros sistemas para intercambiar información o lanzar procedimientos externos para conseguir automatizar en mayor medida el proceso. Por ejemplo, se puede capturar información desde una de estas pantallas (incluyendo sus procesos de validación) y posteriormente ejecutar un sistema “legacy” el cual requiere de la información recién capturada, la que le es enviada de forma transparente. Este tipo de actividades, consiguen que los operadores o participantes del proceso, interactúen con un solo sistema sin necesidad de tener que usar diferentes aplicaciones e interfaces para conseguir cerrar el flujo del proceso. Esta característica es una de las más poderosas que se pueden obtener de un BPM y que precisamente cumple con el objetivo fundamental de este tipo de sistemas: la administración de los procesos de negocio. Antes de realizar el proceso de despliegue en producción, la herramienta permite realizar tareas de depuración para poder ir siguiendo el flujo de una instancia e ir evaluando las diferentes variables que intervienen en el proceso, facilitando sustancialmente la liberación de procesos libres de errores. Cuando pudiera parecer que la automatización del proceso ha terminado, ésta solo ha iniciado en realidad. Cuando un proceso esta en producción, la fase más importante es precisamente la de evaluación para entonces detectar mejoras, cuellos de botella y la justificación de reingenierías de proceso. poco susceptibles de poder ser mejorados en función de la experiencia y que normalmente se quedan cortos en cuanto al alcance inicialmente programado. El ambiente colaborativo bajo el que operan este tipo de desarrollos, intranets y/o extranets, ofrece interfaces nítidas y claras para todos los involucrados, fáciles de operar y con una curva de aprendizaje muy corta que permite en muy poco tiempo poder administrar eficientemente los procesos. Desarrollar una aplicación que permita realizar todas estas tareas y controles utilizando lenguajes de programación tradicionales resulta en proyectos muy costosos, de muy difícil mantenimiento, Conclusión Los ambientes de desarrollo y producción de los sistemas BPM ofrecen una extraordinaria alternativa para la automatización y mejora de procesos, se convierten en herramientas de vital importancia en la operación de las empresas ya que permiten adecuar y adaptar los procesos en forma rápida a los dinámicos cambios del medio ambiente de negocios que vivimos hoy en día. El esfuerzo requerido para establecer un BPMS, la capacitación de consultores para la automatización de procesos, así como el cambio de paradigma que este tipo de herramientas exige a sus diseñadores y desarrolladores, bien vale la pena realizarlo ya que los resultados que se pueden obtener son sencillamente espectaculares y no se pueden obtener con ninguna otra herramienta disponible hoy en día en el mercado. CASO DE ESTUDIO El Camino a CMM® nivel 3 Active Intelligence Comparte su Experiencia Por Rafael Muñoz y Elizabeth Almeraz En tiempos donde los márgenes canas con recursos económicos limitados, convencimiento y entusiasmo del personal de utilidad se ven amenazados tomen la decisión de marcar una diferencia y los procesos enfocados y adaptados a la cada día mas y la competencia en la manera en como se construye software forma de trabajar de Active Intelligence. contra proveedores mundiales de en México, contribuyendo a poner a todo el software se ha convertido en una país en el mapa para los mercados globales. La historia guerra de precios interminable, Active Intelligence nació en Aguascalientes, fundada y dirigida por Humberto Sánchez Active Intelligence, una compa- ¿Cómo se logró? ñía con 50 integrantes y un año Sin duda el esfuerzo bien enfocado detrás Sandoval y Abraham Ramírez Basurto; el de historia, consigue el reconoci- de cualquier iniciativa es la clave para obte- objetivo organizacional es la proveeduría de miento de nivel 3 basados en el ner los resultados esperados. Este caso no servicios de exportación de segunda capa es la excepción, sin embargo, vale la pena en modalidad de fábrica de software y tiene modelo SW-CMM® La historia de Active Intelligence es una historia que vale la pena contar, pues muestra como al enfocar el esfuerzo en lo que es importante, los resultados que se pueden obtener son muy buenos, además pone el dedo en el renglón para que más compañías mexi- desmenuzar un poco la estrategia y características que se juntaron para que la meta fuera posible. Especialmente es importante remarcar la importancia en tres factores críticos que permitieron que la adopción de un modelo de procesos, se hiciera en un tiempo récord: El apoyo de la dirección, la actitud, como principal objetivo el ofrecer desarrollo de soluciones de software a distancia. El Ing. Sánchez, cofundador en 1988 de Ddemesis (que fue reconocida como nivel 3 de SW-CMM® en 2001) aprovechó un momento extraordinario en el mercado de exportación de TI desde Aguascalientes. En 2003 Ddeme- Rafael Muñoz es egresado de la carrera de Matemáticas Aplicadas y Computación de la UNAM. Actualmente es líder de Active Intelligence y tiene a su cargo las iniciativas de calidad de esta empresa. Él y su equipo se encuentran actualmente trabajando en la implementación del modelo CMMi en esta compañía. Ha trabajado en el área de TI por más de diez años, liderando proyectos para grandes compañías nacionales e internacionales. 30 JUL-AGO 2005 www.softwareguru.com.mx Se buscó el apoyo del Gobierno Federal mediante el programa ProSoft y se recibieron ayudas económicas para formación de personal. sis fue vendida, ocasionando un movimiento importante de profesionales buscando nuevas opciones laborales, en ese momento de cambios Active Intelligence surgió como una opción interesante para ellos. Active Intelligence tuvo la visión de buscar colaboradores con experiencia en la implementación de procesos, Six Sigma y SW-CMM®, además de las habilidades de tecnología que el mercado requería, como .NET, que es la principal herramienta tecnológica utilizada. Adicionalmente pudo conformar un equipo con mucha energía a través de una vinculación importante y selectiva con las Universidades de Aguascalientes; de este modo se formó el equipo de trabajo que actualmente figura entre las filas de la compañía. La visión Los beneficios en prestigio y participación de mercado, que traería la adopción del modelo siempre fueron un motivador importante de la compañía, sin embargo, existe también en la operación y gerencia, un compromiso pleno con la calidad y la capacidad de entregar productos que satisfagan las necesidades de los clientes, motivándolos a seguir invirtiendo en tecnologías de información. Esta visión de las direcciones general y de operaciones, ha sido clave en el logro de las metas trazadas, pues el compromiso no es solamente de un equipo, si no de la organización completa. El desarrollo del programa de mejora Basados en esta visión, se inició el programa de mejora como un proyecto cuyo objetivo era definir e implantar procesos basados en el modelo SW-CMM® hasta el nivel 3; sin embargo, no se contaba con recursos específicos para conseguirlo y mucho menos se pensaba en considerar consultoría externa para apoyar la definición e implantación de procesos. El equipo original asignado fue formado por dos personas, el primero con experiencia en este tipo de procesos y convencido de los beneficios que se obtendrían no sólo a nivel de cada proyecto sino a nivel organizacional, mientras el segundo, era una persona sin experiencia, ni entrenamiento en el modelo, mucho menos en procesos y estándares mundiales, pero eso sí con muchas ganas de aprender y a mejorar el trabajo de la empresa. Así, con muchas desventajas, vio la luz el programa de mejora en Active Intelligence y se bautizó como AMM (Active Maturity Model). El camino se veía complicado. www.softwareguru.com.mx Después del entrenamiento interno inicial, se planeó la forma en que la meta se cubriría. Se iniciaron las actividades de definición y se preparó el entrenamiento para los colaboradores. Este primer paso fue difícil, pues los procesos no fueron muy bien recibidos desde el inicio, había muchas dudas, los proyectos que lo implantarían ya tenían otra forma de trabajo, la implantación implicaba tareas extras en los planes de proyecto ya comprometidos, por lo que solo se veían dificultades en la implantación, sin mucho que obtener a cambio. Estábamos atorados. formar parte del proyecto, con ellos se hicieron revisiones documentales a los procesos, verificación de la implantación en los proyectos, evaluaciones informales (simulando actividades de la evaluación formal) y formación práctica del grupo de SQA para ejecutar sus actividades (pieza clave para apoyar la implantación de las prácticas), todo esto ayudó a acelerar la adopción completa de la iniciativa, además que el grado de confianza en los procesos ya implantados se mejoró considerablemente. Ya estábamos listos. La tormenta pasó, sin lugar a dudas el apoyo de la dirección fue pieza clave en la resolución de estos problemas, además del compromiso del equipo de implantación. Para incrementar la motivación y remarcar la importancia en el uso de los procesos, un requerimiento clave llegó, el requerimiento solicitaba el uso y conocimiento del modelo SW-CMM® y finalmente, el trabajo que ya se había hecho en este sentido, fue un factor decisivo para ganarlo. Los procesos son un valor agregado importante. Mariana Pérez-Vargas, Directora General de Avantare, fue el Lead Assessor de la evaluación, se trabajó con ella, un consultor más de apoyo de Avantare y los miembros de Active Intelligence elegidos para formar parte del equipo de evaluación. El ambiente, aunque agradable, era de nerviosismo pues finalmente había muchas cosas que dependían de un resultado positivo en la evaluación CBA-IPI®, (CMM Based Appraisal for Internal Process Improvement) a pesar de esto, el equipo formado en su mayoría por gente muy joven, respondió como se esperaba a las exigencias del método de evaluación. Se aplicaron cuestionarios, se hicieron las entrevistas y las consolidaciones necesarias, hasta que llegó el momento de la puntuación final, una a una las fortalezas y oportunidades de mejora detectadas durante cada una de las revisiones y/o entrevistas, se fueron revisando y discutiendo entre todo el equipo, ya que las decisiones debían tomarse por consenso. Debíamos analizar si las oportunidades de mejora podían afectar de manera La necesidad de robustecer los procesos con la ayuda de algún externo se hizo más palpable y entonces se buscó apoyo del Gobierno Federal mediante el programa ProSoft y se recibieron ayudas económicas para formación de personal por el Gobierno del Estado de Aguascalientes; se trabajó duro para conseguir una oportunidad real y por supuesto, los recursos requeridos. Al ser otorgados los recursos, la visión se amplió acorde a la nueva situación y el programa de calidad tenía nuevas y más retadoras metas. Los recursos permitieron tener acceso a la consultoría externa, y además la implantación no se quedaría solo en eso, pues se buscaría el reconocimiento formal del nivel 3. La compañía estaba entusiasmada. La evaluación Dada la buena experiencia en Ddemesis y su reconocida capacidad, Avantare fue elegida para JUL-AGO 2005 31 CASO DE ESTUDIO significativa a las metas relacionadas ... y así una a una, cada meta se alcanzó, dando como resultado alcanzar el nivel de madurez 3 de SW CMM®.Todo el esfuerzo invertido, se redujo a una alegría y satisfacción que difícilmente se pueden describir. Hoy día la evaluación quedó atrás, y lo mas importante es que hay un cambio en la cultura organizacional. El entusiasmo en las revisiones es igual al que se notaba antes de la evaluación, el interés de los colaboradores en los procesos y en la mejora continua de las herramientas que se han definido sigue ahí y va en aumento. Después del resultado, más personas están interesadas en formar parte del equipo de calidad y más gente aprecia el trabajo que esta área realiza. Se confirma una frase que por méritos propios se ha convertido en el lema del programa de mejora: “AMM es el ADN de nuestra compañía”. Las metas de este año tienen que ver con el cambio de modelo (CMMi®) y el crecimiento de nivel, el equipo está nuevamente organizado y trabajando como el año anterior con una nueva meta en la mente, buscando nuevas formas de mejorar y aprovechar la experiencia ganada con el primer paso. El compromiso de la organización está no solo con sus clientes, si no también con todos aquellos que de alguna forma colaboraron al logro de la meta que empezó como un sueño y que ahora puede servir como muestra de que cuando se reúne al equipo adecuado, un asesor experimentado, una idea clara llevada a un proyecto viable, y un programa inteligente de apoyo a la industria, los resultados pueden ser “de clase mundial”. Active Intelligence ya exporta el 68% de sus Servicios. Algunas reflexiones que vale la pena compartir Sin lugar a dudas el caso de Active Intelligence es un ejemplo a seguir por muchas otras empresas que están poniendo la mira en el establecimiento de un programa de mejora, sea cual sea, el modelo de referencia a seguir. Sin embargo, ahora que Rafael les ha contado la historia y evolución de la implantación de SW CMM en Active Intelligence, a mi me gustaría compartirles algunos factores, desde el punto de vista de Avantare y como consultor en programas de mejora, que me parece importante enfatizar ya que marcaron la diferencia entre un “buen deseo” y “un realidad que da frutos y beneficios” y que pueden ayudar a otras Organizaciones en el establecimiento de su programa de mejora. Así pues los factores críticos de éxito, en el caso de Active Intelligence, que quisiera compartirles fueron: 1. El compromiso directivo. Sin este compromiso y el convencimiento tanto del Ing. Humberto Sánchez como del Ing. Abraham Ramírez (el director de operaciones), de que los procesos rendirían frutos, cualquier esfuerzo por establecer mejores formas de trabajo se quedan en el tintero. 2. Procesos adecuados a la empresa y la forma de trabajo. Es fundamental establecer procesos “a la medida” de las organizaciones, sobre todo cuando se trata de organizaciones pequeñas, donde si bien es vital el establecimiento de procesos, también es vital que éstos sean ágiles para soportar el desempeño y operación que una PyME necesita. En Active Intelligence, el grupo de mejora buscó ante todo, que los procesos fueran funcionales para el trabajo diario de los proyectos. Esto representó no sólo un reto para el grupo de implantación, sino también para Avantare como consultor, pues hubo que buscar soluciones innovadoras que permitieran cumplir con las exigencias del modelo, sin sobrecargar a la operación. 3. Una cultura Organizacional de procesos. La primera vez que como Avantare realizamos revisiones presenciales en Active Intelligence, se notaba que la gente había visto buenos resultados al aplicar los procesos, lo cual hacía que fueran muy abiertos para realizar las acciones de mejora solicitadas, e incluso en proponer ellos mismos mejoras. Cuando la gente está convencida de los beneficios que los procesos le traen en su trabajo diario, aporta para que estos procesos se mejoren logrando una sinergia real entre los procesos, la gente y la productividad. Es entonces cuando vemos que la mejora continua “se vive” y no sólo “está escrita”. No hay cosa mas linda que una mejora continua viva. Cuando esto se ha logrado, el consultor está mas seguro de que sus recomendaciones caerán en tierra fértil y el progreso se notará a pasos agigantados. 4. La visión a largo plazo. Es de vital importancia lograr el compromiso a largo plazo, no buscar sólo la obtención de un cierto nivel de madurez, el reconocimiento público, o bien los ahorros inmediatos, sino estar comprometidos con la calidad de los servicios y los productos que se ofrecen. Sin duda Active Intelligence, estuvo muy consciente de que al establecer un programa de mejora, estaba invirtiendo no para las recompensas inmediatas, sino para aquéllas que vendrían después, mas allá de la evaluación, manteniéndose inmersos en un proceso de mejora que les exigiría cada vez más de ellos mismos. 5. El trabajo en equipo. Este fue sin duda un factor clave para el éxito del programa de mejora de Active Intelligence, donde todo el personal, de alguna u otra manera participó en la definición, revisión, asesoría y evaluación de los procesos del programa de mejora. Cada uno sabe que su participación es importante, y que es un proyecto importante que los involucra a todos y cada uno de ellos. Realmente hubo un equipo entre Avantare y Active Intelligence. Siempre hay nuevos retos que cumplir, siempre hay niveles, marcas y records que lograr. Cuando se conjunta el liderazgo, el equipo, la motivación y los fondos adecuados, los resultados suelen ser increíbles. Elizabeth Almeraz es pionera en México en la realización de actividades de Aseguramiento de Calidad del Software (SQA), participando en el primer grupo de SQA que ayudó a lograr una evaluación CMM en México. Actualmente es consultor de Avantare y especialista en las áreas de técnicas de verificación de productos de software y mejora de procesos para la industria de TI. 32 JUL-AGO 2005 www.softwareguru.com.mx PUBLICIDAD PRÁCTICAS ADMINISTRACIÓN DE PROYECTOS MÉTRICAS DE TAMAÑO DE SW BASADAS EN FUNCIONALIDAD Parte 2: Análisis de Puntos Función E n el número anterior hablamos sobre la importancia de contar con una métrica funcional estándar para determinar el tamaño de un sistema de software. Los Puntos Función o Function Points (FPs) son una excelente herramienta para este propósito. La Métrica de Puntos Función Esta métrica se define como una métrica funcional, dado que se enfoca a la funcionalidad que un producto de software proporciona a sus usuarios. “Es una métrica para establecer el tamaño y complejidad de los sistemas informáticos basada en la cantidad de funcionalidad requerida y entregada a los usuarios”. Partamos de esta definición para entender las características de la métrica: Tamaño.– Es una métrica de tamaño, no de la calidad con la que se hizo ese SW, o del valor de ese producto, o del esfuerzo requerido para desarrollarlo, etc. Aplicaciones.– Mide las aplicaciones de SW, no considera el HW que utilizará, ni la administración del proyecto, ni la documentación, etc. Funcionalidad.– Se refiere a la capacidad del SW para que un usuario pueda realizar transacciones (lectura, escritura, etc.) y guardar datos. Si analizamos a detalle, con estos elementos podemos describir cualquier sistema. Usuario.– Quien lo va a usar y no quien lo desarrolló o quien lo diseñó. Así como existe el metro lineal para medir longitudes, Puntos Función es “el metro” para medir tamaño de una aplicación de software. Estándar Internacional ISO La medición de la funcionalidad con la que cuenta un sistema informático ha sido desde hace años una preocupación de la industria. No es suficiente contar con una métrica, sino que sea estándar, para así poderla usar a nivel industria. Poder comparar la productividad (Puntos Función por Persona Mes) de una empresa con los datos de la indus- Por Sergio Durán tria, es fundamental en los planes de mejora. Es por eso que a través de la International Organization for Standardization (ISO) se ha desarrollado un estándar internacional: ISO/IEC 14143 – Information Technology – Software Measurement – Functional Size Measurement. Este estándar define los conceptos de una métrica de tamaño basada en la funcionalidad y las características que debe cumplir un método para estar homologado al estándar y ser considerado una medida del tamaño de la funcionalidad. Existen varios métodos de conteo para establecer la cantidad de Puntos Función que tiene una aplicación. En general, todos establecen un conteo basado en la identificación del tipo de funciones que tiene la aplicación, y a cada una le asocia un número de puntos tomando en cuenta su complejidad. Las variantes surgen al buscar conteos más precisos en Puntos Función conforme al tipo de aplicación. Por ejemplo, un sistema en tiempo real tiene una complejidad muy distinta a un sistema tradicional de negocio o a un sistema operativo o a una aplicación científica que realiza muchos cálculos pero el resultado puede ser un solo dato. Estos son algunos de los métodos homologados con el ISO 14143: ISO/IEC 20926:2003 - Software engineering - IFPUG 4.1 Unadjusted functional size measurement method. Este método ha sido definido por el International Function Point Users Group (IFPUG) y evolucionado a partir de la propuesta original de Allan Albrecht en IBM, por lo que es el más conocido y más Sergio Eduardo Durán Rubio se desempeña como Director de Proyectos en certum. En 1996 se convirtió en el primer especialista de América Latina certificado por el International Function Point Users Group en Conteo de Puntos Función, y en miembro representante de México ante la ISO/IEC JTC1/SC7. Sergio es Ingeniero en Sistemas Computacionales de la UDLA-P, Maestro en Tecnologías de Información y Administración del ITAM y Mastère Spécialisé en Réseaux Et Systèmes D ‘information pour Les Entreprises de la ENST de Bretagne France. 34 JUL-AGO 2005 www.softwareguru.com.mx Puntos función está orientado a medir sistemas de información completos. utilizado. Esto es muy importante porque se está convirtiendo en el estándar de facto en la industria. ISO/IEC 20968:2002 - Software engineering - Mk II Function Point Analysis. Este método ha sido desarrollado por la United Kingdom Software Metrics Association, simplificando el método y haciéndolo compatible con ideas de análisis y diseño estructurado. ISO/IEC 19761:2003 - Software engineering - COSMIC-FFP - A functional size measurement method. Este método ha sido definido por el Common Software Measurement International Consortium, integrado por expertos de Australia, Canadá, Finlandia, Alemania, Irlanda, Italia, Japón, Holanda y el Reino Unido. La idea principal es adecuarse mejor a la medición de sistemas en tiempo real. Paso 1. Determinar el tipo de conteo. Este paso consiste en definir el tipo de conteo entre desarrollo, mantenimiento o de una aplicación ya instalada. Esta es una forma de determinar el objetivo del conteo. Paso 2. Identificar los alcances de la medición y los límites de la aplicación. El propósito de una medición consiste en dar una respuesta a un problema de negocio. El alcance de la medición define la funcionalidad que va a ser incluida en una medición específica y puede abarcar más de una aplicación. El Método de Análisis de Puntos Función La versión actual de éste metodo es la 4.1.1, cuyo manual de prácticas de conteo se puede encontrar tanto en inglés como en español. El método de conteo se basa principalmente en la identificación de los componentes del sistema informático en términos de transacciones y grupos de datos lógicos que son relevantes para el usuario en su negocio. A cada uno de estos componentes les asigna un número de puntos por función basándose en el tipo de componente y su complejidad; y la sumatoria de esto nos da los puntos de función sin ajustar. El ajuste es un paso final basándose en las características generales de todo el sistema informático que se está contando. Veamos un poco más a detalle el procedimiento, para entender mejor los conceptos mencionados y conocer su simplicidad. Procedimiento Paso 3. Contar las funciones de datos. Este paso consiste en identificar y contar la capacidad de almacenamiento de los datos. Se distinguen dos tipos de funciones de datos: Archivo Lógico Interno.- Es un grupo de datos relacionados que el usuario identifica, cuyo propósito principal es almacenar datos mantenidos a través de alguna transacción que se está considerando en el conteo. Archivo de Interfaz Externo.- Es un grupo de datos relacionados y referenciados pero no mantenido por alguna transacción dentro del conteo. A cada componente identificado se le asigna una complejidad (baja, media o alta) considerando principalmente el número de datos. Paso 4. Contar las funciones transaccionales. Este paso consiste en identificar y contar la capacidad de realizar operaciones. Se distinguen tres tipos de funciones transaccionales: www.softwareguru.com.mx PRÁCTICAS ADMINISTRACIÓN DE PROYECTOS Entrada Externa.– Es un proceso cuyo propósito principal es mantener uno o más archivos lógicos internos. Salida Externa.– Es un proceso cuyo propósito principal es presentar información al usuario mediante un proceso lógico diferente al de sólo recuperar los datos. Consulta Externa.– Es un proceso cuyo propósito principal es presentar información al usuario leída de uno o más grupos de datos. En nuestro caso, Puntos Función está enfocado a medir sistemas informáticos completos, no programas. En este sentido no tiene un nivel de precisión suficiente para medir el tamaño de programas individuales. El nivel de granularidad que puede medir la métrica no es muy pequeño. Adicionalmente el término programa depende de la tecnología, y eso va en contra del criterio de que esta métrica es independiente de la tecnología que se use. A cada componente identificado se le asigna una complejidad (baja, media o alta) considerando el número de datos utilizado en el proceso y los archivos referenciados. Otro punto que se le ha criticado a las métricas funcionales es que requieren que alguien “identifique” la funcionalidad y “evalúe” la complejidad basándose en los criterios y reglas establecidas; no puedo hacer un programa que cuente automáticamente. Debido a esto, distintas personas podrían llegar a un conteo diferente. Para resolver esto, se han venido depurando las reglas de conteo para eliminar posibles ambigüedades y cada vez hay más material de apoyo con ejemplos. Aunado a lo anterior, hay esquemas de certificación como el del IFPUG, donde hay una evaluación formal de la teoría y casos prácticos. Estos elementos buscan reducir las posibles variaciones en un conteo hecho por diferentes personas. Si tomamos en cuenta que la métrica está pensada para contar proyectos o aplicaciones completas, entonces las pequeñas variaciones en un conteo, no van a ser significativas para los indicadores o datos relacionados que obtengamos. Paso 5. Determinar los puntos de función no ajustados. Este paso consiste en sumar el número de componentes de cada tipo conforme a la complejidad asignada, y multiplicarlo por el factor indicado en la siguiente tabla para obtener el total. EI EO EQ ILF EIF Bajo Medio Alto 3 4 3 7 5 4 5 4 10 7 6 7 6 15 10 Paso 6. Determinar el valor del factor de ajuste. El factor de ajuste se obtiene sumando 0.65 a la sumatoria de los grados de influencia de las 14 características generales del sistema, multiplicado por 0.01. Dentro de las características hay criterios como: complejidad del proceso, facilidad de instalación, entrada de datos en línea, etc. Paso 7. Determinar los puntos función ajustados. Para determinar los puntos función ajustados se consideran los puntos función no ajustados por el factor de ajuste. Cualquier Métrica tiene un Alcance Definido Cualquier métrica tiene un ámbito de acción y alcance definido que hay que entender para usarla correctamente. Así, por ejemplo, el metro lineal no es lo mejor para medir grandes distancias en el mar. 36 JUL-AGO 2005 Comprar SW por Puntos Función Las compras de SW son en muchos casos desarrollos a la medida. Pero ¿cómo comprar si todavía no se tiene el diseño? Una opción que habilita una métrica como Puntos Función es comprar por “metro” de SW a una empresa que tenga una productividad mínima establecida, conforme al tamaño de las aplicaciones que requiero. Ya durante el proyecto puedo ir solicitando esos Puntos Función que compré, en las aplicaciones que requiero. Por ejemplo, en el caso de Gobierno, la ley de adquisiciones permite hacer compras basadas en estándares internacionales, que como vimos, ya existen en este terreno. Adicionalmente, en el Programa para el Desarrollo de la Industria del Software de la Secretaría de Economía (ProSoft), hay un punto específico que ayudará en este tema: “Promover que se elaboren las normas necesarias para que se cumpla el Reglamento de la Ley de Adquisiciones, Arrendamientos y Servicios del Sector Público en lo que se refiere a la existencia de normas nacionales o internacionales en las adquisiciones de software”. En mi opinión, el uso de métricas en los proyectos de SW va a empezar a cambiar en la medida que los compradores lo exijan. Es por eso muy importante que los compradores analicen que sólo comprar por precio sin distinguir tamaño de las aplicaciones para escoger a un proveedor que tenga experiencia con esa complejidad o indicadores como productividad o calidad, nos va a seguir llevando a las historias que hemos oído de grandes proyectos que no terminan a tiempo o que exceden por mucho el presupuesto o, en el peor de los casos, nunca llegan a operación. Se requiere un modelo que permita identificar capacidades de los proveedores, para entonces poder comparar propuestas de proveedores de capacidad similar. “Los proyectos nacionales en informática requieren de empresas con capacidades reales y funcionarios/ejecutivos competentes y exigentes”. Ya empieza a haber proyectos que, como parte de sus bases para invitar a proveedores, solicitan contar con métricas y con registros históricos que fundamenten los estimados en esfuerzo y tiempo, para tener mejor certeza en que el proyecto que están comprando va a llegar a buen término, a tiempo y en presupuesto. Próximamente empezaremos a ver los primeros resultados y alguno de estos casos de éxito será motivo de un siguiente artículo. Referencias • IFPUG. “Manual para la Medición de Puntos Función”. Versión 4.1.1. 1999 • Alberto Balderas, Arnoldo Díaz. “Fábrica de software. Un modelo de negocio certificable basado en Estructura y Capacidades”. Soluciones Avanzadas. No. 59 www.softwareguru.com.mx PRÁCTICAS PROCESOS BPM APLICADO AL DESARROLLO DE SOFTWARE Por Axel Nissim U no de los errores más comunes dentro del entendimiento de BPM por parte de los desarrolladores de SW, es la creencia de que BPM se limita a una estrategia tecnológica. Es cierto que plataformas como J2EE nos proporcionan herramientas para implementar estrategias BPM, y también es cierto que existen varios BPMS “Out of the Box” que nos permiten modelar procesos de negocios, y llevar su seguimiento. Sin embargo, lo que es esencial entender es que BPM es una estrategia de negocios, no tecnológica, y que se sirve de la tecnología para alcanzar sus metas. BPM es el resultado de una tendencia mundial hacia la claridad y transparencia dentro de los procesos, aportando flexibilidad al mismo tiempo y acabando con los órdenes monolíticos dentro de los flujos de trabajo, que hacen imposible a la empresa adaptarse rápidamente a las condiciones eternamente cambiantes del mercado. En una empresa que gira en torno a la tecnología y al desarrollo de software, también existen procesos de negocio, flujos de trabajo que deberían estar definidos; materia difusa e intangible para la mayoría, y que sólo vive en la cabeza del arquitecto o del líder de proyecto. La mayoría de las personas que representan los roles en el desarrollo de SW, a pesar de su alta necesidad de conectividad, interacción y retroalimentación, hacen esfuerzos heroicos para adivinar exactamente cuál es el tipo de información que se requerirá para los siguientes pasos del flujo de desarrollo, y a la vez, ruegan todos los días para que los artefactos que lleguen a sus manos, provenientes de fases anteriores, contengan toda la información necesaria. Claro, existen metodologías estructuradas, como RUP, que nos dicen lo que entra y lo que sale de cada una de las etapas de nuestro proyecto, pero de ninguna manera estas son soluciones definitivas a los problemas de flujo de trabajo, puesto que al final el proyecto mismo es quien decide la estrategia que se ha de tomar. A veces los artefactos escogidos no son los adecuados, los requerimientos no se estabilizan, o la gente se da cuenta de que “el sistema” no es la piedra angular, y que deberá adaptarse al negocio, sin importar si la metodología dice tal o cual cosa. También en el desarrollo de sistemas, los procesos de negocio deben de ser medibles, colaborativos, finitos (de manera indispensable), y eficientes. La implementación de CMM tiene como resultado la eficientización de los procesos, identificando las áreas clave, cuellos de botella, y a la vez atajando uno a uno los riesgos y minimizándolos. ¿Es esto una solución total? Si esto fuera cierto, pudiéramos pensar que los proyectos de TI fracasados son una historia de terror del pasado. Sin embargo, la triste y a la vez prometedora realidad, es que aún tenemos mucho trabajo que hacer, y precisamente parte de este trabajo es el empleo de metodologías BPM dentro del desarrollo de software, y a la vez, el desarrollo de herramientas que nos permitan mapear, seguir de cerca y medir los procesos de desarrollo, así como comunicar y reutilizar el conocimiento generado dentro de éstos. Las metodologías actuales de flujo de trabajo para el desarrollo de software se centran en la documentación extensa y el modelado, siendo éste una extensión misma de la documentación. El modelo es el sistema, la documentación es el sistema y, por supuesto, el código es el sistema, en una representación que varía en su grado de granularidad de acuerdo a la fase en que nos encontremos. ¿En qué consiste una solución de BPM? La tecnología detrás de los sistemas BPM es el software que automatiza y hace más directos y eficientes los procesos. Típicamente, la solución incluye una herramienta gráfica de diseño y navegación de procesos, capacidades de simulación, software de integración y middleware, así como capacidades de monitoreo y reporteo de cada uno de los procesos. Los procesos del desarrollo de software comúnmente se definen a partir de los diferentes milestones o hitos a los que va llegando el proyecto, los cuales a su vez se definen a partir de los artefactos programados para Axel Nissim es Director de entrempresarios.com, un portal y startup de Internet con la meta de desarrollar herramientas colaborativas basadas en el Social Networking. Axel es Licenciado en Sistemas Computacionales Administrativos por la Universidad de las Américas, y ha laborado como consultor en algoritmos para seguridad e inteligencia artificial. Actualmente trabaja de manera estratégica en la definición de metodologías y herramientas de workflow en megaproyectos basadas en redes sociales, planeando sacar al mercado el producto resultante. 38 JUL-AGO 2005 www.softwareguru.com.mx El modelo es el sistema, la documentación es el sistema y, por supuesto, el código es el sistema. cada fase. La realidad es que en el desarrollo de software los procesos se entrelazan de maneras inesperadas, y muy al pesar de los metodólogos, aún dependen del heroísmo personal de los participantes del proyecto. proyectos se basan en un enfoque jerarquizado que les permite mantener cierto control de la información, basado en la restricción de los roles y artefactos, sin tomar en cuenta las oportunidades y la eficiencia. La visión centrada en artefactos y asociada a roles del RUP, es muy útil en el sentido de la estandarización de procesos, y como un checklist en base a los entregables que se deben de conseguir. Lo que el RUP no toma en cuenta es la interacción humana y el alto grado de entropía en los proyectos, donde los artefactos se transforman, cambian hasta sus raíces y finalmente son usados para propósitos diferentes a los de su concepción. Los encargados de la administración de los La eficiencia de los procesos en el desarrollo de software queda incompleta aún implementándola dentro del marco de las mejores prácticas de desarrollo y hasta de procesos de negocio. Lo que se necesita es una solución más completa, y que sea capaz de armonizar los conceptos de BPM con las metodologías formales de desarrollo como XP o RUP, todo esto dentro de un marco de colaboración en capas, indistinto de organigramas y que permita aislar y atacar las oportunidades y siner- gias no sólo en cuanto a los roles dentro de los procesos, sino en cuanto a las competencias de cada individuo, sus habilidades, intereses y hasta sus metas particulares. BPM es un esfuerzo encaminado a la flexibilidad y el tiempo de respuesta ante condiciones cambiantes. Las condiciones cambiantes en un megaproyecto de desarrollo son una realidad que va más allá del simple cambio de requerimientos, y que tienen que ver más con la falta de unificación de criterios de negocio que nos permiten conocer las necesidades reales de los clientes externos (los compradores del sistema) y nuestros clientes internos (las personas trabajando en otros módulos o fases del desarrollo del sistema). PRÁCTICAS PROCESOS La comunicación es, por mucho, el activo más valioso dentro del desarrollo de software ¿Qué pasa si a la mitad del análisis nos damos cuenta que uno de los artefactos simplemente no tiene relevancia de acuerdo al problema atacado? ¿Quién se da cuenta de esto? Obviamente no es el arquitecto, ni el líder de proyecto, ambos encerrados en sus actividades de control. ¿Qué uso se le da a la información que no generó utilidad inmediata o esperada? Los verdaderos poseedores de la información y los que perciben de manera instantánea sus incongruencias son los que trabajan directamente con ella: analistas, programadores, testers y demás, por tanto en ellos debe de recaer —de manera colectiva— el mantenimiento de una base de conocimientos común que permita el intercambio sin fronteras de la información hacia adentro. El mantenimiento de los vínculos para la fluidez de esta información, es responsabilidad de los arquitectos, administradores de la configuración, y en última instancia del líder de proyecto, que además debe facilitar estos mismos vínculos a los “stakeholders”, usuarios y consultores de negocio de los proyectos, para cerrar el ciclo de comunicación. La comunicación es, por mucho, el activo más valioso dentro del desarrollo de software, sólo comparable en importancia con nuestros recursos humanos calificados. Es por esto que toda implementación que planee hacer uso de las herramientas de BPM en el ámbito del desarrollo de sistemas, dependerá primordialmente del nivel de soporte a las comunicaciones inteligentes y la transferencia del conocimiento entre diversos “keyplayers” en diferentes áreas. Lo ideal, en el sentido de la comunicación, serían herramientas que fueran independientes del organigrama en el sentido del intercambio positivo de la información no clasificada, y que además fuese sensible a estas mismas estructuras organizacionales para poder intercambiar de manera segura la información confidencial que no es de interés para todos los miembros del equipo. La herramienta deberá ser sensible socialmente a las relaciones mantenidas por parte de los dife- 40 JUL-AGO 2005 rentes miembros de los equipos, para poder aprovechar los canales de comunicación mas eficientes, y que no deben de fallar a causa de las altas tasas de rotación de personal, ni a las condiciones cambiantes de movilidad organizacional. Nuestras herramientas y conocimiento deben de estar a la mano de quien lo necesita, independientemente de si el dueño de la información dejó de trabajar en la empresa, recibió un ascenso, cambió su rol o cambió de proyecto. El manejo del conocimiento debe ser contextual e hipervinculado, así como modificable por cada uno de los miembros que posea la información necesaria para hacer aportaciones positivas, aún y cuando aparentemente su área de responsabilidad no sea congruente. Siempre habrá posibilidad de que el administrador de la configuración reciba un reporte de incongruencias en la edición de un documento, y simplemente aplique un Rollback a la última versión estable de la documentación. La organización en células de trabajo cohesivas internamente y modulares hacia el exterior, nos permitirá hacer un intercambio dinámico de recursos, independientemente de si el proceso actual o requerimiento dicta que primero llevemos a cabo el análisis y luego simulaciones, o viceversa. Nuestras herramientas flexibles de BPM deberán permitir el acoplamiento de nuestros flujos de trabajo a situaciones variadas en las que los procesos puedan tomar formas iterativas, en cascada, aleatorias y hasta caóticas, pero siempre sin perder de vista el alto grado de comunicación necesaria y el mantenimiento de los estándares documentales que nos permitirán obtener retornos sobre cada una de las fases de nuestros proyectos. La comunicación deberá de ser sensible a las personas y sus maneras naturales de agruparse en cuanto a intereses, habilidades, conocimientos y hasta amistades, y no solamente en cuanto a células de trabajo bien estructuradas, dado que sabemos que el trabajo en desarrollo de sistemas no permite que estas células sean persistentes en el tiempo, en cambio el conocimiento permanece ahí, en esa área gris representada por los vínculos sociales entre las personas. Nuestros recursos humanos podrán aprovechar conocimientos generados en diferentes células y hacerlo con el menor costo posible en términos de comunicación organizacional, y sin tener que pasar por muchos eslabones redundantes que únicamente fiscalizan el proceso sin aportar nuevos conocimientos o valor. Los elementos necesarios mínimos que debe de incluir una solución BPM para el desarrollo de software son los siguientes, sin un orden particular de importancia: • Definición y administración dinámica de procesos, independiente de metodologías formales (se deberá poder implementar cualquier metodología, según se considere conveniente). • Enfoque de producción basado en documentación estandarizada. • Formación de equipos de trabajo cohesivos internamente y modulares hacia fuera, con un enfoque particular en sus procesos propios, pero permitiendo la participación en los procesos ajenos. • Herramientas de modelado visual y definición de procesos. • Herramientas de reporteo y seguimiento de los procesos en tiempo real. • Middleware que permita conectar las diferentes partes, sistemas, y equipos de trabajo, con un enfoque orientado a procesos dinámicos. • Herramientas de comunicación colaborativa sensibles a la competencia, habilidades y relaciones sociales de los recursos humanos del proyecto. • Herramientas colaborativas inteligentes de administración del conocimiento, que permitan el flujo de información seguro y a la vez transparente, independiente de organigramas, y que busquen la participación indistinta de las personas que poseen el conocimiento. www.softwareguru.com.mx INNOVACIONES EN SOFTWARE COLUMNA La “Revolución” del BPM Pasado, Presente y Futuro L a forma de hacer negocios cambia constantemente. Los Procesos que soportan la organización son altamente dinámicos. Gartner piensa que el futuro de la construcción de software será, en parte, la composición de piezas en modeladores visuales, alterando instantáneamente el comportamiento de la organización —una labor realizada por los mismos dueños de los negocios. Pasado En un principio se pensó que los procesos de negocio podrían ser soportados por Flujos de Trabajo, ya que era posible enviar documentos, formas en rutas establecidas de manera automática usando reglas del negocio. Aunque muchos Workflow Management Systems (WFMS) lograron rebasar la vista centrada en documentos, el problema principal fue que codifican un metamodelo de procesos que limita la capacidad de resolver los problemas del mundo real. Hoy las aplicaciones de negocio como SAP R/3 incluyen componentes WFMS convirtiendo a los ERPS en plataformas de construcción de software. Pero aunque estas tecnologías existen, no se han utilizado ampliamente. Si todo se puede desarrollar de esta forma, ¿por qué no dejar de usar .NET y Java? humano es sólo una forma de pensar en procesos. En la vida real los sistemas de flujo de trabajo limitan fuertemente los procesos de negocio que se desean modelar. Aquellos que han implantado estos sistemas conocen bien estas limitaciones. Presente Recientemente ha aparecido una nueva categoría de software, los Business Process Management Systems (BPMS), como el WFMS o Relational Database Management Systems (RDBMS). Los BPMS son la búsqueda de una maquinaria universal de procesos. Hoy por ejemplo, los WFMS no pueden sustituir el correo electrónico. Extraño porque el correo electrónico se puede considerar un proceso muy común hoy en día: es un proceso simple de recibir y enviar con el que adquirimos la capacidad de comunicarnos con otros mediante una dirección electrónica. Es irónico que los WFMS no puedan modelar este escenario tan simple. Claramente los distintos WFMS trabajan en formas diferentes, aun cuando la Workflow Management Coallition (WfMC.org) ha tratado de unificar las normas. Este hecho ha limitado fuertemente la penetración al mercado de tecnologías de automatización de procesos, porque los directores de sistemas se tienen que comprometer con un proveedor. Otro factor no considerado en los WFMS es la movilidad, como lo demostró el ganador del premio ACM Turing, Robin Milner, quién desarrolló una teoría formal de procesos móviles llamada Cálculo Pi. El término movilidad se refiere a la forma en que los procesos transcurren mientras se ejecutan, mediante el intercambio de información entre participantes cuyas relaciones y vínculos evolucionan como resultado, determinando qué se conoce, quiénes se conocen y qué se ha encontrado. Pero hay razones adicionales de porqué los WFMS no pueden ser un modelo para ejecutar todos los procesos de software. El flujo de trabajo Una explicación detallada de estos conceptos está fuera del alcance de esta columna, pero se puede resumir como un proceso para crear procesos www.softwareguru.com.mx de cualquier tipo y que no se basa en comunicaciones sino en transformaciones a sí mismo. El BPMS se compone de herramientas de modelado, maquinaria de ejecución, herramientas de agilidad para alterar procesos, herramientas para monitorear y administrar los procesos, y herramientas de análisis que permitan medir la eficiencia de los procesos (ahí la relación con Six Sigma y procesos de mejora continua). Intalio fue el primer proveedor en implementar este modelo. Futuro Es claro que, dada la capacidad de comunicación que Internet ofrece, hoy es posible implementar procesos que salgan de la organización uniendo a proveedores, empresas pequeñas y usuarios finales. El Business Process Outsourcing (BPO) consiste en delegar la propiedad, administración y operación de un proceso a un tercero: Quien monta una nueva empresa puede preferir enviar al exterior un proceso de recursos humanos en lugar de hacerlo ellos mismos. Ese proceso debe ser de excelencia pero no se desea realizar el esfuerzo en lograrlo. En el futuro las “experiencias” permitirán integrar procesos entre industrias distintas. Por ejemplo, la contratación de un empleado en una organización puede provocar que al concretar la operación en el sistema de administración de recursos humanos se disparen procesos como compra del automóvil, apertura de cuenta, contratación del seguro, registros en el gobierno y otros procesos que hoy se realizan en forma manual, sean verdaderamente automatizados. Luis Daniel Soto Maldonado es Director de Evangelización en Nuevas Tecnologías en Microsoft México. Entre sus funciones actuales están la administración de la relación con el Gobierno Mexicano para el desarrollo de la industria de software (ProSoft). Luis Daniel es jurado del “Gran Orden de Honor al Mérito Autoral” en software del INDAUTOR/SEP y fundador de diversas asociaciones de Tecnologías de Información (TI) relacionadas a inteligencia competitiva, administración del conocimiento y construcción de software. Luis Daniel Soto es Ingeniero en Sistemas de la Fundación Arturo Rosenblueth y ganó el primer lugar en el concurso nacional para software de exportación en 1989. blogs.msdn. com/luisdans - Luis Daniel Soto JUL-AGO 2005 41 PRÁCTICAS UML CASOS DE USO Y EL VALOR DEL SISTEMA Por Sergio Orozco ¿ A quién no le ha pasado que compra algo sólo para terminar con ese producto en un rincón sin jamás ser utilizado? Nos pudo haber pasado porque no alcanzó nuestras expectativas, o porque resultó demasiado complicado de utilizar, o porque en realidad no era una verdadera necesidad sino simplemente un capricho. Sea cual fuera la razón, la realidad es que hicimos un gasto inútil e innecesario. Con el software, y en particular con el desarrollo de software a la medida, ocurre con bastante frecuencia algo similar. No es raro encontrarse con empresas que contratan un desarrollo de software sólo para darse cuenta de que desperdiciaron su dinero y su tiempo, pues no obtuvieron lo que ellos esperaban o necesitaban. En otras palabras, no obtuvieron el valor que esperaban recibir para su negocio con el software adquirido. La Administración de Requerimientos Una de las razones principales por las cuales se da esta situación, y de hecho, una de las causas principales por las cuales los proyectos de desarrollo fracasan o por lo menos no tienen el éxito que deberían, se debe a una mala administración de requerimientos. Esto generalmente se da por falta ya sea de habilidades en el personal responsable o de técnicas apropiadas utilizadas para llevar a cabo esta labor. La administración de requerimientos, de acuerdo a CMM, abarca actividades como la recopilación, documentación, validación y control de los requerimientos y sus cambios. UML, como estándar integrador de las buenas prácticas de desarrollo nos ofrece en este sentido los casos de uso como una técnica excelente para administrar los requerimientos de nuestros proyectos. ¿Consultoría o Manufactura? Si queremos realizar una verdadera consultoría de software, entonces nos corresponde algo más que escuchar la lista de funciones que el cliente cree que debería de tener su sistema (a menos que nuestro cliente tenga un área con la capacidad de realizar una buena recopilación y análisis de requerimientos). Si nos limitáramos a lo primero, entonces en lugar de llamarle consultoría a nuestro trabajo, deberíamos llamarle manufactura de software, donde uno implementa las funciones exactamente como se las solicita el cliente, cuestionando nada o muy poco, tal como se haría en una planta manufacturera donde se reciben las especificaciones del producto a construir. pedido”, “Consultar comisiones”, “Administrar prospectos”, “Generar factura” y “Administrar clientes”. Todas ellas son ejemplos de situaciones u objetivos importante que podría necesitar un vendedor para llevar a cabo su trabajo, conocidas y modeladas como casos de uso en UML, tal como se muestra en el diagrama. El Sistema y su Misión Si queremos desarrollar el mejor sistema posible, debemos realizar un trabajo serio para identificar, en primer lugar, cuál es el valor que el sistema debe proporcionar al negocio, para lo cual habrá que preguntárselo a las personas que obtendrán alguna clase de beneficio cuando se ponga en operación. Una buena parte de estas personas probablemente vayan a ser usuarios del sistema; en UML los conocemos como Actores (más adelante veremos otros tipos de Actores que también tendremos que identificar). Buscando los Beneficios del Sistema Una vez identificados los usuarios del sistema (actores primarios) habrá que preguntarles en qué situaciones valdrá la pena para ellos utilizarlo. La lista identificada de dichas situaciones no debería de tener pequeñas funciones, sino flujos completos que le proporcionen suficiente valor tanto a ellos como al negocio, de manera que “valga la pena usar el sistema” en dichas situaciones. Ejemplo: un vendedor en cierto sistema de ventas querrá “Registrar venta”, “Registrar Diagrama de casos de uso para el sistema de venta. Los Requerimientos Funcionales Normalmente los casos de uso son iniciados por algún actor, conocido como actor primario. Lo inicia con algún evento, que podría ser tan simple como elegir una opción en el sistema, y continúa como una serie de eventos o interacciones entre actores y sistema, hasta que el objetivo del caso de uso se cumple (el objetivo principal del caso de uso es lo que le da el nombre al mismo). Por lo tanto los casos de uso describen la funcionalidad del sistema para alcanzar objetivos Sergio Orozco es director general e instructor senior en Milestone Consulting, empresa especializada en capacitación práctica y consultoría en UML, CMM y orientación a objetos. [email protected]. 42 JUL-AGO 2005 www.softwareguru.com.mx importantes. Lo que estamos obteniendo así es una especificación de requerimientos funcionales mediante un análisis top-down (de lo general a lo particular), es decir, primero obtenemos los objetivos que hay que cumplir en el sistema descritos con el nombre del caso de uso (p. ej: Realizar una venta) y después buscamos cuáles son las funciones o requerimientos funcionales precisos y ordenados para que el actor cumpla dicho objetivo al utilizar sistema. Esto nos lleva a identificar requerimientos realmente relevantes para alcanzar la misión del sistema. Pasos para recopilar los requerimientos funcionales adecuados del sistema mediante casos de uso: 1. Especificar la misión del sistema. 2. Identificar quiénes utilizarán el sistema (actores primarios). 3. Averiguar cuáles objetivos desean cumplir los actores al usar el sistema (casos de uso). 4. Identificar los pasos o eventos de cada caso de uso (especificación del caso de uso). Las Interfaces del Sistema Hay otro tipo de actores que también hay que modelar; los actores secundarios. Suelen ser otros sistemas, componentes externos o dispositivos con los cuales interactúa nuestro sistema. A diferencia de los actores primarios, éstos no son los que inician o requieren del caso de uso, sino que nuestro sistema, al llevar a cabo un caso de uso requiere tener algún tipo de interacción con él. En el diagrama de casos de uso también suele ser apropiado mostrar a este tipo de actores, en cuyo caso aparecerán asociados a los casos de uso durante los cuales tienen que intervenir con algún tipo de interacción con el sistema a modelar. Ejemplo de Actor Secundario Nuestro sistema de ventas podría requerir enviarle información al sistema de contabilidad cuando se ejecuta la funcionalidad del caso de uso “Generar factura”. En dicha situación el sis- tema de contabilidad aparecerá como un actor secundario asociado a dicho caso de uso. De esta forma estamos mostrando las interfases requeridas con otros sistemas en cada momento. Por experiencia sabemos que, en los modelos de UML, el buen uso de pocos elementos da mejores resultados que el uso de muchos elementos mal aplicados. La esencia de los modelos radica en la simplicidad, ya que facilita el análisis, entendimiento y comunicación entre quienes solicitan el sistema y los que participan en su desarrollo. En otras oportunidades veremos elementos adicionales para modelar los casos de uso, pero podemos asegurar que la sencillez es parte importante del modelado, y esto implica que en ocasiones, y sobre todo cuando el analista no tiene tanta experiencia en UML, es mejor limitarnos a los elementos más básicos. COLUMNA PRUEBA DE SOFTWARE Fundamentos de la Prueba de Software Conceptos, Justificación y Alcance E n el número anterior hablamos sobre el contexto de la prueba de software. En esta ocasión, nos concentraremos en definir algunas definiciones relacionadas con la prueba de software, así como su justificación y alcance. Luis Vinicio León Carrillo es profesor-investigador del Departamento de Electrónica, Sistemas e Informática del ITESO, y director general de e-Quallity S.A. de C.V., empresa especializada en prueba de software. Luis Vinicio es doctorando por la Universidad Técnica de Clausthal, Alemania; su trabajo predoctoral giró alrededor a la aplicación de los lenguajes formales en la Ingeniería de Software. Es coautor de un marco tecnológico que hoy permite a e-Quallity desarrollar empresas de prueba de software. Su tesis doctoral está enfocada en la aplicación de métodos y lenguajes formales para hacer más eficiente y efectiva la prueba de software. Luis Vinicio es co-fundador del Capítulo Guadalajara de la AMCIS y su Secretario actual. Las descripciones de algunos conceptos que expondré en el presente, si bien son generalizables, estarán enunciados desde la perspectiva de la técnica denominada “prueba de caja negra”, consistente en ejecutar el sistema a probar revisando los requerimientos, con la consigna de detectar insatisfacción de los mismos. La razón es que facilita la exposición sin introducir complejidad innecesaria. Definiciones Complementando nuestro primer acercamiento a una definición, que tuvimos en el número anterior, podemos argüir que la prueba de software: Es un proceso en el que se revisa el sistema a probar (el SUT) bajo condiciones definidas explícitamente, y se le aplica (eventualmente con apoyo de software especializado de tipo CAST) un conjunto de estímulos (los casos de prueba) diseñados de manera sistemática utilizando técnicas apropiadas, con el objetivo de detectar niveles inadecuados de calidad. Este proceso debe llevarse a cabo disciplinadamente, y respaldarse en métricas bien definidas. Todas estas actividades y sus resultados son documentados, en especial las fallas detectadas [1]. Precisemos cada uno de los conceptos de esta definición. Intuitivamente, un proceso puede verse como una secuencia de actividades, cada una de las cuales genera productos, tiene insumos asociados, e involucra gente (roles) y otros recursos (v.gr. hardware y software). Un primer bosquejo del proceso de prueba de caja negra sería el siguiente, que refinaremos en números subsiguientes: 1. Establecer alcances, entregables y criterios de éxito 2. Estimar el esfuerzo de prueba 3. Planear el proyecto 44 JUL-AGO 2005 4. Reproducir el contexto del SUT 5. Hacer a) Diseñar casos de prueba b) Aplicar casos de prueba c) Reportar métricas y dar seguimiento d) Reportar análisis de resultados Mientras no (criterio de terminación) 6. Hacer el cierre del proyecto El SUT (System Under Testing) se refiere en general al elemento a probar. Por otro lado, las herramientas que utiliza el tester para llevar a cabo las actividades anteriores son cobijados bajo el acrónimo CAST (Computer Aided Software Testing). En cuanto a los casos de prueba, es deseable que presenten las siguientes características: • Ortogonalidad. No tener casos que incluyan segmentos de otros • Efectividad. Que detecten fallas. • Ejemplaridad. Que “con poco se pruebe mucho”. • Claridad. Que evidencien fallas de manera clara. Con calidad nos referimos a [2]: • El grado en que el producto satisface los requerimientos funcionales y no-funcionales explícitamente establecidos. • El nivel al que se siguieron los estándares de desarrollo explícitos y documentados. • Que el producto muestre las características implícitas que se espera de todo software desarrollado profesionalmente. Una equivocación es una acción incorrecta cometida por un humano (v.gr. no presionar [shift]), que ocasiona que se genere una falta (sin el [shift], queda “<” en vez de “>” en el código fuente); al ser ejecutada, la falta se evidencia en forma de lo que llamamos una falla. El error es la magnitud de la diferencia entre el resultado esperado y el obtenido [3]. Justificación Los principales objetivos que se buscan con la prueba de software suelen ser: • Conocer el nivel de calidad de productos intermedios, para actuar a tiempo (v.gr. rehacer un componente); esto www.softwareguru.com.mx facilita una administración realista del time to market del producto en cuestión. • No pagar por un producto de software sino hasta que alcance el nivel de calidad pactado; esto eleva el nivel de certidumbre en el comprador de software, y minimiza riesgos. • Disminuir la penosa y costosa labor de soporte a usuarios insatisfechos, consecuencia de liberar un producto inmaduro. Esto puede mejorar la imagen de la organización desarrolladora (y la credibilidad en ella). • Reducir costos de mantenimiento (la fase más costosa del desarrollo de software), mediante el diagnóstico oportuno de los componentes del sistema (v.gr. seguimiento a estándares, legibilidad del código, integración adecuada de los componentes, rendimiento apropiado, nivel y calidad del reuso, calidad de la documentación, etc.). • Obtener información concreta acerca de fallas, que pueda usarse como apoyo en la mejora de procesos, y en la de los desarrolladores (v.gr. capacitación en áreas de oportunidad). Entre más pronto se apliquen mecanismos de prueba en el proceso de desarrollo, más fácilmente podrá evitarse que el proyecto se salga del tiempo y presupuesto planeado, pues se podrán detectar más problemas originados en las fases tempranas del proceso, que son los que mayor impacto tienen. Alcance La prueba de software tiene limitantes, tanto teóricos como prácticos. Desde el punto de vista teórico, la prueba es un problema que llamamos no-decidible; esto implica, grosso modo, que no podemos escribir un programa que pruebe los programas sin intervención humana. Sin embargo, como www.softwareguru.com.mx mencionábamos anteriormente, la prueba sí es automatizable en muchos aspectos. Desde el punto de vista práctico, la cantidad de posibilidades para probar exhaustivamente un sistema es sencillamente inmanejable; es necesario entonces utilizar técnicas adecuadas para maximizar la cantidad de fallas importantes encontradas con los recursos asignados. Cada método que se utilice para detectar defectos deja un residuo de defectos más sutiles contra los cuales ese método es ineficaz (la llamada “Paradoja del Pesticida”). La prueba de software implica pues, la aplicación de técnicas y herramientas apropiadas en el marco de un proceso bien definido, determinado por el tipo de proyectos de desarrollo de software que se abordan. En el siguiente número veremos con mayor detalle las principales técnicas de prueba de software. - Luis Vinicio León Referencias 1. www.e-quallity.net pestaña Definiciones - Conceptos 2. Pressman, R.: Ingeniería de Software. Un Enfoque práctico. McGraw-Hill; 1993 3. Kit, E.: Software Testing in the Real World. ACM Press, 1995 COLUMNA CÁTEDRA Y MÁS BPM El Impacto en el Desarrollo de Software Aplicativo L os negocios o empresas hoy en día están preocupados por lograr la eficiencia organizacional al estandarizar los procesos de negocios en forma consistente en toda la compañía. La Administración de Procesos de Negocios (BPM) se enfoca en las prácticas inconsistentes de negocios. Cada quién realiza las actividades de forma diferente, con resultados poco homogéneos. El Dr. Ralf Eder Lange es Profesor ConsultorExtensionista del Departamento de Sistemas de Información en el Tec de Monterrey, Campus Estado de México, donde ha sido Director de los Programas de Graduados en Ciencias Computacionales y Sistemas de Información, y Director del Centro de Investigación en Informática. Sus áreas de especialidad incluyen Reingeniería de Procesos y Administración de la Innovación Tecnológica. Ralf es miembro fundador de la Asociación Latinoamericana y del Caribe de Sistemas de Información (LACAIS). Muchas empresas proveedoras de software se encuentran evaluando el replanteo de sus productos, usando, por ejemplo, soluciones CRM, cuando este acrónimo apareció en la escena. Lo mismo ha ocurrido con BPM, sin embargo, los productos que ofrecen los proveedores varían dramáticamente en capacidad y funcionalidad. BPM brinda la posibilidad de definir los procesos de negocio a nivel estratégico, para posteriormente automatizar dichos procesos en una aplicación computacional y finalmente proveer a los gerentes del negocio con la posibilidad de monitorear y analizar la operación de dichos procesos. Esto permite resolver problemas en el momento en que ocurren. Resulta muy importante que una plataforma de BPM permita especificar procesos que abarquen múltiples compañías, usando varios sistemas aplicativos en forma rápida, para luego implantarla en seguida. De lo contrario, dicha plataforma ofrece muy poco valor, al referirse a la automatización de procesos. Los negocios están inmersos cotidianamente en cambios constantes, tanto por actividades internas como externas, por lo que una plataforma de administración de procesos de negocios debe ser capaz de responder a estos cambios. La administración de procesos de negocio es llevada a cabo con diferentes herramientas utilizadas para capturar, modelar, diseñar, integrar, probar, 46 JUL-AGO 2005 implantar, medir y mantener diversos procesos de negocio en una empresa. Los procesos de negocio centrales definen el negocio y proporcionan la posibilidad de satisfacer y retener a los clientes, de maximizar las alianzas con otras empresas y de obtener resultados extraordinarios con respecto a la competencia. Al administrar los procesos de negocio se evitan prácticas inconsistentes de peticiones de cambio en aplicaciones computacionales, se asignan roles que ayudan a los clientes a definir los permisos de uso y acceso a la información, junto con las aprobaciones a los cambios en cada proyecto. BPM permite definir colectivamente los procesos de negocios, implantarlos en forma de aplicaciones computacionales, de tal forma que los administradores puedan monitorear, analizar, controlar o mejorar la ejecución de dichos procesos en tiempo real. Para implantar BPM se requiere entender en forma detallada la interacción de los diversos procesos de negocio existentes, así como poseer el conocimiento acerca de cómo fueron desarrolladas las aplicaciones computacionales correspondientes. Esto resulta ser un gran reto para todas las empresas, ya que al especificar la solución y diseñar el proyecto de BPM debe haber representantes de los procesos de negocios y de las aplicaciones computacionales, y esta interacción continúa aún después de la implantación, ya que debe proveerse mantenimiento a dichas aplicaciones. Por ejemplo, aquellas personas que realizan diagramas de flujo con herramientas como Visio o PowerPoint, también deben ser capaces de modelar procesos de negocio usando un BPMS. Luego se debe de poder comentar el proceso de negocio y pasarlo a los técnicos para su implantación. La habilidad de definir procesos con sus reglas de negocio, integrar aplicaciones computacionales e implantarlas, es necesaria para mejorar la productividad del negocio, pero por sí sola no es suficiente. Por esto la importancia de la habilidad de monitorear la ejecución de procesos en tiempo real, conociendo su impacto de ejecución y controlarlos en virtud de los cambios en las condiciones de negocio. A las personas con habilidades de negocio se les dificulta la comprensión de los detalles o la perspectiva de la tecnologías de la información —potencial de uso y funcionalidad—, y a los técnicos se les dificulta el apreciar los requerimientos —legales, económicos, organizacionales—, tal como se plasman en los procesos de negocio. Bajo estos puntos de vista divergentes, resulta difícil lograr la optimización del diseño propuesto, así como la implantación y la solución de problemas. El punto crucial, desde mi punto de vista como administrador de un proyecto de BPM, es la asignación de personal para que haya representatividad en el equipo formado con tal fin, que garantice el desarrollo de una aplicación computacional que efectivamente apoye objetivos de negocio, que estén sustentados en procesos de negocios auténticos, y que ayuden en el monitoreo. Dicho personal debe demostrar tener experiencia de campo, con usuarios por un lado y con las aplicaciones computacionales por otro. -Dr. Ralf Eder L. Referencias • Learn Data Modeling www.learndatamodeling.com/b_ manage.htm • Serena Software - BPM www.serena.com/business_process_management.html • Savvion - BPM www.savvion.com/business_process_management.php www.softwareguru.com.mx FUNDAMENTOS PMBOK Guide Guía de los Fundamentos de la Dirección de Proyectos Por Ramón Hernández Como su nombre lo indíca, el PMBOK (Project Management Body of Knowledge) Guide es un documento que reúne el conocimiento relacionado con la Dirección de Proyectos. La versión en español lleva el título “Guía de los Fundamentos de la Dirección de Proyectos (Guía del PMBOK®)”, y se encuentra actualmente en su tercera edición, liberada a finales del 2004. La primera versión del PMBOK se publicó como un artículo especial en el año de 1983 en una revista especializada del PMI (Project Management Institute). Algunos años después, en 1986, se publicó como un libro que contenía la estructura general que conocemos hasta el día de hoy (nueve áreas del conocimiento y cinco grupos de procesos). En el año 2000 se publicó una actualización, así como la primera traducción oficial al español. Finalmente en el 2004 se publicó la tercera edición de este libro. Prueba de la difusión de este documento como un estándar mundial, fue el hecho de que se publicó de manera simultánea en once idiomas: inglés, árabe, chino simplificado, francés, alemán, italiano, japonés, coreano, portugués, ruso y español. “La finalidad principal de la Guía del PMBOK es identificar el subconjunto de Fundamentos de la Dirección de Proyectos generalmente reconocido como buenas prácticas”. —PMBOK pág. 3 Iniciación Planificación Control Ejecución Cierre Grupos de Procesos Ejecución.- En este grupo de procesos se integra a personas y otros recursos para llevar a cabo el plan de proyecto, así como realizar los cambios aprobados para el proyecto. Seguimiento y Control.- Mide y supervisa regularmente el avance, a fin de identificar desviaciones respecto al plan de proyecto, de tal forma que se tomen medidas correctivas o preventivas cuando sea necesario para cumplir con los objetivos del proyecto. Aquí se lleva el control de los cambios al proyecto que asegura que los mismos son benéficos para el proyecto, el control de calidad del proyecto y la recopilación y distribución acerca del rendimiento del proyecto. Cierre.- Formaliza la aceptación del producto, servicio o resultado, y termina de manera ordenada el proyecto o una fase del mismo, o cierra un proyecto cancelado. Los cinco grupos de procesos agrupan a 44 procesos de dirección de proyectos que están clasificados por Área de Conocimiento. Grupos de Procesos Áreas de Conocimiento Los Grupos de Procesos son guías para aplicar los conocimientos y habilidades relativas a la Dirección de Proyectos. Los Grupos de Procesos tienen dependencias claras y se realizan siguiendo la misma secuencia para cada proyecto, son independientes de la industria o aplicación. El PMBOK define cinco grupos de procesos: Iniciación.- Aquí se define y autoriza el proyecto o una fase del mismo. La repetición de estos procesos permite que el proyecto sea detenido si deja de existir la necesidad de negocio o si se considera que el proyecto no puede satisfacer esa necesidad. Planificación.- Define y refina los objetivos, y planifica el curso de acción requerido para lograr los objetivos y el alcance pretendido del proyecto. Aquí se define el alcance y costo del proyecto o fase del mismo. Para poder estudiar todos los procesos de la Dirección de Proyectos, se agruparon en Áreas de Conocimiento, ya que en la vida real, estas Áreas de Conocimiento se pueden sobreponer una sobre la otra o interactuar entre sí de maneras muy diversas. Las Áreas de Conocimiento definidas en el PMBOK son: Gestión de la Integración del Proyecto.- Incluye los procesos y actividades necesarios para identificar, definir, combinar, unificar y coordinar los distintos procesos y actividades de dirección de proyectos dentro de los Grupos de Procesos de Dirección de Proyectos. La necesidad de integración se hace evidente en situaciones donde procesos individuales interactúan. Gestión del Alcance del Proyecto.- Incluye los procesos necesarios para asegurarse que el proyecto incluya todo el trabajo requeri- Ramón Hernández es Gerente de proyecto con más de diez años de experiencia en Tecnología de Información concentrado en proyectos para el sistema financiero. Ramón es PMP certificado desde 1999 y colabora en el capítulo del PMI en la Ciudad de México. 48 JUL-AGO 2005 www.softwareguru.com.mx do, y sólo el trabajo requerido, para terminar un proyecto de manera satisfactoria, básicamente es controlar lo que está incluido en el proyecto y lo que quedará fuera del mismo. Aquí se desarrolla la especificación del trabajo, o Statement of Work (SOW). Gestión del Tiempo del Proyecto.- Tiene todos los procesos necesarios para lograr terminar el proyecto en tiempo, como son la definición y secuencia de las actividades, así como los recursos necesarios para cada actividad y la duración de las mismas. El producto principal es el Cronograma del proyecto. Gestión de los Costos del Proyecto.- Aquí se tienen todos los procesos que permiten que el proyecto termine dentro del presupuesto aprobado. Se menciona que no sólo se debe poner énfasis en los costos del proyecto, sino en la repercusión que éstos pueden tener en el cliente, por ejemplo, disminuir el número de revisiones de aseguramiento de calidad al proyecto puede reducir el costo del proyecto, pero puede incrementar los costos que tendrá que pagar el cliente por tener un producto que no cumpla sus necesidades de acuerdo a lo pactado en el proyecto. Gestión de la Calidad del Proyecto.- Esta área de conocimiento incluye todas las actividades que determinan las políticas, objetivos y responsabilidades relacionadas con la calidad del proyecto que satisfaga las necesidades por las cuales se originó. Gestión de los Recursos Humanos del Proyecto.- Incluye todos los procesos que coordinan los trabajos de un equipo de proyecto en el cual se han definido roles y responsabilidades. Gestión de las Comunicaciones del Proyecto.- Es el área de conocimiento que incluye los procesos necesarios para asegurar que la información del proyecto sea entregada en tiempo y forma a todos los involucrados en el proyecto, algunos señalan que es en esta área donde el Gerente de Proyecto debe destinar la mayor parte de su tiempo. Se debe definir para cada involucrado en el proyecto el tipo y la frecuencia con que debe recibir información del proyecto, se debe informar a todos los niveles, hacia arriba, hacia abajo y hacia los lados. www.softwareguru.com.mx Gestión de los Riesgos del Proyecto.- Aquí se realiza la planificación de la gestión de riegos, la identificación y análisis de riegos, las respuestas a los riegos, y el seguimiento y control de los riesgos de un proyecto, se pretende con esto aumentar la probabilidad e impacto de los eventos positivos, y disminuir la probabilidad e impacto de los eventos contrarios al éxito del proyecto. Los riesgos son eventos o condiciones inciertos que, en caso de ocurrir, tienen un efecto positivo o negativo sobre alguno de los objetivos del proyecto, ya sean tiempo, costo, alcance o calidad. Gestión de las Adquisiciones del Proyectos.- En esta última Área de Conocimiento se incluyen todos los procesos de comprar o adquirir productos o servicios externos al equipo de proyecto necesarios para realizar el trabajo. Se incluye la administración de cualquier contrato, que es un documento legal entre un comprador y un proveedor, asumiendo que el comprador forma parte del equipo del proyecto y el proveedor no. Conclusión De una manera breve se muestra cómo está estructurado el PMBOK; para aquellos relacionados con la Ingeniería de Software puede ser un complemento interesante y un libro de consulta por excelencia que permita desarrollar proyectos de software cumpliendo con las necesidades de los clientes. Si mezclamos el SWEBOK (ver sección Fundamentos de SG Año 01 No.01) con el PMBOK, tendremos dos excelentes documentos que nos permitirán establecer el marco de referencia para desarrollar software de calidad. Referencias • Guía de los Fundamentos de la Dirección de Proyectos. Project Management Institute. 3era Edición, 2004. • “Fundamentos: Ingeniería de Software”. Revista SG Año 01 No.01 JUL-AGO 2005 49 TECNOLOGÍA WiMAX El siguiente paso en redes inalámbricas Por Ariel García WiMAX, del inglés Worldwide Interoperability for Microwave Access, es un estándar para transmisión inalámbrica de datos en redes de área metropolitana (MAN). Es una certificación para productos que cumplen con las pruebas de interoperabilidad de los estándares de IEEE 802.16, que tienen su área de especialidad en conexiones inalámbricas punto multipunto. Qué esperar de una red WiMAX WiMAX es una nueva alternativa para la construcción de redes inalámbricas, pero con mayores beneficios. Algunas ventajas son el manejo de velocidades de hasta 70Mbps y coberturas de hasta 50km. Esto no significa que WiMAX venga a sustituir la tecnología Wi-Fi, al contrario, está diseñada para complementar e interoperar con esta solución, al igual que con otras como Ethernet, Token Ring, FDDI, Cable MODEM, etc. Bandas (Mhz) Actuales y Autorizaciones Vigentes* Nuevas Aplicaciones (Diseñadas para convivir con atribuciones previas) 2400-2483.5 ICM (aplicaciones industriales, científicas y médicas), teléfonos inalámbricos, enlaces p-p y p-mp (espectro disperso), telemetría, sistemas multiacceso telefonía rural, tx de datos, hornos y enlaces de microondas. 802.11b/11Mbps, 802.11g/54Mbps, 802.20/1 Mbps/movilidad, Bluetooth, Home RF ps/movilidad, 802.16/70 Mbps/movilidad. En su primera etapa de implantación, WiMAX sólo estará disponible para los carriers, (compañías que ofrecen servicios de telecomunicaciones como telefónicas e ISPs) y grandes corporativos, para que puedan mejorar el servicio que ofrecen a sus clientes. La cobertura de la tecnología WiMAX se medirá en kilómetros cuadrados (Wi-Fi lo hace en metros cuadrados). Esto implica que en el área de cobertura de una estación base de WiMAX, se podrían habilitar soluciones de acceso a Internet de alta velocidad para hogares y oficinas en un radio de hasta 50km. Estas estaciones base eventualmente podrían cubrir toda una zona metropolitana, habilitando un acceso inalámbrico ininterrumpido en toda una ciudad. 5150-5350 Enlaces p-p y p-mp (espectro disperso y modulación digital), MOVIL 802.11ª/54Mbps, 802.11i, 802.16/70 Mbps/ movilidad, 802.20/1 Mbps/movilidad. 5470-5725 Radio Navegación marítima, Radiolocalización movil, radioaficionados. El estándar de WiMAX trabaja en el espectro entre 2 y 11GHz y supera las limitaciones de Wi-Fi al proveer anchos de banda de mayor velocidad y una encripción más robusta. Otra característica importante de WiMAX es su capacidad de proveer acceso al medio sin necesidad de línea de vista directa a la estación base. Obviamente esto disminuye el 50 JUL-AGO 2005 5725-5850 ICM (aplicaciones industriales, científicas y médicas), Detección, identificadores, telemetría, telecomando y enlaces p-p y p-mp (espectro disperso) 802.16/70 Mbps/movilidad, 802.20/1 Mbps/movilidad 802.11ª/54Mbps 802.16/70 Mbps/Movilidad, 802.20/1 Mbps/movilidad. * Incluye permisos, concesiones, autorizaciones y registros. alcance, pero aún así WiMAX hace un muy buen trabajo en este tipo de situaciones. Las ventajas de WiMAX La tecnología podría proveer accesos compartidos de hasta 70Mbit/s. Esta capacidad es suficiente para soportar más de 60 enlaces tipo T1, o varios cientos de hogares con accesos DSL de 1Mbit/s. WiMAX tiene un manejo optimizado y de mayor eficiencia del ancho de banda, en base a sus algoritmos de control de acceso al medio. Estos algoritmos permiten a la estación base controlar la calidad de servicio al balancear la asignación de ancho de banda en base a las necesidades de cada subscriptor de la estación; por ejemplo, si algún suscriptor está realizando una descarga de archivos que tiene una velocidad promedio de 80Kb/s y tiene contratado un enlace de 256Kb/s, la estación base sólo www.softwareguru.com.mx asignará los 80Kb/s que está demandando y pueda aprovechar el resto del ancho para otros suscriptores que lo necesiten. Dónde adquirir una solución WiMAX Actualmente en ciudades como Los Angeles, Nueva York, y Seattle en EUA; y Dalian, Chengdu en China, ya hay implementaciones de redes que funcionan con esta tecnología, pero no están certificadas por el WiMAX Forum (ver recuadro), es por esto que se les conoce como pre-WiMAX. Actualmente el WiMAX Forum tiene su programa de certificación en curso, y se espera que las primeras soluciones WiMax certificadas aparezcan a principios del 2006. Una vez liberada la certificación podremos obtener productos que nos permitan construir soluciones que puedan trabajar con cualquier equipo “WiMAX certified” sin importar la marca o el fabricante del chipset. Se espera que para finales del 2007 aparezcan los primeros dispositivos WiMAX para usuarios finales, con los que una persona se podrá conectar a Internet por WiMAX a velocidades de 4Mbps. Posteriormente, a finales del 2008, aparecerían las primeras laptops “WiMAX-ready”. ¿Existen otras tecnologías tipo WiMax? El competidor equivalente de WiMAX en Europa es HIPERMAN. Actualmente el WiMAX Forum está trabajando en métodos para que WiMax y HIPERMAN pueden interoperar de forma transparente. La industria de telecomunicaciones de Corea también ha desarrollado su propio estándar: WiBro. El año pasado Intel y LG acordaron una interoperabilidad entre WiBro y WiMAX. Regulación del Espectro Los usos de tecnologías como WiMax o WiFi permiten compartir el espectro, haciendo un uso más eficiente. Es fundamental que para promover estos ser- www.softwareguru.com.mx vicios, las administraciones consideren diferentes e innovadoras formas de utilizar el espectro radioeléctrico en vez de asignarlo a un único dueño, lo que limita la cobertura y desarrollo de infraestructura, dando paso a un cambio de paradigma, en que el espectro puede ser compartido y donde bajo un marco mínimo de criterios operativos, se puede dar oportunidad a la sociedad e industria de acceder al beneficio que ofrecen estas tecnologías. Hoy en día estas bandas de frecuencias presentan una problemática en México, ya que su utilización libre para acceder Internet esta sujeta a autorización. En tal contexto, es necesario que el Estado mexicano en conjunto con la industria, determinen la mejor manera de aprovechar las modernas tecnologías en uso en las bandas de 2.4 y 5 GHz, a fin de promover el acceso de la mayor parte de la población. La SCT tiene hoy ante sí la decisión de masificar el acceso a Internet y sus servicios, las tecnologías ya están disponibles y las economías de escala permiten tener dispositivos de muy bajo costo, desaprovechar o demorar esta magnifica oportunidad, significaría perder la oportunidad que brindan las TIC para aportar al crecimiento y desarrollo sustentable del país. Conclusiones La tecnología WiMAX es una nueva solución para implementación de redes de acceso inalámbrico dentro de un área metropolitana. Esto no viene a competir con soluciones existentes como fibra óptica, satélite, Wi-Fi, etc. Al contrario, nos ayuda a complementar cada una de estas soluciones. Ejemplos: • Para aquellas compañías que cuentan con enlaces de fibra óptica y buscaba soluciones para un enlace de respaldo a bajo costo, WiMAX es una buena opción. • Aquellos proveedores que se encuentran dando servicios de acceso Internet inalámbrico pueden expandir sus áreas de cobertura o iniciar nuevas implementaciones en otras ciudades con esta tecnología. • Tomemos el caso de la Sierra Tarahumara. No existen soluciones de conectividad por cableado de ningún tipo. Mediante un enlace satelital podríamos colocar una antena donde se provee la conectividad a la Internet. En ese punto colocamos nuestra estación base WiMAX de donde tendremos un radio de cobertura de hasta 50 kilómetros para habilitar servicios de telefonía IP. Podemos colocar hotspots Wi-Fi para poder brindar servicios de Internet o educación a distancia, etc. WiMAX iniciará su crecimiento dentro de los grandes corporativos y empresas de comunicaciones consolidadas. Una vez que este mercado sea cubierto, los costos habrán bajado y seremos nosotros, los usuarios finales, quienes comenzaremos a poder tener accesos directo a esta tecnología con sus respectivos beneficios. *Agradecemos a Pedro Cerecer de Intel por la información provista para la generación de este artículo. Qué es el WiMAX Forum? El WiMAX Forum es un consorcio de empresas (inicialmente 67 y actualmente más de 100), dedicadas a diseñar los parámetros y estándares de esta tecnología, y a estudiar, analizar y probar los desarrollos implementados. En principio se podría pensar que esta tecnología supone una grave amenaza para el negocio de tecnologías inalámbricas de acceso de corto alcance en que se basan muchas empresas, pero hay compañías muy importantes detrás del proyecto. Las principales firmas de telefonía móvil también están desarrollando terminales capaces de conectarse a estas nuevas redes. Mayor información sobre el WiMAX Forum en www.wimaxforum.org JUL-AGO 2005 51 TECNOLOGÍA Sony Vaio Notebook Serie F Con un diseño más delgado y ligero, la recientemente presentada Serie F de Vaio combina rendimiento y comodidad. En tan sólo 2.5cm de ancho, y 2.8kg, la Serie F integra procesador Pentium M a 1.60GHz, 512MB (escalables a 1GB) de memoria RAM, disco duro de hasta 60GB, pantalla de 15.4 pulgadas visibles, unidad DVD+RW/-RW/CD-RW y Windows XP Home. Lo mejor del software propietario de multimedia de Sony, Vaio Zone, es la capacidad de manipular el contenido de varias computadoras enlazadas en una red local, lo que convierte a la Serie F en un centro de control de entretenimiento ideal. Con un precio bastante accesible y todas las características enlistadas, la Serie F es una excelente opción en computadoras portátiles de alta capacidad y tamaño reducido. nVIDIA GeForce 7800 La nueva tarjeta aceleradora de video de nVIDIA presenta la arquitectura de siguiente generación, con una unidad de vértices de sombreado independiente que recorta dramáticamente el tiempo de rendereado de geometría compleja. El motor gráfico CineFX 4.0 procesa el doble de operaciones de punto flotante que las tarjetas de la generación anterior, obteniendo las mejores texturas y efectos de iluminación en tiempo real, concretando el motor cinematográfico prometido desde hace más de cuatro años. 256MB de memoria y un procesador central de 128 bits, brindan la gama más amplia de profundidad de color en 32 bits, así como un radio de actualización de 85Hz en monitores de hasta 2048x1536 pixeles de resolución. La tecnología Digital Vibrance Control 3.0 permite al usuario manipular fácilmente la calibración de color de sus monitores, para ofrecer igualación precisa en el área de trabajo, ya sea en medios digitales o impresos. La GeForce 7800 es para edición de video, rendereo de imágenes en 3D y juegos, por supuesto, permitiendo correr títulos como Doom 3 en todo su potencial. 52 JUL-AGO 2005 PalmOne Tungsten E2 Orientada a los nuevos usuarios, la E2 incorpora toda la utilidad de una PDA con la más reciente versión de PalmOS, el Garnet v5.4, de interfaz sencilla y familiar. Todas las aplicaciones de organización (contactos, calendario, administrador de citas y correo electrónico), y el fabuloso Documents To Go, con el que se pueden leer y modificar documentos de Excel, PowerPoint y Word, garantizan la productividad en cualquier lugar. La pantalla a color de 320x320 pixeles de resolución, ranuras de expansión para tarjetas MultimediaCard, SD y SDIO, el software palmOne media, y RealPlayer, hacen de esta Tungsten la compañera perfecta para un viajero, convirtiéndose en un centro multimedia, reproductor de MP3, fotografías y video. Puertos Bluetooth, infrarrojo y USB permiten sincronizar la información e intercambiar contactos con otros dispositivos sin complicaciones. Los accesorios disponibles incluyen un teclado y el GPS Navigator, actualizable para contar con la última información en mapas para trazado de rutas. www.softwareguru.com.mx BIBLIOTECA 01 As the Future Catches You: How Genomics & Other Forces Are Changing Your Life, Work, Health & Wealth Juan Enríquez Cabot Crown Business, 2001 Alvin Toffler escribió en 1970 un inquietante libro titulado “El shock del futuro”, en el cual relata un futuro por llegar, y que cuando llegó a muchos nos tomó desprevenidos. En el año 2000, Juan Enríquez Cabot publicó el libro “As the future catches you” (también disponible en español con el nombre “Mientras el futuro te alcanza”). Toffler y Cabot hablan de la tecnología que se fraguaba en su momento y sobre los impactos que tendría en nuestra sociedad. Cabot establece y explica premisas como las siguientes: • Roger Bacon predijo hace 4 siglos: “El conocimiento es poder”. • Las fronteras se derrumban a gran velocidad, porque pocos entienden el impacto de la tecnología y el conocimiento. • Cuando México contaba con bibliotecas e imprentas, en EU los inmigrantes talaban árboles para construir sus cabañas. Sin embargo, EU apostó por la educación de su pueblo y por la tecnología. • En 1960, “Hecho en Japón”, era sinónimo de mala calidad, y en el 2005 es todo lo contrario. Adivinen qué hizo Japón. • En enero de 2000, Microsoft estaba valuada en 592 mil millones de dólares. Diez veces lo que Brasil exportaba en 1998, o cinco veces lo que México exportaba. Pero, ¡ojo!, Brasil tenía 171 millones de habitantes, México 100 y Microsoft empleaba a sólo ¡32,000 personas! Cabot pone todos estos ejemplos para llegar al tema central del libro: la nueva revolución impulsada por la nanotecnología. Esta ya no estará dominada por los 0’s y 1’s (digital), sino por lo que pueda escribirse con las letras ATCG (Adenina, Tiamina, Citosina y Guanina). El futuro nos depara un mercado en el cual podrás adquirir una manzana para controlar la diabetes, una pera contra la gripe, mosquitos que te inyectarán vitaminas, y así sucesivamente. ¿Sorprendente?, bueno si realmente te quieres sorprender, no dejes de leer este impactante libro, escrito con un formato que ha sido aclamado a nivel mundial. Reseña proporcionada por Armando Sánchez Rodríguez ([email protected]). In Search of BPM 02 Excellence: Straight from the Thought Leaders Business Process Management Group (BPMG) Meghan Kiffer Press, 2005 Existen muchos libros de BPM. Sin embargo, la mayoría solamente habla sobre lo grandioso que es BPM y los beneficios que traerá a las empresas, pero muy pocos realmente hablan acerca de cómo hacerlo una realidad y mucho menos sobre lecciones aprendidas. Es por ello que en este número les recomendamos “In Search of BPM Excellence”, ya que es uno de los pocos libros de BPM que no sólo hablan del qué, sino también del cómo. Este libro fue creado por el Business Process Management Group (BPMG) y reúne el pensamiento de algunos de los personajes más importantes de este movimiento. Es un compendio de artículos que tratan 54 JUL-AGO 2005 temas como el pasado, presente y futuro de BPM, frameworks de implantación (8 Omega Framework), y criterios para seleccionar un BPMS. También hay artículos muy interesantes que abordan temas de negocio tales como estrategia, ventaja competitiva y cambio organizacional, desde la perspectiva de BPM. Dado su reciente publicación (mayo de 2005), es muy probable que todavía no hayan escuchado mucho sobre este libro. Sin embargo, confiamos en que pronto se convierta en una de las lecturas obligadas sobre el tema. Recomienda un libro para esta sección, escribe a: [email protected] www.softwareguru.com.mx INDEX DIRECTORIO TENEMOS UN ESPACIO RESERVADO PARA TI Si deseas anunciarte contáctanos en el (55) 5239 5502 o en [email protected] www.softwareguru.com.mx Anunciante Páginas Sitio Alpha Consultoría AMCIS Avantare certum e-Quallity Gopac Grupo STI Horbis IBM Itera MGE Microsoft Milestone Oracle Roca Sistemas SafeNet Ssistemas Software AG Top SW Show XpoLinux 49 55 45 35 43 29 13 39 F4 53 37 F2-1 11 07 47 17 15 33 09 F3 www.alpha-hardin.com www.amcis.org.mx www.avantare.com www.certum.com www.e-quallity.net www.gopac.com.mx www.gsti.com.mx www.horbis.com www.ibm.com/mx www.itera.com.mx www.mgeups.com www.microsoft.com/mexico www.milestone.com.mx www.oracle.com/global/mx www.rocasistemas.com.mx www.la.safenet-inc.com www.ssistemas.com www.softwareag.com www.mayen-project.com.mx www.expolinux.com JUL-AGO 2005 55 CARRERA El Arquitecto de Software Habilidades Necesarias Por Sergio Orozco y Carlos Macías E l término “arquitectura de software” y el rol de “arquitecto de software” parecen estar cada día más de moda en nuestra industria. Sólo basta asomarnos a la trama de películas de ciencia ficción como The Matrix: Revolutions donde el arquitecto aparece como un Dios Todopoderoso, responsable de la creación de ese mundo virtual. De igual manera, existe una caricatura donde se hace la analogía entre un programador representando a un padawan (aprendiz de Jedi en la saga Star Wars) y un arquitecto de software representando a un maestro Jedi. El aprendiz no podía creer la cantidad de habilidades y conocimiento que requería para convertirse en un Jedi (o arquitecto según esta analogía), por lo que comenzaba a dudar si sería mejor irse por el lado oscuro de la fuerza. ¿Qué es la Arquitectura de Software? La arquitectura es el conjunto de decisiones relevantes acerca de la organización de un sistema de software, la selección de los elementos estructurales y las interfases que lo componen, junto con el comportamiento según se especifica en la colaboración entre sus elementos, la composición de dichos elementos estructurales y de comportamiento en subsistemas cada vez mayores, así como el estilo arquitectónico que dirige su organización. — La Guía de Usuario de UML, Booch-Jacobson-Rumbaugh, 1999. Si el analista de sistemas es el responsable de identificar y especificar las necesidades y requerimientos del usuario, entonces el arquitecto es el responsable de tomar las decisiones más relevantes en cuanto a la forma más óptima en que se explotará la tecnología para implementar dichos requerimientos. ¿Qué es lo que se necesita para dominar los principios que pueden transformar a un desarrollador común en un arquitecto de software? Influencia en los Proyectos.- Es conveniente que domine la mayor cantidad de tecnologías de software para ser capaz de ofrecer las mejores recomendaciones tecnológicas en beneficio del proyecto. Sus decisiones tienen un impacto al corto, mediano y largo plazo. Características importantes que definen la calidad de la aplicación, como son el desempeño, reuso, robustez, portabilidad, flexibilidad, escalabilidad y mantenibilidad dependen en gran medida de las decisiones que tome. Incluso generan un impacto directo sobre la economía del proyecto, pues debería de ser capaz de sacarle el máximo provecho a la tecnología existente, en especial cuando ésta representa una restricción del proyecto, como ocurre cuando el cliente no se puede dar el lujo de invertir en nuevo equipo o tecnología adicional al que ya tiene. Dominio.- Sus decisiones sobre la estructura y dinámica de la aplicación son plasmadas en notación formal. Para hacer esto los arquitectos modernos requieren dominar UML, sobre todo si piensan usar nuevas tecnologías y en especial aquellas orientadas a objetos. A pesar de esto, no creerían la cantidad de alumnos que han llegado a nuestros cursos a aprender UML, creyendo ser “arquitectos de software”, cuando les falta algo tan básico como el dominio de dicha nomenclatura. Claro que no hay que culparlos, ya que existe un desconocimiento generalizado acerca del perfil de dicho rol. El conocimiento y experiencia del arquitecto moderno pueden resumirse en los siguientes puntos: 1. UML y el uso de por lo menos una herramienta de modelado. 2. Análisis, Diseño y Programación Orientada a Objetos. 3. Ventajas, desventajas y particularidades entre los principales lenguajes y tecnologías disponibles: Java, C#, .Net, J2EE, etc. 4. Bases de datos. 5. Desarrollo basado en componentes. 6. Patrones de diseño. 7. Patrones de arquitectura. 8. Estilos de arquitectura. 9. Frameworks. 10. Nuevas tecnologías y plataformas, incluyendo open source. 11. Conocimientos del hardware y sus capacidades. 12. Procesos de desarrollo de software modernos, como el Proceso Unificado. Es importante notar que los arquitectos no construyen sus planos desde cero, sino que aprovechan el conocimiento y experiencia de otros, plasmado en patrones y frameworks. Habilidades.- Además de este conocimiento, requiere contar con habilidades como las siguientes: • Capacidad de abstracción, creatividad, liderazgo, comunicación oral y escrita; negociación, disciplina y ser autodidacta. Si usted cumple con todos estos requisitos, probablemente ya es, o está muy cerca de convertirse en un arquitecto de software. Después de ver todo lo que se requiere, podemos entender porqué el programador se puede ver tentado a seguir “el lado oscuro de la fuerza” en lugar de seguir esta carrera. Sergio Orozco es director general, consultor e instructor senior de Milestone Consulting, certificado en UML por la OMG. Carlos Macías es arquitecto en jefe, consultor e instructor senior de la misma empresa. Milestone Consulting es la primer empresa mexicana miembro de la OMG, especializada en servicios relacionados con UML: capacitación, consultoría y distribución de herramientas de modelado con dicho estándar. [email protected] / www.milestone.com.mx 56 JUL-AGO 2005 www.softwareguru.com.mx Año 01 No. 04 www.softwareguru.com.mx SOFTWARE GURU CONOCIMIENTO EN PRÁCTICA Julio-Agosto 2005
Similar documents
ENE-FEB 2006
Consejo Editorial Francisco Camargo, Guillermo Rodríguez, Ralf Eder y Raúl Trejo, ITESM CEM; Hanna Oktaba, UNAM-AMCIS; Luis Cuellar, Softtek.; Luis Vinicio León, e-Quallity - ITESO Colaboradores Ar...
More information