SG37: Agosto - Octubre 2012

Page 1

Gestión de Requerimientos Pag. 36

Atributos de Calidad de Software Pag. 38

Cifrado de VoIP Pag. 46

No.

37

Ágil

Kanban

Fundamentos

Enseñando a Niños a Programar CONOCIMIENTO EN PRÁCTICA Agosto-Octubre 2012 www.sg.com.mx

UNE LAS PIEZAS POR MEDIO DEL

México, $65.00

OUTSOURCING





www.sg.com.mx |

Software Guru


37

CONOCIMIENTO EN PRÁCTICA

.CONTENIDO Agosto-Octubre 2012 |

www.sg.com.mx

En Portada Outsourcing 14 Los servicios de Outsourcing llegaron para quedarse, pero no para quedarse estáticos. Para los CIO’s, el outsourcing va más allá de una orden de compra, reducir costos no es la única razón para utilizar servicios de Outsourcing por lo que el presupuesto que se destina debe de ir sustentado por razones estratégicas de innovación, desarrollo y operación. A través de los artículos de esta sección, conocerás la visión actual de este servicio.

Columnas Mejora Continua 08 Por Luis Cuellar

Tendencias en Software 11 Por Luis Daniel Soto

Código Innovare 28 Por Rogelio Esperón Rodríguez

Tecno-lógico Pág.

14

Programar es un modo de vida Por Gunnar Wolf

02

42

Por Mauricio Angulo

44


.CONTENIDO

Herramientas y Novedades

Pág.

12

Lo que Viene 10

Fundamentos Enseñando a niños a escribir programas para computadora

50

Por Ignacio Cabral

En Cada Número Editorial 04 Noticias 05

Emprendiendo

Gadgets 54

Startup Weekend, 54 horas de adrenalina, desarrollo y creatividad 12

Biblioteca 56

Por Celeste North

46

Simulación del Estándar de Cifrado Avanzado para VoIP Por Sergio Tovar, José Velázquez, Gina Gallegos-García

Especial Reseña SG Conference & Expo 2012

06

Prácticas Prueba de Software Outsourcing del servicio de Prueba de Software

32

Por Berenice Ruiz

Ágil Recuperando Agilidad a través de Kanban

34

Por Agustín Villena

Gestión Mejores Prácticas para el Desarrollo de Software

36

Por Alejandro Velázquez

Calidad Priorización de Atributos de Calidad Por Larisa González, Roberkys Martin, Tahirí Rivero

03

38

www.sg.com.mx |

Infraestructura

Software Guru

Tecnología


.EDITORIAL Bienvenida

. “Agradecemos a todos aquellos que fueron parte de SG Conference + Expo 2012.”

Los confines se desvanecen

L

a tecnología difumina las barreras de comunicación y desvanece las limitantes de los profesionistas y las empresas. La globalización de la economía está obligando a las empresas a utilizar todas las herramientas de gestión que se encuentren a su alcance y es ahí, donde el mundo del desarrollo de software juega un papel vital. Es así que el tema principal de esta edición de SG es el outsourcing de servicios de TI. Si bien no es algo nuevo, y que incluso ya habíamos abordado como tema principal en la edición de Mayo-Junio 2007, ya ha pasado algún tiempo de ello y vale la pena conocer el estado actual, tendencias y reflexiones de este importante aspecto de nuestra industria. Hemos incluido una reseña de SG Conference + Expo 2012 para que puedas revivir algunos momentos clave de este evento. Ya estamos planeando la próxima edición para junio del 2013, te mantendremos al tanto. Adicionalmente, queremos compartir con ustedes que estamos planeando realizar ajustes en la revista. Incluiremos nuevas secciones, así como una red más amplia de colaboradores. Si tienes sugerencias o interés en participar, por favor escríbenos a editorial@sg.com.mx

››Equipo Editorial Software Guru

DIRECTORIO SG Dirección Editorial Pedro Galván / Dirección de Operaciones Mara Ruvalcaba Coordinación Editorial Vanessa Amaya / Arte y Diseño Oscar Sámano / Suscripciones María Morales Consejo Editorial Jorge Valdés - PMI / Luis Cuéllar - Softtek / Luis D. Soto - Microsoft / Hanna Oktaba - UNAM / Luis Vinicio León - e-Quallity / Mauricio Angulo

Colaboradores

Agustín Villena, Alejandro Velázquez, Anibal Gonda, Berenice Ruiz, Celeste North, Germán Domínguez, Gina Gallegos-García, Gunnar Wolf, Gustavo Parés, Hubert Smits, Ignacio Cabral, José Velázquez, Larisa González, Leslie P. Willcocks, Masa K Maeda, Roberkys Martin Cruañes, Rogelio Esperón, Sergio Tovar, Tahirí Rivero

Ventas Claudia Perea / Alianzas Daniel Velázquez / Webmaster Karen Rodríguez / Luis Sánchez SGCampus Ana Karen Rosales Contacto info@sg.com.mx SG Software Guru es una publicación trimestral editada por Brainworx, S.A. de C.V., San Francisco 238 Altos, México DF 03100. Los contenidos de esta publicación son propiedad intelectual de los autores y están licenciados bajo Creative Commons Atribución-No comercial 2.5 México. 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: En trámite. ISSN: 1870-0888. Registro Postal: PP15-5106. Distribuido por Sepomex. Se imprimió en agosto de 2012 en 4Press.

04


.NOTICIAS

.RoboCup 2012

.ICPC 2012

Tuvimos el placer de acompañar en la ciudad de Varsovia, Polonia, a los estudiantes que participaron en las finales de la Competencia Internacional Universitaria de Programación de la ACM. En el evento participaron 112 equipos quienes fueron seleccionados de las distintas competencias regionales que organiza la ACM durante el año. En esta ocasión, el equipo ganador fue el de la Universidad Estatal de TI, Mecánica y Óptica en San Petersburgo, dejando en segundo lugar a los anfitriones de la Universidad de Varsovia. Los equipos de habla hispana con mejores resultados fueron de la Universidad de Buenos Aires y la Universidad Nacional de Ingeniería (Perú). De México participaron los equipos del CIMAT, la Universidad Tecnológica de la Mixteca y el Tec de Monterrey Campus Puebla. Agradecemos a IBM, patrocinador del ICPC que hizo posible que pudiéramos cubrir este evento.

La Ciudad de México fue sede de la edición 2012 de RoboCup, competencia estudiantil de robótica donde más de dos mil contendientes representantes de 40 países y cientos de robots compitieron en distintas categorías para demostrar su supremacía. Sin duda fue de interés para chicos y grandes poder ver a estos robots y aprender sobre su funcionamiento. Esperamos que haber traído esta competencia a México contribuya a despertar el interés por la robótica en los niños de nuestro país.

Software Guru

.Magma Rails

.Gartner

Junio fue un mes con bastantes eventos de TI en México, y uno de ellos fue el Gartner Application Architecture, Development and Integration Summit 2012, que además de tener un nombre bastante largo, también tuvo una lista larga de temas abordados en las sesiones, tales como cómputo en la nube, arquitectura empresarial, SOA, BPM y gestión de aplicaciones. Otro tema recurrente este año fue sobre cómo incorporar aspectos sociales en las aplicaciones de software empresarial. El próximo evento de Gartner en México será el CIO & IT Executive Summit del 9 al 11 de octubre.

www.sg.com.mx |

También en junio del 2012 se llevó a cabo en la playa de Manzanillo, la 3ra caída de Magma Rails, conferencia principalmente dirigida a desarrolladores de Ruby y Rails. Destacaron las conferencias magistrales de Scott Chacón, Aaron Patterson y Dr. Nic, que fueron complementadas por conferencias técnicas a cargo de algunos de los desarrolladores Rails más destacados en nuestra región.

.CIISA

El pasado 24 y 25 de mayo se realizó en la ciudad de Guadalajara una edición más del Congreso Internacional en Ingeniería de Software y sus Aplicaciones (CIISA), organizado por el SIE Center y Tecnológico de Monterrey Campus Guadalajara. Al igual que en años anteriores, los temas que dominaron la agenda fueron los modelos de calidad y madurez de procesos de software propuestos por el Software Engineering Institute, tales como CMMI, TSP y PSP.

Para mayor información, noticias al día y actualizaciones de la industria visita: www.sg.com.mx

05


Descubriendo el DĂŠcimo Arte

06


.reportaje

En las conferencias de track se contó también con la participación de expertos locales, quienes hablaron sobre distintos temas de interés para desarrolladores, líderes de proyecto y emprendedores del software. Entre los temas que más llamaron la atención este año estuvieron: desarrollo de aplicaciones móviles, desarrollo Lean, métricas para startups, usabilidad de software, y gestión de requerimientos. Agradecemos de todo corazón a todos los conferencistas que compartieron su conocimiento y experiencia en SG Conferencia y Expo 2012. También hacemos un reconocimiento especial a los conferencistas mejor evaluados: César Salazar (“Pitches épicos”), Juan Carlos González (“Mejores prácticas para la conceptualización de sistemas de software”), y Victor Manuel González (“Design thinking and innovation”).

Para esta edición de SG Conference + Expo, iniciamos actividades con lo que llamamos un “día de líderes”, que constó de actividades dirigidas a líderes y ejecutivos de organizaciones de TI. El tema eje fue “Innovando con información” y para ello comenzamos con una serie de pláticas relámpago en formato Ignite, donde cada presentador tuvo 5 minutos para compartir ideas acerca de cómo aprovechar mejor la información al alcance de nuestras empresas para innovar. Posteriormente realizamos un taller de Juegos de Innovación donde los participantes colaboraron para identificar y priorizar las capacidades que debería satisfacer una solución ideal de Big Data. Además de que el juego fue bastante ameno, cumplió exitosamente su misión facilitando que tanto clientes como proveedores pudieran entender las necesidades y retos de cada uno en torno a la gestión de datos. Este día concluyó con una cena patrocinada por Pentaho, donde los asistentes pudieron realizar un valioso networking.

Buscando talento

Llegaron los artistas

Hackathon

Durante los días 20 y 21 de junio se llevaron a cabo las conferencias magistrales a cargo de expertos de la industria. Aquí algunos de los aspectos más relevantes: • Chris Richardson nos llevó a echar un vistazo al panorama actual de desarrollo de software así como al camino que todavía tenemos por recorrer para poder crear algo como HAL 9000, el sistema de inteligencia artificial de 2001 Odisea del espacio. • Pamela Fox compartió su análisis sobre la oferta existente de frameworks para desarrollo de aplicaciones móviles cross-platform. • Javier Solís, gerente de nuevos productos y servicios en Infotec, ejemplificó el tipo de escenarios que nos abre la web semántica y mostró como la herramienta de software libre SemanticWebBuilder sustenta estas capacidades. • Alejandro Talavera, Gerente de Desarrollo de Software en Sferea, nos habló sobre las características que debe cumplir una aplicación móvil moderna para ser exitosa. • Aunque Scott Ambler tuvo un problema de último momento que no le permitió acompañarnos, en su lugar estuvo Dave Tropeano, quien compartió recomendaciones y resultados para implementar métodos ágiles en contextos empresariales de gran escala. • En su conferencia, “La Era del Zetabyte”, Luis Daniel Soto dejó boquiabiertos a los asistentes con demostraciones en vivo en las 07

La feria de reclutamiento “Buscando Talento” ya se ha convertido en una actividad importante dentro de SG Conferencia y Expo. Este año tuvimos a 26 empresas que se hicieron presentes para conocer y entrevistar candidatos. Más de 300 estudiantes y recién egresados de carreras de TI asistieron específicamente a esta actividad, donde además de entregar currículums y entrevistarse pudieron escuchar algunas pláticas con tips para maximizar su desarrollo profesional.

La música también es arte

Para el convivio nocturno, los asistentes afinaron sus gargantas entonando divertidas canciones en una noche de Karaoke. Por respeto a los participantes no daremos detalles; solo podemos decir que confirmamos una vez más que esa noción de que los profesionistas de software somos tímidos, está muy lejos de la realidad.

Para completar las actividades de SGCE 2012 se organizó un hackathon el 23 de junio en las instalaciones de la Universidad Centro. Desarrolladores, diseñadores y programadores se reunieron para aprender y trabajar en diferentes proyectos. Los asistentes pudieron participar en 3 categorías y obtener diferentes premios. Los ganadores por categoría fueron: Santiago Zavala (Viral Challenge), Elías Garrido (ArtHack), Juan Carlos Landeros (BlackBerry). Agradecemos a la Universidad Centro por su apoyo para hacer esto posible.

Nos vemos en 2013

Con eso concluimos nuestra reseña de SGCE 2012. Si tuviste oportunidad de participar, esperamos que le hayas sacado el máximo provecho. Y si te quedaste con las ganas, te podemos adelantar que ya estamos planeando la próxima edición para junio del 2013 en la Ciudad de México. Te mantendremos al tanto. Agradecemos a todas empresas que patrocinaron SG Conference + Expo 2012: Infotec, IBM, Research in Motion, Microsoft, VMware, Oracle, Linko, Mexico FIRST, Global Lynx, Qualtop, Ultrasist, VinkOS, Pentaho, Experis IT, ATL, KMMX, e-Quallity, Nearsoft, Adelantus, CloudSource IT, Excelerate Systems y Kernel Consulting. Sin ustedes no sería posible hacer este evento que beneficia de tantas maneras a nuestra comunidad e industria.

Software Guru

Día de líderes

que fácilmente extrajo valiosa información de fuentes de datos grandes y diversas (léase big data).

www.sg.com.mx |

E

l pasado 19, 20 y 21 de Junio 2012 se llevó a cabo en la Ciudad de México la edición 2012 de SG Conference + Expo. A lo largo de 3 días de congreso, más de 500 profesionistas de TI se dieron cita en el Centro de Convenciones “Los Candiles Polanco” con el objetivo de conocer el estado del arte en desarrollo de software. Tuvimos un gran programa compuesto por 5 conferencias magistrales y 37 conferencias simultáneas, donde los asistentes conocieron sobre las tecnologías más novedosas y las prácticas más efectivas para desarrollar software. Para fomentar el reconocimiento de que crear software es un proceso creativo que está relacionado con talento, habilidad y experiencia, titulamos esta edición de SGCE como “Software, el décimo arte”. Fue así que la producción y decoración del evento giró alrededor del software como arte.


.COLUMNA Mejora Continua

››“La innovación es un deporte de equipo.”

Innovación de Sistemas Ú

ltimamente me he enfocado en entender y establecer estrategias de innovación. He estado investigando sobre qué implica implementar un modelo de innovación en PyMEs de servicios de software. El tema no es sencillo, existe mucha confusión desde el significado de la palabra innovación hasta la categorización y el modelo que deben seguir las empresas para hacer sustentable la innovación continua. Comparto aquí algunos hallazgos y reflexiones.

Definición de innovación

Entre el sinnúmero de definiciones de innovación, mi favorita es la siguiente: Innovación es la creación de nuevos, más eficientes y/o mejores productos, procesos, servicios, tecnologías o ideas que estén disponibles al mercado, gobierno o sociedad. Esta definición trae algunos puntos importantes a considerar, el que más me llama la atención es que no es innovación hasta que se prueba con clientes. Esto quiere decir que aplicar nuevas ideas a mi trabajo o departamento solo se considera como innovación hasta que estas sean aplicadas para resolver una necesidad por la que un cliente esté dispuesto a pagar. Hay un segundo cuestionamiento que plantea la definición: si yo diseño una forma más precisa de estimar con la cual puedo asegurar una mayor exactitud en mis tiempos de entrega y el mercado está dispuesto a pagar por esto, entonces estoy innovando. Pero este tipo de innovaciones palidecen al compararlas con logros de compañías como Google o Apple, que cambian al mundo completamente con productos nunca antes imaginados. Esto nos lleva al siguiente punto de este artículo, los tipos de innovación.

Innovación disruptiva vs innovación de sustento

Luis R. Cuellar es director de calidad a nivel mundial de Softtek. Es reconocido por la ASQ como Certified Quality Manager, Certified Software Engineer y Six Sigma Black Belt. @lcuellar

08

Uno de los más famosos investigadores de innovación es Clayton M. Christensen. Él propone clasificar la innovación en dos tipos: disruptiva y de sustento. La innovación disruptiva es aquella que crea un nuevo mercado o red de valor, el cual eventualmente irrumpe en un mercado existente. Este tipo de innovación normalmente inicia con el diseño de una solución para un tipo o grupo diferente de consumidores al que estamos acostumbrados y después reduce el costo o da un nuevo valor al mercado actual. En contraste, la innovación de sustento no crea nuevos mercados o redes de valor sino que desarrolla y mejora los actuales, permitiendo que el negocio compita contra las mejoras de sustento de su competencia. Existen algunos modelos populares para empujar este tipo de innovación, tales como Seis Sigma o Lean. Aunque es cierto que este tipo de innovación no genera los modelos de valor y ganancias tran grandes como la disruptiva, esta innovación normalmente es la que mantiene viva a una organización y la habilita para poder generar innovaciones disruptivas.

El proceso de innovación

No existe una receta sencilla para generar innovación sistémica en nuestra organización. Todos los días surgen nuevos modelos de innovación y realmente este espacio no es suficiente para hablar de todos ellos. Pero si me permiten, puedo darles algunas ideas de cómo enfocar su estrategia: 1) Para innovar debemos de enfocarnos en nuestros clientes presentes y futuros. El modelo tradicional de innovación se basa en una gran idea de producto o servicio que decidimos lanzar al mercado. Los nuevos procesos de innovación se basan en la eficiencia, identificando los tipos de clientes que tienes y que quieres tener para encontrar sus necesidades y de ahí buscar soluciones innovadoras que resuelvan sus problemas. 2) Utiliza un modelo en base a tus posibilidades. Por muy atractivo que parezca seguir la política de Google de que todos sus ingenieros tengan un día libre a la semana para dedicarlo a proyectos de innovación, en la práctica este es un lujo que la mayoría de las empresas no pueden darse. Lo que recomiendo es conocer distintos modelos de innovación y escoger o diseñar uno que se ajuste a las necesidades y posibilidades de tu empresa. 3) Enfócate a lo que sabes hacer mejor. La innovación es mucho más sencilla cuando se tiene un fuerte enfoque que nos da liderazgo en algún campo. Si somos una empresa de servicios de software, enfoquémonos en buscar innovaciones alrededor de este servicio, y no en desarrollar una oferta nueva de productos o servicios que no aproveche nuestras fortalezas y peor aún, nos distraiga. Hace algunos años 3M destacó por su modelo de innovación en donde hacían negocio con una gran cantidad de productos distintos, uno de los más famosos: los Post-Its. Pero aunque sus innovaciones parecían totalmente diferentes, en realidad todas eran soluciones alrededor de su campo de especialidad, los compuestos químicos. 4) Escucha a las personas que trabajan contigo. A veces parece ser que innovar es buscar a alguien con una gran idea dentro de mi compañía y comercializarla. La realidad es que la innovación, sobre todo disruptiva, es un deporte de equipo, involucra a mucha gente con diferentes roles, por lo que un buen principio para la innovación es fomentar una cultura del diálogo en la organización. Así que sin más por el momento, hagamos cosas nuevas, sorprendamos al mundo con nuestra innovación y apliquemos en forma productiva el famoso ingenio mexicano, para crear nuevos productos, nuevos servicios y nuevos mercados.

››Por Luis Cuellar


www.sg.com.mx |

Software Guru


.herramientas y tecnologías Lo Que Viene

Visual Studio 2012 Soporte para las nuevas tecnologías

1

Como complemento al lanzamiento de Windows 8 y Windows Server 2012, Microsoft lanzará en septiembre las nuevas versiones de sus herramientas de desarrollo: Visual Studio 2012, Team Foundation Server y .NET 4.5. Con Visual Studio 2012, los desarrolladores podrán crear aplicaciones que aprovechen las más recientes tecnologías introducidas por Microsoft. La herramienta estará disponible en diferentes ediciones: Professional, Premium, Test Professional y Ultimate; adicionalmente está la edición Express que es gratuita. Por su parte, .NET 4.5 incluye entre otras cosas la versión 3.0 del lenguaje de programación funcional F#. Se espera que las características y facilidades incorporadas en F# 3.0 contribuyan a que éste deje de ser un lenguaje de nicho y logre acaparar la atención del grueso de los desarrolladores de software.

2

Micro Focus lanzó Borland Silk Test 13.0, la más reciente versión de su suite de automatización de testing. Silk Test 13.0 amplía sus capacidades de testing de aplicaciones web al añadir soporte para Google Chrome y mejorar el soporte para Firefox e Internet Explorer. Comparadas con las anteriores versiones, las mejoras del Web testing en Silk Test 13.0 reducen significativamente el esfuerzo del mantenimiento de pruebas, al facilitar que un mismo script tenga el mismo comportamiento en todos los navegadores. Otra de las mejoras es el reconocimiento de textos dentro de controles, así como nuevas capacidades para la depuración (debugging) de scripts.

JQuery 1.8

Sigue mejorando

Silk Test 13

Automatización de pruebas web

3

Conforme escribimos estas líneas, el equipo de JQuery está por liberar la versión 1.8 de esta librería. Esta versión incorpora un nuevo sistema de ensamble (build system) basado en grunt que permite que puedas ensamblar versiones personalizadas de jQuery que solamente incluyan los módulos que requieres, reduciendo así el tamaño del archivo que hay que cargar. Otra mejora incorporada en esta versión es el prefijo automático de navegador. Esta capacidad permite hacer referencia a propiedades CSS utilizando su nombre genérico, es decir sin tener que agregar el prefijo correspondiente al navegador en cuestión. Así que afortunadamente quedarán atrás los días de tener que estar checando en qué navegador está utilizando el usuario y agregar prefijos como “webkit” o “mozilla” a las propiedades.

4

De acuerdo con sus creadores, Immutant busca ser para Clojure lo que TorqueBox es para Ruby: un servidor de aplicaciones de grado empresarial. Immutant brinda una plataforma integrada que está basada en JBoss Application Server 7 y la cual provee soporte para aspectos como gestores de anillos, mensajería asíncrona, tareas calendarizadas, transacciones XA, clustering, demonios y más. La instalación y gestión se realiza por medio de un plugin de Leiningen, lo cual la hace bastante sencilla. Immutant apenas se encuentra en su versión 0.2 y está disponible bajo licencia LGPL.

10

Immutant

Servidor de aplicaciones Clojure


.COLUMNA

Tendencias en Software

Tecnología de Información Moderna

Infraestructura moderna

Hace 5 años, cuando Amazon comenzó a ofrecer servicios de cómputo en la nube con su Elastic Compute Cloud (EC2), escribí un artículo al respecto [1] analizando las implicaciones a de esta nueva arquitectura multicore, multidispositivo y de alto desempeño. Ese “pequeño gran cambio” está produciendo una reinvención total de las tecnologías de información. Esta transformación no ha terminado, examinemos tan sólo la “red” en la nube: • Virtualización de red. En un mundo de múltiples inquilinos, cada uno debe pensar que la red es propia. • Seguridad. Debe existir aislamiento entre nodos diversos y entre inquilinos de la red. • Desempeño. Debe haber garantías que den la ilusión de una red propia. • Conectividad. Será indistinto comunicarse con un centro de datos existente u otras redes. Desde luego hay retos en la adopción del nuevo modelo. Algunos más recientes relacionados a seguridad son: ataques de negación de servicio, pérdida de información confidencial, administración de riesgo, fallas en la nube, nubes personales de los empleados, facilidad de acceso a los recursos. Cada nube tiene un progreso distinto en resolver estos retos.

Gran volumen de datos

Es un hecho que nuestra habilidad para crear información (personal, social y empresarial) ha excedido a nuestra capacidad de administrarla. Esto provoca que las premisas utilizadas en el nacimiento de la base de datos relacional hace 30 años están cambiando. Por ejemplo, tradicionalmente las bases de datos se han diseñado para escalar verticalmente (scale up), es decir agregando recursos a un mismo nodo de cómputo. Pero para soportar las nuevas demandas, especialmente en el contexto de Big Data, necesitamos escalar horizontalmente en nodos de cómputo paralelos. La virtualización ha logrado grandes avances en los últimos años. Por ejemplo, Microsoft recientemente demostró en su Partner Conference la capacidad con Windows Server 2012 de realizar 1 millón de operaciones por segundo en una sola máquina virtual. Más del 98% de las bases de datos actualmente en operación podrían operar en la nube privada. Escala de nube. El diseño actual de base de datos y del centro de datos hace difícil escalar a un poco más de cientos de nodos. Hadoop ha logrado 11

››“Viviremos una gran transformación en la nueva plataforma de datos.”

escalar a miles de servidores pero con un conjunto distinto de atributos y con limitantes de desempeño, por lo que varias empresas privadas están reemplazando componentes de código abierto por componentes propietarios. Hadoop ofrece almacenamiento redundante tipo SAN a un muy bajo costo pero inapropiado para ambientes transaccionales. Los precursores de Hadoop lo han reemplazado sin ser una solución de uso general. El uso de federaciones en Windows Azure SQL database permite escalabilidad casi lineal en decenas de nodos y con funcionalidad muy similar a la relacional. Aún no existe ningún ambiente totalmente automatizado, de uso general que escale horizontalmente a miles de nodos.

Aplicaciones modernas

Las aplicaciones de software modernas deben ser limpias, ligeras, veloces, abiertas, vivas o con movimiento y auténticamente digitales. Aquí los dos ámbitos de esta transformación: • Evolutivas. Las aplicaciones deben evolucionar para soportar los requerimientos modernos: manejar grandes cantidades de datos, ser diseñadas para tabletas o teléfonos móviles (nótese que no uso un “y”), utilizar las mejores prácticas de privacidad y seguridad, actualizarse de forma frecuente, rápida y sencilla. • Revolucionarias. Las aplicaciones deben ser “sociales” y “personales” para adaptarse al individuo y a su ambiente, deben operar en la oficina y fuera de ella, y sobre todo deben ser más inteligentes. Las empresas de software están creando un segundo músculo dedicado al desarrollo de aplicaciones modernas inteligentes, en adición al desarrollo tradicional de aplicaciones de muy alta calidad, que va a permanecer. Al menos al corto plazo, las aplicaciones modernas serán complemento de las tradicionales. Tendremos que ajustarnos a operar en dos velocidades. La tecnología actual se encuentra bajo presión competitiva en casi cualquier área que exploremos, en particular el hardware de alto costo o altamente especializado. La “mercantilización” de la tecnología de información no se detendrá, lo que continuará favoreciendo la aparición de nuevas tecnologías. Ante muchas opciones, los vencedores serán las empresas que puedan entrar a un pensamiento sistémico de mayor profundidad.

››Por Luis Daniel Soto Referencias [1] L. D. Soto. “La nueva arquitectura se consolida”. Octubre 2007. http://swgu.ru/sg37r4 [2] “Google Remakes Online Empire With Colossus”. Wired, 2012-07-10. http://swgu.ru/sg37r5

Luis Daniel Soto Maldonado (@ luisdans) labora en la división de negocio de servidores y herramientas de Microsoft Corp.

Software Guru

Cuál es el verdadero rol del cómputo en la nube en la empresa? • Una táctica operativa para apalancar economías de escala y mantener el software actualizado. • Ingeniería financiera para transmutar costos de capital por operativos. • El aislamiento del modelo de negocio sobre demanda difícil de pronosticar. • Una forma de que el departamento de TI se concentre en un 20% de aplicaciones que crea el 80% de diferenciación del negocio. • Los efectos de red que sugieren nuevos modelos de negocio y cadenas de valor, difícil de replicar en el centro de datos actual. • Un cambio de paradigma en la arquitectura computacional y procesamiento en tiempo real para mejorar el valor de negocio y mitigar riesgos de su administración. • Todos los anteriores.

www.sg.com.mx |

¿


.EMPRESAS Emprendiendo

Startup Weekend, 54 horas de ››Por Celeste North

adrenalina, desarrollo y creatividad

F

recuentemente escuchamos historias de desarrolladores de software que deciden lanzarse a hacer sus propias startups con la motivación de llevar una idea hacia un vasto número de usuarios. Hemos leído historias como las de Steve Jobs, Mark Zuckerberg y otros que se encerraron en un garaje (o dormitorio) y generaron algunas de las grandes empresas de hoy. Si en algún momento te has encontrado considerando la idea de seguir ese camino, si tienes una idea que quieres convertir en un negocio y no sabes por dónde empezar, seguramente asistir a Startup Weekend pueda ser una buena forma de empezar. Fundado en Seattle, Washington en 2007, Startup Weekend es una red global de emprendedores que busca inspirar y educar sobre cultura emprendedora. Actualmente se realizan eventos de Startup Weekend en más de 95 países.

El formato

El evento inicia los viernes por la tarde, regularmente alrededor de las 6pm. Después de una bienvenida e información por parte de los organizadores y facilitadores, los participantes proponen sus ideas ante toda la audiencia. Cada quien tiene un minuto para explicar qué idea quiere llevar a cabo durante el fin de semana y qué tipo de personas busca para su equipo. Al terminar, todos los asistentes votan y eligen los proyectos a desarrollar. Si tu idea no es elegida, puedes unirte al proyecto que más interesante te haya parecido. A partir de ese momento y hasta el domingo, los equipos trabajan en avanzar el proyecto lo más posible; esto incluye el desarrollo técnico, el modelo de negocios y obtener tracción (usuarios activos). Durante todo el evento los equipos cuentan con una red de mentores con experiencia en distintos rubros, desde planeación estratégica hasta aspectos técnicos, de diseño y mercadotecnia. El domingo por la tarde se realizan las presentaciones de proyectos, donde todos los equipos presentan ante un grupo de jueces su producto o servicio. Esto no es algo del todo fácil, ya que deben mostrar los resultados de todas las horas de trabajo, incluyendo si lograron generar validación en el mercado en tan corto tiempo. Al final un equipo se nombra ganador y aunque hay algunos premios (varían de un evento a otro) lo importante es la experiencia de todos los asistentes, incluidas las nuevas relaciones que se generan en el evento. 12

SW en México

El primer evento en México se realizó a finales de 2010 en Chihuahua, pero fue en 2011 cuando explotó de manera acelerada. Ya se han realizado SW en 12 ciudades distintas de nuestro país y están proyectadas 8 ciudades más antes de que termine el 2012. México ha sido uno de los países donde Startup Weekend ha tenido mayor crecimiento. Esto ha servido para darnos cuenta de que México cuenta con un gran número de ciudades con masa crítica de estudiantes, profesionistas y emprendedores. De hecho, después de Estados Unidos, México es el país donde se realizan Startup Weekends en mayor número de ciudades. Debido a este crecimiento, la organización global de Startup Weekend decidió abrir una oficina regional en Ciudad de México. La única otra oficina regional hasta ahora, es la de Londres.

Por qué asistir

Startup Weekend convoca desarrolladores, diseñadores y personas de negocio, por considerarse las tres partes principales para llevar a cabo un negocio viable en Internet. Las personas de negocios se encargan que la idea tenga un factor “monetizable”, los desarrolladores que se puedan llevar a la realidad técnicamente y los diseñadores lo hacen usable y atractivo para los usuarios. Si tú realizas alguno de estos roles, este es un buen evento para ti. El valor más grande del evento es poder comprender el ciclo de emprender de una forma acelerada pero en un ambiente controlado. El aprendizaje que generas en tan poco tiempo puede ser clave para probar si estás listo para lanzarte a desarrollar tu propia empresa. Adicionalmente, conocerás a personas con intereses similares a los tuyos que pueden ser en el futuro tus cofundadores, amigos o compañeros de trabajo.

Organiza un SW

Startup Weekend existe gracias a la enorme red de personas que, de manera voluntaria, colaboran para que el evento suceda en sus ciudades. Si estás interesado en ser un organizador local, sólo tienes que hacer lo siguiente:


1. Participa en un Startup Weekend Al participar podrás entender de lleno cuál es el impacto que el evento puede llegar a tener en tu región, además de experimentar de primera mano cuál es la dinámica del evento y qué se puede llegar a lograr. La recomendación es que participes no sólo como observador sino como parte de un proyecto desde el inicio del evento. 2. Lee las reglas y requisitos para organizadores En general, Startup Weekend es muy abierto en la dinámica que se genera en el evento, pero hay una serie de lineamientos que debes seguir. Después de todo es un compendio de muchas horas de vuelo que han arrojado mejores prácticas.

“El papel de Startup Weekend es mostrar a los asistentes que no se requiere mucho para pasar de donde están ahorita, a estar emprendiendo de tiempo completo y motivarlos a avanzar en ese camino.” -Santiago Zavala, facilitador y General Partner de MexicanVC .BIO Celeste North (@celestenorth) es cofundadora y CEO de Nuflick, startup mexicano de distribución de cine bajo demanda en Internet. Adicionalmente es productora de Emprende.la y organizadora de Founder Friday en México.

www.sg.com.mx |

Para concluir, les comparto algunos comentarios de personas que han participado en Startup Weekend: “¿Alguna vez has observado algún problema —dentro o fuera de tu profesión— que te gustaría solucionar? Muchas veces los desarrolladores de software son los que más cercanos están a los problemas que sufren las empresas ... y tienen la capacidad para solucionarlos mejor que nadie.” -Eduardo Serrano, facilitador del Startup Weekend Distrito Federal.

Software Guru

3. Envía una solicitud En el sitio global de Startup Weekend encontrarás una forma para aplicar tu solicitud (http://startupweekend.org/organizer) donde la intención es saber más de ti y por qué eres la persona indicada para organizarlo en tu ciudad.


pRINCIPAL OUTSOURCING

pg014

s a d

a u c

s e t

e d A

utsourcing O o d n

s a l

r a P

ie n U

El Outsourcing de Tecnologías de Información es una historia con bastantes personajes pero cuya trama sigue siendo sumamente atractiva. El porcentaje de presupuesto que las empresas destinan al Outsourcing sigue creciendo año con año, así como también las exigencias hacia este servicio. ¿Para qué hacer outsourcing?, ¿cuáles son las ventajas y desventajas de hacerlo?, ¿hay algo más allá de la eficiencia de costos?, ¿cuáles son los principales retos?, ¿qué oportunidades tienen las empresas de nuestra región?, ¿cómo se hace outsourcing aplicando métodos ágiles?

En las siguientes páginas hemos reunido algunas experiencias, perspectivas y opiniones que buscan responder estas y otras preguntas. El outsourcing forma parte indispensable de nuestra industria y profesión. Así que si formamos parte de una organización que contrata servicios de outsourcing, no nos queda mas que conocer prácticas para gestionarlo de la mejor manera posible. Y si somos proveedores de servicios de outsourcing, lo que nos queda es desarrollar y resaltar nuestros diferenciadores, de manera que seamos reconocidos como piezas distintivas e idóneas para resolver las necesidades de nuestros clientes.


pRINCIPAL OUTSOURCING

El Nuevo Outsourcing

pg015

Hacia la innovacion colaborativa ›› Por Leslie P. Willcocks

lo largo de poco más de 20 años, el mercado de outsourcing de TI y BPO (business process outsourcing) ha tenido un crecimiento continuo en todo el mundo y actualmente su tamaño ya excede los $420 billones de dólares anuales a nivel global. Durante este tiempo, en la mayoría de los casos el outsourcing ha logrado generar beneficios en términos de costo y nivel de servicio. Sin embargo, aquellos casos en los que el outsourcing impulsa la innovación y el desarrollo de ventaja estratégica todavía son muy raros. En un reporte recientemente elaborado por Cutter Consortium recopilamos casos de 26 organizaciones que destacan por su capacidad de lograr, por medio del outsourcing, innovaciones en sus funciones de TI, procesos de negocio y desarrollo de nuevos productos y servicios estratégicos. Uno de los rasgos comunes que encontramos entre todas estas organizaciones es que migraron de una relación tradicional de outsourcing entre cliente y proveedor hacia una relación de innovación colaborativa. Al hablar de colaboración me refiero a un acuerdo cooperativo en el que dos o más partes trabajan de forma conjunta para lograr una meta compartida. Este tipo de relación muestra objetivos y comportamientos a largo plazo que se distinguen por una alta confianza, flexibilidad, reciprocidad, riesgo compartido y alta inversión de recursos y tiempo por ambas partes.

Colaboración e innovación van de la mano

En las empresas existen tres tipos de innovación: 1. Innovación operativa se refiere a cambios tecnológicos y de personal que no impactan los procesos de negocio específicos a la empresa o industria. 2. Innovación en procesos de negocio es aquella que sí cambia la forma en que opera una empresa. 3. Innovación estratégica es la que mejora significativamente la oferta de productos y servicios de una empresa, o la habilita para entrar a nuevos mercados. En una relación de outsourcing, la profundidad de la colaboración es la que dicta el tipo de innovación. El tipo y grado de innovación que se puede lograr mediante una relación de outsourcing depende de la profundidad de la colaboración entre los involucrados. Solamente mediante una colaboración profunda son factibles la innovación en procesos de negocio y la innovación estratégica. Sin ésta, a lo más que se aspira es a lograr eficiencia de costos.

El caso de la nueva terminal de Heathrow

Como ya comenté, lograr innovación colaborativa mediante outsourcing requiere que trabajemos de forma distinta al esquema tradicional de outsourcing. Un caso de estudio muy interesante que refleja un nuevo acercamiento hacia el outsourcing es el de la construcción de la Terminal 5 en el Aeropuerto Internacional de Heathrow en Londres. Aunque este fue un proyecto principalmente de construcción, varias de las premisas establecidas pueden aplicarse a otro tipo de proyectos. Aquí algunas de las características del contrato para este proyecto:

Figura 1. Estrategia para el contrato de la Terminal 5.

Hallazgos

A continuación compartimos algunos de los hallazgos más importantes del análisis de 26 organizaciones destacadas en su gestión de outsourcing. Sin un enfoque en la innovación, el outsourcing tan solo aspira a lograr ahorros al corto plazo. Enfocarse en la innovación en la operación de TI permite lograr ventajas a largo plazo. La innovación colaborativa requiere que cliente y proveedor encuentren maneras de compartir y mitigar los riesgos de manera conjunta, no simplemente pasándolos a su contraparte. El esquema de contratación debe fomentar la innovación y colaboración para lograr metas conjuntas de negocio. Los equipos de trabajo más efectivos son heterogéneos y abarcan distintas organizaciones. En este contexto, el trabajo en equipo requiere la capacidad de colaboración no sólo entre cliente y proveedor, sino también entre múltiples proveedores.

Conclusión

La gran mayoría de las organizaciones analizadas para este reporte, a pesar de tener décadas contratando outsourcing, apenas en los últimos 4 años lograron implementar esquemas que resulten en mayor innovación. La innovación colaborativa por medio de outsourcing todavía es un fenómeno reciente y con mucho camino por recorrer. BIO:: Leslie P. Willcocks es profesor de Tecnología y Globalización en la London School of Economics. Es considerado una autoridad internacional en el campo de outsourcing.

Software Guru

A

• La mayor parte del riesgo recaía en el cliente (British Airports Authority, BAA), no en los proveedores. Lo que BAA buscaba no era delegar el riesgo, sino tener proveedores proactivos que continuamente buscaran oportunidades de mejora. • Los proveedores tenían un margen de utilidad garantizado de 10% si cumplían de acuerdo a “niveles estándar”. • Los incentivos extra para que los proveedores obtuvieran mayores ganancias dependían del logro de las metas conjuntas de negocio. Este tipo de esquema está diseñado para que los proveedores no se distraigan tratando de mitigar riesgos (manage out risks), y puedan dedicarse a buscar oportunidades de mejora de alto impacto (manage in opportunity). La figura 1 ilustra dicha estrategia.

www.sg.com.mx |

[Nota del editor: Este artículo presenta un resumen del reporte “The New Outsourcing: Toward Collaborative Innovation” publicado por Cutter Consortium en julio de 2011. Ha sido traducido y editado por Software Guru con el permiso de Cutter Consortium.]


O utsourcing v enta

››Por A nibal G onda

jas

:

y DESVENTAJAS

“Las ventajas de tercerizar no solo se dan en términos de costo.”


pRINCIPAL OUTSOURCING

Ventajas

Para muchos directivos, utilizar un modelo de outsourcing es una forma de reducir los costos operativos de la empresa, ya que permite reducir su plantilla de empleados y así disminuir los costos fijos por salarios y cargas sociales, permitiendo reinvertir en la empresa el ahorro generado. Por otra parte, al contratar a un tercero para proveer los servicios, se pueden lograr algunas condiciones y beneficios que no serían viables haciendo el trabajo de forma interna. El primer y más claro beneficio del outsourcing es una reducción sustancial de los costos fijos. No obstante, las ventajas de tercerizar no sólo se dan en términos de costo, sino que también se puede obtener mejoras en el servicio. Por ejemplo, un modelo de outsourcing facilita implementar un modelo de servicios de 24x7x365 (las 24 horas de todos los días el año). En cuanto a escalabilidad, al estar fuera de la empresa resultará más sencillo ampliar el servicio para obtener más recursos –ya que no son propios, sino de terceros– y esto dará una gran flexibilidad al momento de crecer. Este mismo modelo brinda un seguro tecnológico, pues los expertos en las nuevas tecnologías no son un problema nuestro, sino de la empresa que nos presta el servicio, por lo cual podemos solicitarlos cuando los necesite. De esta forma, se obtiene una tranquilidad operativa aparentemente buena.

Desventajas

A pesar de los beneficios que brinda, no todo es oro con el outsourcing. Veamos primero la razón más visible: la reducción de costos. Para lograr este beneficio, debemos tener claro dónde se va a realizar el trabajo que tercerizamos. Para reducir costos, lo mejor es que el trabajo se haga en países que nos ofrecen mayores ventajas en este sentido, donde haya disponibilidad de ingenieros con buena formación técnica y bajos salarios. En este sentido, los primeros diez lugares se reparten entre: India, Indonesia, Estonia, Singapur, China, Bulgaria, Filipinas, Tailandia, Lituania y Malasia. Posteriormente tenemos a países de América Latina tales como Chile, México y Costa Rica. Si prestamos atención, entre los diez primeros países vamos a ver que tenemos grandes diferencias culturales, de lenguaje y, por si fuera poco, ¡horarias! Esto nos hace pensar que tal vez no es la mejor alternativa, ya que en un esquema de ese estilo, nuestro interlocutor

en el mejor de los casos tendrá conocimientos de inglés, ya que el resto de las otras lenguas no son muy comunes por estas latitudes. La alternativa a esto es buscar en países de similares características a la nuestra; para el caso de México, lo tenemos como uno de los veinte principales proveedores de esta clase de servicios. El punto es que la ecuación costo-beneficio ya no funciona de la misma manera, pues un ingeniero mexicano no gana el mismo salario que un ingeniero en Manila, Jakarta o Nueva Delhi. Por lo tanto, si bien el elemento costo puede seguir estando a favor, ya no es tan alto el beneficio como se presentaba en un inicio. En cuanto a las mejoras en el servicio, debemos destacar que se puede obtener un buen servicio, en particular en este momento de cambios vertiginosos a nivel tecnológico que comentábamos al inicio. No resulta tan sencillo seguir el tren de la tecnología internamente, y al hacerlo mediante un tercero ya deja de ser nuestro problema. Sin dudas esto es cierto, pero sólo detrás de esta verdad podemos encontrar un par de verdades ocultas, difíciles de percibir en primera instancia. Por ejemplo: ¿Cuál es realmente el rol de nuestro departamento de TI dentro de nuestra empresa? ¿Cómo impacta en la estrategia de la empresa el departamento de TI? El motivo para realizar este planteamiento es conocer dónde yace el conocimiento de nuestro negocio. Cuando nuestro equipo de TI, dirigido por nuestro CIO, es el responsable de los avances, podemos avanzar en tecnología, teniendo control y dominio de la misma. Cuando “tercerizamos”, en cambio, aunque tengamos a nuestro CIO en la empresa, él ya no tiene control: simplemente es quien solicita, recibe y controla los servicios, pero el conocimiento de todo lo que se realiza para nuestra empresa ya no está en nosotros, sino en manos de un tercero. Un tercero que seguramente nos brinda un buen servicio, pero de quién sin darnos cuenta pasamos a tener una dependencia directa, dado que volver a incorporar todo ese conocimiento a la empresa tiene un alto costo, así como cambiar de proveedor. De esta manera, a nivel empresarial ya no tendríamos una preocupación, sino dos. Así pues, debemos tener claro cómo está nuestra empresa y cuál es la situación de nuestro proveedor, ya que con tal dependencia su situación puede afectar a nuestro negocio.

Conclusiones

En resumen, la “tercerización” es una alternativa que ya tiene unos años que se ha venido implementando en las grandes potencias económicas y cuyos servicios se ofrecen desde países de bajos salarios, pero que están mucho más estructurados que los países latinoamericanos. Teniendo en cuenta que hoy más que nunca la tecnología es un aliado que nos lleva a lugares a los cuales antes era imposible e inviable llegar – como al bolsillo de nuestros clientes con los Smart Devices– adoptar los avances tecnológicos puede llevarnos a mejorar nuestros procesos, disminuir costos y expandir los negocios haciendo las cosas de manera diferente. Entonces, ¿cuál es el camino a tomar, con avances tecnológicos que no están en nuestras manos y con empresas cada vez más globales? La respuesta será diferente para cada empresa. Sin embargo, en cada caso se debe poner en una balanza por un lado las ventajas que puede traer el outsourcing y por otro los beneficios de tener una autonomía completa sobre nuestro departamento informático. El lado que más pese determinará nuestra mejor opción. BIO:: Anibal Gonda es Director de Desarrollo de Negocios de GeneXus Internacional anibal@genexus.com

www.sg.com.mx |

E

l tema del Outsourcing en TI es tan interesante como vasto. Lo principal a tener en cuenta en este aspecto es cuál es la importancia del departamento de TI en el negocio de la empresa y cuáles son los verdaderos objetivos ya que uno de los obstáculos más grandes para el despliegue exitoso de una organización es el cúmulo de funciones ajenas a ese verdadero objetivo. En un mundo complejo como en el que vivimos, con una economía global, donde los cambios en el plano tecnológico son cada vez más acelerados, y la adopción de nuevas tecnologías está dominada por el usuario final, los empresarios tienen el reto de enfrentar todo esto sin perder el foco en su negocio. Por este motivo, así como por los altos costos fijos y las cargas sociales, es que cobra fuerza la idea del outsourcing como una herramienta de gestión a través de la cual una empresa puede optar por concentrarse únicamente en su “core business” y no tomar parte en procesos importantes pero no inherentes a sus actividades distintivas. En función del tamaño y del rubro de la empresa, el departamento de TI puede volverse ya sea más o menos relevante. Existen empresas que basan parte de su estrategia en los servicios de TI, en tanto para otras aquéllos son un simple servicio.

Software Guru

pg017


pRINCIPAL OUTSOURCING

pg018

Retos y Oportunidades del Outsourcing en Mexico ›› Por Gustavo Parés

E

l mundo está en un permanente cambio, por lo tanto existen coyunturalmente excelentes oportunidades de negocio que si se aprovechan traen prosperidad, desarrollo económico y social a los países que participan activamente en estos nuevos negocios. Por lo anterior, es importante analizar permanentemente el contexto internacional para identificar dichas oportunidades. Una vez identificadas es necesario que trabajen de la mano gobierno e iniciativa privada para implementar planes de desarrollo sectorial que permitan maximizar estos beneficios. Dado el nivel de globalización, nuestra relación económica con EUA y las tendencias actuales, nadie puede negar que el desarrollo de nuestra industria de servicios de Tecnología de Información sea algo prioritario para el país. El presente artículo pretende mostrar información relevante de esta industria, incluyendo un análisis de oportunidades y amenazas, con el objetivo de ayudar a trazar un rumbo para mejorar la situación.

puerta importante para México y América Latina. Estas empresas buscan reducir sus costos e innovar al tercerizar algunos de sus servicios en países diferentes a la India. El gobierno mexicano está tratando de aplicar los mismos incentivos en el área de servicios que aplicó con el modelo de maquiladora, la cual permitió el ingreso de gran inversión al país en años anteriores. La industria de tercerización de servicios de TI se ha fortalecido, al grado que ya hay algunas empresas mexicanas que ofrecen sus servicios en varios países. Asímismo, nuestro país ha podido fomentar la concentración e implementación de centros de desarrollo de software para el sector financiero para clientes globales como HSBC, Citi, Santander y BBVA entre otros, en los cuales se da servicio a sus filiales en varias partes del mundo.

La oportunidad

Durante las últimas 3 décadas esta industria ha tenido una evolución en la que se ha ido pasando del outsourcing en los 80’s (donde se contrataba una empresa externa para realizar ciertas tareas), al offshoring en los 90’s (donde estas mismas tareas eran realizadas por una empresa externa que se ubicaba en un país distinto), al Business Process Outsourcing en el año 2000 (donde no sólo las tareas sino los procesos de negocio eran subcontratados por proveedores de servicios), al Nearshore / Smartsourcing en 2010 (donde los procesos de negocio son realizados en un país vecino que por lo general comparte el mismo huso horario y afinidades culturales). La figura 1 ilustra esta evolución.

Existe una creciente industria global de tercerización de servicios de TI, que para 2012 tendrá un valor global de $450 mil millones de dólares. Si las tendencias de crecimiento de la industria en México y América Latina se mantienen sin cambios importantes para los próximos 2 años, nuestra región solamente podrá captar una participación de alrededor del 4% del total, dejando un 96% de este gran mercado a países como EUA, India y China por mencionar algunos solamente. De acuerdo con cifras proporcionadas por Select, actualmente el valor del mercado interno de TI en México asciende a $13,350 millones de dólares, de los cuales solamente el 26% representa el rubro de servicios profesionales de TI e incluye información tanto del mercado interno como del externo. Tomando como referencia que un máximo del 20% de estos servicios se exporta, podemos estimar que la exportación de servicios de TI en México representa poco menos de 700 millones de dólares. Aunque esta cifra puede parecer alta, si la comparamos con esos 450 mil millones de dólares del mercado global, nos damos cuenta que nuestro país satisface menos del 0.2% del mercado global potencial. A pesar de las diferentes crisis económicas mundiales de los últimos 15 años, existen beneficios y tendencias positivas en la tercerización de servicios. McKinsey/NASSCOM menciona que la tercerización de tecnologías de información y de procesos de negocio (BPO) han alcanzado una novena parte y una doceava parte, respectivamente, de su mercado potencial. La exportación de servicios de tecnología de información de India pasó de decenas de millones de dólares en 1990 a más de $31 mil millones de dólares en 2007. NASSCOM también menciona que el sector de tecnologías de información ha ayudado a crear 4 millones de trabajos adicionales en la última década. La crisis económica reciente ha orillado a grandes empresas en EUA y Canadá a tercerizar sus áreas de TI, con lo que se abre una

Evolución

El caso de México

Entre las ventajas que México puede explotar en esta industria están: • Cercanía con EUA y el mismo huso horario. • Afinidad cultural con EUA. • Tratado de libre comercio. • Buena infraestructura de telecomunicaciones • Facilidad para encontrar personal bilingüe • Buenas universidades con profesionistas de TI altamente capacitados. En los últimos años se ha hecho un gran énfasis en la importancia tanto económica como política que están cobrando los países BRIC (Brasil, Rusia, India y China). Es un hecho que estas economías han crecido significativamente, sin embargo es importante señalar que dos de estos países tienen cerca de 200 millones de habitantes y los otros dos tienen más de mil millones de ciudadanos. Es muy fácil llamar la atención cuando tienes poblaciones y territorios tan grandes. A pesar de no tener estas escalas, nuestro país es la única economía emergente no considerada en el BRIC que aparece en el listado de las 11 principales economías del mundo. La tabla 1 muestra este listado.


pRINCIPAL OUTSOURCING

pg019

Ahora que ya vimos que nuestro país tiene una de las más grandes economías del mundo, y tomando en cuenta que México tiene solamente el 10% de la población de China e India y la mitad que Brasil, nos permite sensibilizarnos ante el mérito que esto representa. El nivel de desarrollo económico en nuestro país, es en promedio mejor que el de varios de estos países dentro del BRIC. Ahora, si bien tenemos muchas oportunidades para crecer en los próximos años, también es importante entender el contexto actual, por lo que a continuación mostraré algunos datos importantes que le permitirán identificar la madurez, calidad y potencial de nuestra industria de TI actualmente resaltando comparativos internacionales en materia de TI y conocimiento. Analicemos los resultados de “The Global Information Technology Report,” el cual es desarrollado por el Foro Económico Mundial y permite clasificar a los 133 principales países del mundo en relación al desarrollo e impacto del uso de las TI en el desarrollo de la competitividad nacional. En la edición 2012 nuestro país ocupa la posición número 76, muy por debajo de países como India (69), Chile (39) y EUA (8).

Conclusión

Creo firmemente que tenemos una gran oportunidad de lograr que nuestra industria crezca a un ritmo de más de 35% anual, ya que tenemos muchos factores estructurales que nos dan una ventaja competitiva respecto a otros países. Sin embargo, si no logramos formar los recursos humanos con las competencias y actitudes necesarias, no importa que todos hablemos inglés y que estemos cerca de Los Ángeles, California, ya que si nuestros ingenieros, licenciados y técnicos que proveen el servicio no son capaces de abstraer los problemas de los clientes para entregar un resultado a tiempo, de nada servirá lo demás. Debemos crear centros de competencias donde el conocimiento genere riqueza y desarrollo para nuestro país. Cada vez más la economía digital requiere diferentes conocimientos y competencias, por lo que el reto de los países es formar, mantener y retener el talento necesario para generar innovación y calidad en los servicios que ofrece. Debido a que la industria de TI es muy abstracta y compleja, y la tecnología cambia permanentemente, la capacidad de un país para crear, diseminar y mantener el conocimiento será un facilitador para el desarrollo de la industria.

Referencias [1] CIA World Factbook. http://swgu.ru/sg37r1 [2] The Global Information Technology Report 2012. http://swgu.ru/sg37r2

BIO:: Gustavo Parés es CEO de Financetech Mexico Delivery, empresa dedicada al outsourcing de TI como estrategia para el desarrollo de América Latina. El profesor Parés ha trabajado en proyectos para la industria

País Ranking Puntuación Suecia 1 5.94 EUA 8 5.56 España 38 4.54 Chile 39 4.44 Uruguay 44 4.28 China 51 4.11 Brasil 65 3.92 India 69 3.89 Ucrania 75 3.85 México 76 3.82 Tabla 2. Ranking del Global Information Technology Report 2012 [3].

pública y privada como American Express, ING, Nestlé y L’Oreal. En el ámbito internacional ha participado y representado a América Latina en conferencias internacionales de TI para GITMA (Global Information Technology Association) y CGO (Center for Global Outsourcing) en Italia, Estados Unidos, México, Corea del Sur e India.

Software Guru

Tabla 1. Principales economías en el mundo. CIA World Factbook [2].

“América Latina captura tan solo un 4% del mercado global de outsourcing de TI.”

www.sg.com.mx |

# País PIB (trillones USD) 1. Estados Unidos 15.3 2. China 11.4 3. India 4.5 4. Japón 4.5 5. Alemania 3.1 6. Rusia 2.4 7. Brasil 2.3 8. Reino Unido 2.3 9. Francia 2.2 10. Italia 1.9 11. México 1.7


Gobernabilidad

en el Desarrollo de Software Offshore ›› Por Germán Domínguez

L

a industria del outsourcing ha aumentado considerablemente en los últimos años principalmente por la masificación del internet de banda ancha en diferentes países que hoy son potencia en esta industria, como la India, Filipinas y México. El aumento de opciones en outsourcing ha favorecido la diversificación de servicios, entre ellos el conocido como Offshore Software R&D, que se encarga de la ejecución de la etapa de construcción de aplicaciones en el ciclo de vida del desarrollo del software. [Nota del editor: Este tipo de centros de desarrollo de software remoto se conocen también como “fábricas de software”, aunque en los últimos años ese término ha caído en desuso, principalmente para alejarse de la percepción de que el software se manufactura de la misma forma que productos físicos repetibles.] Aunque se viene haciendo desarrollo de software offshore desde hace un par de décadas, y algunos países y empresas ya tienen prácticas bastante maduras en este sentido, en la mayoría de las empresas en nuestra región es una práctica relativamente nueva, por lo que existen muchas áreas de oportunidad que son importantes mencionar y resolver para poder incrementar nuestra ventaja competitiva como país —zonas horarias compatibles, cultura empresarial similar, entre otras— a comparación de nuestras contrapartes en Asia del este. Las áreas de oportunidad a las que nos enfocaremos en este artículo están principalmente relacionadas a los canales de comunicación y a un flujo de trabajo con más control en el intercambio de productos y artefactos de trabajo entre las organizaciones. De parte de los clientes, en muchos casos permea la sensación de pérdida de control del avance en las actividades que realizan los proveedores offshore. Otro problema común es que los com-

ponentes de software entregados, a pesar de cubrir los criterios de calidad establecidos, no proveen la funcionalidad que el cliente esperaba. Ante esto, existe una creciente demanda de apertura, de permitir mayor colaboración del cliente en el ciclo de construcción de las piezas de software. Permitir la agilidad, cambios constantes e identificar el avance y resolución de todas las tareas también es parte de estas demandas.

Los beneficios del uso de herramientas

Para enfrentar estos retos, dos mecanismos de gran ayuda son la adopción de metodologías de desarrollo ágiles y la utilización herramientas para automatizar tantos los procesos como las comunicaciones. Las herramientas para favorecer esta automatización y simplificación de las comunicaciones, así como el incremento de la gobernabilidad del proceso, son herramientas que deben de tener las siguientes funcionalidades y beneficios: Trazabilidad entre tareas. Más allá de poder tener listas de tareas, una herramienta debe permitir llevar el registro y monitoreo de cómo se relacionan las tareas entre sí, y cómo es que los requerimientos y tareas de alto nivel se descomponen hasta llegar a tareas atómicas. Estas tareas atómicas son aquellas unidades básicas de trabajo que pueden indicar esfuerzos de hasta horas de una sola persona o recurso, estas tareas también se les denomina Work Items (WI) o elementos de trabajo. Esta relación permitirá conocer a detalle el esfuerzo específico que se requiere para resolver un requerimiento, caso de uso, o historia con las actividades que ejecutan dicha tarea de alto nivel. De esta manera, es posible tener un estimado más acertado en la planeación de los tiempos de construcción necesarios para las diversas actividades.


pRINCIPAL OUTSOURCING

pg021

Capacidades de reportes basados en la información vaciada en los repositorios de la herramienta. Una vez que la información ha estado siendo alimentada hacia la herramienta, debe de ser posible extraer reportes del proyecto para que todos los involucrados —líderes de proyecto, codificadores, analistas, etcétera— tengan la misma visión del estatus del proyecto y este repositorio se vuelva la “verdad única” sobre la relación entre la factoría y el cliente. Interfaz web. Es necesaria una plataforma agnóstica, que permita que cualquier involucrado pueda acceder a la información relevante sin tener que instalar una aplicación cliente para visualizar la información. En el mercado existen algunas herramientas que contienen estas funcionalidades y que favorecen la agilidad en las comunicaciones entre estas organizaciones, entre ellas: IBM Rational Team Concert, Microsoft Team Foundation Server y Atlassian Jira, por mencionar las más conocidas.

Visiones unificadas

En mi experiencia, el aprovechamiento de éstos métodos y herramientas puede resumirse en algunas tareas, actividades y funcionalidades. Los detalles pueden variar dependiendo de qué herramienta se use y quien la proporciona (ya sea el cliente porque es un requisito para los proyectos que subcontrata o el proveedor porque la da como valor agregado). Dichas variaciones pueden ser mínimas, pero el concepto general se mantiene: Los Work Items (WI), junto con la documentación que describe dicha actividad y el código fuente relevante cuando exista, son registrados en la herramienta. En el lado del proveedor de desarrollo de software, el líder de proyecto asigna al codificador apropiado el WI, de acuerdo con la experiencia, disponibilidad y conocimiento de la funcionalidad específica. El cliente puede revisar quien es el (los) responsable(s) de dichos WI, para cuando está planeado la resolución de los mismos y cómo se van resolviendo o terminando cada uno de ellos. Esto permite al cliente tener algo de predictibilidad de que funcionalidades y piezas de código se irán entregando conforme el proyecto avance. Cuando las necesidades o requerimientos iniciales cambien por parte del cliente o existan defectos identificados o mejoras necesarias a los

WI iniciales, el cliente puede acceder directamente a ellos, y hacer las modificaciones pertinentes para mantener vigentes todas las funcionalidades del aplicativo contratado. La bitácora de los WI pendientes de terminar, está siempre disponible para todos. Esto permite tener elementos suficientes de negociación para definir cuáles son las funcionalidades importantes y necesarias a implementar de acuerdo con los tiempos destinados para finalizar el aplicativo. El código fuente reside en el repositorio de la herramienta y cada WI que se dé por terminado, contiene el código correspondiente a la resolución de dicho WI. De tal manera que siempre está disponible la última versión del código y el cliente sabe exactamente qué funcionalidades ya se encuentran implementadas en el código liberado. Al momento de facturar los servicios otorgados, el proveedor puede extraer los WI trabajados y resueltos e identificar el trabajo realizado. Por el lado del cliente, tiene el soporte necesario para justificar los pagos no sólo en términos de horas-hombre aplicadas, sino en avance del proyecto y funcionalidades implementadas.

Conclusiones

Un punto de vista unificado en el estatus del proyecto y avance de las tareas en el proyecto permite a las organizaciones hablar y negociar bajo los mismo términos y contexto. Aún con la apertura de comunicación que favorecen los repositorios centralizados y automatización de administración del cambio, la factoría de software mantiene su capital intelectual e independencia en términos de la metodología de desarrollo especifica a utilizar, prácticas de codificación y ambientes de desarrollo. Estas herramientas serán agnósticas a esos elementos. El control de ambas organizaciones en el proceso de gerenciamiento de proyectos y predecibilidad de los mismos se incrementa, al tener la capacidad de saber que se va a entregar. Adicionalmente, es conocimiento de las organizaciones cuándo y cuáles son los cambios que se requieren y tener la capacidad de tener a la mano la información necesaria para poder negociar y determinar de manera conjunta las prioridades del proyecto. Y finalmente, con estos elementos de comunicación común, poder mantener una relación de negocios abierta, sana y sin fricciones importantes. BIO:: Germán Domínguez es Client Technical Professional para IBM Rational en México desde el 2008, tiene 17 años de experiencia en desarrollo de aplicaciones de negocios, consultoría de procesos y lenguajes de programación. Actualmente, apoya a diversos clientes con estrategias de Modernización Empresarial, Application Lifecycle Management, Arquitectura Empresarial y Herramientas de Desarrollo. Puede ser contactado por medio de correo electrónico: germand@mx1.ibm.com

Software Guru

Inclusión de repositorios para administración de versiones y código fuente. Esta funcionalidad deberá permitir tener disponibles los códigos fuente de las aplicaciones que se están construyendo y así mismo relacionar dichas piezas de código con las actividades asignadas conforme se van atendiendo. El código fuente de los sistemas debe estar disponible en todo momento para los clientes, no debe ser algo que los proveedores escondan para “amarrar” a los clientes. La fidelidad y continuidad debe ganarse mediante ventajas competitivas basadas en prácticas y comunicación.

“Existe una creciente demanda de permitir mayor colaboración del cliente en el ciclo de construcción.”

www.sg.com.mx |

Capacidades para administración del cambio. Mediante el apoyo de la herramienta para la implementación de ésta disciplina es posible llevar el histórico y seguimiento de cómo los requerimientos y tareas originales van cambiando con el paso del tiempo y el avance del proyecto. Es importante mencionar que, a la velocidad de cambio de las diversas industrias, las necesidades cambiantes del mercado y los cambios de regulaciones de industria y gubernamentales; es cada vez más demandado la inclusión de dichos cambios de manera ágil en las mismas actividades de construcción.


pRINCIPAL OUTSOURCING

pg022

Lo que Nos Cuesta Aceptar sobre el

Outsourcing ›› Por Vanessa Amaya

E

l outsourcing de TI se ha convertido en una forma popular y beneficiosa de hacer negocios. Mucho se ha hablado sobre las sobresalientes ventajas del outsourcing y también sobre sus inherentes desventajas, pero hay temas de los que poco nos atrevemos a hablar y que son parte de esta importante tendencia de servicio en la industria de TI. El presente artículo está enfocado a esos temas un tanto cuanto incómodos pero ciertos.

El matrimonio incómodo

En algún momento suele darse el “matrimonio incómodo” entre un cliente y un proveedor, en el que ya sea una o ambas partes no están satisfechos con la relación de negocios, pero no es viable romperla. Las razones más comunes son: • El cliente no está satisfecho con el servicio pero el proveedor está tan inmerso en la empresa ya sea por la cantidad de recursos que tiene asignados o por el conocimiento que ya se adquirió que cambiarlo representaría más pérdida que ganancia. • El proveedor no está contento con los procesos de pago del cliente pero es tanto el volumen que le consume que es mejor aguantar los largos procesos para facturación que buscar un cliente nuevo.

¿Y dónde está el desarrollador?

El outsourcing promete agilidad y flexibilidad para poder asignar personal “bajo demanda”, pero es común que las empresas de outsourcing, una vez que han ganado una licitación o concurso para un proyecto grande, comienzan a buscar al personal requerido y se “topan” con pared. Esta problemática no sólo está presente cuando se licita o exclusivamente en proyectos grandes pues en el día a día las empresas reclutadoras se enfrentan al gran obstáculo de no encontrar profesionistas que cumplan al 100% con las expectativas. La alta demanda de personal capacitado, aunado con la especialización requerida en nuestro campo ha derivado en que las áreas de recursos humanos de las empresas de outsourcing se encuentren saturadas de requerimientos. Los(as) reclutadores(as) deben tener un instinto más allá de saber entrevistar, sino de saber dónde y cómo buscar. Una práctica que ayuda a este arduo proceso de reclutamiento es buscar estrategias paralelas a la búsqueda tradicional, como por ejemplo: participar en ferias de reclutamiento, trabajar a nivel marca de la empresa para atraer a los profesionistas, ofrecer capacitaciones gratuitas que atraigan y ayuden a identificar profesionistas destacados. Adicionalmente, una característica importante en el proceso de selec-

ción es el saber reconocer las cualidades que harán que un recurso logre adaptarse y satisfacer las necesidades de un proyecto, aunque no cumpla al 100% el perfil que el cliente solicitó.

Mi diferenciador es … que no tengo diferenciadores

Si escucháramos las presentaciones de venta de 20 empresas distintas de outsourcing de TI seguramente escucharíamos las mismas frases una y otra vez: profesionistas experimentados, enfoque en la satisfacción del cliente, capacitación constante, expertos en gestión, experiencia en grandes corporativos, expertos técnicos, dedicación a la empresa, alto rendimiento, certificaciones, etcétera. Dos diferenciadores importantes en los cuales los clientes están prestando mayor atención son: las metodologías y los casos de éxito. Una empresa demuestra madurez a través de sus procesos implantados, pero es necesario ir más allá de las promesas y demostrar resultados. Lo anterior se establece con las métricas e indicadores que van dejando huella de la ejecución de los procesos. Muchos clientes (ya curados de espanto) ya solicitan como obligatorios estos indicadores cuantificables. Los casos de éxito también son un diferenciador importante. Cada éxito es una historia única y por ende el mejor de los diferenciadores. Para sacarle el máximo provecho a los casos de éxito es importante documentarlos; esta documentación tiene dos vías: Documentación interna que sirva como referencia para replicarse en proyectos y clientes similares. Documentación externa que sirva para generar confianza en clientes potenciales. Dicha documentación debe incluir: Nombre del cliente, tipo de proyecto, indicadores cualitativos, indicadores cuantitativos y carta de recomendación firmada del cliente. También he visto casos de éxito en los cuales incluyen videos cortos con el testimonial del cliente y suelen ser muy efectivos para convencer.

El outsourcing del outsourcing

En una ocasión me sucedió que una empresa me contrató para trabajar como recurso de outsourcing para un corporativo, y al presentarme en recepción me dijeron que desconocían al proveedor que yo representaba. Cuando comuniqué esto a la empresa que me contrató me dijeron “¡Ah! Olvidé decirte que estamos subcontratados por otra empresa, preséntate como si fueras de la empresa X”.


pRINCIPAL OUTSOURCING

pg023

El sentido de pertenencia es vital para adquirir el compromiso hacia el buen trabajo. Si el profesionista siente a la empresa como suya, va a procurar lo mejor para ella. En el caso del outsourcing, los profesionistas tienden a encontrarse con la disyuntiva de si deben sentir pertenencia hacia la empresa proveedora o hacia el cliente. El problema empieza cuando no se siente pertenencia hacia ningún lado, porque esto incrementa la falta de compromiso y sube el riesgo de la rotación de personal. Es por ello que las empresas de outsourcing que fomentan el “sentido de pertenencia” como parte de sus valores organizacionales multiplican el valor de la empresa, ya que cada uno de sus empleados (o por lo menos la mayoría) defenderá y promulgará los intereses organizacionales. Ahora bien, el sentido de pertenencia en este caso va hacia dos sentidos: La empresa outsourcing debe fomentar la pertenencia a través de comunicación constante, planes de carrera, capacitaciones, premios y reuniones. Esto ayudará al segundo sentido que se trata de que el profesionista se sienta comprometido hacia el buen resultado por el bien propio y el bien de la empresa contratante. Para ayudar al compromiso hacia el cliente es importante incluir información y antecedentes del mismo, sucede con frecuencia que los profesionistas no saben el trasfondo de los proyectos en los cuales están trabajando. La inducción de los profesionistas es una de las claves para lograr el sentido de pertenencia y lamentablemente es una práctica que se ha dejado de utilizar por la prisa de la asignación. Recomiendo ampliamente que se fortalezca la práctica de la inducción en las organizaciones que proveen outsourcing.

Referencias [1] B. Schneider. “Outsourcing, la herramienta de gestión que revoluciona el mundo de los negocios”, Grupo Editorial Norma.

“Hay temas de los que poco nos atrevemos a hablar y que son parte de esta importante tendencia de servicio en la industria de TI.”

Software Guru

¿Qué camiseta uso?

Este servicio se debe concebir como una responsabilidad compartida por el cliente y los proveedores. Debido a que implica una relación a largo plazo, es importante invertir en los diferenciadores y la orientación a la satisfacción del cliente para que sea una verdadera alianza estratégica.

www.sg.com.mx |

Este tipo de anécdotas sucede con bastante frecuencia, ya que las empresas de outsourcing de distintos tamaños establecen alianzas y se subcontratan entre sí para poder satisfacer los requerimientos de los clientes. Aunque en algunos casos esta es una práctica necesaria, hay que tomar acciones para mitigar los riesgos que puede involucrar, desde las confusiones en la comunicación hasta el sentido de compromiso de las personas. Es muy importante orientar al profesionista cuando se esté representando a dos empresas y cuidar que esto sea transparente para el cliente.

Y ahora que lo contraté ¡cambió!

Hay un fenómeno curioso que se repite en un alto porcentaje: cuando un recurso de outsourcing se destaca por mucho tiempo, la empresa cliente lo contrata para asegurar que el conocimiento y experiencia adquiridos se queden como activos de la empresa y no sufran las consecuencias de la rotación de personal. Además del conocimiento, los profesionistas se destacan por su actitud entusiasta hacia los proyectos y la adopción de la identidad de la empresa cliente. En este punto es importante que la empresa cliente se asegure de seguir presentando retos al profesionista para evitar que caiga en una zona de confort y en consecuencia baje su rendimiento.

Conclusiones

La globalización de la economía obliga a las empresas a utilizar todas las opciones que tienen a su alcance. Una de ellas es el outsourcing, que habilita a las empresas para ser más flexibles en su estructura organizacional y optimizar su estructura de costos operativos.

BIO:: Vanessa Amaya (@vanessa_amaya) tiene 11 años de experiencia en la industria del desarrollo de software en México como Consultora Sr, Conferencista e Instructora. Ha capacitado a más de 2,000 profesionistas en temas de Ingeniería de Software, Gestión de proyectos y comunicación efectiva. Actualmente se desempeña como Coordinadora Editorial de la Revista SG.


Outsourcing para Fortalecer las Estrategias de Negocio ›› Por Jorge Cornejo

L

as necesidades y expectativas sobre los servicios de outsourcing de TI en México no sólo han crecido sino también madurado durante los últimos años. Una circunstancia que ha influido en este crecimiento es la oferta de servicios. Hay muchas empresas, sobre todo de origen español, que derivado de las crisis económicas en sus países de origen han buscado nuevos mercados, creando así más oferta de empresas especializadas. Otro factor que ha fomentado este crecimiento es la confianza que los clientes han adquirido en el tiempo por la madurez de las ofertas. Es decir,

la competencia ha traído mejores ofertas sobre todo en campos de especialidad, habilitando a los clientes para incluir outsourcing en una mayor parte de su operación. En el caso del outsourcing de servicios de TI, uno de los servicios más comunes es el proveer personal para el desarrollo y mantenimiento de sistemas de software. Esto se debe a la especialización técnica requerida en este campo, además de la temporalidad de los proyectos. A continuación comparto algunas recomendaciones para maximizar el éxito en este tipo de servicios.


pRINCIPAL OUTSOURCING

Los requerimientos de personal típicamente se pueden clasificar en dos tipos: volumen o especialización. En términos de volumen, definitivamente los servicios más solicitados y que resultan en un mayor volumen de personal son el análisis y programación de aplicaciones. El volumen de estos requerimientos permite que las empresas proveedoras alcancen economías de escala. En cuanto a personal especializado, cada día se buscan más profesionistas con competencias certificables en roles como gestión de proyectos, gobierno de procesos y analistas de negocio. Los clientes también se sienten más cómodos trabajando con proveedores experimentados en su segmento vertical, por ejemplo financiero, manufactura, telecomunicaciones, gobierno.

Criterios de selección de proveedores

Ante la creciente demanda, no podemos dejar a un lado los criterios de selección que utilizan los clientes. Entre más grande es el cliente y más es el volumen de negocio que representa el mismo, ponen atención a proveedores que tengan personal certificado tanto en competencias, herramientas y metodologías, personal que demuestre experiencia en proyectos similares, garantías para reemplazar y asignar profesionistas. Un diferenciador al que cada vez más se le da importancia en el mundo de los clientes son las metodologías internas que tengan los proveedores de outsourcing, ya que es la forma de comprobar la estandarización y el interés del proveedor por apuntar hacia la calidad del servicio. Esto para el cliente representa la garantía de trabajar con un profesional en todos los sentidos de la palabra. Es importante que las metodologías de proveedores sean flexibles y genéricas para que también se adapten y se alineen a la metodología del cliente. El tiempo de respuesta también es un criterio no solo de selección sino de permanencia con los clientes, el cual incluye la velocidad de atención junto la asignación de los perfiles adecuados.

Recomendaciones

La brecha que hay entre la madurez de los procesos de las empresas y el miedo de la seguridad de la información no permite que todos los roles sean convenientes de conseguir a través del outsourcing de TI. El cliente siempre buscará tener el conocimiento del mismo dentro de su control y en medios seguros. Para mitigar este riesgo, es recomendable que la empresa cliente cuente con procesos bien implantados de “Knowledge Management”, con lo cual podría abrirse la posibilidad de contratar vía outsourcing cuestiones más estratégicas del negocio. Uno tema complejo en la gestión del personal externo es el fomento a la pertenencia, es decir, que el profesionista se sienta perteneciente a la empresa proveedora y se comprometa con la empresa cliente. Los clientes tienen que tomar nota sobre este tema para que también puedan contribuir a la mitigación de la rotación de personal. Se recomienda que el cliente sea cuidadoso en instruir y hacer sentir en el trato, el interés porque el profesionista externo participe en los proyectos, así como también el concientizar a su personal interno sobre el trato inclusivo y respetuoso hacia el personal externo. Aunque por políticas internas existan diferencias para el personal externo, es vital que el trato sea lo menos diferenciado posible. Entre las

prácticas recomendadas está el incluirlos en las capacitaciones internas y el reconocimiento a los logros orientados al equipo en donde por supuesto se incluya al personal externo. Uno de los mayores retos en outsourcing de personal de TI es la homologación de los perfiles de los profesionistas. Las oficinas de proyectos de los corporativos tienden a encontrarse con este problema cuando buscan construir equipos con múltiples proveedores. Con frecuencia un perfil tiene el mismo nombre en dos empresas pero cada una lo maneja a un nivel de prácticas y destrezas diferentes. Por ello, es recomendable establecer una homologación de perfiles, ya que esto facilita tanto la selección como formación de los profesionistas. La retención del conocimiento es un tema complejo cuando en lo último que se piensa es en documentar lo que se aprendió. Aunque metodológicamente se señale de manera significativa la generación de documentación en los proyectos de desarrollo de software, sigue siendo un tema descuidado. Lo más común es que se documenten son diseños conceptuales y técnicos, además de resultados de prueba que nos permiten obtener la aceptación del cliente. Sin embargo, lo que todavía es raro es que al final de cada proyecto podamos tener a nivel ejecutivo cuáles fueron los aprendizajes y la información clave del proyecto; esto tanto para retención del conocimiento como para el aprovechamiento del mismo en proyectos similares. Los clientes deben establecer métricas objetivas del el desempeño del servicio de los proveedores, buscando mecanismos que provoquen que los resultados de estas evaluaciones lleven a la mejora continua de los servicios que ofrece el proveedor. Es importante evaluar al personal externo de manera similar a como se evalúan a los internos para poder hacer una alineación de las mejoras. En la manera que sea posible, los proveedores deben tener claridad sobre el portafolio de proyectos del cliente y con visión a los siguientes años. Esto permite poder identificar con anticipación los perfiles y necesidades de los clientes a largo plazo, con lo cual se puede negociar contratos de mejor manera y fomentar relaciones estratégicas. A los clientes les agrada la anticipación de servicios, por lo que el dedicar una persona para cada cliente y que esta domine los procesos administrativos, no sólo provoca un mayor conocimiento de sus iniciativas y portafolio de proyectos para poder la anticipación de servicios, sino que también provoca un incremento en la satisfacción sobre el servicio.

Conclusión

A pesar de ser una industria que lleva muchos años vigente, el Outsourcing tiene todavía retos por resolver y al ser una industria creciente, está llena de oportunidades para todos aquellos que busquen la innovación en sus procesos de especialización y volumen. BIO:: Jorge Cornejo es consultor especializado en Planeación Estratégica y Desarrollo Organizacional. Adicionalmente es Catedrático en el ITESM. Jorge trabajó 14 años en BBVA Bancomer como Director de Planeación Estratégica y la Oficina de Proyectos de TI y dirigió 15 años la Planeación Estratégica y el Desarrollo de Proyectos de varias unidades del Grupo DESC y Grupo Infra. jorge.cornejo@gbcc.com.mx

Software Guru

Requerimientos de personal

pg025

www.sg.com.mx |

“Se deben establecer métricas objetivas del desempeño de los proveedores.”


pRINCIPAL OUTSOURCING

pg026

¿Cómo Hacer Contratos para

Proyectos Ágiles?

›› Por Hubert Smits

[Nota del editor: Este artículo fue originalmente publicado como parte del newsletter de Agile Product & Project Management de Cutter Consortium en Septiembre de 2011. Ha sido traducido por Software Guru y publicado aquí con el permiso de Cutter Consortium.]

L

os contratos tradicionales para el desarrollo de software se enfocan en los requerimientos deseados y en el tiempo y precio requeridos para entregar dichos requerimientos. El objetivo de este tipo de contratos es crear un costo y tiempo predecible, y transferir la proveedor el riesgo en caso de que el costo sea mayor al planeado. Este tipo de contratos generan un contexto de poca flexibilidad, ya que fomentan la evasión de cambios y ajustes. Es así que en el mejor de los casos, si el proyecto se ejecuta exitosamente de acuerdo a lo planeado, obtenemos el software que necesitábamos hace 12 meses (cuando el proyecto se planeó). Por otro lado, en los proyectos donde se aplica la filosofía Agile, los contratos típicamente son acuerdos del tipo “tiempo y materiales”, pero con un enfoque en entregar valor de forma temprana y continua. Un contrato ágil también consta de componentes para identificar cambios en el desempeño. Dichos componentes se derivan de los principios ágiles: “software funcionando es más importante que documentación”, y “la colaboración es más importante que el proceso”.

Equipos, etapas y tarifas

Los contratos en proyectos ágiles se enfocan en construir equipos, no en contratar a personas individuales. Ponte de acuerdo en la estructura del equipo (ej: líder, desarrolladores, analistas, testers, etcétera), las capacidades requeridas para cada rol y las tarifas a cobrar. Los equipos requieren tiempo para formarse; contratar personas adecuadas lleva tiempo, así que entre cliente y proveedor deben acordar cómo se va a absorber este costo. Una vez que el equipo está formado, hay que estar consciente que le va a tomar tiempo llegar a altos niveles de productividad pero es importante que comience a entregar software y generar valor desde el primer día, aunque sea a un ritmo lento. Tal vez sea buena idea que durante esta etapa de formación y aprendizaje del equipo las tarifas cobradas sean menores y que no se tomen en cuenta para la compensación las medidas de desempeño.

Métricas, desempeño e incentivos

Una vez que un equipo se está desempeñando y ha entregado software a lo largo de varias iteraciones, ha establecido una “ve-

locidad”. La velocidad de cada equipo es única, e incluso depende del dominio del problema (un mismo equipo puede tener velocidades distintas en distintos dominios). Por lo tanto, no es recomendable establecer un sistema de pago basado en la cantidad de software entregado en cada periodo, así como tampoco es válido comparar la velocidad de distintos equipos y considerarla como criterio para la entrega de incentivos. Lo que sí recomiendo es monitorear el cambio en velocidad de un equipo y recompensarlo o penalizarlo según sea el caso. Dado que es el equipo el que genera valor (no un individuo), los incentivos deben otorgarse a todos los miembros del equipo. Por otro lado, cuando un equipo baja su velocidad típicamente se debe a factores externos, por lo tanto a quien se debe penalizar en caso de la reducción de velocidad de un equipo no es al equipo como tal, sino a la organización que emplea al equipo, por no haber eliminado los obstáculos que provocaron la baja de desempeño del equipo. Las penalizaciones no le son de ningún beneficio a los clientes; el costo del tiempo perdido es mucho mayor que cualquier compensación que pudiera un proveedor aceptar pagar. Así que crea penalizaciones que llamen la atención de la gente que necesita eliminar los obstáculos para los equipos. Los principios del desarrollo ágil hacen que este tipo de contratos funcionen: medición de desempeño y retroalimentación frecuente. Las mediciones se basan en datos duros: o el software está funcionando o no, y la estimación usando abstracciones (puntos de historias de usuario) brindan una idea de la cantidad de software entregado. Esto permite que el acuerdo pueda ser evaluado de manera temprana y continua para corregir problemas desde un principio, y que ambas partes obtengan el mayor valor de la relación. BIO:: Hubert Smits (@HubertSmits) es Consultor Senior en Cutter Consortium dentro de la práctica de Agile Product & Project Management. consultoria@cutter.com.mx


.contenido patrocinado

El Mundo, un Mercado “local” para la Atracción de Talento

Social Recruiting

El reclutamiento social es una palabra que a menudo escuchamos, pero ¿qué significa realmente? Y, más importante aún, ¿cómo se puede utilizar para encontrar candidatos de calidad? 27

La selección de personal tiene que ver con la creación de relaciones para encontrar las personas adecuadas. Lo que las redes sociales han hecho es que nuestra actividad sea más sencilla y más enfocada. Éstos son algunos de los beneficios del manejo de redes sociales para un adecuado reclutamiento: 1. Conectar a la mayor cantidad de solicitantes de empleo activas y pasivas 2. Alentar a los empleados para referirse a sus redes 3. Reducir el costo de Sourcing Hoy en día en ScreenIT – Talent Attraction Services llevamos a cabo el RPO y Atracción de Talento Especializado para firmas extranjeras ubicadas en México; para compañías en EEUU y Latinoamérica con requerimientos en sus propios países, así como para compañías Indias con necesidades de atracción de talento en México y EEUU; siguiendo un modelo basado en procesos internos, calidad y cuidado al cliente que permita esa cercanía con las empresas empleadoras, pero también con el talento que busca ese crecimiento profesional. Contamos con expertos en el uso de redes sociales lo que nos ha permitido captar de manera mucho más ágil al talento que no necesariamente busca empleo pero al que podemos ofrecer crecimiento en su plan de carrera una vez realizado el contacto. El reclutamiento social es una herramienta muy poderosa y efectiva que nos da alcance a grupos especializados en diferentes tecnologías y regiones del país o de prácticamente cualquier parte del mundo. En ScreenIT somos una firma de consultores con más de 18 años de experiencia en las industrias de TI y RRHH, lo que nos permite ser muy asertivos y expeditos para ubicar a los candidatos adecuados, a través de una minuciosa evaluación que incluye tanto el aspecto humano como el técnico, y posicionarlos en su siguiente nivel de carrera profesional a través de alguna de nuestras empresas cliente que buscan ese talento. ScreenIT cuenta con oficinas en Aguascalientes, Guadalajara y Houston, TX, además de contar con presencia en ciudades como Querétaro, Monterrey, México, DF y San Luis Potosí. Siempre con un enfoque a nuestros Dos clientes: Empleador y Candidato, a quienes buscamos satisfacer con la misma calidad y experiencia profesional.

Eduardo E. Campos Segura Presidente y Director General ScreenIT - Talent Attraction Services Tel. 449-1747442 eduardo.campos@tas-screenit.com

Software Guru

a industria de desarrollo de Software en México atendiendo a clientes en EEUU ha ido creciendo significativamente. Pero siendo la TI siempre gobernada por capital humano y talento cada vez más especializado dada la evolución tan rápida que vivimos en la tecnología, llega una oportunidad y sobre todo una necesidad de encontrar, atraer y retener a ese talento para las empresas desarrolladoras y consumidoras de los servicios. En México contamos con personal que dedica su vida profesional a la búsqueda constante de talento, siendo el enlace entre quien ofrece crecimiento de carrera y quien busca este crecimiento. No es una labor menor ya que el verdadero éxito radica en que ambas partes terminen siendo complementadas por las fortalezas de cada uno (empresa – candidato). Cuando hablamos de atracción de talento especializado, no basta con tener un área de Reclutamiento y Selección, sino que deben de considerarse instrumentos de evaluación respecto de la experiencia de candidatos para validar su conocimiento técnico. Desde luego, siguen siendo primordiales los aspectos de evaluación desde el punto de vista de RRHH, pero complementados con la parte técnica para de esa forma presentar a las compañías empleadoras candidatos cualificados de manera integral. Si extrapolamos estas capacidades de atracción de talento a otros países como nuestro vecino del norte, nos damos cuenta que sin contar necesariamente con una presencia física en el “país cliente”, el Outsourcing del Proceso de Reclutamiento (RPO) toma mayor relevancia dado el alto nivel de especialización y el alto retorno de inversión de las empresas al realizarlo desde un país emergente como México; esto no sólo se refleja en sus estados de resultados, sino que nunca pone en riesgo la calidad del servicio y para el empleador, es como si tuviera su agencia de reclutamiento en casa. La tecnología hoy en día nos permite ser una extensión de los departamentos de RRHH de las empresas como si estuviéramos en un área al final del pasillo en el mismo edificio que ellos, lo cual además permite medir la eficiencia del servicio y hacer de la distancia algo totalmente transparente para el logro de los objetivos de la compañía cliente. Por otro lado, cuando hablamos del talento en capital humano en búsqueda constante de oportunidades para desarrollarse, éste modelo global de RPO permite ofrecer diferentes vías haciendo del mundo un mercado “local” y accesible para éstos profesionistas que están siempre ávidos de conocer, investigar y desarrollar nuevas habilidades. Aun con todos estos elementos el RPO crece lento pero seguro año con año, siendo pocas las firmas que por su gran tamaño pueden dar soluciones de cobertura, aún y que el servicio puede no ser el mejor.

www.sg.com.mx |

L


.COLUMNA Código Innovare

¿Llegaremos al Futuro? ››Por Rogelio Esperón Rodríguez

– ¿Qué diablos fue eso? –exclamó Marty cuando un bólido saltó de las nubes como un relámpago y estuvo muy cerca de embestirlos. – Un taxi –respondió el Doctor Emmett serenamente. – ¿Un taxi?, yo pensaba que íbamos volando. – Precisamente. – Bueno Doc, ¿qué está pasando?, ¿dónde estamos?, ¿en qué fecha? – Vamos hacia Hill Valley, California... a las 4:29 p.m. del miércoles 21 de octubre... del año 2015. – ¿2015?, ¡entonces estamos en el futuro!

S

í, como acaban de leer, la fecha exacta en que Marty McFly, su novia Jennifer y el Doctor Emmett Brown hacen su viaje al futuro, en el clásico de ciencia ficción Back to the Future II, es el 21 de octubre del año 2015, y no el 27 de junio del año 2012, como nos hizo creer a algunos inocentes una broma, fruto de un buen trabajo de Photoshop, hace unas semanas en las redes sociales anticipando tres años la llegada del future day. Ahora, hagamos a un lado la broma de la fecha falsa y enfoquémonos en el tema del future day, ese 21 de octubre de 2015. Que nos sirva ésta fecha como el pretexto para hacer un pequeño y rápido ejercicio de reflexión, o mejor dicho, uno para comparar cómo estamos viviendo la tecnología en el año 2012, contra lo que Robert Zemeckis vaticinaba en su filme de 1989; sin pretensiones de que esto sea, una crítica cinematográfica. Con seguridad recordaremos las chamarras con autoajuste, autosecado y voz; el hidratador de alimentos, y el hover board o aeropatín. Todos ellos lucían divertidos y esperábamos que algún día tuviéramos la fortuna de poder usarlos. Pero, si vemos un poco más allá de los juguetitos futuristas, notaremos –y no es necesario ser muy observador– que en la historia hay tres elementos ausentes, los cuales hoy son vitales en muchos sentidos. Y bueno, también hay un elemento que en su momento fue muy importante, y que actualmente suena, a mi gusto, obsoleto. Les cuento:

Los grandes ausentes

– Doc, retrocede –dijo Marty un poco extrañado–. No hay suficiente carretera para acelerar a 88 m.p.h. – ¿Carreteras? –respondió con seguridad el Rogelio Esperón Doctor, al tiempo que se colocaba unos lentes Rodríguez es diseñador gráplateados – A donde vamos no necesitamos cafico y agricultor urbano. Colabora rreteras. en la Gerencia de Desarrollo de Nuevos Productos y Servicios en INFOTEC.

Por supuesto sabemos que el Doc se refería a las carreteras físicas, pero si le damos una pincelada metafórica, lo podríamos en28

tender como la súper carretera de la información, la cual es la más necesaria en el presente. Bien, como decíamos anteriormente, en la lista de asistencia no aparecieron internet, ni las redes sociales, ni los dispositivos móviles –y si nos ponemos exigentes encontraremos muchos más–. ¿Quién lo hubiera pensado, no? Y es que si hoy en día nos resulta difícil imaginar nuestras vidas sin ellos, más difícil lo será en 2015. Era 1989 y muchos de nosotros, mozuelos, aun utilizábamos monitores monocromáticos, almacenábamos en floppy disk de 2.25” y la letra Q y la @ no habitaban la misma tecla; de hecho ¿para qué sirve ese símbolo raro? (nos preguntábamos al ver una arroba). Qué tal hubiera sido en ese 1989, observar la secuencia en la que Griff y su pandilla son arrestados por destruir con sus hover board el edificio de la Corte, y que en lugar de que apareciera una cámara de televisión flotante para transmitir la noticia, todos los participantes en la escena hubieran sacado sus dispositivos para tomar fotografías y video, y luego compartir el suceso con otras personas; y que la noticia donde se ve que la pandilla es arrestada, no hubiera aparecido en un periódico, sino en una tableta. O qué tal la escena en la que entra una llamada telefónica a casa de los McFly y los hijos ven la llamada entrante en sus lentes –inteligentes, tal vez– y no en sus smartphones, donde además, hubieran estado conversando con varios amigos a la vez.

¿Obsoleto?

– Era ilegal –gritó el jefe– y lo sabía, McFly. ¡Lea mi fax! – ¡No! ¡Por favor, no! –Suplicaba Marty del futuro, mientras se imprimían, en tres máquinas de fax, la frase: You´re Fired!!! ¿Se imaginan tres máquinas de fax en su casa? Esperen un momento, ¿sí recuerdan lo que es un fax? ¡Levante la mano quien lo sigue utilizando! No se niega que fue un gran invento, y que en su momento fue de mucha utilidad, pero hoy ya suena obsoleto, ¿no creen? Obviamente en 1989 no consideraron el concepto del paperless e imaginaron que en el futuro todos nos “faxearíamos” con nuestros amigos y conocidos.


“El tiempo corre y sería válido tomar

Se pueden resaltar algunos aciertos muy interesantes, pronósticos que se han consumado y que ya no nos parecen de ciencia ficción, como las videollamadas, las grandes pantallas de televisión y los juegos de video en los que no se emplean las manos. Pero siendo realistas, muchas otras de las exquisiteces que nos asombraron en el viaje de McFly, excederán la fecha que indicaba el tablero del DeLorean para que se hagan realidad, como los carros voladores, las agujetas autoajustables y la hidratación de pizza. Sin embargo, restan un poco más de tres años –si es que como esperamos los Mayas se equivocaron y no se acaba el mundo en diciembre de 2012– para llegar al future day; y tal vez valdría la pena colocar una banderita en ese día del calendario para convertirlo en nuestro día del futuro, el día límite en el que ya deberían de estar funcionando algunas ideas, no forzosamente de las que aparecen en la película, sino algunas que ahora tengamos en mente, que parezcan de ciencia ficción, de película. El tiempo corre y sería válido tomar las escenas de la cinta –e incluso de otras obras de ciencia ficción cinematográficas o literarias– como consejos o gatillos que nos disparen hacia la construcción de mejores ideas que se puedan complementar, o bien, que sean totalmente nuevas, como por ejemplo: placas de automóviles con códigos de barras –tal vez ahora serían códigos QR– que podrían ayudar a resolver el asunto de las multas de tránsito,

parquímetros, estacionamientos, reportes viales, etc. Y qué decir de los sistemas de voz para encender las luces de una habitación, activar el despachador de frutas en la cocina o controlar la pantalla de televisión; o el lector de huellas digitales para abrir la puerta de tu casa y que una voz te dé la bienvenida, anuncie tu llegada y te recuerde los pendientes del hogar. Adelante, hagamos este ejercicio, solos o en grupo, tomemos una idea, pulámosla para hacerla realidad antes de que llegue el futuro. Por nuestra parte en el Fondo de Información y Documentación para la Industria, INFOTEC, estamos investigando y trabajando con miras hacia el futuro, desarrollando un prototipo que utilizará la tecnología semántica soportada por sistemas inteligentes, para crear una plataforma que permitirá que todos los dispositivos de una casa u oficina se comuniquen entre sí, además de que podrán reportar y monitorear su estatus. Tendrán un bajo costo para el consumidor y sin la necesidad de hacer cableado o instalaciones engorrosas. Ahora, imagínense a una persona, que mientras se encuentra de viaje en el extranjero, utiliza su celular para saber quién llama a la puerta de su casa, verificar que la alarma antirrobo está activa, encender el sistema de riego del jardín y programar el despachador de comida para que alimente tres veces al día al perro. Y tú, ¿cómo imaginas el 21 de octubre del 2015?

www.sg.com.mx |

El reto

Software Guru

las escenas de la cinta como consejos o gatillos que nos disparen hacia la construcción de mejores ideas”.


.contenido patrocinado

La Cadena de Suministro de la Información

H

oy en día no causa sorpresa saber que para que un producto pueda llegar a cierto mercado éste es diseñado en determinado país, maquilado en otro con materia prima de la región y posteriormente es enviado a diferentes países para su comercialización y uso final. El consumidor en Italia quiere los mismos tennis para jugar futbol que el consumidor brasileño o mexicano. Las campañas de comercialización y salida al mercado ahora suceden de forma paralela en varios países, lanzar un producto en un país y esperar 6 meses para venderlo en otro es ahora una práctica cada vez menos vista y para algunas industrias simplemente impensable. ¿Quién va a querer los tennis del jugador estrella de la Copa de campeones UEFA 2012 a inicios del 2013? Sólo los coleccionistas o nostálgicos. Las empresas han aprendido que pueden generar ventajas competitivas si estructuran una cadena de suministro que les permita llegar más rápido con productos de mayor calidad y a un precio adecuado. Los beneficios de contar con una cadena de suministro escalable y bien afinada son evidentes; no se limita a contar con los insumos adecuados o mantener costos de operación o mano de obra manejables, también involucra flexibilidad, escalabilidad, monitoreo y muchos otros aspectos que al final suman y pueden hacer la diferencia entre el desempeño de una compañía y sus competidores.

por sus siglas en Inglés). Normalmente en proyectos de Inteligencia de Negocios y Datawarehouse. Una vez que estas iniciativas empezaron a entregar resultados, se pudieron detectar algunos beneficios “colaterales” de contar con una “capa de integración”. Por ejemplo, el reuso de la información generada por los procesos de ETL, pues se podía extender a otras soluciones o iniciativas de negocio. Por otro lado, el mantenimiento de las reglas de negocio se simplificaba si se podía crear una ruta única de procesamiento. Fue así que se comenzaron a ver beneficios tanto en la infraestructura como en la optimización de recursos y la reducción de tiempos de desarrollo, pruebas y liberación a producción, elementos que van directamente ligados a mejorar costos de propiedad totales y que conlleva retornos de inversión en ciclos mucho menores. La figura 1 muestra como una cadena de suministro de información soporta distintas iniciativas de negocio.

La cadena de suministro de la información

Hacia adentro de las organizaciones, podemos crear una analogía entre la cadena de suministro “tradicional” y los mecanismos que hemos creado desde hace varios años para procesar información y hacerla disponible para el consumo de terceros. En ambos casos, los pasos consisten en: 1. adquirir o extraer 2. mover o transportar 3. almacenar o incluso empacar 4. entregar materia prima (Datos) o productos terminados (Información) Estas cadenas de suministro (la física y la de información) requieren de controles en los diferentes procesos que permitan conocer el estado y naturaleza, de cada “envío”, teniendo elementos para resolver los diferentes cuellos de botella, optimizar rutas y/o recursos, contando con elementos de monitoreo y gobernabilidad de todos los recursos e infraestructura. En ambos casos, esto es todo un reto.

Oportunidades encontradas

En la parte de TI, inicialmente sólo algunos proyectos requerían contar con un proceso de Extracción, Transformación y Carga de datos (ETL 30

Figura 1. Soporte a iniciativas de negocio.

La única constante es el cambio, en especial de requerimientos

De forma paralela, han entrado nuevos requerimientos y actores a escena: por ejemplo arquitecturas orientadas a servicios (SOA) que abren la opción de integrar servicios web como fuente o destino de los procesos de transformación; el uso de nuevos formatos para la transmisión de datos (XML, WSDL, etc); requerimientos para accesar la información sólo de forma federada; realizar perfilado de datos y descubrimiento para poder generar reglas de procesamiento más precisas y eficientes; integrar la información en línea desde las fuentes de datos en el momento en el que han sido escritos a través de replicación. La integración con aplicaciones de negocio, nos obliga a generar interfaces para leer los datos de forma nativa.


.contenido patrocinado Con todas estas adiciones, los requerimientos de gobernabilidad se han vuelto críticos y obligatorios. Ha sido necesario implementar procesos de “despliegue” o promoción de los artefactos desarrollados durante todo el ciclo de desarrollo a los diferentes ambientes: Desarrollo, UAT (User Acceptance Testing), OAT (Operational Acceptance Testing), Producción. Finalmente, y debido al rol preponderante que ha tomado en los últimos años, muchas líneas de negocio esperan que ésta cadena de suministro cuente con mecanismos que se puedan integrar a Procesos de Recuperación en caso de Desastres (DRP por sus siglas en Inglés) o de Planes de Continuidad de Negocio (BCP por sus siglas en Inglés)

Las organizaciones con un enfoque preciso en integración de información y gobernabilidad demuestran mejoras sustanciales respecto a sus competidores. En un estudio preparado por IBM [1], se clasificó a las empresas en base a su desempeño en proyectos intensivos en información, y se dio cuenta que el grupo de empresas con mejor desempeño también contaba con prácticas mucho más maduras de gobernabilidad de datos. En el caso de las empresas con bajo desempeño, solamente un 14% contaba con prácticas sofisticadas para gobernabilidad de datos. Este número aumentaba a 42% en las organizaciones de alto desempeño, es decir el triple.

Evolución del modelo de trabajo

Impacto al negocio

Los proyectos intensivos en información actualmente encuentran grandes retos, por ejemplo: • Entre el 10% y el 40% del costo total de cada proyecto se gasta en definir, entender, limpiar, transformar, integrar y administrar datos. • Cada iniciativa está creando más información sobre la información (la información en las empresas crece a un ritmo de 62% anual). • Hasta el 85% de la información de las empresas se encuentra en silos aislados y no es aprovechada. Estos retos impactan negativamente el éxito de estos proyectos, resultando en estadísticas tales como: • El 72% de los proyectos de software tienen retraso o superan el presupuesto original. • El 40% de los proyectos fracasa en entregar el valor y retorno de inversión esperado al negocio.

Figura 2. Impacto de contar o no con una cadena de suministro de información.

IBM ha consolidado y extendido todos estos conceptos, pasando de una herramienta de ETL a una plataforma de Integración de Información. IBM Information Server provee soluciones a cada uno de estos retos que permite a los usuarios contar con herramientas para proyectos punta a punta que apoyen a diversas iniciativas de negocio: desde el tradicional Datawarehouse hasta migraciones de aplicaciones, consolidación y archivado, Master Data Management y/o integración con modelos especializados de Industria de IBM como Banca o Retail. A través de diferentes componentes que trabajan sobre una plataforma común y comparten el repositorio de metadatos, IBM permite crear la nueva cadena de suministro de información que las organizaciones requieren de acuerdo a las capacidades mencionadas. En todos los escenarios permite el aprovechamiento al máximo de los recursos de hardware, promoviendo la colaboración y reuso, uniendo a los usuarios de negocio y tecnología bajo la misma capa semántica. Esto permite a las organizaciones diseñar e implementar soluciones que generen ventajas competitivas que la protejan ante cambios o modificaciones al plan original. Los profesionales de cadenas de suministro saben bien que ésta será tan eficiente como cada uno de sus eslabones, y que el nivel de servicio que pueda ofrecer se reflejará en toda la compañía, para bien o para mal. Está en nuestras manos convertir ésta cadena de suministro de la información en una ventaja competitiva para nuestra organización. Si desea más información sobre Information Server envié un correo electrónico a: Alan Sumano (asumano@mx1.ibm.com), especialista para Information Management en IBM México. Referencias [1] “Breaking Away with Business Analytics and Optimization: New intelligence meets enterprise operations”. www.ibm.com/gbs/intelligent-enterprise

Es así, que quienes toman el control del flujo de la información generan una ventaja competitiva para su organización.

[2] “Delivering information you can trust”. IBM Software white paper. http://swgu.ru/sg37ibm

31

Software Guru

IBM permite crear ventajas competitivas

www.sg.com.mx |

Por el lado del desarrollo, se espera que esta nueva cadena de suministro de información sea flexible a cambios y nuevos requerimientos; escalable, capaz de entregar nuevos productos en nuevos destinos y evidentemente con nuevos formatos. También debe contar con mecanismos de monitoreo detallado que permitan realizar mejoras en la infraestructura para evitar problemas de desempeño. Deberá poder tener visibilidad sobre otros proyectos y artefactos que procesen información de manera que se tenga una idea clara del impacto de hacer cambios en todo el proceso de negocio, antes de realizar modificaciones. Debe incorporar el diseño de arquitectura para los proyectos y ligarlo a los objetos desarrollados, así como incorporar el diseño y despliegue de modelos de datos para lograr rastreabilidad sobre sus componentes y los responsables de administrarlos. Los roles también han evolucionado hacia figuras más especializadas, pasando desde el Administrador de Base de Datos hasta el Arquitecto de Soluciones. Este nuevo modelo de operación requiere que el usuario funcional participe más, ya que en muchos casos es quien provee el sentido de negocio que la solución debe tener, de forma que los proyectos y reglas de operación estén alineados con los de la organización. Esto requiere determinadas capacidades de la cadena de suministro de la información, como interfaces o tableros de control para cada uno de los roles, permitiendo que realicen las operaciones y actividades que tienen definidas trabajando sobre un grupo de componentes en común. En resumen, esta funcionalidad es el nuevo estándar al que las capas de integración de los proyectos basados en información deben adherirse. Esto sin contar el crecimiento exponencial que han tenido los datos en los últimos años, que obliga a manejar grandes volúmenes en poco tiempo (Big Data).


.Prácticas Prueba de Software

Outsourcing ››Por Berenice Ruiz

del Servicio de Prueba de Software

C

uando las organizaciones se enfrentan a la imperante necesidad de contar con sistemas de software para sustentar su operación, se encuentran ante la disyuntiva de si deben utilizar aplicaciones de software existentes en el mercado y configurarlas a los procesos específicos de la empresa, o bien si deben contratar del desarrollo de sistemas de software “a la medida”. En cualquiera de estos casos, la expectativa siempre será contar con sistemas de alta calidad, que cumplan con las especificaciones de los usuarios y demuestren un rendimiento y confiabilidad adecuados. En ambos casos debemos tener en perspectiva la necesidad de probar dicho software. Para resolver esto, incluso podemos subcontratar a una empresa que provea el servicio de outsourcing de prueba de software. En este artículo mencionaré algunos de los aspectos que considero de mayor importancia al subcontratar este tipo de servicio.

Elementos a considerar

La prueba de software es un servicio que podría considerarse altamente “tercerizable” y “exportable” dada la naturaleza del mismo, donde la objetividad y la especialización deben estar presentes. Profundicemos sobre los elementos relevantes a contemplar: Objetividad. Se refiere a poder obtener un juicio imparcial sobre los resultados de las pruebas. En lo posible, debemos evitar que quienes evalúen el software sean los mismos que los desarrollaron, ya que serían juez y parte. Especialización. Quien provea este servicio debe contar con capacitación formal en prueba de software, conocer metodologías, técnicas y herramientas en esta disciplina para buscar la garantía de un trabajo profesional. Reducción de riesgos. La tercerización de la prueba debe darnos elementos que nos permitan reducir tangiblemente los riesgos, tanto en el proceso de desarrollo como en la implantación y uso del software que se desarrollará. Apoyo en la mejora de procesos internos. La interacción entre los testers especializados y los futuros usuarios del software, debe evidenciar áreas de oportunidad en la definición de los procesos de negocio, contribuyendo a la estandarización y documentación de los mismos. Obtención de métricas. Un buen proveedor de pruebas debe poder generar métricas que permitan evaluar con datos concretos y tangibles .BIO la calidad del producto probado. Sandra Berenice Ruiz Eguino es Directora de Operaciones de Métricas para evaluar a proveedores. e-Quallity, además ha participado como Consultora Senior en proyecAún cuando la prueba está enfocada tos de mejora de organizaciones en medir la calidad del producto de de Prueba de Software. Cuenta con certificación internacional en software, implícitamente debieran Pruebas por el ASTQB. A lo largo de su trayectoria profesional ha acgenerarse datos que permitan obtetuado también como Ingeniero de ner información de valor respecto a Pruebas Senior, Líder de Proyectos, Administradora de Proyectos nala eficiencia del personal y los procecionales e internacionales, analista y desarrolladora. Ha sido profesora sos empleados para la construcción de la Universidad Autónoma de Guadalajara (UAG), donde realizó del software. sus estudios de Maestría en CienApoyo a implantación exitosa con cias Computacionales. usuarios. Una buena metodología 32

de prueba debe contemplar una fase de pruebas de aceptación de usuarios, durante la cual estos utilizarán el software acompañados de testers especializados.

Ventajas y desventajas

Para implantar de forma exitosa el outsourcing de pruebas dentro de una organización, será importante analizar las características de la misma. Sin embargo, también vale la pena partir de ciertas premisas para tomar las decisiones que puedan ser más acertadas a las propias necesidades. A continuación se destacan algunos puntos: Una empresa que no está especializada en pruebas de software es altamente probable que no tenga procesos y metodologías para realizar esta labor. Contratar a un proveedor especializado le permitirá tener acceso a dichos procesos de forma efectiva sin tener que hacer una gran inversión. Ligado al punto anterior, una empresa especializada en pruebas seguramente contará con algunas de las herramientas necesarias para realizar de forma eficiente muchas de las tareas de la prueba de software. La contratación de un proveedor de estas características podría dar acceso a dichas herramientas sin necesidad de invertir en la adquisición y capacitación de las mismas. El reclutamiento y selección de testers puede ser todo un dolor de cabeza para las áreas de recursos humanos de empresas no especializadas en prueba dadas las características particulares de los perfiles requeridos. El dominio de aplicación puede ser factor que desmotive la subcontratación de la prueba. Existen dominios sumamente especializados y/o complejos para los cuales la curva de aprendizaje puede ser grande. La eficiencia de la prueba podría verse mermada por un desconocimiento de dicho dominio por parte del proveedor. En este caso se podría buscar un proveedor que ya tuviera el dominio o bien se podrían desarrollar uno o más proveedores que cubran todas las necesidades de prueba de la organización. Algo que se debe considerar es que si el servicio de prueba es “tercerizado” y la empresa que subcontrata no está preparada para asignar un trabajo continuo a los testers, esto podría generar tiempos muertos que impacten en los costos del servicio. Cabe resaltar que este problema se presenta de igual forma cuando se tiene un equipo de pruebas interno. Cuando la prueba es subcontratada, el manejo de la comunicación e interacción entre testers y desarrolladores debe ser tomada en cuenta. Suele suceder que el equipo de desarrollo vea al equipo de pruebas como un “enemigo”, lo cual entorpece la interacción y empobrece los resultados obtenidos.

Posibles esquemas de contratación

Antes de contratar un servicio de outsourcing de prueba, es importante conocer distintos esquemas posibles de contratación: Por persona, con metodología del cliente. Las organizaciones que ya cuentan con una práctica de prueba de software con una alta madurez, lo que requieren en realidad es que se le provea personal que sea capaz de asimilar rápidamente sus procesos y brindar resultados en el corto plazo.


“El proveedor de pruebas

www.sg.com.mx |

La asignación de tareas y administración de los testers es responsabilidad del contratante. Por persona, con metodología del proveedor. Cuando una empresa no tiene procesos de prueba maduros y requiere este servicio por periodos prolongados de tiempo, lo indicado sería contratar a un proveedor que funcione como su área de pruebas. En este tipo de esquema el proveedor es responsable de asignar las tareas y administrar a los testers. Por proyecto. El proveedor proporciona un equipo para abordar un proyecto por un tiempo determinado. En este esquema la empresa que contrata no se preocupa por la cantidad de gente involucrada en su proyecto, lo importante es que se obtengan ciertos resultados en el tiempo establecido. Una variante para cada uno de los esquemas mencionados anteriormente es que la gente se provea en las instalaciones del cliente o en las instalaciones del proveedor. En el primer caso el cliente debe contar con la infraestructura suficiente para acomodar a todo el personal subcontratado y, dependiendo del acuerdo, en algunas ocasiones equipar a los testers. En el segundo caso es importante que el proveedor y/o el cliente cuenten con infraestructura de telecomunicaciones que permitan una interacción eficiente entre los testers y el resto del equipo. Se podría llegar incluso a un esquema híbrido donde se tenga, por ejemplo, un líder en instalaciones del cliente y el resto del equipo en las instalaciones del proveedor. Si bien es cierto que el outsourcing de cualquier servicio de TI se vuelve un reto desde el momento mismo en que hay que voltear a ver con lupa lo que cada proveedor ofrece, bien vale la pena empezar a desarrollar los procedimientos internos necesarios para agilizar esta tarea, dado que en el corto y/o mediano plazo los beneficios podrán marcar la diferencia. En el caso específico de la “tercerización” del servicio de prueba de software, la exigencia debe focalizarse en obtener una reducción significativa de los riesgos de liberar aplicaciones de software inmaduras pero sin perder de vista los elementos de experiencia, especialización, objetividad, ética, flexibilidad y sobre todo calidad.

Software Guru

debe generar métricas que permitan evaluar el producto de software con datos concretos y tangibles.”


.Prácticas Ágil

Recuperando Agilidad a través de ››Por Agustín Villena

Kanban

El problema observado

A

lo largo de los años, hemos visto cómo los equipos que implementan Gestión Ágil logran un cambio positivo en su trabajo, generando valor de forma más rápida y periódica. Sin embargo, en el caso de los equipos que ya han estado activos durante un tiempo, esto no suele perdurar. He aquí algunas de las razones: La gestión ágil clásica establece que el equipo de desarrollo se relaciona con un único “Product Owner”, que al comienzo del Sprint negocia la cantidad y prioridad de las Historias de Usuario (HdU) que serán implementadas. Ver Figura 1. Otra regla es que durante el sprint el alcance no será modificado [1], lo cual ayuda al equipo a mantenerse enfocado. Ver Figura 2. En la realidad de un equipo que posee cierta historia (y deuda técnica acumulada) hay situaciones que cuestionan estas reglas: hay otros proyectos que requieren soporte, nuevos negocios que necesitan consultoría técnica, etc. Es decir, surgen múltiples imprevistos que “interrumpen” al equipo durante el Sprint, haciendo imposible “proteger” al equipo de cambios, lo que sumado a múltiples focos de atención desmoronan el orden logrado. Ver Figura 3. Debido a lo anterior, la disciplina lograda por la agilidad se comienza a perder, regresando al caos inicial. Es aquí donde podemos aplicar los principios de Kanban para transformar ese proceso caótico de vuelta a un modelo ágil.

Figura 1. El Cliente negocia y prioriza las HdU para el Sprint.

(Re)estableciendo la cadencia del trabajo y la disciplina asociada

El segundo paso será (re)establecer la disciplina de gestión y la cadencia del trabajo. En nuestra experiencia la mejor forma de realizar esto es a través de reuniones de pie periódicas en torno al tablero. En ellas se van revisando los ítems(elementos) de trabajo del tablero, desde los que están a punto de terminar hasta los menos avanzados, siguiendo el mantra “Para de comenzar, comienza a terminar”. Las preguntas que hemos ido desarrollando con los equipos que apoyamos [2] en las reuniones frente al tablero son: 1. ¿Quién es responsable de este ítem? Es importante considerar que el responsable de un ítem es quien se ofreció a velar la ejecución del trabajo asociado a este desde que llega hasta que se entrega. Puede perfectamente haber otros involucrados técnicamente en el desarrollo de éste. 2. ¿Cuánto se ha avanzado en este ítem desde la reunión de pie pasada? 3. ¿Cuándo estimas que pasará al siguiente estado del flujo? ¿Tienes algún impedimento? 4. ¿Qué has aprendido gracias a este ítem?

Visualizando el flujo

Lo primero es visualizar el flujo de trabajo tal cual lo están ejecutando ahora. Parafraseando el chiste que dice que “la diferencia entre Software y Hardware es que al primero sólo lo puedes maldecir”, si el flujo de trabajo no es visible, lo único que se puede presionar es a las personas del equipo de trabajo. Por ello se establece el modelo de “empuje” (PUSH), causa de cuellos de botella y de pérdida de foco debido a los cambios de contexto. Ver Figura 4. Al “vaciar las cabezas” en un tablero que modela el flujo de trabajo actual, ahora todos adquirirán un entendimiento comparti.BIO do de la realidad del proyecto y las Agustín Villena es practicante de la Cultura Ágil desde el 2002, conversaciones en vez de enfocarse la que ha difundido tanto en la industria del software como en en un individuo, ahora sucederán otras profesiones del conocimiensobre dicho tablero. Los probleto. Enseña agilidad en la principal universidad chilena (Universidad mas comienzan a ser evidentes y el de Chile) y ha creado empresas de innovación y liderado áreas de trabajo comienza a verse como resI+D en diversas empresas. Es el ponsabilidad de todos y no de una fundador de la comunidad Ágil y Lean de Chile,www.chileagil. persona específica, incluso cuando cl, Lead Consultant de www. leansight.com y coach ágil de la hay especialidades de por medio. Fundación Digitales por Chile y su portal para ayuda de las víctimas Es así que ahora la atención de todel terremoto chileno de 2010 dos se puede enfocar en el flujo de www.chileayuda.com, caso de solidaridad ágil presentado en la trabajo, más que en presionar a las conferencia Agile2011. personas. Ver Figura 5.

La última pregunta puede parecer innecesaria, pero en nuestra experiencia permite que aparezcan descubrimientos que muchas veces se dejan de lado y que deberían guardarse en el wiki del proyecto. También es importante hacer notar que si se declaran impedimentos, estos deben ser abordados en una reunión posterior con las personas más idóneas para resolverlo. Queda pendiente la pregunta de cuándo es el momento en que una persona debe asumir la responsabilidad de un ítem. Aquí es donde aparece el modelo de arrastre (PULL) que establece que una persona que termina un ítem pasa a escoger del tablero aquello que aparezca más prioritario, que en general será aquello más cerca de terminar.

Limitando el trabajo en curso

Uno de los principios más poderosos de Kanban es limitar el trabajo a medio hacer (WIP- Work in Progress). En el modelo tradicional de 34


.Prácticas Ágil

Figura 3. Múltiples fuentes de requerimientos confunden al equipo.

Figura 4. Si lo que está pasando sólo está en las cabezas de los desarrolla-

Figura 5. Entendimiento compartido del estado actual del proyecto.

dores, entonces serán permanentemente interrumpidos.

Scrum esto se hace de forma implícita al establecer un alcance fijo en el Sprint. En Kanban se le pide al equipo definir un límite de ítems por estado (columna en el tablero), priorizando mover los ítems al próximo estado antes de arrastrar un nuevo compromiso del estado anterior. Una forma de potenciar el foco es que cada persona en la reunión de pie ponga un post-it con su nombre sobre el ítem en el que trabajará ese día, incluso si tiene otros temas abiertos. Esto ayuda a transparentar los compromisos y enfocar la energía.

Lidiando con múltiples interrupciones de varias fuentes de requerimientos

Ya que nos hemos dado cuenta de que es un hecho que el equipo recibirá nuevos requerimientos a lo largo del proyecto, al igual que el slogan del libro “Extreme Programming Explained” de Kent Beck “abrazaremos el cambio”, utilizando un modelo de planificación “justo a tiempo”: aquellos requerimientos que tengan prioridad regular, deberán colocarse a la cola de los que ya fueron planeados. Los de mayor urgencia podrán ponerse primero en la cola de salida, o incluso bloquear de forma explícita un ítem en curso (marcándolo de forma visible en el tablero) para darle paso a la emergencia. Así todos tomarán conciencia del impacto provocado por el intercambio de prioridades. Los distintos tipos de prioridades se denominan “clases de servicio”, y poseen sendas políticas de gestión conocidas por todo el equipo.

Si los múltiples demandantes están compitiendo por quien logra más dedicación del equipo, es importante establecer una mesa de negociación periódica con ellos para establecer criterios en común y uso racional de la capacidad demostrada en el tablero.

Conclusiones

El modelo que hemos descrito ha logrado que decenas de equipos se recuperen del caos luego de una implementación ágil fallida, mejorando la moral y recuperando la capacidad de aprender característica de la agilidad. El proceso que se irá logrando probablemente no será una implementación exacta de la gestión ágil tradicional, sino que será un modelo de gestión “ad hoc” que puede ser enriquecido incrementalmente con prácticas de gestión ágil de Scrum y/o XP. Y gracias a las propiedades transformadoras de Kanban, más resistente frente a las situaciones imprevistas.

Anotaciones [1] Esta regla fue flexibilizada en la edición más reciente (Octubre 2011) del Scrum Guide, hecho poco conocido en la práctica. [2] Este modelo modifica las tres preguntas clásicas de Scrum, en donde se va preguntando persona a persona, y está inspirado en http://agile.luminis.nl/?p=65

35

www.sg.com.mx |

Figura 2. Durante el Sprint/iteración, no se aceptan cambios de alcance.

Software Guru

“El modelo que hemos descrito ha logrado que decenas de equipos se recuperen del caos luego de una implementación ágil fallida”.


.Prácticas Gestión

Mejores Prácticas para el Desarrollo de Software ››Por Alejandro Velázquez

E

l poder identificar y transferir las mejores prácticas al interior de una organización es crítico para poder obtener una ventaja competitiva y es por ello que se ha convertido en una de las técnicas de administración más prominentes a partir de la segunda mitad de los años noventa. Una práctica es un método o técnica utilizada para llevar a cabo una parte de un proceso y describe cómo se realiza. Las mejores prácticas son aquellas técnicas o métodos que permiten incrementar la satisfacción del cliente al incorporar su uso en nuestro proceso. Este artículo está enfocado en las mejores prácticas en el desarrollo general, análisis, diseño y las relacionadas a los requerimientos.

Prácticas aplicables al proceso de desarrollo en general

A pesar de las diferencias particulares entre las distintas metodologías ágiles, existe un conjunto de mejores prácticas que son comunes a la mayoría de ellas y que se aplican al proceso de desarrollo en general. Participación activa de los clientes. Los clientes deben proveer información de manera regular, tomar decisiones de manera constante e involucrarse activamente en el proceso de desarrollo a través de herramientas y técnicas que faciliten su inclusión. Visualización de los requerimientos. Al principio de un proyecto ágil es necesario invertir algún tiempo para identificar el alcance del proyecto y crear la pila inicial de requerimientos organizados por prioridad. Información de una única fuente. Se obtiene al capturar la información en un lugar únicamente. Visualización de la arquitectura. Al principio de un proyecto ágil es necesario un modelado inicial de la arquitectura desde un nivel .BIO de abstracción alto para identifiAlejandro Domingo Velázquez Cruz cuenta con una Maestría en car una estrategia que permita la Sistemas Computacionales por el Instituto Tecnológico de Orizaba. implementación de la solución. Es miembro de la ACM (Association form Computing Machinery), Documentar continuamente. la IEEE y el Consejo Nacional de Elaborar documentación entreCiencia y Tecnología. Cuenta con certificación en Java 6 Fundamengable a través del ciclo de vida tals, RDBMS Conceptos y UML. Ha participado con artículos de del producto de forma paralela a investigación para la Universidad la creación de la solución. Autónoma del Estado de Morelos y el Instituto Politécnico Nacional. Ver más allá del modelado. AlActualmente se desempeña como Ingeniero en Desarrollo de Software gunas veces los requerimientos en la empresa Sensa Control Digital. lap.alejandro@acm.org que tienen una mayor prioridad son complejos, lo cual motiva

que se inviertan esfuerzos para explorarlos antes de comenzar su desarrollo para reducir el riesgo general del desarrollo. Múltiples modelos. Cada tipo de modelo tiene sus fortalezas y debilidades. Un desarrollador efectivo necesitará contar con una variedad de modelos en su caja mental de herramientas que le permitan aplicar el modelo adecuado en la forma más apropiada para la situación actual.

Gestión de requerimientos

Adoptar modelos inclusivos. Para facilitar la participación activa de los clientes con el modelado y la documentación, es necesario reducir las barreras idiomáticas evitando utilizar términos técnicos y utilizando herramientas simples como notas adheribles. Tomar una primera aproximación amplia. Es mejor intentar plasmar la idea general en lugar de enfocarse en algún aspecto particular del sistema, esto permite obtener un conocimiento general del sistema. Tratar de definir la totalidad de los requerimientos al inicio del proyecto suele fallar debido a dos razones principales: • Cuando los clientes reciben la indicación de plasmar todos sus requerimientos en papel al inicio del proyecto intentan definir tantos requerimientos potenciales como les es posible sin saber si realmente serán necesarios. • Los clientes saben que si no lo hacen ahora será muy difícil agregarlos después debido a la práctica común de evitar realizar cambios en etapas avanzadas del proyecto. Tratar los requerimientos como una pila priorizada. Se ubican los requerimientos en una pila ordenados por prioridad de acuerdo a cuando deben implementarse, decisión que debe tomarse en conjunto con el cliente. En caso de requerirse un cambio a un requerimiento debe tratarse como un nuevo requerimiento y agregarse a la pila. Los requerimientos que se encuentran al principio de la pila deben estar bien detallados y en los del final el detalle debe ser escaso. Preferir requerimientos ejecutables sobre documentación estática. En la manera posible, especificar los requerimientos en forma de “pruebas de usuario” que puedan ejecutarse y diseñar como si fueran pruebas de desarrollo ejecutables, en lugar de documentación “estática” no ejecutable. Reconocer que existe una amplia variedad de clientes. Incluso entre los miembros de una misma empresa es común que haya puntos en los que no exista un acuerdo sobre lo que se espera del sistema. Por ello es necesario definir a la persona que servirá de intermediario entre el cliente y el equipo de desarrollo, y que funcionará como la fuente oficial de información y priorización.

36


.Prácticas Gestión

“Así

Análisis y diseño

Los diseños ágiles se van construyendo, no se definen por completo al inicio. El diseño general del sistema se construye conforme avanza el desarrollo del proyecto cambiando y evolucionando constantemente. Los modelos de diseño son apenas lo suficientemente buenos. No es necesario modelar cada detalle en los modelos ya que no es necesario que se encuentren completos, los detalles se refinan durante el proceso de codificación. Cada modelo puede ser utilizado para diversos propósitos. Cada modelo puede ser utilizado para diversos propósitos, por ejemplo un caso de uso puede usarse para modelar la naturaleza esencial de un proceso o para modelar un proceso a detalle. Los diseñadores también deben codificar. Cuando el modelo desarrollado por alguien más se entrega a otra persona para codificarlo hay un riesgo significativo de que no capte sus detalles adecuadamente. Separar las funciones del diseño y la codificación es riesgosa, es mejor contar con especialistas en el equipo que puedan diseñar y codificar.

Probar con código. Nunca debe asumirse que un diseño funciona, sino que debe probarse codificándolo para determinar si funciona. La retroalimentación es importante. Nunca debe olvidarse que es necesario buscar activamente retroalimentación sobre el trabajo que se realiza. Esto permite mejorar el sistema. Utilizar herramientas de generación de código. En caso de que exista la posibilidad de que a partir del diseño se genere automáticamente código, esa posibilidad debe aprovecharse. El diseño es importante y debe realizarse todos los días. Es de suma importancia pensar en lo que se va a construir. A través del diseño es posible obtener una idea general y plasmarla antes de lanzarse a la construcción. Analizar detenidamente el ambiente de implementación. Esto es importante porque permite determinar cuestiones como la portabilidad que tendrá el sistema, lo cual limita la elección de tecnologías para el desarrollo del proyecto. Documentar las partes complicadas del sistema. A través de la documentación generada debemos poder entender el funcionamiento del sistema, así como las razones que sustentan las decisiones de diseño.

Conclusión

Szulanski [1] tiene mucha razón al decir que: “así como las competencias distintivas de una empresa pueden ser difíciles de imitar por otras, sus mejores prácticas pueden ser difíciles de replicar internamente”. El proceso de propagar las mejores prácticas a través de una organización está lleno de desafíos, pero es un esfuerzo que bien vale la pena realizar.

Referencias [1] Szulanski, G. “Exploring Internal Stickiness: Impediments to the transfer of Best Practice Within the Firm”, Strategic Management Journal, Vol. 17, pp. 27-43. [2] R. Chillarege. “Software Testing Best Practices”. IBM Research Center for Software. Engineering, 1999. [3] R. Damelio. “The basics of Benchmarking”. Productivity Press, 1995. [4] S. W. Ambler. “Agile Modeling: Effective Practices for Extreme Programming and the Unified Process”. John Wiley & Sons, 2002. [5] S. W. Ambler. “Disciplined Agile Delivery (DAD): A Practitioner’s Guide to Agile Software Delivery in the Enterprise”. IBM Press, 2012

37

www.sg.com.mx |

Requerimientos independientes de la plataforma. Los requerimientos deben ser independientes de la plataforma para que puedan conservar su simpleza y claridad. Más pequeño es mejor. Los pequeños requerimientos, características e historias de usuario son más fáciles de estimar y de desarrollar que aquellos que son grandes, además de que son más fáciles de priorizar y por tanto de manejar. Trazabilidad. Se refiere a la capacidad de conocer la relación de un requerimiento hacia todos los artefactos que afecta: modelos de análisis, modelos arquitectónicos, modelos de diseño, código fuente y casos de prueba. La trazabilidad debe verse reflejada en una matriz, lo que permite analizar el impacto que tendría en el sistema un cambio de requerimiento. Explicar las técnicas. Todo el equipo debe tener un entendimiento básico de una técnica de modelado, incluyendo los clientes. Por ejemplo, el tomar unos momentos para explicar qué es una tarjeta CRC y por qué se utiliza, puede ayudar a facilitar el proceso. Adoptar la terminología de los clientes. No debemos insistir en que los clientes sean capaces de entender terminología técnica del desarrollo. Para ellos se está construyendo el sistema, por tanto, es su terminología la que debemos utilizar para el modelado del sistema. Un artefacto útil para consolidar está práctica es elaborar y mantener un glosario de términos de negocio.

Software Guru

como las competencias distintivas de una empresa pueden ser difíciles de imitar por otras , sus mejores prácticas pueden ser difíciles de replicar internamente ”.


.Prácticas Calidad

Priorización de Atributos de Calidad en Sistemas Modulares Integrados ››Por Larisa González, Roberkys Martin, Tahirí Rivero

L

a priorización de atributos de calidad es una práctica que contribuye a la reafirmación y consenso de las expectativas de calidad de los involucrados en la creación de un software, las cuales son fundamentales para construir y evaluar la arquitectura que lo soporta. La tendencia actual del desarrollo de software gira en torno a varias corrientes arquitectónicas, dentro de las cuales ha tomado fuerza la construcción de sistemas modulares. Esta arquitectura favorece el mantenimiento y el futuro crecimiento de las aplicaciones. Un software modular permite desarrollar por partes un mismo sistema e integrar los módulos en la medida en que lo impongan las reglas de negocio. En todo caso, cuando se quiere lograr que un software posea los índices de calidad exigidos por el cliente y sea de la aceptación de este, es fundamental prestarle mucha atención a la definición y priorización de atributos de calidad. Aunque la funcionalidad y otras cualidades están estrechamente relacionadas, lo que sucede en ocasiones es que en lograr la funcionalidad se centran todos los esfuerzos en el esquema de desarrollo. Como muestra la Figura 1, la calidad integral de un sistema modular es difícil de determinar una vez que se integren módulos. Aunque un sistema posee un conjunto de requisitos no funcionales de atributos de calidad de manera general (que afectan a todo el sistema), también posee un conjunto de requisitos no funcionales a nivel de módulos, que hacen que la calidad integral del sistema varíe en la medida en que este vaya integrando sus partes.

Materiales y Métodos

Para la realización del presente trabajo se utilizaron los métodos científicos histórico-lógico, hipotético-deductivo y la observación. Se emplearon la Media aritmética y la Desviación estándar como métodos estadísticos para las bases teóricas de la propuesta. Además se contaron con materiales las metodologías y métodos asociados a la evaluación de la arquitectura del software que se describen a continuación.

Modelo ISO/IEC 9126

El estándar ISO/IEC 9126 ha sido desarrollado en un intento de identificar los atributos clave de calidad para un producto de software. Este estándar es una simplificación del Modelo de McCall e identifica seis características básicas de calidad que pueden estar presentes en cualquier producto de software. La Norma de calidad ISO/IEC 9126-1 tiene como puntos a favor que: • Es una normativa respaldada por una organización reconocida internacionalmente en la temática de estandarización de cali.BIO dad de productos y con un alto Larisa González Alvarez, Roberkys Martin Cruañes y Tahirí Rivero Alprestigio en ese campo. varez son profesores en la Universidad de las Ciencias Informáticas en • Ha sido acogida por Cuba como La Habana, Cuba. norma regulatoria en cuanto a calidad de productos de software.

• Cuenta con una amplia y detallada definición de los elementos de calidad de un producto de software y además trae descrita una métrica en correspondencia para la determinación final de niveles de calidad.

Evaluación de arquitectura de software

A la arquitectura de un software se le atribuye la responsabilidad de lograr el cumplimiento de cualidades o características de calidad, más allá de lo meramente funcional. Las decisiones arquitectónicas que se tomen estarán entonces dirigidas a la complacencia de los requisitos funcionales y no funcionales que establezca cada cliente. Evaluar la arquitectura de un software es un medio para la obtención de indicadores de calidad del producto que bien pueden servir para: 1. Determinar si el software que se está construyendo respalda los requisitos funcionales y no funcionales que le fueron atribuidos. 2. Decidir la mejor opción entre arquitecturas candidatas. 3. Decidir cuál software, de varios posibles, respalda mejor los requisitos de un cliente.

Priorización de atributos de calidad

En la construcción y evaluación de la arquitectura es muy importante conocer las prioridades a las que debe responder la línea base del software. Cada decisión arquitectónica tomada en beneficio de algún requisito o atributo de calidad puede simultáneamente incidir positiva o negativamente en cualquier otro, de ahí que establecer prioridades contribuya a la obtención de aplicaciones con calidad. Para los efectos de la presente investigación se señalan tres corrientes fundamentales: 1. La determinación cualitativa de prioridades, tal como propone el método ATAM mediante la creación de un árbol de utilidad. Los atributos de calidad que componen el sistema de “utilidad” son sacados, especificados hasta el nivel de los escenarios, anotados con el estímulo y la respuesta, y priorizados. En este paso se propone presentar a las partes interesadas un árbol de atributos, teniendo en cuenta su priorización), y en base a los resultados que se vayan obteniendo (inclusión o eliminación de atributos, cambio en priorización) entonces el equipo de arquitectos elabora el árbol de utilidad al nivel de escenarios. 2. La determinación cualitativa de prioridades enfocada a la arquitectura orientada a componentes, tal como propone el método MECABIC. Este método proporciona un árbol de utilidad inicial específico para la arquitectura de software basada en componentes a partir del cual seleccionan un conjunto de escenarios de interés, el cual está basado en el modelo de calidad ISO 9126-1 para arquitecturas de software propuesto por Losavio. 3. La determinación cuantitativa de prioridades. Asignaciones de valores numéricos y porcientos de cumplimiento para cálculos de índices arquitectónicos que permitan conocer el cubrimiento de la arquitectura respecto a sus atributos de calidad asociados.

38


.Prácticas Calidad

“La

tendencia actual del desarrollo de software gira en torno a varias corrientes arquitectónicas”.

Resultados y discusión

El primer paso en la búsqueda de un equilibrio de los atributos de calidad potenciados con las decisiones arquitectónicas, lo constituye la priorización de dichos atributos de manera que: 1. Posibilite la toma de decisiones arquitectónicas, para el logro del equilibrio de los factores de calidad, según su orden de prioridad. 2. Establezca un posible orden de prueba del cumplimiento de los atributos de calidad durante la evaluación, en función de prioridades. Teniendo en cuenta estos elementos, se propone establecer un mecanismo cuantitativo para la priorización que combine los criterios de arquitectos e interesados.

Priorización de atributos por subsistemas

Para los efectos de esta investigación, la Importancia de lograr el requisito, es un concepto que va a estar sujeto a la posición de cada votante con respecto a la aplicación, la cual genera intereses diversos. Es por esta razón que, los criterios subjetivos de cada persona involucrada en la priorización, no son manejados sino el interés final de los mismos en el logro de cada requisito, en una escala sujeta a su nivel de importancia. El rango de valores admisibles para este criterio es: 5: Muy importante 4: Importante 3: Medianamente importante 2: Poco importante 1: No importante Del desglose anterior se deduce que: a mayor valor, mayor importancia. Una vez obtenidos los votos de cada uno de los interesados y los arquitectos, se tendría

Luego, se hace necesario conocer las prioridades, que se irán derivando de las atribuidas mediante votación, para el resto de los niveles del árbol. Para ello, en el caso del cálculo de prioridad de los sub-atributos se emplea el criterio de la media aritmética, expresado mediante la fórmula: = (ΣXi * fi ) / fi Siendo: Xi: Valores de importancia. fi: Cantidad de requisitos asociados a cada valor.

Análogamente se calcula la media para el sub-atributo Interoperabilidad. Completando el árbol se tendría: 1. Funcionalidad (5.00) Seguridad (5) El sistema concederá acceso a cada usuario autenticado solo a las funciones que le estén permitidas, de acuerdo a la configuración del sistema. (5) El sistema manejará mecanismos de encriptación para las contraseñas de los usuarios. (3.50) Interoperabilidad (3) El sistema permite importar información proveniente de sistemas externos para operar con ella, al mismo tiempo que permite exportar datos a sistemas externos. (4) El sistema permitirá importar información en los formatos Word y Excel. Para el cálculo de la prioridad de los atributos, como máximo nivel del árbol, se hace uso de la media aritmética, esta vez teniendo en cuenta las prioridades de todos los requisitos asociados a sus sub-atributos. Siguiendo la ejemplificación del árbol anterior, quedaría como en la Tabla 2.

Siguiendo el ejemplo del árbol anterior, el cálculo quedaría como se muestra en la Tabla 1.

Tabla 2. Uso de la media aritmética para el cálculo de prioridad del atributo Funcionalidad.

Tabla 1. Uso de la media aritmética para el cálculo de prioridad del sub-atributo Seguridad.

39

Tomando los datos de la Tabla 2, el cálculo de la prioridad del atributo Funcionalidad quedaría:

Software Guru

ma y su descomposición en subsistemas (módulos).

Tomando como Rango de Priorización los posibles valores que se encuentran en la priorización de todos los requisitos. Para el ejemplo mostrado en la Tabla 1 el cálculo de la prioridad del subatributo Seguridad quedaría: = (ΣXi * fi ) / fi = 10,00 / 2 = 5,00

www.sg.com.mx |

Figura 1. Comportamiento de la calidad de un siste-

una priorización de lo que se pudiera denominar “hojas” en el contexto de un árbol de calidad tal y como lo representa la ISO/IEC 9126-1, dicho árbol estaría compuesto (en orden descendente) por: atributos, sub-atributos y RNF (Requisitos No Funcionales) de atributos de calidad con sus respectivas priorizaciones. Esto quedaría: 1. Funcionalidad 1.1. Seguridad (5) El sistema concederá acceso a cada usuario autenticado solo a las funciones que le estén permitidas, de acuerdo a la configuración del sistema. (5) El sistema manejará mecanismos de encriptación para las contraseñas de los usuarios. Interoperabilidad (3) El sistema almacenará información proveniente del Sistema Mantenimiento Vehicular, al mismo tiempo que enviará información a este, todo de manera automática y transparente para el usuario final. (4) El sistema permitirá importar información en los formatos Word y Excel.


.Prácticas Calidad

“Los atributos de

calidad son elementos claves a tener en cuenta para el desarrollo de una arquitectura sólida”

Tabla 3. Agrupación de valores para atributos.

= (ΣXi * fi ) / fi = 17,00 / 4 = 4,25

Priorización a nivel de sistema

Una vez establecida la prioridad de los atributos de calidad por cada subsistema, es posible determinar la prioridad general del sistema, tomando para el cálculo de esta dos grupos de valores: 1. Los valores de prioridad calculados para cada subsistema. 2. Los valores de prioridad de atributos y subatributos en base a los requisitos no funcionales generales del sistema. El segundo grupo de valores se calcula análogamente al proceso de cálculo de prioridades por subsistema, o sea, haciendo uso de la media aritmética. Una vez calculados ambos grupos, los valores se agrupan como en la Tabla 3. La Tabla 3 muestra un ejemplo de la agrupación de valores para atributos, pero de esta misma manera habrá de hacerse para los subatributos. Para determinar la prioridad final del sistema, tanto de atributos y sub-atributos se emplea igualmente la media aritmética, teniéndose siempre en cuenta que, a mayor valor de media obtenido, mayor será la prioridad. En aquellos casos en que los valores obtenidos coincidan para más de un indicador, se propone emplear la Desviación estándar, como criterio estadístico que permite acortar la brecha de variaciones entre los valores de prioridad para un mismo atributo a calcular. Haciendo uso de este criterio, será posible distinguir cuál de los indicadores con igual valor de media debe tener mayor prioridad, en este caso sería el de menor desviación de sus valores de origen. La desviación estándar se utiliza cuando hay varios resultados posibles y estos están dispersos, lo cual acarrea inseguridad en el resultado final. Mientras más concentrados estén los resultados, habrá más confianza en el resultado.

Lo anterior se traduce: a menor valor calculado entre una serie de elementos con valores dispersos, mayor será la probabilidad de ocurrencia de ese elemento. Siendo la Desviación estándar igual a la raíz cuadrada positiva de la varianza, se calcula entonces el valor de la última mediante la fórmula: S2 = Σn (Xi - Ẋ)2 / n, donde: S2 = Varianza Xi = Valor del atributo en cada caso. Ẋ = Valor de la media del conjunto de valores asociados al sub-atributo/atributo. n = cantidad total de valores analizados. Si se toman los valores de muestra de la Tabla 3 y se calcula la Varianza para los atributos confiabilidad y usabilidad, quedaría: Confiabilidad S2 = ((3.3 – 3.7)2 + (3.9 – 3.7)2 + (3.9 – 3.7)2 + (3.7 – 3.7)2) / 4 S2 = (0.16 + 0.04 + 0.04 + 0) / 4 = 0.06 S = √ S2 = √ 0.06 = 0.24 Usabilidad S2 = ((3.9 – 3.7)2 + (3.8 – 3.7)2 + (3.6 – 3.7)2 + (3.5 – 3.7)2) / 4 S2 = (0.04 + 0.01 + 0.01 + 0.04) / 4 = 0.025 S = √ S2 = √ 0.025 = 0.16

Sin embargo, no basta con eliminar los conflictos entre intereses y características de sistema, pues siguen quedando fuera de análisis los conflictos propios que se generan entre atributos.

Conclusiones

Los atributos de calidad son elementos claves a tener en cuenta para el desarrollo de una arquitectura sólida, por lo cual conocer sus prioridades es un elemento fundamental que permitirá discernir en el medio de los conflictos que generan las decisiones tomadas por los arquitectos para alcanzarlos. El empleo de criterios estadísticos en la priorización de atributos permite valorar todas las expectativas de calidad de los involucrados en la creación de un software, de manera que se tengan en cuenta todas las opiniones y las variaciones entre estas.

Referencias: [1] Ambe, Mildred N. y Vizeacoumar, Frederick. Evaluation of two architectures using the Architecture Tradeoff Analysis Method (ATAM). [pdf] 29 de abril de 2002. [2] Billy Reynoso, Carlos. (Marzo de 2004). Introducción a la Arquitectura de Software. Buenos Aires. [3] Camacho, Erika, Cardeso, Fabio y Nuñez, Gabriel. Arquitecturas de software. Guía de estudio. abril de 2004. [4] Collabera, V. Gnanasekaran. Evaluating Application

Los cálculos realizados arrojan un menor valor para el atributo Usabilidad, por lo cual la prioridad mayor en este caso deberá ser para ese indicador. La priorización entonces quedaría (recuérdese que a mayor valor, mayor prioridad): 6. Funcionalidad 5. Usabilidad 4. Confiabilidad 3. Eficiencia 2. Portabilidad 1. Mantenibilidad

Architecture, Quantitatively. [html] s.l. : The Architecture Journal, Marzo de 2010. Journal 24. [5] Gómez, O. Evaluando la Arquitectura de Software. Parte 1. Panorama General. 40-41. México: Brainworx S.A. de C.V. Enero-febrero de 2007. [6] González, Aleksander, y otros, y otros. Método de Evaluación de Arquitecturas de Software Basadas en Componentes (MECABIC). [pdf] Caracas : Laboratorio de Investigación en Sistemas de Información (LISI). Universidad Simón Bolívar, 2005. [7] González Alvarez, Larisa y Leyet Hernández, Osmar. (2010). Modelo de evaluación de arquitectura de software

Con esta propuesta, se armonizan las solicitudes y expectativas de calidad de arquitectos e interesados, con características de los grandes sistemas de software: modulares e integrados. 40

del Proyecto ERP-Cuba. V Conferencia científica UCIENCIA. Febrero de 2010. [8] Panovski, G. Product Software Quality. Master’s Thesis.Eindhoven. Febrero de 2008.


.contenido patrocinado

Conoce el Modelo de Mejora CMMI

nas prácticas ya que es un marco de referencia que sirve para priorizar acciones en la mejora de procesos de la organización y permite, además, enfatizar la alineación de los procesos de acuerdo a los objetivos que se tienen planeados dentro del plan de negocios de la compañía. El objetivo principal de este modelo es verificar y validar la calidad del software, garantizando dar seguimiento a los atributos de funcionalidad, fiabilidad, usabilidad, eficiencia, mantenibilidad, portabilidad y conformidad. Esto conlleva una serie de beneficios palpables dentro de la empresa, dentro de los cuales podemos encontrar los siguientes: • Sustentar a través de los procesos el logro de los objetivos de negocio. • Mejorar el rendimiento de una organización resolviendo problemas, logrando así disminuir los costos o conocerlos. • Predecir mejor la fecha de entrega del producto o servicio • Mejorar la productividad de la gente, ya que todo los involucrados saben qué actividades o tareas deben realizar • Disminuir los defectos de los procesos de producción logrando así tener una mayor satisfacción de los clientes. Pero antes de considerar la implementación de CMMI dentro de su compañía hay algunos puntos que deben ser considerados. Primero que nada es necesario tener la voluntad de querer mejorar como hace su trabajo hoy, buscar resolver aquello que hoy le duela a la empresa (defectos en el área de producción, entregas tardías, etc.) y entender que esos problemas los puede resolver implementando adecuadamente este modelo de mejora.

Es de suma importancia considerar la implementación de CMMI como un proyecto más dentro de la organización ya que como todo proyecto requiere tiempo, esfuerzo y recursos.

Para ayudar a nuestros clientes en este proceso, en Qualtop hemos desarrollado una estrategia de trabajo que se basa principalmente en desarrollar un plan de desarrollo que soporte y esté alineado a los objetivos de negocio, para generar un plan de trabajo que no sea invasivo, sino que se adapte a la estructura ya establecida. Esto lo logramos por medio de procesos de fácil aceptación y que además sean ágiles, no burocráticos. Llegamos al final propuesto a través de pequeñas iteraciones de mejora que permiten ver resultados inmediatos. En Qualtop buscamos siempre dar el valor agregado a nuestros servicios acompañando al cliente durante todo el proyecto, asesorándolo a través del coaching, sumándonos a su equipo de trabajo con iguales responsabilidades en el logro de resultados, trabajando juntos en diferentes workshops con técnicas innovadoras y entretenidas que nos permitan lograr con éxito el cambio y asegurar la satisfacción final de nuestros clientes.

Mejores Prácticas

• Identificar cuáles son los objetivos de negocio • Mantener las cosas simples • Utilizar el sentido común • Identificar agentes de cambio • Entrenar a la gente. Ayudarla a ejecutar su trabajo de manera correcta • Promocionar y publicar los beneficios • Tomar conciencia del esfuerzo requerido tanto en tiempo como en recursos

Para cualquier consulta o comentario contáctanos en @QualtopMx y contacto@qualtop.com 41

www.sg.com.mx |

CMMI es un modelo que integra un conjunto de bue-

Software Guru

››Por Bettina Pérez, Directora de Operaciones en Qualtop


.COLUMNA Tecno-Lógico

Reinventando la Oficina D

efinir lo que es una oficina en estos días no es tan fácil como solía ser: hace algunos años una oficina era simplemente “un cuarto donde trabaja un grupo de personas”, una evolución natural de lo que antes eran talleres o áreas de trabajo, con escritorios, salas de juntas y despachos privados. Con la llegada de la Cultura Digital, los conceptos sobre cómo trabajamos han impactado también nuestra percepción de lo que es una oficina, desde cómo está diseñada, quién está en ella, dónde se encuentra y la razón por la que siquiera necesitamos una.

La interacción social

Mauricio Angulo es programador desde 1989 divulgador, ávido escritor y emprendedor. Actualmente es CEO y fundador de Tesseract Space donde realiza funciones de asesor y consultor de innovación tecnológica, mercadotecnia digital y experiencia de usuario.

En principio, la idea esencial de una oficina es centralizar los recursos humanos y técnicos de una empresa para aumentar su productividad en términos de tiempo de ejecución, por lo que si todos los recursos de un negocio se encuentran reunidos en el mismo lugar, el tiempo y esfuerzo necesario para que interactúen es menor y la sinergia es mayor. Adicionalmente, el desempeño de los empleados aumenta (en teoría) cuando sus supervisores trabajan con ellos en el mismo espacio. Los empleados del negocio tienen un beneficio personal adicional: al poder tener un lugar separado de su casa para realizar sus labores, se cuenta con la oportunidad de separar su vida personal de su trabajo y tener (de nuevo, en teoría) un mejor balance entre vida-trabajo, pudiendo asignar horarios para su trabajo y para descansar. Un beneficio importante para la empresa basada en la oficina es que el espacio crea una mayor integración entre las personas que trabajan en ella, permitiéndoles sentirse identificados con la cultura de la empresa —es decir, los principios sobre los cuales fue creada y opera el negocio—, creando entre ellos, sus compañeros de

oficina y la misma empresa un fuerte vínculo emocional que con el tiempo convierte a los empleados en una pequeña tribu con ideas, pensamientos y objetivos alineados en el beneficio del negocio.

Nuevos roles, nuevas reglas

La estructura que provee la oficina funciona para empresas pequeñas o locales, pero cuando la empresa empieza a crecer más de cierto límite (más allá del primer ciento de empleados) los beneficios empiezan a desaparecer: en una estructura grande la administración debe invertir más tiempo y esfuerzo para mantener cohesionado al equipo y evitar que se empiece a dividir en pequeñas tribus que compiten por recursos y reconocimiento. El mismo problema con el concepto de oficina aparece cuando la empresa comienza a crecer geográficamente y es necesario diluir la fuerza de trabajo en un territorio, empiezan a surgir pequeños clanes dentro de la empresa con ideas encontradas, que luchan entre sí por recursos. La fracturación del equipo de una oficina también puede ocurrir debido a nuevos roles que obligan a los empleados a pasar gran parte de su tiempo lejos del espacio de trabajo ya sea fuera de la oficina o aislados en cubículos personales, generalmente personal ejecutivo, de ventas o soporte en sitio, lo que torna poco rentable la inversión de un lugar de trabajo físico en la oficina, que al eliminarlo excluye a este personal de las dinámicas sociales-laborales, para detrimento de la empresa. Algo similar ocurre —en ambos sentidos— con proveedores externos del negocio. Si trabajan suficiente tiempo con el equipo de una oficina se volverán parte, al menos en ideología, de la tribu social de la empresa. Por el otro lado, al estar fuera del entorno físico siempre serán considerados como “externos” y 42


››“Los espacios colaborativos virtuales pueden facilitar la interacción con clientes y proveedores”.

por lo tanto, más que parte del equipo de la oficina serán considerados “turistas” de la misma y nunca serán asimilados. Las nuevas dinámicas económicas y sociales afectan de manera considerable los beneficios que trae la oficina a una empresa y aumentan el costo para mantener a los equipos cohesionados y trabajando juntos, además de que afectan y dividen la cultura de la empresa.

››Por Mauricio Angulo

www.sg.com.mx |

Una oficina es tanto un fenómeno de diseño y arquitectura como un fenómeno social. Para las empresas que se dedican al software y la información, la oficina es cada vez menos un asunto de un espacio físico y más un espacio donde las ideas puedan crearse, fluir y compartirse. Las herramientas digitales, desde email, chats, sistemas de videoconferencia, redes sociales, dispositivos móviles y plataformas de colaboración permiten a los empleados de estas empresas la capacidad de trabajar desde cualquier lugar y en cualquier momento sin necesidad de estar atados a un espacio físico, pero con la ventaja de que la interacción es constante para los asuntos importantes. Si bien el espacio físico todavía da un valor importante a la creación y desarrollo de una cultura propia dentro de una empresa por medio de la interacción directa y casual, la creación de espacios colaborativos virtuales (es decir, una “oficina en la nube”) permite a la empresa ampliar el rango de alcance que actualmente está limitado por la geografía para incluir a colaboradores en cualquier parte sin necesidad de recurrir a gastos de traslado o de crear nuevas oficinas. También las personas que son empleados de empresas proveedoras pueden integrarse a las dinámicas de una oficina digital e integrarse directamente a las conversaciones y dinámicas sin necesidad de estar físicamente colocados en una oficina física, reduciendo por un lado los riesgos de filtraciones de información y permitiéndole al proveedor seguir en la dinámica de su propia oficina. Esta dinámica también puede aplicarse con algunos clientes a los que al integrarlos en el proceso de desarrollo se hacen más transparentes los procesos. Esto puede servir para aumentar la relación de confianza y estrechar más los lazos hacia una relación duradera, en lugar de la dinámica de “caja negra” en la que el cliente no se entera de cómo operan sus proveedores. Un efecto adicional es que se pueden reducir de manera drástica la cantidad de reuniones, juntas y llamadas para revisión de un proyecto porque los estatus siempre están disponibles, aumentando la productividad en todos los aspectos de un negocio. Es necesario reinventar la oficina como concepto, como práctica de negocios y de trabajo, no únicamente porque la idea que hemos heredado de lo que debe ser una oficina ya no funciona en el contexto de la cultura digital en la que vivimos, sino también porque los modelos abiertos ayudarán a los empresarios a reclutar talento y a crear una cultura auténtica en las empresas que ayude a retenerlo.

Software Guru

La oficina en la nube


.COLUMNA Programar es un Estilo de Vida

Voto Electrónico, 2012

E

scucho el clamor de nuestros lectores, después de un proceso electoral más y de haber soportado nuevamente meses de saturación de candidatos en los medios. Sin embargo, este es el momento justo para analizar una importante parte del proceso electoral en la cual los desarrolladores de software, expertos en seguridad y administradores de sistemas podemos ejercer influencia sobre el rumbo que sigue el país y darnos el lujo de ignorar nuestro rol de profesionales hablaría muy mal de cada uno de nosotros. Es así que presento esta actualización del estado y reflexión acerca de lo que puede esperarle a nuestro país de avanzar las propuestas de adopción del voto electrónico. Los lectores asiduos de SG podrán recordar que abordamos ya este tema en el número 27 (febrero del 2010) [1]. Desde entonces, tuve oportunidad de participar en algunas publicaciones [2] en las que expliqué los puntos básicos acerca de por qué toda implementación que pueda hacerse de voto electrónico, sin importar las mejores intenciones o incluso la pericia técnica del proveedor, no hay manera de que ésta resulte más confiable y garantice mejor cuidado de los derechos del votante que una revisión hecha por humanos de votos emitidos en papel.

Urnas electrónicas

Gunnar Wolf es administrador de sistemas para el Instituto de Investigaciones Económicas de la UNAM y desarrollador del proyecto Debian GNU/Linux. http://gwolf.org

Cuando nos hablan del voto electrónico, casi siempre pensamos directamente en las urnas electrónicas, estaciones de propósito específico diseñadas y configuradas para recibir directamente cada uno de los votos de los electores. Sus proponentes argumentan a su favor tres razones principalmente: reducción de costos, tiempo de entrega de resultados y mayor confiabilidad en el proceso. Estos tres puntos, como lo explico en los artículos citados anteriormente, se vienen abajo incluso ante una revisión somera del tema. En México, el tema de las urnas electrónicas no nos resulta nuevo. Los primeros intentos fueron pilotos limitados en el Distrito Federal, en el año de 2003, y en Coahuila en 2005, para las elecciones locales. En ambos casos, las urnas fueron desarrolladas en casa y aplicadas a muy pequeña escala. Para Coahuila, en 2008 la experiencia se repitió en 11 municipios. Las urnas se emplearon en 10 de ellos, pero en San Buenaventura, los partidos PAN, PANAL y PT impidieron su implementación dado que argumentaron podría resultar fraudulenta[3]. Una muy extraña característica del voto en Coahuila es que, para “asegurar” que todos los votos correspondie-

¿Cómo vamos?

ran con la voluntad ciudadana, los votantes tenían que emitirlo por vía electrónica y firmar el comprobante emitido por la urna, depositándolo en una segunda urna para el eventual caso de un recuento. Esto, obviamente, viola el principio de la secrecía del voto y permite el control corporativo o la compra del voto. En el Distrito Federal, tras años de aparente silencio, el Instituto Electoral local (IEDF) intentó implementar urnas electrónicas de manufactura industrial. Tras haber firmado contrato con la empresa Pounce Consulting para la adquisición de 1000 urnas electrónicas, a mediados de abril tomó la decisión de rescindirlo[4] por demoras injustificables en la entrega de los equipos, así como por 28 fallas como: ensamblados incompletos, chapas trabadas, ranuras abiertas en el depósito de votos, micas transparentes, puertos extraíbles sin protección, compartimiento del cable sin tapa. En este caso, lo destacable es que aunque grupos de académicos de la UNAM y el IPN localizaron estas 28 fallas, lo que verdaderamente detuvo la implementación fue la demora en la entrega de los equipos. Así que es muy probable que el IEDF continuará intentando implementar urnas electrónicas. Por último, veamos el caso de Jalisco: El Instituto Electoral y de Participación Ciudadana (IEPC) aprobó que para la votación local se empleen urnas electrónicas en los distritos 1 y 17 y en el municipio de Gómez Farías, para un 11% del padrón total. Tras una licitación muy cuestionada[5] la empresa ganadora fue también Pounce Consulting. En este caso, al igual que en el DF, la empresa demoró la entrega de las urnas en casi seis semanas, apenas entregando a tiempo cuando ya se analizaba la cancelación del contrato. Previo a la elección, se realizaron cinco simulacros para presentar la urna a la población y para ir corrigiendo los problemas que presentaran, dentro de los cuales al que más seguimiento se le dio fue al que afectaba la secrecía del voto (podía verse el testigo impreso de los votantes anteriores). Las variaciones eléctricas causaron, al menos en una ocasión, impresión descontrolada de votos y en los simulacros se han reportado urnas pre-cargadas[6]. El modelo de urna empleado en Jalisco incluye no sólo el acopio de la votación, sino la transmisión de los resultados por vía de telefonía celular a las cabeceras distritales. Esto, si bien está protegido por criptografía, abre nuevas vías de ataque: No sólo cada una de las urnas se conecta a la red celular (aunque sea sólo por breves instantes), sino que los equipos centrales deben estar a la escucha. Esto permite no sólo un 44


.COLUMNA

Programar es un Estilo de Vida

››“Darnos el lujo de ignorar nuestro rol de profesionales hablaría muy mal de cada uno de nosotros.”

Como sabemos, existe una gran cantidad de mexicanos que residen en el extranjero y un porcentaje importante se encuentra en una situación de precariedad legal por lo que no pueden registrarse como residentes legales o desplazarse libremente en su país de residencia. Así que el modelo que requiere registrarse y desplazarse hasta una embajada o consulado no aplica para ellos. Se han planteado dos modalidades para realizar el voto no presencial: El voto en línea y el voto postal. Antes de analizar estas alternativas, es muy importante explicitar a lo que renunciamos con ambas: perdemos la garantía de que el votante sea verdaderamente quien dice ser. En caso del voto postal, es bastante probable que el votante correcto reciba el paquete con las boletas en la dirección indicada, pero mantiene la necesidad de registrar una dirección postal permanente, lo cual rompe con el planteamiento de origen. En el caso del voto electrónico, la perspectiva es peor aún, porque si bien el potencial elector podría registrarse presentando los datos de su credencial electoral, las instrucciones y contraseña le son enviadas por correo electrónico. La confiabilidad y la confidencialidad de los proveedores de servicios de correo electrónico, especialmente de los gratuitos (que son por mucho los más frecuentemente utilizados) no garantizan que sea genuinamente el votante quien los revisa, especialmente en el caso de la población con menor dominio de la tecnología.

Conclusiones

Si bien he definido mi postura al respecto desde hace tiempo, he buscado expertos en seguridad en cómputo independientes (no asociados con empresas vendedoras de sistemas del rubro) dispuestos a argumentar a favor del voto electrónico, y honestamente no he encontrado a ninguno. Sin embargo, el voto electrónico tiene un atractivo desde un punto de vista político y hay un gran negocio en ofrecer soluciones basadas en él. Nosotros, como profesionales del ramo, más que buscar la oportunidad de negocio espero sepamos responder con los argumentos que hacen del voto electrónico un verdadero peligro para la democracia. Los vendedores de urnas tienden a argumentar que ha habido elecciones exitosas con voto electrónico y justifican los fracasos indicando que fueron fallos puntuales de implementación. Sin embargo, mi punto es que es precisamente imposible hacer una implementación tan segura y confiable como lo que plantean reemplazar. En una prueba piloto, o incluso en una primera implementación, es muy poco probable que se presente un ataque. En ambos casos, estaríamos hablando de implementaciones muy controladas, en que prácticamente si se registra una falla es por un error más que por un ataque. Desde hace algunos meses hemos estado alimentando al Observatorio del Voto Electrónico[8]. Invito a los interesados a emplearlo como fuente de información, y a unirse a nuestro trabajo de análisis y difusión.

››Por Gunnar Wolf

Referencias: [1] “Voto electrónico, analizando su conveniencia”. http://swgu.ru/sg37r6 [2] “Voto electrónico, ¿quien tiene realmente la decisión?” http://swgu.ru/sg37r7 [3] “Suspenden voto digital en San Buenaventura”. http://swgu.ru/sg37r8 [4] “Urnas electrónicas tienen 28 fallas”. http://swgu.ru/sg37r9 [5] “Notas de una escandalosa licitación que arriesga el voto electrónico”. http://swgu.ru/sg37r10 [6] “Todavía es viable aplicar el voto electrónico en el estado”. http://swgu.ru/sg37r11 [7] “El IEPC desmiente irregularidades en votación electrónica de distrito 1”. http://swgu.ru/sg37r12 [8] Observatorio del voto electrónico. http://evoto.iiec.unam.mx

45

Software Guru

Voto no presencial

Lo que es más: En un escenario como el ampliamente impugnado en las elecciones recién ocurridas, la compra de votos se vuelve trivial. Basta con que el votante entregue su contraseña en los días previos al operador electoral y que éste verifique el poder votar por su propio partido, para la entrega de los recursos económicos. En una plática informal con personal del IEDF, me indicaron estar al tanto de esta realidad, pero dada la cantidad de población registrada era un riesgo aceptable: Para este año, hubo 10,786 empadronados los cuales corresponden únicamente el 0.13% del padrón, pese a la grandísima campaña en medios. De ellos, apenas 4192 optaron por hacerlo en línea.

www.sg.com.mx |

ataque que comprometa el sentido de los votos emitidos, sino que abre la puerta a ataques de negación de servicio. Un problema reportado en cerca del 20% de las urnas fue, precisamente, la falta de cobertura celular. El distrito 1 de Jalisco cubre la parte norte del estado, una zona de profundas barrancas y de una gran cantidad de poblados de muy difícil acceso, los cuales no tienen cobertura de telefonía celular. El planteamiento de realizar las votaciones con urnas que contemplan la transmisión de datos por esta vía no sólo revela una profunda desconexión respecto a la población objetivo a cubrir, sino que, al presentar distintas vías para que se lleve a cabo el acopio de la información abre un vector más para el ataque, ya no tanto técnico sino a través de la ingeniería social. Un punto alarmante de la implementación en Jalisco es el traslado de la figura legal de lo que constituye un voto. Si bien las urnas empleadas emiten testigos para asegurar la posibilidad de un recuento (cabe mencionar, no es universalmente aceptado que esto sea garantía suficiente), el documento de validez legal no es el papel testigo sino el estado interno de la memoria de la urna electrónica. En caso de presentarse un recuento, citando al consejero electoral Carlos Martínez Maguey: “existe la posibilidad de que se puedan contar los testigos de voto, no es vinculante el resultado del testigo de voto, pero siempre nos dará el mismo resultado que la base de datos”. Los votos están en la memoria, y el papel únicamente da fe de ello. Esto significa que en Jalisco se ha legalizado la desmaterialización del voto. Y si bien el proceso electoral mexicano todavía da para muchas impugnaciones, hay reportes de inconsistencias[7] entre el número de votantes del IFE y del IEPC en la misma casilla.


.TECNOLOGÍA Infraestructura

Simulación del Estándar de Cifrado ››Por Sergio A. Tovar, José Velázquez, Gina Gallegos-García

D

esde hace algunos años, la confidencialidad de las comunicaciones telefónicas entre las entidades participantes ha sido un tema en constante investigación. Cuando la red es homogénea, la elección del tipo de cifrado a utilizar para una aplicación de telefonía es simple. Sin embargo, dicha elección no es tan clara cuando la red es heterogénea como en el caso de voz sobre IP (VoIP). Esto se complica aún más cuando la red heterogénea se compone de enlaces inalámbricos. Debido a ello, este artículo presenta la simulación del AES Modo Contador con el fin de garantizar la confidencialidad de las comunicaciones VoIP de una manera eficiente y con mejor calidad que otros métodos de cifrado utilizados actualmente. Voz IP ó VoIP, es un grupo de recursos que hacen posible que una señal de voz viaje a través de Internet empleando el protocolo IP. Esto significa que se envía la señal de voz en forma digital, en paquetes, en lugar de enviarla en forma analógica a través de la red telefónica tradicional. Los protocolos de Voz sobre IP se usan para enviar las señales de voz sobre la red IP y definen la manera en que los codecs se conectan entre sí y hacia otras redes. Los codecs se encargan de convertir una señal de audio analógica a un formato digital para transmitirla y luego convertirla nuevamente a un formato descomprimido de señal de audio para poder reproducirla. Los codecs realizan esta tarea de conversión tomando muestras de la señal de audio miles de veces por segundo y dependiendo del códec que se esté utilizando, se tienen diferentes frecuencias de muestreo de la señal en VoIP.

Criptografía

El objetivo de la criptografía es permitir a dos entidades comunicarse a través de un canal inseguro, sin que una tercera entidad sea capaz de entender lo que se está transmitiendo [1]. De manera general existen dos tipos de criptografía: la simétrica y la asimétrica. La criptografía simétrica se basa en una llave secreta que es compartida entre emisor y receptor, y que se usa tanto para cifrar como descifrar. La figura 1 muestra la etapa de cifrado (EK) y descifrado (DK) de un mensaje en un medio de transmisión utilizando la llave simétrica K.

Figura 1. Criptografía Simétrica.

La criptografía asimétrica, en cambio, requiere de dos llaves: una denominada llave pública y otra llamada llave privada [2]. Ambas están relacionadas matemáticamente, y es computacionalmente difícil conocer la llave privada a partir de la pública. Si el usuario A quiere enviar un mensaje al usuario B entonces utiliza la clave pública del usuario B para encriptar el mensaje y enviarlo, dicho mensaje solo puede ser des-

Avanzado para VoIP

encriptado utilizando la llave privada del usuario B. La figura 2 ilustra este proceso.

Figura 2. Criptografía Asimétrica.

Para el escenario de cifrado de VoIP, donde requerimos un mecanismo simple y que pueda ejecutar en tiempo real, consideramos que es mejor utilizar criptografía simétrica. Los algoritmos pertenecientes a la criptografía simétrica se dividen en dos grupos, de bloque y de flujo. A continuación los explicamos: 1. Cifrado de bloque. Cifran y descifran bloques de bits a la vez, realizan operaciones entre bloques de bits como sustituciones, permutaciones, rotaciones y operaciones lógicas. Se caracterizan por estar compuestos de un número determinado de rondas. Algunos ejemplos son: AES [3], DES y TDES. Este tipo de algoritmos cuentan con las siguientes propiedades: a. Propagación de error. Los cifrados de bloque multiplican los bits de error. Esto es, un bit de error en el criptograma recibido a la entrada del descifrador, resultará en múltiples errores en el texto recuperado a la salida del descifrador [4]. b. Efecto Avalancha. Indica que en promedio la mitad de los bits de salida debe cambiar cada vez que cambia una entrada de un solo bit. Esta es una característica deseable, ya que indica que cada bit de salida debe depender de todos los bits de entrada. Los algoritmos con esta propiedad no representan correlación estadística entre la entrada y la salida, lo cual los hace más seguros. 2. Cifrado de flujo. Cifra y descifra bit a bit a la vez. Ejemplos de este tipo de algoritmos son: RC4 y A5/1. Estos algoritmos cuentan con la propiedad de propagación de error de sincronización, la cual indica que el cifrado de flujo propaga los errores de sincronización causados por la inserción o eliminación de bits. Esto es, si el cifrador pierde la sincronía con el descifrador, el descifrador falseará todos los bits del texto plano recuperado hasta que el sistema restaure la sincronización. Por esta razón es que en la actualidad aunque el cifrado de flujo tiende a ser más rápido y más eficiente que el de bloque, las aplicaciones de telefonía por Internet no lo utilizan para evitar los problemas de sincronización asociados al cifrado de flujo [5].

El cifrador AES

AES (Advanced Encryption Standard) es un algoritmo de cifrado simétrico de bloque. Trabaja con bloques de 128 bits y con claves de 128, 192 y 256 bits. Dependiendo del tamaño de la clave, el número de rondas 46


va desde 10 hasta 14. Este algoritmo considera ciclos con cuatro transformaciones matemáticas: ByteSub (sustitución de bytes), ShiftRow (desplazamiento de filas), MixColumns (multiplicación de columnas), y AddRoundKey (se aplica una or-exclusiva entre los bits del texto y la llave). En el último ciclo sólo se ejecutan las siguientes transformaciones: ByteSub, ShiftRow y AddRoundKey. El diagrama de flujo de la Figura 3, representa la secuencia de transformaciones mencionadas.

Figura 4. Modo Contador.

calidad de voz percibida y un menor retardo extremo a extremo.

Para la investigación descrita en este artículo hemos utilizado AES para garantizar la confidencialidad de la información que viaja sobre VoIP. Cabe destacar los resultados obtenidos en pruebas experimentales realizadas en [4], las cuales mencionan que: El cifrado de flujo presenta un mejor rendimiento a comparación del cifrado de bloque antes de perder la sincronía. El retardo extremo a extremo y la calidad subjetiva de la voz se percibe mejor en el caso de cifrado de flujo, ya que tiene la gran ventaja de que la secuencia cifrante puede ser precalculada antes de que la carga útil esté disponible, de este modo se minimiza el retraso introducido por el cifrado[4]. Con base en lo anterior, los autores proponen utilizar el Modo de Operación Contador para el AES. El Modo Contador convierte una unidad de cifrado por bloques en una unidad de cifrado de flujo. Genera el siguiente bloque en el flujo de claves cifrando valores sucesivos de un contador. El contador puede ser cualquier función sencilla que produzca una secuencia de números donde los resultados se repiten con muy baja frecuencia [5]. La Figura 4 muestra dicho modo de operación. Las ventajas de esta estrategia son las siguientes: • Combina tanto el cifrado de flujo como el de bloque, aprovechando las ventajas de cada uno. • El cifrado de bloque ofrece confidencialidad, velocidad y actúa como un generador de claves, originando una secuencia totalmente aleatoria e impredecible. • El cifrado de flujo aditivo ofrece una mejor

Desarrollo del sistema

En esta sección se muestra el desarrollo del AES Modo Contador por etapas, el cual fue simulado en el lenguaje de programación MATLAB. La primera etapa se enfocó al desarrollo del AES en su forma general. Esta se realizó por componentes de acuerdo a la Figura 5. Software Guru

AES para VoIP

Figura 5. Esquema General AES 128 bits.

Una vez concluido el AES de 128 bits en su forma general, se llevó a cabo el análisis y comparación de resultados obtenidos de la simulación en Matlab con los vectores oficiales de prueba proporcionados por el Instituto Nacional de Estándares y Tecnología (NIST) en su FIPS 197 [6], logrando llegar a los mismos resultados. La siguiente etapa consistió en extender el desarrollo al Modo de Operación Contador. A continuación se programó la etapa de la generación de los contadores donde a partir del contador inicial, se generaron los subsecuentes bloques de contador de 128 bits, uno por cada 128 bits de texto plano. También fue necesario programar la función relleno que calcula la secuencia de ceros que se le agregaran al texto plano en caso de no ser un múltiplo exacto de 128 bits.

www.sg.com.mx |

Figura 3. Esquema General Cifrado AES.

El modo contador de AES, permite trabajar con bloques de bits totalmente independientes, utilizando menores recursos y menor tiempo de procesamiento, el cual es vital para una aplicación que se ejecuta en tiempo real como lo es VoIP.


.TECNOLOGÍA Infraestructura

La etapa de descifrado es exactamente igual, como se vio en el esquema del Modo Contador, se utiliza la misma función CIPHK tanto para cifrar y descifrar, solo que ahora en vez de realizar la XOR con el texto plano, se realiza con los bloques de texto cifrado, para así recuperar los bloques del mensaje original. Posteriormente se realizó la comparación de los resultados obtenidos en la simulación en Matlab con los 4 vectores oficiales de prueba para el AES Modo Contador de 128 bits, todos ellos proporcionados por el Instituto Nacional de Estándares y Tecnología (NIST) en su Publicación especial 800-38a [5], logrando llegar a los mismos resultados. Después se realizaron las adecuaciones necesarias para leer un archivo de audio en formato WAV con el fin de simular un cifrador de voz. Para ello, primeramente el archivo de audio se abre para extraer la secuencia de audio digitalizada en formato decimal. De esta manera contando ya con la información digitalizada, fue necesario cambiar el formato de los datos, al mismo formato de entrada que requieren las funciones de cifrado/descifrado.

Interfaz gráfica

Por último se realizó la interfaz gráfica que permite utilizar el AES Modo Contador como un cifrador de voz. La ventana principal de la aplicación consta de 4 opciones: cifrar voz, descifrar voz, ayuda y salir. Cifrar voz. Permite seleccionar un archivo de audio para cifrar, y regresa la siguiente información: llave asignada, contador inicial y el último bloque de 128 bits de la secuencia de audio cifrado, como se muestra en la Figura 6. Descifrar voz. Esta ventana se encarga de realizar el descifrado de la secuencia de audio, la cual permite escuchar el audio descifrado, además de proveer la siguiente información: clave asignada, contador inicial y el último bloque de 128 bits de la secuencia de audio descifrada, como se muestra en la Figura 7.

de cifrado se reducen notablemente al orden de milésimas de segundo por cada bloque de 128 bits de texto plano.

Conclusión Figura 6. Resultados Cifrado de Voz

Figura 7. Resultados Descifrado de Voz

Resultados obtenidos

Después de seguir las etapas de desarrollo antes planteadas y realizar la comparación con los vectores de prueba, se logró llegar a los mismos resultados oficiales publicados en el estándar para cada etapa de este trabajo. Los resultados obtenidos muestran que AES Modo Contador no altera la voz mediante la etapa de cifrado/descifrado, ya que al comparar ambos vectores de información, en términos de longitud y contenido se pudo comprobar que son exactamente los mismos. El modo contador de AES, a diferencia de los modos de operación CBC, CFB y OFB permite trabajar con bloques de bits totalmente independientes, utilizando menores recursos y menor tiempo de procesamiento, además tiene la gran ventaja de que la “secuencia cifrante” puede ser pre-calculada antes de que la carga útil esté disponible, de este modo se minimiza el retraso introducido por el cifrado. Los resultados de la simulación en Matlab indican tiempos de cifrado de 0.529 segundos por cada bloque de 128 bits de texto plano. Cuando la secuencia cifrante ha sido pre-calculada, los resultados en los tiempos

En un entorno propenso a ataques como la Internet y ante un sistema como VoIP, la seguridad es una prioridad en el momento de su implementación y mantenimiento. Por esta razón, es necesario utilizar algoritmos de cifrado que ayuden a que la información transmitida no sea entendible por un atacante, aun cuando este cuente con las herramientas necesarias para su captura, de tal forma que sólo sea comprensible por los interlocutores autorizados. En este trabajo, la confidencialidad entre la comunicación VoIP se garantizó con el AES (Advanced Encryption Standard) en su modo de operación Contador. De ahí que los resultados mostraron una mejor calidad de voz percibida y un menor retardo extremo a extremo, requerimientos indispensables en la comunicación VoIP. Si te interesa conocer más sobre esta implementación y utilizar el software que hicimos, puedes contactar a Sergio Tovar (sertovram@ yahoo.com.mx).

Referencias: [1] J. Angel. “Criptografía para Principiantes”. Versión 1.0. http://swgu.ru/sg37r14 [2] J. Ramió. “Libro Electrónico de Seguridad Informática y Criptografía”. Versión 4.1. http://swgu.ru/sg37r15 [3] J. Daemen, V. Rijmen. “AES proposal: Rijndael”. http://swgu.ru/sg37r16 [4] A. Elbayoumy, S. Shepherd. “Stream or Block Cipher for Securing VoIP”. International Journal of Network Security, Vol.5, No.2, pp.128-133, UK. Sept. 2007. http://swgu.ru/sg37r17 [5] “Recommendation for Block Cipher Modes of Operation”. National Institute of Standards and Technology. http://swgu.ru/sg37r18

.BIO Sergio Alejandro Tovar Ramírez es Ing. en Electrónica y Comunicaciones por la UAM Iztapalapa, y Especialista en Seguridad y TI por la Sección de Estudios de Posgrados del IPN. Actualmente es alumno de Maestría en Ingeniería en Seguridad y TI en IPN ESIME Culhuacán. José Velázquez López Obtuvo es Doctor en Ciencias en Comunicaciones y Electrónica por la ESIME Culhuacan del IPN. Actualmente es profesor Titular del departamento de Ing. en Computación en la ESIME Culhuacan. Gina Gallegos-García es Doctor en Ciencias por parte de la ESIME Culhuacan. Actualmente es Profesora Invitada de la Sección de Estudios de Posgrado e Investigación y pertenece al Sistema Nacional de Investigadores.

48


.contenido patrocinado

El i-Dream de MexicoFIRST

Un panorama prometedor

Entre los resultados presentados en un estudio de MexicoFIRST conducido por A.T. Kearney, se muestra la estrecha correlación entre el nivel de puestos de la estructura organizacional, los requerimientos de certificación del personal y los rangos de ingresos salariales típicos en cada nivel. De hecho, el estudio sugiere que la consecución de diplomas y certificaciones con reconocimiento internacional son un instrumento poderoso para apoyar el crecimiento profesional del individuo y obtener mejorías de ingresos que llegan a superar el 300% en un lapso de 3 a 7 años. De acuerdo con dicho estudio, tan solo en los sectores de electrónica, automotriz, aeronáutica, equipo médico y outsourcing de TI en nuestro país, se estima que actualmente se requiere más de un cuarto de millón de profesionistas con certificación en programas de nivel medio o avanzado, y que esta demanda aumentará durante los próximos años. Como expresara el Licenciado Raúl González, Director General de MexicoFIRST: “La demanda de personal certificado en TI hoy es vigorosa y no cabe duda de que crecerá en forma robusta en el futuro cercano”. Otro estudio de MexicoFIRST, esta vez comisionado a Select, produce cifras por demás prometedoras: El 76% de los egresados de un programa de certificación bajo los auspicios de MexicoFIRST han obtenido por lo menos un ascenso profesional (1% de ellos consiguieron dos ascensos); prácticamente el 100% de los egresados consiguieron o mantuvieron un empleo, y el 62% de los egresados ocupan un puesto más relevante en la organización luego de un año. El estudio también comprueba que las empresas que participan en los programas de certificación logran cumplir sus expectativas de

retorno sobre la inversión de certificación y que, en promedio, los empleados capacitados mejoran sustancialmente su productividad y la rotación del personal no se incrementa. Estos datos refutan la errónea noción de que los empleados a quienes se capacita buscarán otras oportunidades de empleo y no serán leales a la empresa. Como lo expresa Juan Saldívar, Director de Promoción de Capital Humano en MexicoFIRST: “no es fácil encontrar una circunstancia más afortunada en la que todos los participantes ganen… El profesionista gana en proyección profesional y en ingresos, en un contexto económico en el que la demanda de servicios de alta tecnología está creciendo, la empresa gana en rentabilidad, productividad y disminuye su rotación de personal…”. Y por si fuera poco, MexicoFIRST absorbe una parte substancial del costo.

Una iniciativa de talla internacional

Como se mencionó antes, MexicoFIRST fue concebido por la Secretaría de Economía y CANIETI para fungir como articulador de la demanda y oferta de personal capacitado en la rama de TI. Esa tarea incluye la definición de necesidades actuales, planeación de escenarios futuros, identificación de agentes capacitadores de clase mundial, y búsqueda de sinergias para disminuir el costo y mejorar la calidad; además, muy importante, MexicoFIRST otorga becas para apoyar a los profesionistas a conseguir estas certificaciones. MexicoFIRST está constituida como una asociación civil sin fines de lucro, fondeada con recursos provistos por el Banco Mundial que son canalizados a través del programa ProSoft de la Secretaría de Economía, quien en conjunto con CANIETI supervisa su desempeño. Los resultados han sido espectaculares: del 2008 a la fecha casi 60,000 certificados han sido otorgados a profesionistas TI mexicanos a lo largo y ancho de la república bajo los programas instrumentados por MexicoFIRST. Al fin de 2012 se espera que esa cifra se acerque a los 80,000. Hoy en día cualquier profesional mexicano puede ser candidato a recibir una beca para cursar un programa de certificación de un abanico extenso de alternativas. Para ello, si es estudiante, puede recurrir a programas de certificación que pudieran estar siendo provistos a través de su institución de estudios; si es empleado de una empresa con la que MexicoFIRST tenga convenio puede acceder a través de los programas de certificación ofrecidos por su empresa; en todo caso puede consultar directamente con MexicoFIRST a través de su página web y participar directamente en sus convocatorias.

Así o más fácil: ¿Quién quiere certificarse? No dejes pasar la oportunidad: www.mexico-first.org 49

Software Guru

os profesionistas de hoy estamos convencidos de que el éxito laboral está correlacionado con la calidad de nuestro entrenamiento profesional. Sin embargo pocos tenemos una noción clara de la medida real de estos beneficios. La pregunta es: ¿Las certificaciones producen un diferencial de resultados que permita considerarlas como una inversión productiva? Hoy tenemos evidencia cuantitativa para responder con un rotundo “SI”. Es un hecho que en México existe una demanda importante de programas de certificación en TI. Sin embargo esta expansión orgánica de la industria necesita del apoyo puntual gubernamental para acelerarla y dirigirla. Numerosas entidades de gobierno y asociaciones han abrazado el reto de fomentar la certificación profesional. En este sentido es notable el trabajo realizado por MexicoFIRST, una iniciativa de la Secretaría de Economía y de la Cámara Nacional de la Industria Electrónica y de las Tecnologías de la Información (CANIETI) cuya misión es orquestar la demanda y la oferta de talento, presente y futura, en el ámbito de las TI.

www.sg.com.mx |

L


.Fundamentos

Enseñando a Niños a Programar ››Por Ignacio Cabral Perdomo

¿Imposible o una oportunidad?

E

s innegable que al día de hoy el número de niños y jóvenes que tienen acceso a una computadora o a algún dispositivo móvil se está incrementando a un ritmo acelerado. Tal como lo reporta el INEGI en sus datos del 2005 y del 2008: El 77 por ciento de los cibernautas mexicanos tiene menos de 35 años, lo que significa que los jóvenes son quienes más uso hacen de la tecnología, y también los primeros que las adoptan. Según el mismo INEGI el 13.2 por ciento de los usuarios de computadora en México tiene entre 6 y 11 años, asimismo, la proporción de niños (6-11 años) que navegan en la red es de 7.3 por ciento. El uso que se hace de la computadora es básicamente para trabajos escolares, tareas, investigaciones y redes sociales, pero la mayoría (si no es que la totalidad de ellos) tiene una idea muy vaga sobre cómo funciona una computadora (hardware) y menos qué es lo que la hace funcionar (software). La pregunta que surge aquí es: si los niños y jóvenes pueden aprender un segundo o incluso un tercer idioma a esa edad, ¿por qué no aprender a programar y escribir código para computadoras? El ser capaz de usar Internet y operar una computadora es una cosa, pero creo que el enseñar a los alumnos cómo codificar y realizar programas tiene también un valor educativo que ayuda a los chicos a formar ese pensamiento lógico y algorítmico que tanto necesitan. El conocimiento de la programación, aún a niveles muy básicos, hace que la tecnología parezca menos “mágica” y sea más manejable y, al mismo tiempo, mejora las habilidades matemáticas y de lógica. Muchos alumnos de primaria y secundaria no tienen acceso a cursos del área de las ciencias computacionales hasta la preparatoria o profesional y he ahí la gran oportunidad de introducir a estudiantes jóvenes a la programación. Existen un gran número de herramientas gratuitas que proveen una introducción a la programación y a la codificación de programas. Propongo el uso de cuatro de ellas que son mis favoritas y que creo, como indiqué antes, representan una gran oportunidad para inculcar el pensamiento lógico desde edades tempranas en las escuelas. Estas son: Scratch, Alice, Greenfot y BlueJ. La introducción paulatina de cada una de las herramientas la visualizo como un continuo en su implementación con los alumnos. Como veremos más adelante, cada herramienta va incrementando su nivel de complejidad en cuanto a los conocimientos de codificación requeridos a los estudiantes. La figura 1 muestra una línea de tiempo con los rangos de edad que considero más adecuados para cada herramienta. A continuación describo cada una de ellas.

Figura 1. Herramientas propuestas.

Scratch - http://scratch.mit.edu Fue desarrollado por el “Lifelong Kindergarten group” en el Media Lab del Instituto Tecnológico de Massachusetts como un lenguaje de programación visual para niños de 6 años en adelante. Desde que se liberó en 2007, el sitio web de Scratch tiene más de 800,000 usuarios y en él se pueden hallar más de 1.7 millones de diversos proyectos, la mayoría relacionados con juegos y animaciones sencillas. Scratch, al igual que el resto de las herramientas mencionadas en este artículo fomenta que las creaciones se compartan como Creative Commons. Scratch es gratuito y puede correr en plataformas Windows, Mac y Linux. Los estatutos lógicos son mostrados al usuario como piezas de un rompecabezas y el programador puede arrastrarlos hacia la pantalla principal del programa. Es increíble la facilidad con la que se puede crear un sencillo programa de animación en unos 10 a 15 minutos. Una ventaja de Scratch radica en que la interface está disponible en español.

Figura 2. Interfaz de Scratch.

50


.Fundamentos

“El conocimiento de la programación hace que la tecnología parezca menos mágica.”

Alice busca resolver tres problemas fundamentales del software educativo: 1. La mayoría de los lenguajes de programación están diseñados para producir otros programas, cada vez más complejos. Alice está diseñado únicamente para enseñar a programar. 2. Alice está íntimamente unido a su IDE. No hay que recordar ninguna sintaxis especial. De todas formas, acepta tanto el modelo de programación orientada a objetos como la dirigida a eventos. 3. Alice está diseñada para el público que normalmente no se enfrenta a problemas de programación, tales como alumnos de secundaria, mediante un sistema de «arrastrar y soltar». Al no existir en Alice un editor de código se alivian las dificultades del rigor sintáctico en los primeros pasos dentro de la programación orientada a objetos. Una ventaja del uso de Alice para introducir a los alumnos a la programación es la exigencia de la creatividad por parte del programador. El estudiante tiene que diseñar previamente en un “Storyboard” su mundo virtual antes de iniciar con el proceso de creación de su mundo virtual. Otro punto a favor de Alice es que los alumnos se divierten al mismo tiempo que van, de

Software Guru

Alice - http://alice.org Alice es también un lenguaje de programación de tipo educativo libre y abierto, orientado a objetos con un IDE integrado en el mismo. Fue desarrollado en la Universidad Carnegie Mellon y está programado en Java. El entorno de Alice, al igual que Scratch se basa en el paradigma de “arrastrar y soltar” para crear mundos virtuales mediante el uso de modelos en 3D. La versión actual puede ser ejecutada en ambientes Windows, Mac y Linux. El diseño fundamental de Alice permite enseñar a los alumnos tanto la programación orientada a objetos como la orientada a eventos. De manera muy similar a Scratch, el usuario va creando su mundo virtual a través de la estructuración lógica de instrucciones que ya vienen pre-programadas en el IDE de Alice. Este software cuenta con un gran número de objetos (clases) preprogramados que el alumno puede combinar para la creación tanto de animaciones como historias en un mundo virtual.

Figura 3. Interfaz de Alice.

www.sg.com.mx |

La cantidad de configuraciones que el niño puede realizar con las piezas esenciales es infinita y, de manera intuitiva, el niño va aprendiendo los conceptos de objetos y reusabilidad del software. El nombre de Scratch se deriva de la técnica de “scratching” usada en el “Turntablism” (arte del DJ para usar los tornamesas), y se refiere tanto a la lengua y su aplicación. La similitud con el “scratching” musical es la fácil reutilización de piezas: en Scratch todos los objetos, gráficos, sonidos y secuencias de comandos pueden ser fácilmente importados a un nuevo programa y combinados en infinitas maneras permitiendo a los principiantes el conseguir resultados rápidos y estar motivados para intentar más. Podemos utilizar este programa para, tal y como dice su lema, programar, jugar y crear.


.Fundamentos

manera intuitiva, aprendiendo los conceptos de instancia, atributos, métodos y funciones; incluso el tema de arreglos es soportado por el ambiente de programación Alice. Varios estudios han demostrado un incremento en el desempeño de los estudiantes en primeros cursos de informática con retenciones que aumentaron del 40% al 88%. Greenfoot - http://greenfoot.org Es la consecuencia natural en la serie de herramientas que propongo. Se trata de una combinación entre un marco para crear juegos y simulaciones en dos dimensiones dentro de una malla y un IDE programado en Java que incluye un navegador de clases, un editor de código, un compilador y la ejecución de un proyecto. Este ambiente es muy recomendable para programadores principiantes. Fue creado por Michael Kölling de la Universidad de Kent en Inglaterra y con el apoyo de un grupo de investigadores de la Universidad La Trobe en Australia. Greenfoot soporta completamente el lenguaje Java y es especialmente útil para programar proyectos que contienen un elemento visual. Dentro del itinerario de aprendizaje propuesto, así como Scratch es el paso previo a Alice, Greenfoot es muy útil al momento de afrontar la transición a un lenguaje de programación orientada a objetos en el que el estudiante debe enfrentarse con un editor de texto para la realización de sus proyectos. Greenfoot mantiene el atractivo visual y amigabilidad para el usuario pero su formalidad en cuanto al lenguaje es tan poderosa que permite la creación de aplicaciones desde sencillas hasta muy complejas tales como videojuegos. El concepto de herencia es fácilmente entendido dado que la interface fuerza al usuario a utilizar un árbol de herencia donde cualquier nueva clase deberá heredar de la clase Actor al igual que cualquier Mundo (como se conoce en Greenfoot a los escenarios) deben heredar de la clase World.

El editor de texto, mostrado en la figura 5, permite interactuar con el código fuente.

en desarrollo. Los conceptos de la orientación a objetos (clases, objetos, comunicación a través de llamadas a métodos) son representados visualmente en el diseño de interacción en la interfaz. Ver imagen 6.

Figura 5. Editor de texto de Greenfoot.

Al estar íntimamente relacionado con Java, Greenfoot permite la implementación de algoritmos muy complejos del área de inteligencia artificial o conectividad a bases de datos. Cuenta con una API disponible en todo momento, es libre y descargable gratuitamente desde plataformas Windows, Mac o Linux. Otro aspecto interesante de esta herramienta es el Greenroom, sitio para profesores donde se discuten nuevas formas de uso en la enseñanza de la programación orientada a objetos y se pueden compartir proyectos. Una ventaja que he vivido en lo personal es el gran soporte gratuito con que cuenta Greenfoot: tutoriales, demos, incluso un canal en Youtube llamado “The Joy of Code” en el que el mismo autor, Michael Kölling, nos lleva paso a paso en un curso completo del uso de Greenfoot y de la programación orientada a objetos. BlueJ - http://bluej.org Es un IDE para el lenguaje de programación Java, desarrollado principalmente con propósitos educativos, pero también es adecuado para el desarrollo de software a pequeña escala. BlueJ fue desarrollado para apoyar la enseñanza y el aprendizaje de la programación orientada a objetos, y como resultado, su diseño difiere de otros entornos de desarrollo. La pantalla principal muestra gráficamente la estructura de clases de una aplicación en desarrollo (en un diagrama muy parecido a UML), y los objetos pueden ser creados y probados interactivamente. Combinado con una interfaz de usuario simple, esta facilidad de interacción permite experimentar de manera sencilla con los objetos

Figura 6. Interfaz de BlueJ.

El objetivo de BlueJ es el proporcionar experiencias concretas, en un ambiente gráfico tipo UML, de conceptos abstractos tales como relación entre clase y objeto, creación de instancias de objetos, llamadas a métodos y paso de parámetros. BlueJ cuenta con un banco de objetos que pueden ser inspeccionados lo que ayuda a los programadores novatos a la comprensión de los conceptos mencionados.

Conclusiones

Es muy clara la necesidad de más profesionistas en el área de la Computación y las Tecnologías de Información, en especial en los departamentos de desarrollo de software de diferentes corporaciones pero, desgraciadamente, el interés de los alumnos por carreras de este tipo está reduciéndose de una forma alarmante. Una posible solución es el inculcar desde temprana edad el pensamiento lógico y algorítmico en los niños siguiendo el itinerario de aprendizaje que propongo. La gran ventaja de las tres primeras herramientas es que el alumno aprende a programar al mismo tiempo que se divierte creando juegos, simulaciones y mundos virtuales en la computadora. Como ya mencioné, se han reportado grandes mejoras en el aprendizaje de la programación y codificación desde edades tempranas con el uso de estas herramientas. Esperemos que quienes sean profesores y lean este breve artículo lo apliquen en su quehacer educativo diario y mejoremos la calidad de nuestros futuros programadores y creadores de software. .BIO

Ignacio Cabral Perdomo es Director del Departamento de Tecnologías de Información en el ITESM Campus Puebla, es profesor en esa institución en el área de programación orientada a objetos en Java y Python. Ignacio tiene un especial interés en la enseñanza de la programación para niños y jóvenes a través de la creación de juegos, animaciones y simulaciones. Pertenece al grupo internacional de profesores del Greenroom para la enseñanza de la programación en Java con Greenfoot. icabral@itesm.mx Figura 4. Interfaz de Greenfoot.

52


www.sg.com.mx |

Software Guru


.TECNOLOGÍA Gadgets

Cryo E40

Enfriamiento a la medida de tu laptop

Si estás considerando adquirir una base para laptop con ventilación, te recomendamos la Cryo E40. Esta base, creada por la empresa NZXT, cuenta con dos ventiladores silenciosos de 80 mm con capacidad para 2,500 RPM. La particularidad de la E40 es que los ventiladores se pueden mover y acomodar al lugar exacto donde puedan brindar mayor enfriamiento a tu computadora. El diseño consta de una malla metálica sobre la que se pone la laptop, y los ventiladores se fijan a la malla por medio de magnetos de bajo consumo que son seguros para cualquier componente eléctrico. En el sitio web de NZXT (http://nzxt.com) puedes buscar a un distribuidor en tu país.

NVIDIA GeForce GTX 690 Poder, eficiencia y diseño

¿Podrías creer que eso que ves en la imagen es una tarjeta de video? Sí, es la GEForce GTX 690 que reúne dos GPUs Kepler y ofrece unas especificaciones monstruosas. ¿Qué tanto? Échales un vistazo: • 3072 núcleos de procesamiento CUDA a 1019 Mhz. • 4 GB de memoria GDDR5 de 512 bits a 6 Gbps. • Resolución digital de 2560 x 1600 pixeles. • Soporte para 4 monitores simultáneos (3 DVI y 1 MiniDisplayPort 1.2) • Soporte para OpenGL 4.2, PCI Express 3.0, DirectX 11, 3D Vision, entre otras tecnologías. A pesar de todo este poder, la GTX 690 es bastante eficiente en su consumo de energía. Y no solo eso, sino que como podrás ver en la foto, visualmente es muy atractiva. Sus diseñadores se inspiraron en la apariencia de los bloques de motor de automóviles de Formula 1. Este poder, eficiencia y diseño requiere tener un “pero”, y en este caso es el precio. La GTX 690 tiene un precio de lista en Estados Unidos de 999 dólares, así que de ahí súmale lo que cueste en nuestra región. En fin, se vale soñar …

Ouya

Microsoft Surface

Ouya es un proyecto para ofrecer una nueva consola de videojuegos abierta. Utilizará tecnologías open source, no será necesario adquirir costosos SDKs para desarrollar juegos (la consola será el SDK), y podrás fácilmente modificar o extender el hardware. La condición es que los juegos deben tener al menos una parte gratuita, o idealmente ser “gratis para jugar” (obteniendo ingresos por medio de la venta de aditamentos especiales dentro del juego, publicidad, u otros mecanismos). Ouya tendrá un precio de 100 dólares y estará disponible al consumidor en marzo del 2013. Para fondear la producción masiva, este verano se lanzó una campaña en Kickstarter para que las personas interesadas pudieran preordenar su consola. El objetivo era reunir 1 millón de dólares y la meta se cubrió en tan solo 8 horas, siendo el proyecto de Kickstarter que más rápido ha alcanzado esta cifra. En total, Ouya reunió en Kickstarter cerca de 7 millones de dólares.

Microsoft sorprendió a propios y extraños con el anuncio de que lanzará al mercado su propia computadora personal tipo tablet, denominada Microsoft Surface, que ha sido especialmente diseñado para Windows 8. Surface estará disponible en dos ediciones, una con procesador ARM y otra con Intel x86. Integra una pantalla táctil de 10,6 pulgadas (HD en el ARM, Full HD en el Intel), dos antenas WiFi, puerto USB y HDMI. La edición con ARM es bastante delgada (9.3 mm) y ligera (576 gr.), y corre una edición especial de Windows 8 llamada Windows RT. La edición x86 correrá Windows 8 Pro y será un poco más gruesa (13.5 mm) ya que maneja un puerto USB de tamaño normal. Uno de los elementos que más llama la atención de la Surface es el accesorio de cubierta protectora, cuya superficie multitáctil se puede utilizar como teclado físico. La Surface estará disponible al mismo tiempo que se libere Windows 8 en octubre de este año.

Consola de videojuegos abierta

¿Quién dijo que las PCs no son sexy?

54


Directorio ALPHA Consultoría 43 www.alpha-consultoria.com

Consejo de Software de Nuevo León 09 www.csoftmty.org/softmty2012

FinanceTech

33 www.financetech.mx

Hacker Halted 47 www.hackerhalted-la.com IBM 30 www.ibm.com/mx

Infotec 4F www.infotec.com.mx ISACA 01 www.isaca.org/latin

Kernel Technologies 51 www.kerneltechnologies.com Manpower 3F www.manpower.com.mx Mexico FIRST 49 www.mexico-first.org

www.qualtop.com

Screen IT 27 www.tas-screenit.com Talento 7 29

www.talento7.com

TENEMOS UN ESPACIO RESERVADO PARA TI SG se distribuye de manera impresa en la República Mexicana, y de manera digital llega a más de 25mil lectores de habla hispana. El anuncio en la revista digital cuenta con hiperliga directa a tu sitio web, lo que te dará la oportunidad de acercarte a nuevos clientes. “Es una gran oportunidad participar con Software Guru, pues comprobamos que es un medio efectivo.” -Novalys Latinoamérica Contáctanos en el (55) 5239.5502 o en publicidad@sg.com.mx

www.sg.com.mx |

Qualtop 41

Software Guru

QA Test 55 www.qatest.org


.biblioteca

Build Mobile Websites and Apps for Smart Devices Earle Castledine, Myles Eftos y Max Wheeler Editorial Sitepoint, Junio 2011.

No es ningún secreto que cada vez dedicamos más tiempo a navegar y usar apps desde nuestros teléfonos y otros dispositivos móviles. El acceso a Internet en todas partes se está convirtiendo en una norma y el contexto en el cual los dispositivos se utilizan cambiará rápidamente. La probabilidad de que nuestros clientes potenciales usen dispositivos móviles es cada vez mayor. Es así que lo único que nos queda como profesionistas de software, es aprender a crear sitios y aplicaciones para dispositivos móviles. A lo largo de este libro se aprende a hacer la transición de un antiguo sitio web a un sitio móvil brillante. Este texto no sólo enseña las técnicas para crear aplicaciones web móviles, sino que también convierte a sus lectores en parte del desarrollo más emocionante e importante en el mundo de la informática (desde el propio Internet): la web móvil. A pesar de contar con menos de 250 páginas, Build Mobile Websites aborda de forma exitosa una gran variedad de temas relacionados con el desarrollo para dispositivos móviles. Está dividido en ocho capítulos en los cuales se exploran aspectos como los fundamentos del diseño móvil web, la influencia de los usuarios en el contexto de diseño, HTML5 y CSS3, diseño móvil interactivo, desarrollo de aplicaciones nativas, desarrollo para dispositivos múltiples con PhoneGap, entre otros. El desarrollo web móvil está cambiando rápidamente, con un mayor énfasis en los modernos teléfonos inteligentes de pantalla táctil. Siguiendo los consejos de este libro, se puede estar seguro de aprender las habilidades que necesita para sacar el máximo provecho de estas nuevas tecnologías.

Visual Models for Software Requirements Joy Beatty & Anthony Chen Microsoft Press, Julio 2012

La primer página de este libro indica que está dedicado a “todos los analistas que no reciben el crédito que merecen por hacer que sus proyectos de software sean exitosos”. Estamos de acuerdo, la realidad es que los analistas de requerimientos realizan una tarea crítica en la construcción de software, pero poco reconocida. De nada sirve adornarse haciendo programación asíncrona, aplicando métodos ágiles o test driven development, si no se logra capturar y comunicar de manera efectiva los requerimientos de un sistema de información. El libro presenta y recomienda la aplicación del Requirements Modeling Language (RML), un lenguaje diseñado específicamente para modelar requerimientos de software. RML consta de cuatro tipos de modelos: objetivos, personas, sistemas y datos. Es así que este libro sigue esta misma estructura y va presentando a través de sus capítulos cada tipo de modelo, su razón de ser, así como técnicas y recomendaciones asociadas a cada uno. Visual Models for Software Requirements pretende conciliar y cerrar la brecha entre dos acercamientos para la gestión de requerimientos: el de la academia y el de la industria. Por un lado trae a la conversación algunos modelos desarrollados en el mundo académico, pero también incorpora tips prácticos sobre en qué situaciones sí tiene caso utilizar dicho modelo y cómo hacerlo. Vale la pena mencionar que este no es un libro adecuado para analistas novatos, ya que parte del supuesto de que el lector ya ha participado en proyectos de software y está acostumbrado a lidiar con los mecanismos tradicionales para la definición y gestión de requerimientos. La intención de este libro es mostrarnos un conjunto nuevo de modelos y técnicas que enriquezcan nuestra práctica de definición y comunicación de requerimientos de software. 56


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.