SG Software Guru #43

Page 1

Usabilidad Pag. 36

Project Management Pag. 38

Arquitectura Pag. 40

43

No.

ESPECIAL

CONOCIMIENTO EN PRテ,TICA

Seguridad informテ。tica

EMPRENDIENDO

www.sg.com.mx |

Software Guru

www.sg.com.mx

Construye una comunidad de early adopters

DIRIJA

SUS ESFUERZOS EN LA NUBE


www.sg.com.mx |

Software Guru




www.sg.com.mx |

Software Guru


CONOCIMIENTO EN PRÁCTICA

43

.CONTENIDO www.sg.com.mx

Pág.

22 En Portada Dirija sus Esfuerzos en la Nube

22

Como dijo Gustav Mahler “Una sinfonía debe ser como el mundo. Debe abarcar todo” y la coordinación de la nube no es algo tan diferente: un conjunto de voces e instrumentos que suenan acordes a la vez. Es precisamente el reto de la nube el lograr que los acordes en su dirección generen armonía en las empresas. En esta edición encontrarás contenidos que te guiarán para convertirte en un gran director(a) de orquesta de nubes.

02


.CONTENIDO

Pág.

17

Emprendiendo Construye una comunidad de Early Adopters 12 Por Celeste North

Prácticas Pruebas

32

34

36

Por Berenice Ruiz Eguino

Ágil Por Richard Telleria

Usabilidad

Especial

Por Pedro Santana

Project Management 38

Seguridad informática

17

Por Francisco Valdés Souto

Iniciativas de seguridad son prioridad en la agenda de los CIOs y no es solamente

Arquitectura 40

un tema de adquisición de tecnología, se trata también de cambiar de un cambio

Por Ulises Bejarano Téllez

de cultura que nos está manteniendo cada vez más alertas para resguardar ese gran tesoro que es nuestra información: la de nuestras empresas, la de nuestros proyectos y la de nosotros como personas.

Herramientas y Novedades

Tecnología

Tejiendo nuestra red

06

Por Hanna Oktaba

NOSQL: una nueva generación de bases de datos

50

Por Ismael Villegas

Tendencias en Software

08

Por Luis Daniel Soto

Mejora continua

Personas

10

Por Luis Cuellar

Por Raúl Reyes González

Código Innovare

42

Por Victor Jesús Hernández Salinas

Tecno-lógico

Carrera 52

Por Rosalinda Muñoz

44

Por Mauricio Angulo

Columnas invitadas: Logistica de Software

Tendencias 56 Por Miguel Sánchez Pecharromán

46

Por Ignacio Ramírez

Administración de Proyectos en la era de Big Data

Gerencia 54

48

En Cada Número Editorial

04

Noticias

05

Tutorial

14

57

Por Iván Rivera

Definiendo “Ciencia de Datos” Por Erich W. Schubert

03

58

Gadgets

www.sg.com.mx |

Columnas

Software Guru

Lo que viene 13


.EDITORIAL Bienvenida

. ¡Vivimos en las nubes! “...las tendencias se entrelazan...”

N

uestro mundo ya es la suma del mundo físico y el mundo virtual, por lo que mirar al cielo para encontrar respuestas entre las nubes ya no solo es un acto de fe, sino una realidad en la que nubes de información nos rodean y facilitan su acceso para responder al estilo de vida que tenemos al día de hoy, un estilo donde exigimos acceso a información de manera ágil, en cualquier momento, desde cualquier lugar y desde cualquier dispositivo. La nube nos permite a los consumidores tener menos preocupaciones y más oportunidades y esto reta a los proveedores que necesitan mantener satisfechos a una audiencia cada vez más exigente que perdona menos y demanda más. Con mayor frecuencia, al preparar las ediciones de la Revista SG notamos como las tendencias se entrelazan y se impulsan unas a las otras: la movilidad impulsa a la nube y la nube a la seguridad, la seguridad al buen desarrollo, el buen desarrollo a la buena gestión, la buena gestión a la movilidad, etc. Por lo que en esta edición encontrarás artículos sumamente interesantes que te ayudarán a elevarte hacia las nubes y a complementar tus conocimientos en otras áreas de conocimiento que el desarrollo de software y la tecnología de información demandan a los profesionistas de hoy. Aprovechamos para agradecerte tu paciencia en la espera de la llegada de la presente edición, que aunque tuvo contratiempos para llevarse a cabo, sigue estando hecha con mucha dedicación y esmero para nuestros fieles lectores.

››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 Luis Gerardo Arias Consejo Editorial Jorge Valdés - PMI / Luis Cuéllar - Softtek / Luis D. Soto - Microsoft / Hanna Oktaba - UNAM / Emilio Osorio - Sistemas Humanos / Luis Vinicio León - e-Quallity / Gloria Quintanilla

Colaboradores

Adolfo Machado, Berenice Ruiz Eguino, Celeste North, Erick Frausto, Francisco Valdes, Gunnar Wolf, Ignacio Ramírez, Ismael Villegas, Iván Rivera, Mauricio Angulo, Miguel Sánchez Pecharromán, Pedro Santana, Raúl Reyes, Richard Telleria, Rosalinda Muñoz, Sergio Araiza, Ulises Bejarano, Victor Hernández

Ventas Claudia Perea / Ventas y Delivery Yoloxochitl Juárez / Marketing y Alianzas Fernando Hernández / Webmaster Willy Melendez / SGCampus Vanessa Amaya 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. Col. Del Valle. 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.

04


En los últimos años se ha realizado en nuestra región una gran cantidad de eventos y conferencias relacionadas con el desarrollo de aplicaciones móviles. Sin embargo, hasta ahora no había habido ninguno enfocado en las necesidades y contexto del desarrollo de apps para empresas. Con esto en mente, Software Guru organizó el Mobile Day, realizado el pasado 11 de marzo en Ciudad de México. Más de 300 asistentes conocieron a través de las conferencias impartidas temas vitales para ser parte de las tendencias de movilidad: arquitecturas, mejores prácticas, usabilidad, testing, e incluso las monedas criptográficas como el Bitcoin. De lo mejor del congreso fue la plática de Luis Carlos Aceves, de la empresa Usaria, sobre las consideraciones en cuestión de usabilidad que hay que tener al desarrollor apps móviles para las empresas.

.Mujeres EMC en la industria de la Tecnología: Grandes mujeres para una gran industria

El pasado 20 de marzo, EMC dio un reconocimiento a las mujeres que en la industria de la Tecnología han marcado un precedente importante con sus contribuciones a través de la cuarta edición del evento “Mujeres EMC en la industria de la Tecnología”. En este evento se le dio la oportunidad de compartir experiencia entre mujeres emprendedoras y líderes de la industria en un ambiente íntimo y relajado. La conferencista principal fue Flor Argumedo, Directora de Tecnología y Producción de Comercial Mexicana quien cuenta con más de 31 años de experiencia en esta industria nos compartió su valiosa experiencia tanto profesional como personal de una forma muy amena invitó a las presentes a “Subir muchos escalones y a intentarlo muchas veces”.

Durante el Mobile Day confirmamos la gran presión que enfrentan los departamentos de TI para desarrollar apps móviles, y la apertura que tienen a buscar herramientas y proveedores. Las empresas expositoras estuvieron bastante activas y atendiendo a personas interesadas provenientes de todo tipo y tamaño de organizaciones. Agradecemos a los patrocinadores de Mobile Day: Gopac, Qualcomm, Sisoft, IBM, SAP, Here, DS Indigo, Ivan Organización, Micro Focus y Code3e. Agradecemos también a todos los participantes que confiaron una vez más en Software Guru para asistir a este congreso que unió a grandes exponentes con grandes profesionistas. Y tal como lo comentó nuestro director, Pedro Galván en el evento: “Móvil involucra: nuevos retos, nuevas tecnologías, nuevas arquitecturas y nuevos proveedores”, así que en SG le seguiremos dando atención a este tema.

.SAP Forum 2014

Se llevó a cabo una edición más del SAP Forum México durante el 5 y 6 de Marzo donde se compartieron las últimas innovaciones en tecnología de SAP para ayudar a las organizaciones a que funcionen de una forma más inteligente, rápida y más simple a través de sesiones plenarias donde altos ejecutivos y aliados de SAP expusieron temas relacionados al futuro de los negocios, las tendencias y las demandas de los clientes que giran alrededor de la tecnología para los negocios. Los participantes también pudieron disfrutar sesiones de líneas de negocio como Marketing, Ventas, Recursos Humanos, Finanzas, Cadena de suministro y Tecnología de información. Se realizaron también sesiones dedicadas a una de las tendencias más importantes: La Movilidad, donde los asistentes descubrieron procesos de negocio a través de dispositivos móviles que están cambiando nuestra vida cotidiana.

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

05

www.sg.com.mx |

.Mobile Day México 2014

Software Guru

.NOTICIAS


.COLUMNA Tejiendo Nuestra Red

Mujeres en TI, somos pocas pero picosas E

l 12 de noviembre del 2013 AMITI me invitó a dar una conferencia en el auditorio de la ITAM [1] sobre “El papel de la Mujer en las Tecnologías de la Información”, en el Foro Women in Technology (WIT): El talento femenino en las TIs y su impacto en la sociedad. No dudé ni un segundo en aceptar, el tema me apasiona porque, por un lado conozco a muchas mujeres que han hecho excelente trabajo en esta área en México, pero por el otro, como maestra de la UNAM observo una baja significativa en el porcentaje de mujeres que quieren estudiar estos temas. En las últimas generaciones, sea licenciatura, maestría o doctorado, no llegan al 10%. Mi preocupación por la participación de las mujeres en TI fue confirmada en la encuesta de salarios que publicó SG en su edición anterior. Solamente 16% de quienes respondieron la encuesta fueron mujeres, pero lo más grave es que sus salarios promedio fueron 30% menores al de los hombres.

Luego reflexioné sobre la historia de TI y sobre mi propio entorno dándome cuenta de que “Somos pocas pero picosas”. Tal vez la primera mujer destacada en TI, reconocida públicamente, fue Grace Murray Hopper (Ver imagen 1). En una de las primeras computadoras en 1945 encontró el primer “bug”, que fue un bicho real (Ver imagen 2), y que con este nombre entró en la Ingeniería de Software como sinónimo de la falta de calidad.

›› “Trabajar en TI es combinar las ciencias blandas con las duras”. A continuación hago el resumen de mi ponencia en el foro de AMITI.

Imagen 1. Grace Murray Hopper

¿Por qué las mujeres no se interesan en TI? Las respuestas que se me ocurrieron son las siguientes: • No se entiende el tipo de trabajo que se hace en TI. • La existencia de estereotipos: – Es arreglar computadoras. – La programación es pesada, requiere de mucha dedicación y tiempo. – En México la tecnología se compra, no se desarrolla. – TI es para ingenieros (léase hombres cuadrados).

Imagen 2. Registro del primer Bug en 1945.

La Dra. Hanna Oktaba es profesora de la UNAM y su objetivo principal es generar conocimiento a través de la creación y promoción de estándares. hanna.oktaba@ ciencias.unam.mx

06

¿Por qué somos pocas? Y empecé a culpar a las que ya estamos involucradas en este ambiente. • No sabemos transmitir que dedicarse a TI es atractivo por retador y por bien pagado. • Las jóvenes no saben que TI está lleno de retos intelectuales y opciones de trabajo. • Las jóvenes no saben que TI es para las mujeres que no quieren aburrirse haciendo un trabajo repetitivo.

Pero no vayamos tan lejos. En México tenemos muchas mujeres trabajando en TI con excelentes aportaciones. A continuación quiero dar el tributo a las mujeres con quienes me tocó convivir a nivel académico y/o profesional y que las llamo “Mis mujeres maravillas de TI en México”:


.COLUMNA Tejiendo Nuestra Red

3. Claudia Ivette García, llegó por sus propios méritos desde niveles inferiores a ser la Directora General de Comercio Interior y Economía Digital en la Secretaría de Economía. 4. Blanca Gil, otra de mis ex-alumnas de maestría, consultora de CMMI, MoProSoft, TSP del SIE Center, actualmente es apoyo fundamental en los trabajos de ISO/IEC 29110 como delegada de México. 5. Claudia González, es la máxima promotora y consultora de MoProSoft, actualmente es apoyo fundamental en trabajos de ISO/IEC 29110, trabaja en Kernel Technologies. 6. Lupita Ibargüengoitia, es maestra pionera de Ingeniería de Software en la Facultad de Ciencias, UNAM, fundadora de la AMCIS. 7. María Julia Orozco, es la socia fundadora de Ultrasist, la empresa CMMI nivel 5, co-autora de MoProSoft e innovadora incansable de procesos. 8. Mariana Pérez Vargas, fundadora y directora de Avantare, Consultora en CMMI y madre de trillizas. 9. Marcela Peñaloza, pionera en el uso de procesos en los proyectos de software en la DGTIC, UNAM. La única que me hizo caso con MoProSoft en la UNAM. 10. Elsa Ramírez, es Gestora de Calidad en Praxis, empresa mexicana CMMI 5, cuento con su apoyo en los cursos y asesoría de tesis de maestría. 11. Mara Ruvalcaba, socia fundadora de Software Gurú, co-autora de MoProSoft e incansable innovadora de los servicios para comunidad de la industria de software mexicana y latinoamericana. 12. Guadalupe Quijano, socia fundadora y directora de Ultrasist, una PYME mexicana que logró en casi veinte años convertirse en una empresa competitiva, demostrando que CMMI nivel 5 no sólo sirve para tener estrellita. Mujer empresaria pionera en TI. 07

14. Angélica Su, consultora en muchos estándares de TI por Itera, co-autora de MoProSoft. 15. Ana Vázquez Urbina, Administradora de Proyectos, apoyo fundamental en pruebas controladas de MoProSoft, logró convencer a ISO/IEC JTC1 SC7 WG24 de que la norma mexicana de MoProSoft podría ser útil para pequeñas organizaciones a nivel mundial, coautora de ISO/IEC 29110 Basic profile for VSE, basado en MoProSoft. Estoy consciente de que hay muchas más mujeres maravillas en la industria de TI en México que merecen ser reconocidas por sus aportaciones. Por ejemplo, Blanca Treviño la directora de Softtek, a quien no tengo el gusto de conocer, pero me agrada su observación publicada en una entrevista para Forbes: “Para los hombres, el éxito viene alrededor del dinero. Las mujeres lo definimos de otra manera, bajo un grado de influencia, de trascendencia”. Trabajar en TI es combinar las ciencias blandas con las duras. A nosotras se nos facilitan de manera natural las ciencias blandas: psicología, sociología, filosofía, etc. Nos gusta apoyar, compartir, enseñar, conciliar, consentir, escuchar, hablar y… regañar. Muchas tenemos habilidades de analizar, razonar, deducir, proponer soluciones y tenemos intuición femenina. Una vez entendida y practicada la parte técnica somos capaces de proponer las estrategias de solución de problemas a nuestros compañeros para que ellos los resuelvan. ¿En qué somos buenas en las tareas de TI? • Relación con los Clientes – por nuestras habilidades blandas. • Análisis de Requerimientos – por el razonamiento detallista. • Administración de Proyectos – por ordenadas. • Gestión de Calidad – por saber cuidar que otros también sean ordenados. ¿Qué podemos hacer para que las chicas decidan estudiar carreras de TI? En estos tiempos lo que puede ser más efectivo son las redes sociales y los videos. Invito a todas las lectoras de SG a que cuenten sus experiencias, presuman lo interesante que es su trabajo y como compaginar su vida personal con la vida laboral en el medio electrónico de su preferencia. Tal vez SG podría ayudarnos en aglutinar estos esfuerzos.

>> Por Hanna Oktaba Referencias [1] http://mediatelecom.com.mx/index.php/agencia-informativa/noticias/itemlist/ tag/AMITI

Software Guru

2. Ana Briseño, consultora en administración de proyectos y de gestión de procesos, fue la Gestora de Calidad en el Centro de Motorola llevándolo a nivel 3 de CMMI. El centro desapareció pero la experiencia permitió a Ana volverse una de las mejores consultoras en México y España.

13. Gloria Quintanilla Osorio, consultora y capacitadora excelente en estándares de TI en México, Ecuador y otros países, co-autora de MoProSoft y de MAAGTIC, fundadora de la AMCIS y madre de 4 hijos.

www.sg.com.mx |

1. Claudia Alquicira Esquivel, gestora de calidad, mi ex-alumna de maestría, co-autora de MoProSoft, actualmente trabaja en Ultrasist como responsable de la gestión de procesos llevando a la empresa por la segunda ocasión a la evaluación de CMMI nivel 5.


.COLUMNA Tendencias en Software

Tecnología Autónoma y Profética

T

odos hemos soñado con predecir el futuro. Se decía que en un periodo de cinco años suceden menos cambios que los esperados, y en una década más de lo anticipado. Pero la aceptación del teléfono inteligente ha demostrado que es posible transformar un ecosistema completo en tres años o menos. Lo que planteo en este artículo parece mágico pero es lo que ya se espera. La digitalización ha afectado a todas las industrias y especialmente a la de entretenimiento. El comercio electrónico es aún minúsculo comparado con el tradicional, pero los hábitos de compra cambiaron radicalmente con Internet. La comunicación “Máquina a máquina” y el procesamiento de datos generados por los mismos producirán cambios igual o mayormente dramáticos que los descritos.

›› “Las apuestas tecnológicas son más que nunca, clave para el futuro”. El vehículo que se conduce solo

Hace exactamente 10 años, la agencia norteamericana DARPA convocó a un reto de tecnología: Producir un vehículo robótico que se maneje en condiciones del mundo real. Los documentales de los ganadores son un acervo muy valioso para conocer cómo se está logrando resolver el problema [1]. La visión se está convirtiendo en realidad. Más sorprendente que la tecnología misma es el detenerse a reflexionar de las implicaciones de este modelo: • Propiedad. En un mundo de vehículos autónomos parece un gran “desperdicio” no tomar la mayor ventaja del mismo: Habilitar el transporte para familiares, conocidos o en un servicio similar al de un taxi. De ahí se puede pensar que no se requiere una cochera o estacionamiento ya que el auto estará en uso la mayor parte del tiempo. Los gobiernos están muy interesados en incrementar la utilización del transporte.

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

08

• Un nuevo modelo comercial. Si en realidad el auto se usa pocas veces en el día, muchos podrán preferir el contratar un auto por uso. Esto tendrá ventajas adicionales – solicitar un vehículo de mayor capacidad en periodos vacacionales, o durante una mudanza. En ocasiones especiales emplear un automóvil de mayor lujo. Así el futuro de los fabricantes de autos cambiará dramáticamente – dejarán de vender autos para alquilarlos. • Servicios. No solo la arquitectura cambiará cuando se requieran menos espacios para estacionar autos, la diferenciación entre vehículos posiblemente se dé en los servicios al transportarse (entretenimiento exclusivo, acceso

prioritario a restaurantes, teatros u otros recintos). El automóvil será un gran “gadget” que interactuará con todos los accesorios inteligente que portemos nosotros mismos o se encuentren en nuestro hogar. Las apuestas tecnológicas son más que nunca, clave para el futuro de los fabricantes de autos. El vehículo que se conduce solo, cambia todo.

Videocámaras con inteligencia artificial

Múltiples factores se encuentran en convergencia como el cómputo de bolsillo, comunicación entre dispositivos altamente eficiente en consumo de energía, gran volumen de producción de hardware económico y “aprendizaje de máquinas”. Entre una de múltiples combinaciones todos esos “grandes datos” de videocámaras podrá ser procesados en la nube. Las videocámaras económicas van a abundar. Imagine una cámara inteligente en un restaurante : El dueño podrá “interrogar” al sistema preguntando ¿Quién es el empleado que más sonríe? o ¿quién es el empleado que hace que los clientes sonrían más? Sería posible hacer un reconocimiento facial que no comprometa la privacidad de los comensales pero que pueda estar consciente de esta información. Para todo existen ángulos que rebasan límites éticos, por ejemplo la demografía de visitantes de un recinto, sea en edades, razas u otros elementos de diversidad. En un establecimiento, una cámara puede identificar a los comensales impacientes y generar una alerta al gerente en turno o quizá al propietario mismo del sitio. En el hogar, las cámaras inteligentes también lo cambiarán todo. Serán la evolución de la seguridad, podrán abrir las puertas a nuestros familiares y amigos, permitirán “cuantificar” el tiempo que pasamos en un cuarto y en una actividad. Reaccionarán a eventos sin interacción directa, crearán nuevas verdaderas “experiencias” de cómputo previsivo.

Un mundo optimizado

En un futuro la tecnología permitirá aún más optimizar el movimiento de los objetos digitales, físicos y de nosotros mismos: Anticipar y actuar. Los “gorilas” del cómputo continuarán presentes porque los nuevos escenarios requieren de una muy diversos componentes: aprendizaje de máquina, reconocimiento de voz y video, gran procesamiento de datos, cómputo distribuido y otras tecnologías avanzadas. Una plataforma tecnológica con nuevas categorías y nuevas oportunidades.

>> Por Luis Daniel Soto Maldonado Referencias [1] http://en.wikipedia.org/wiki/DARPA_Grand_Challenge


09

www.sg.com.mx |

Software Guru


.COLUMNA Mejora Continua

Liderazgo y Estrategia E

n los meses anteriores estuve trabajando en la planeación estratégica del 2014: Análisis de proyectos, estrategia de procesos, objetivos para el 2014 y la ejecución de los mismos. Esto es un trabajo de mucha interacción y foco. Estoy seguro que la mayoría de ustedes entienden a lo que me refiero. La planeación es un trabajo que no sólo se lleva a nivel organizacional sino a nivel personal, Ahora, déjenme hacerles una pregunta: Al hacer su planeación personal, ¿Utilizan un punto de vista de líder o de administrador? Aunque la palabra liderazgo está perdiendo un poco de fuerza, con el surgimiento de nuevas palabras mágicas como “innovación”, cada año se publican miles de libros y artículos exhortándonos a ejercer nuestro liderazgo y a llevar a nuestras organizaciones, áreas, o a nosotros mismos, a lugares jamás vistos. Aun así, continuamente me sorprendo con lo poco entendido y lo poco ejercido que es el liderazgo; sobre todo en áreas de apoyo a la organización. Supongo que en parte es de esperarse, la realidad es que ser líder no es un trabajo fácil y, hasta cierto punto, es peligroso. Por ejemplo, revisando nuestra historia: En la época de la colonización de América los líderes que llegaron primero, enfrentaron mucho más peligros que los subsecuentes colonizadores, los cuales ya sabían a lo que venían. Si mal no recuerdo, Cristóbal Colón estuvo a punto de morir en un motín, antes siquiera de llegar a tierra. Ser los primeros en tierras desconocidas e inhóspitas te podía llevar fácilmente a la muerte. Claro que, por otro lado, el nombre de Cristóbal Colón se reconoce a nivel mundial muy por encima de los siguientes colonizadores, por lo que podríamos decir que los beneficios de llegar primero, también fueron muy superiores. En comparación, dedicarse a ejecutar bien tareas previamente definidas, es mucho menos peligroso (claro que no estoy diciendo que sea fácil, simplemente comparativamente es menos peligroso). Tratar de inventar lo que debo hacer, con el afán de Luis R. Cuellar es director de calidad ayudar a mi organización a ser más exitosa, puede sonar a nivel mundial de Softtek. Es recofuera de mi ámbito de trabajo y más en el ámbito de los nocido por la ASQ como Certified emprendedores o dueños, pero a veces eso es precisamente Quality Manager, lo que se espera de uno. Certified Software Engineer y Six Al leer esto, estoy seguro de que muchos de ustedes me Sigma Black Belt. @lcuellar pueden decir: “Yo sí soy un líder. Yo estoy pendiente de todas las cosas que se están haciendo mal en mi organización 10

y estoy trabajando para corregirlas. Me incorporé al área de mejora de procesos, precisamente para ayudar a la organización a hacer lo que yo sé que se tiene que hacer y a arreglar todo aquello que claramente veo que no es adecuado, o que podría hacerse mejor”. Bueno, amigo o amiga, ahí es precisamente donde creo que está la falta de entendimiento con respecto al verdadero significado de liderazgo. El liderazgo no se basa en mostrarle a la organización mi valor y lo que yo sé que está mal. Se basa en escuchar a la organización, para identificar qué es lo que quiere lograr y qué la está deteniendo para lograrlo. El liderazgo se basa en la idea de que todos queremos hacer el mejor trabajo posible y que si no lo hacemos es porque algo nos está faltando. Las estructuras, los acuerdos, el conocimiento, las políticas y los procesos que tenemos definidos no nos están apoyando a lograr los objetivos que estamos buscando y de alguna forma nos están deteniendo, distrayendo, confundiendo, o simplemente guiándonos en la dirección incorrecta. La principal característica de un líder es su empatía: “Sentimiento de participación afectiva de una persona en la realidad que afecta a otra”. La empatía consiste en ser capaz de ponerse en la situación de los demás. El líder no está buscando los problemas en los procesos o las personas; basándose en que todos queremos hacer nuestro mejor trabajo, se está preguntando por qué no está pasando. Por qué la solución funciona en otra parte pero no aquí, qué elementos del medio ambiente, la estructura, los incentivos y demás, impide ponernos de acuerdo en cómo llevar acabo nuestros objetivos. La principal herramienta de un líder no es el: ¿Cómo es posible…? sino el: ¿Por qué...? La pregunta no es: “¿Cómo es posible que no se haya generado una estimación adecuada?” Sino: “¿Por qué no se generó una estimación adecuada?” No es, “¿Quién es el responsable?” Sino: “¿Qué puntos en la interacción de


›› “El liderazgo no se basa en mostrarle a la organización mi valor y lo que yo sé

>> Por Luis Cuellar

www.sg.com.mx |

nos llevaron a esta situación?, ¿qué lo permitió? ¿qué lo incentivo? ¿qué lo generó?” Si todos estamos buscando hacer el mejor trabajo posible, ¿dónde está el desconecte?, ¿es un problema de capacitación, es un problema de responsabilidades, es un problema de falta de comunicación, es un problema de estructura? El líder no define sus objetivos únicamente de lo que se le pide que haga, sino de lo que escucha que a la organización le está doliendo y busca los síntomas, no en la falta de capacidad de las personas, sino en la falta de capacidad en los procesos que se tienen y la forma en que se está organizado. En ese ámbito no hay reglas, no hay mejores prácticas, sólo están nuestras necesidades en base a nuestra situación, a nuestro medio ambiente, nuestras fortalezas y debilidades. Para que, en base a la comprensión de quiénes somos y por qué, podamos generar acuerdos que nos hagan mejores y nos superen como organización. Por lo tanto reitero, al definir tu misión para el 2014 defínela con empatía, defínela asumiendo que todas las personas dentro de tu organización están buscando hacer el mejor trabajo posible, e inicia tu investigación sobre qué existe en las estructuras, responsabilidad, políticas, procesos, incentivos, sistemas dentro de tu organización, que les está impidiendo hacer esto. Busca acuerdos sencillos que todos estén dispuestos a ejecutar y que, al fin de cuentas, logren el resultado que se está buscando, en base a la colaboración y participación de todos.

Software Guru

que está mal”.


.EMPRESAS Emprendiendo

Construye una Comunidad de Early Adopters ›› Por Celeste North

T

oda tecnología nueva es inicialmente adoptada por un grupo especial de consumidores conocidos como “early adopters”. Como el nombre lo indica, son personas que adoptan productos y/o servicios en etapas tempranas. Para un startup que se encuentra en una etapa inicial, donde aún hay mucha incertidumbre sobre lo que se está construyendo y lo que sus clientes en realidad quieren, cultivar una comunidad de early adopters puede aportar muchos aprendizajes iniciales y el empuje necesario para que usuarios más conservadores se convenzan de probar lo que ofreces. El principal incentivo para un early adopter usualmente es la experimentación y, de alguna manera, la participación activa en la mutación del proyecto. En una comunidad bien cimentada, pueden darnos muchas ideas sobre el diseño, la interacción y la tecnología hasta el modelo de negocio.

Establece contacto

El primer reto para generar esta comunidad es encontrar a las personas correctas. Existen varias herramientas que contribuyen a que puedas captar su atención e información para establecer lazos de comunicación. Por ejemplo Launchrock es una plataforma que te permite en pocos pasos crear una página de lanzamiento que pueda presentar material informativo sobre tu producto incluso con imágenes o videos. Incluye un campo de correo electrónico para que puedan suscribirse a probar el servicio y obtendrás información de dónde vienen, desde qué dispositivo visitan tu página, etc. Otra opción es Unbounce, una plataforma similar aunque más orientada a hacer pruebas de A/B, de modo que además de lo que puedes hacer con Launchrock, puedes medir distintos mensajes o canales de marketing para optimizar la captación de prospectos. Lo más importante en la etapa de reunión de prospectos es que establezcas canales de comunicación constantemente activos, ya sea porque se suscriben con su correo electrónico (lo ideal) o te siguen en alguna red social.

“Ningún plan de negocios sobrevive el primer contacto con clientes”

mente más enriquecedor, es tal cual enviar correos personales a algunos de nuestros early adopters. Pregúntales qué les ha parecido el producto, qué cambiarían, dónde han sentido problemas, etc. Otra estrategia es utilizar email marketing. Envía un boletín con algún incentivo para que tus early adopters compartan sus opiniones a cambio de recibir el servicio gratuito por algún tiempo, tener un descuento especial o acceder a algún beneficio adicional de un socio comercial. Esto les hará sentir parte del proceso y valiosa su participación.

Escucha lo que sienten

Una de las partes más complicadas como emprendedor es saber tener la agilidad para cambiar. Cuando iniciamos tenemos una idea clara de cómo queremos que sea el producto o servicio y está comprobado que pocas veces éste termina siendo de esa manera. “Ningún plan de negocios sobrevive el primer contacto con clientes” dice Steve Blank y para muchos emprendedores, enfrentarse con esto y decidir cambiar puede ser un proceso de disgusto que muchas veces es postergado. De ahí la importancia de hacer este encuentro lo más pronto posible y con la menor cantidad de recursos invertidos. Un early adopter involucrado con tu producto te podrá dar mucha más claridad sobre cuáles son las siguientes características a desarrollar, qué es lo que realmente necesitan y dónde está la principal oportunidad para tu negocio. Para poder aprovechar este conocimiento, tendrás que generar esos canales de comunicación y tener la apertura para acercarte y escuchar. Ver imagen 1.

Habla con ellos

Una vez que tu producto está disponible y ha empezado a promocionarse entre un grupo reducido de early adopters será importante generar canales de comunicación que incentiven a la participación y la propagación orgánica de tu producto. Ellos serán los mejores promotores para generar una segunda camada de usuarios que son menos aventureros. Algo que para muchos emprendedores es difícil es comunicarse directamente con sus clientes. Estamos tan acostumbrados a la comunicación asíncrona y a concentrarnos por completo en el desarrollo de producto que nos olvidamos de la importancia de generar un vínculo personal con nuestros usuarios. Lo más sencillo de hacer, y general-

Imagen 1. Comunicación directa con early adopters. Fotografía por Santiago Zavala.

Claro que esto no significa que debamos caer en el extremo de implementar todas las características que uno o dos usuarios digan que son básicas, ya que también existe el caso donde se construye un producto que sólo apela a un grupo muy reducido de personas, pero no es el caso recomendado. .BIO

Celeste North es Country Manager de MUBI México, plataforma de Video on Demand de cine internacional. Anteriormente fue fundadora de NuFlick, plataforma enfocada en cine independiente y Latinoamericano. Activa participante del ecosistema de Startups en México, @celestenorth

12


.HERRAMIENTAS Y TECNOLOGÍAS Lo Que Viene

1

Amazon anunció la disponibilidad general de su servicio AppStream, a través del cual se pueden construir apps complejas que se ejecutan en la nube de Amazon y entregan el GUI por medio de streaming (audio, video, datos) hacia el dispositivo cliente. De esta manera, AppStream hace posible que dispositivos con poco poder de cómputo puedan utilizar apps con gráficos avanzados e intensivas en procesamiento, ya que éste procesamiento se hace en la nube. Entre los beneficios esperados de este modelo de ejecución están:

AWS entra al streaming de apps

• Facilitar el desarrollo y testing de las apps, ya que solo se hace para una plataforma. • Aprovechar el poder de cómputo y almacenamiento de la nube, sin depender de la capacidad de los dispositivos finales. • Controlar la actualización de la app, ya que se hace server-side. http://aws.amazon.com/appstream

Soporte para Universal Apps

2

Microsoft introdujo durante su conferencia Build 2014 el concepto de “Universal apps”, que se refiere a la posibilidad de desarrollar apps para distintos dispositivos (PCs, tablets, smartphones e incluso Xbox) usando una misma base de código y herramientas. Esto es posible gracias al trabajo que se ha hecho en los últimos años para lograr que los sistemas operativos de estas plataformas expongan APIs y servicios que se accedan y comporten de manera similar a través de las distintas plataformas. La próxima actualización de Visual Studio (2013 Update 2) —que se espera esté disponible antes el verano— incorpora nuevas funcionalidades y configuraciones para soportar este paradigma, sobre el que seguramente estaremos oyendo más durante los próximos meses. http://msdn.microsoft.com/en-US/vstudio

• Rápidamente y con mínima configuración ejecuta tus scripts (R, Matlab y Python) en la nube (Amazon EC2). • Control de versiones utilizando snapshots enteros de los proyectos (hasta 40 GB). • Capacidades de colaboración al estilo de Github. • Otra capacidad que puede ser útil en contextos corporativos es que Domino no solo se puede utilizar en modalidad SaaS sino que también es posible instalar un ambiente Domino en tu propio data center y exponerlo a tus usuarios, todo dentro de tu firewall.

Plataforma como servicio para data science

http://www.dominoup.com

4

Si te dedicas al desarrollo web, probablemente ya has utilizado Angular JS o por lo menos has oído de éste. Es un framework que extiende la sintaxis de HTML para poder crear aplicaciones web dinámicas. El equipo de desarrollo de Angular JS recientemente dio a conocer sus planes para la versión 2, la cual estará fuertemente enfocada a aplicaciones móviles. El lema de AngularJS 2 es “diseñado para el futuro”, y en verdad que los desarrolladores están adoptando una visión progresista y no se están dejando atar por el pasado. De hecho, AngularJS 2 solo funcionará en las versiones más recientes de los navegadores. Más aún, AngularJS 2 está siendo construido con la versión 6 de ECMAScript, la cual todavía no es soportada por completo por ningún navegador. Para solventar esto, se apoyan en el compilador Traceur de Google que transforma el código a ECMAScript 5.

AngularJS 2: Diseñado para el futuro

http://blog.angularjs.org/2014/03/angular-20.html 13

www.sg.com.mx |

Software Guru

3

Conforme el campo de la “ciencia de datos” continua ganando atención, ahora vemos surgir servicios tipo PaaS para análisis de datos. Uno de estos proveedores es Domino Data Lab, con su plataforma Domino. Estas son las características que Domino presume:


.TUTORIAL

Pruebas Funcionales y de Regresión con Selenium

E

s implícito que en cualquier proyecto de desarrollo de software contemos con la implementación de pruebas, automáticas o manuales y cubriendo diferentes propósitos: unitarias, de integración, funcionales, de regresión, de estrés, etc. Su éxito dependerá de su diseño y de la elección adecuada de las herramientas a emplear para su desarrollo. Pero el éxito de las pruebas no será aislado, impactará directamente en la calidad final del producto y formarán parte fundamental en la evolución y mantenimiento de éste. En este tutorial revisaremos el desarrollo de pruebas funcionales y de regresión utilizando Selenium. Antes de continuar, considero pertinente que diferenciemos el objetivo de las pruebas funcionales y las de regresión: -Pruebas funcionales: se enfocan en garantizar que se cubran los requerimientos funcionales de la aplicación. Este tipo de pruebas se escriben desde la perspectiva del usuario, con la intensión de confirmar que el aplicativo haga lo que el usuario espera. -Pruebas de regresión: el objetivo de las pruebas de regresión es garantizar que ante cualquier modificación al código actual, ya sea por mantenimiento o por la incorporación de nueva funcionalidad, no se vea afectada en el resto de las secciones que integran a la aplicación. Tanto las pruebas funcionales como las pruebas de regresión pueden ser desarrolladas de forma manual. Sin embargo, la mejor manera es diseñar y construir scripts de pruebas que puedan ejecutarse de forma automática, los beneficios son muchos, entre los cuales tenemos los siguientes: • Teniendo en cuenta la posibilidad del cambio en los requerimientos funcionales, los scripts para este tipo de pruebas deberán crecer a la par de éstos, y será mejor adaptar el script ante este cambio y ejecutarlo automáticamente tantas veces como se requiera ese mismo número de veces la prueba de forma manual. • Ante cualquier liberación de una nueva versión del producto, se deberá garantizar la ejecución exitosa del total de pruebas diseñadas (pruebas de regresión), y en definitivo, será mejor tener un set en el que se ejecuten de forma automática que desarrollarlas una a una de forma manual. Con lo que llevamos visto, podemos darnos cuenta que una prueba que originalmente se diseñó con el propósito de ser una prueba funcional, puede también utilizarse como una prueba de re-

›› Por Erick Frausto

gresión y con esto, tenemos un motivo más a favor del desarrollo de pruebas automatizadas. Pero ya hemos tenido la tarea de programar el código de la aplicación, y seguramente también hemos programado un conjunto de pruebas unitarias, ¿tendremos que escribir más código para desarrollar las pruebas funcionales y de regresión? La respuesta es no, ¡no si unimos al equipo a Selenium!

¿Qué es Selenium?

Selenium automatiza el uso del navegador, y con este poder, las posibilidades de uso están abiertas. Si bien el principal objetivo de esta herramienta es la automatización de pruebas sobre aplicaciones web, su uso no se limita a esta actividad, ya que aquellas tareas repetitivas a través del navegador pueden y deberían también automatizarse. Ahora veamos mediante un ejemplo como podemos desarrollar una prueba con Selenium. Para ello, necesitaremos de una aplicación web que podamos acceder a través del navegador, ¿qué tal la página de Software Guru? http://sg.com.mx Uno de los productos con los que cuenta Software Guru es su revista, y actualmente mediante su sitio web es posible acceder a los artículos de ediciones anteriores, en el ejemplo a desarrollar vamos a automatizar una prueba en la cuál iremos en búsqueda de un artículo correspondiente a una edición anterior. Antes de continuar, es importante mencionar que Selenium se integra de diversos componentes, los cuales cuentan con distintas prestaciones, para nuestro ejemplo utilizaremos Selenium IDE. Selenium IDE es un add-on de Firefox, entre otras cosas, mediante este add-on podemos grabar las acciones de un usuario sobre el navegador, generando un script, el cual podrá ejecutarse en repetidas ocasiones. Para instalar Selenium IDE, y al ser este un add-on de Firefox, primero deberemos contar con Firefox, el cual podemos obtener a través de la siguiente URL: http://www.mozilla.org/ Para descargar Selenium IDE, con nuestro Firefox accederemos a la sección de descargas del sitio de Selenium (al momento de escribir este artículo, la última versión de Selenium IDE es la 2.5.0): http://docs.seleniumhq.org/download/ Cuando se ha descargado el add-on, basta confirmar la instalación y reiniciar Firefox. Para verificar que la instalación fue adecuada, una vez reiniciado Firefox, iremos al menú ‘Herramientas’ y veremos como se ha agregado una opción más (‘Selenium IDE’). Ver Figura 1. .BIO

Erick Frausto se desempeña como Arquitecto de Software en HITSS. Cuenta con certificaciones en tecnología Java y SAP. erick_frausto10@yahoo.com.mx

14


.TUTORIAL

Figura 1. Menú Herramientas.

Antes de dar click a Selenium IDE, con nuestro Firefox vayamos a la página de Software Guru: http://sg.com.mx/ Una vez que accedimos a la página de Software Guru, vayamos al menú ‘Herramientas’ para seleccionar la opción ‘Selenium IDE’, al dar click nos abrirá una ventana como la Figura 2. Figura 2. Menú Herramientas,

Figura 4. Resultados de búsqueda.

Ahora daremos un click sobre este link, el cual nos regresará como resultado un artículo en versión web de una de las ediciones anteriores de la revista. Ver Figura 5.

Al abrir Selenium IDE, por default, la herramienta se encontrará lista para comenzar a grabar las acciones que realicemos sobre el navegador. Dentro del campo ‘Base URL’ capturemos lo siguiente: ‘http: //sg.com.mx’. Bien, ya que tenemos abierta la página de Software Guru y la herramienta Selenium IDE, ya estamos listos para grabar acciones, así que haremos lo siguiente: -En la parte superior derecha del sitio de Software Guru se encuentra un campo de captura de un buscador, escribamos: ‘un, dos, threads’. -Posterior a la escritura de la frase demos un click al botón ‘Buscar’. Ver Figura 3.

Figura 5. Abrir resultado de búsqueda.

Una vez realizamos las acciones listadas, detendremos el grabado de las mismas. Para esto daremos un click al icono con forma de círculo rojo que aparece del lado derecho dentro de Selenium IDE. Ya que hemos grabado las acciones deseadas, daremos click al botón ‘Play current test case‘, lo que iniciará de forma automática la repetición de las acciones previamente grabadas. Para poder apreciar mejor la ejecución de nuestra prueba, llevemos el slide de control de velocidad hacia ‘Slow’. Ver Figura 6.

Figura 3. Búsqueda.

Al realizar esta acción, el sitio nos deberá devolver un listado de resultados bajo el título ‘Resultados de la búsqueda’, y como primer resultado tendremos un link con el título ‘Un, Dos, Threads!’ Ver Figura 4. 15

Figura 6. Repetición de acciones previamente grabadas.

www.sg.com.mx |

Software Guru

seleccionar a Selenium.


.TUTORIAL

Lo que tenemos hasta ahora es una secuencia de acciones grabadas. Para completar nuestra prueba necesitamos realizar verificaciones, esto para garantizar que los resultados obtenidos por las acciones ejecutadas son los esperados. Dentro de Selenium IDE, en la tabla de comandos podemos notar que como consecuencia de las acciones grabadas se agregaron unos comandos, estos son los encargados de ejecutar las acciones de forma automática. Ahora, el siguiente paso es editar esta tabla de comandos para agregar algunas verificaciones que nos ayuden a comparar los resultados obtenidos contra los resultados esperados. Después del grabado de las acciones, nuestra tabla de comandos luce como la figura 7. Figura 8. Verificaciones de tabla de comandos.

componentes que proporciona Selenium es WebDriver, una herramienta con la que podemos ir más allá. Ésta es un API con la cual podemos desarrollar pruebas con mayor grado de complejidad, ya que cuenta con soporte nativo del navegador. Mediante Selenium WebDriver podemos desarrollar pruebas en una gran variedad de lenguajes de programación:

Figura 7. Tabla de comandos.

En la parte inferior de la tabla de comandos se encuentra un formulario con tres campos: ‘Command’, ‘Target’ y ‘Value’. Mediante estos tres campos es posible agregar comandos adicionales a nuestra tabla de ejecución o editar los existentes. Mediante estos campos agregaremos algunas verificaciones a nuestra tabla de comandos, ésta deberá lucir como la figura 8: Para volver a ejecutar nuestro test con los comandos agregados, demos un click al botón ‘Play current test case‘. Con Selenium IDE tenemos una herramienta poderosa, simple de usar y con la que podemos desarrollar suites de pruebas automáticas contando con una variedad amplia de comandos. Pero por si Selenium IDE no fuera suficiente, otro de los 16

-Java -C# -Python -Ruby -Perl -PHP Con Selenium WebDriver también podemos traducir los scripts de Selenium IDE al lenguaje de nuestra preferencia. Selenium IDE y Selenium WebDriver son solo parte de los componentes que integran a la suite de Selenium, que como hemos visto en esta breve introducción, es una herramienta fantástica para el desarrollo de pruebas funcionales y de regresión.

Referencias [1] http://docs.seleniumhq.org/ [2] http://searchsoftwarequality.techtarget.com/ [3] http://www.softwaretestinghelp.com/


Seguridad Informática, ¿Necesaria? Por Adolfo Machado

www.sg.com.mx |

La información es un activo, su integridad, confidencialidad y disponibilidad nos permite tomar decisiones efectivas. En la actualidad el manejo de datos y la velocidad de su procesamiento son elementos claves para personas y organizaciones. A diario consultamos en nuestro dispositivo móvil el correo electrónico, el saldo de la cuenta bancaria, clima, entre otros. Y para muchos, en menor tiempo del que nos tomaría salir de nuestras casas a comprar el periódico.

Software Guru

17


Las empresas invierten en adiestramiento, hardware y software con la finalidad de proteger los datos y redes informáticas de atacantes y virus, cuando realmente un problema invisible vive dentro de ellas; ya que no perciben la carencia de alineamiento y blindaje necesario en actividades especializadas entre usuarios y el personal administrador de la plataforma de TI. Existe una relación muy estrecha en tres áreas: seguridad informática, gestión de cambio y continuidad de negocio o contingencia operativa. El equilibrio entre ellas es clave y necesario para garantizar el cumplimiento de los objetivos operacionales y de seguridad para cualquier empresa sin importar su naturaleza o dimensión sobretodo en un mundo cada vez más globalizado. La seguridad informática se basa en el cumplimiento de las normas tecnológicas que rigen los procesos operacionales, el manejo y clasificación de datos sensibles, tratamiento y ciclo de vida de la información, inclusive el marco legal del contrato entre las partes o países involucrados. La gestión de cambio en TI gestiona, analiza, evalúa, coordina, aprueba o rechaza la adición, actualización o eliminación de elementos o servicios de TI (servidores, aplicaciones, enlaces, routers, entre otros). Es allí el momento heurístico para el responsable de seguridad para indagar y certificar el nivel de riesgo o impacto para el negocio, esquema de monitoreo en los elementos tecnológicos o el incumplimiento de las normas de seguridad. En tal sentido se recomienda considerar como parte del comité aprobador de cambio al responsable de seguridad de TI. En el mismo grado de relevancia se sitúa la continuidad de negocio o contingencia operativa, unidad encargada de diseñar, realizar pruebas y planes para diferentes eventos considerados como acontecimientos no apreciados o de catástrofe, es decir crea un plan B ante una situación no deseada para el negocio e indica cómo hacer para operar bajo ciertas limitaciones técnicas. Para ello se citan los escenarios más comunes: indisponibilidad de sistemas, carencia de proveedores críticos (energía eléctrica, internet o telefonía) y carencia de acceso a las instalaciones. En cada uno de ellos se puede fácilmente descartar o atenuar las políticas de seguridad debido a la prioridad exigida por el negocio en recuperar la operación cuanto antes creando “brechas de confianza”. Debido a esto es imprescindible contemplar elementos y acciones de seguridad al momento de proponer planes de continuidad de negocio para certificar en tiempo y forma los procesos, así como los canales y el tratamiento de la información. Las áreas de seguridad informática, gestión de cambio y continuidad de negocio o contingencia operativa deben permanecer en

comunicación y coordinar un plan integral que permita la sinergia entre ellas y la operación, realizar revisiones periódicas, notificar cualquier cambio del programa original, revisar nuevos proyectos y utilizar los mecanismos de comunicación con la finalidad de difundir y reforzar las normas de seguridad informática corporativa o según para cada proyecto o departamento. Es necesario aplicar acciones preventivas en lugar de las correctivas.

.BIO Adolfo Antonio Machado. Entre sus logros se encuentran el Diseño de ANS para gestión de incidentes, contingencia y continuidad del negocio, diseño de políticas de seguridad lógica bajo normas ISO 27001, Ley Sarbanes Oxley, Ley Federal de Protección de Datos Personales y comisión nacional bancaria y de valores mexicanos. Migración de aplicativos en diferentes países de manera simultánea en corporativo BBVA, gestión tecnológica de procesos bancarios bajo Outsourcing integral. Administración de cambio tecnológico en automatización industrial, informática y telecomunicaciones en petróleos de Venezuela S.A. Actualmente se desempeña en la empresa Indra México como Gerente de Seguridad Corporativa. @aamachadoa

18


ALGUNOS CONSEJOS

Para el responsable de seguridad: • Estandarizar y gestionar seguridad informática con ISO 27000 y la norma UNE-ISO/IEC 27001:2007. • Impulsar las mejores prácticas de TI (Itil, Cobit, PMI, entre otras). • Implementar programa de cambio vs. Portafolio de proyectos. • Fomentar la comunicación de planes estratégicos entre las áreas de TI y negocio. • Diferenciar los procesos importantes de los urgentes. • Identificar las áreas, proveedores y servicios críticos para la organización. • Contar con un listado telefónico del responsable por área y personal alterno. • Adquirir Hardware y Software certificado y reconocido (Firewalls, Proxys, sniffer). • Destrucción de información física y electrónica de acuerdo a su ciclo de vida. • Audita las actividades de seguridad y analiza los resultados. Para los usuarios: • Cuida y protege la información que manejas. • Mantén la confidencialidad de tus credenciales. • Bloquea tu PC al ausentarte de tu puesto de trabajo. • Cifra tus correos con información confidencial. • Comunica las incidencias de seguridad a tu superior. • Solicita el cifrado del disco duro si contiene información confidencial. • Usa el correo corporativo únicamente con fines laborales. • No compartir contraseña ni dejarla visible a los demás. • No almacenes información personal en un equipo de terceros. • No instales software no corporativo y/o sin licencia en tu equipo de trabajo. • No desactives el antivirus. • No navegues por páginas de contenido dudoso. • No conectar equipos móviles a redes no confiables cuando viajes.

19

Software Guru

elementos y acciones de seguridad al momento de proponer planes de continuidad…”

www.sg.com.mx |

“…es imprescindible contemplar


La Cultura de la Privacidad en la Era Digital Por Sergio Araiza

En ocasiones anteriores, en este mismo espacio, se habló sobre la cultura abierta y sus aportaciones a distintas áreas del mundo digital como la propiedad intelectual, la innovación, el software libre y el desarrollo de tecnología basada en código abierto; pero ahora es momento de centrar la atención en la importancia de la seguridad informática, la seguridad digital y cómo ambas afectan la privacidad de los usuarios. Los movimientos de desarrollo de software con fines de distribución libre existen desde hace tiempo y su propósito es ampliar la oferta de sistemas y programas, para que los usuarios tengan la posibilidad de elegir, sin que exista una barrera económica que limite su acceso. Los desarrollos libres se fortalecen a partir de la experiencia que la co-

munidad de usuarios tiene con cada sistema y habilitan canales de retroalimentación para la mejora del proyecto. Casi desde el inicio del movimiento de software libre y el open source, un tema que ocupa gran parte de las conversaciones es la seguridad y cómo garantizar un desarrollo libre de vulnerabilidades que puedan afectar a los usuarios.

.BIO Sergio Araiza es Miembro de Internet Society Mexico y capacitador certificado por Frontline Defenders en Seguridad y Privacidad en Internet para la Defensa de los Derechos Humanos. Actualmente es consultor en Seguridad y Privacidad en Internet y líder de capacitación en Infoactivismo para SocialTIC A.C. @mexflow

20


“la seguridad digital, la seguridad in-

EL DERECHO A LA PRIVACIDAD

Meses atrás el mundo se sorprendía por una serie de declaraciones y documentos que expusieron el programa de monitoreo de comunicaciones que realiza el gobierno de Estados Unidos mediante la Agencia de Seguridad Nacional (NSA) acerca de la información que se transmite por internet y medios digitales alrededor del mundo que incluye una gran variedad de capas de datos personales en fotografías, correos electrónicos o documentos. De este hecho surgieron una serie de temores -que ya habían sido olvidados por el paso de los años- sobre la relevancia de la privacidad en la era digital, y surgen cuestionamientos que vuelven a generar desconfianza en las tecnologías de la información y la comunicación. No se debe olvidar en todos estos acontecimientos, la acelerada revolución que la “web social” trajo a internet con las redes sociales; y aunque en un principio inofensivas, la delgada línea entre lo público y lo privado ha quedado desdibujada y la degradación en la privacidad de los usuarios se hace presente bajo el argumento de ser más sociables o estar más seguros. Ahora, los argumentos a favor y en contra sobre el espionaje digital se debaten en distintos escenarios, algunos comentarios rozan aspectos como las garantías individuales o los derechos humanos. En estas discusiones, organismos no gubernamentales a nivel internacional como Electronic Frontier Foundation (EFF) se han pronunciado sobre las implicaciones que tiene para los usuarios, el que 21

gobiernos o empresas mantengan programas que vigilan el tráfico de información en internet. Parte de las acciones que emprendió la organización, al igual que muchas otras, fue convocar a la comunidad internacional a formar parte de la campaña para establecer una serie de Principios Internacionales sobre la Aplicación de los Derechos Humanos a la Vigilancia de las Comunicaciones [2].

LA APORTACIÓN DE LA CULTURA LIBRE A LA SEGURIDAD

Desde hace tiempo existen desarrollos open source que tienen un alto grado de compromiso en materia de seguridad y que se basan en la necesidad de generar un ambiente seguro para los usuarios. Es así que proyectos como The GNU Privacy Guard (GPG) surgen como alternativas a productos desarrollados en la industria privada y se posicionan como un estándar efectivo e interoperable en el área informática [3]. También en una manera de plasmar el compromiso de la comunidad de software libre con la privacidad de los usuarios surgen proyectos como TAILS [4]. Este proyecto es una distribución de LINUX orientada al anonimato digital. El sistema opera sin requerir una instalación permanente y contiene una paquetería de programas enfocados al anonimato como conexión directa a la red TOR o el cliente de mensajería cifrada Pidgin. La organización Tactical Technology Collective realizó una recopilación de herramientas basadas en código abierto que pueden ser utilizadas por los usuarios como alternativas seguras para distintas actividades [5].

CONCLUSIÓN

Actualmente internet se encuentra en una etapa de desarrollo tecnológico que nos permite ver el enorme potencial que existe en el futuro de la web. De la mano de esa expansión, existen grupos interesados en obtener datos sobre las actividades de los usuarios con fines poco transparentes que afectan los principios sobre los que se fomenta el intercambio de información en internet. Es así que la seguridad de la información y la privacidad de los usuarios en la era digital no se basa únicamente en contar con software mejor programado o basado en altos estándares de seguridad, también requiere de la capacidad de los usuarios de reconocer situaciones de riesgo que se desenvuelven en ambientes virtuales que pueden tener consecuencias directas con la vida “real”. Considerarse a sí mismo como un usuario de internet no debería ser un término basado en la capacidad de estar conectado a la red; también se debe incluir la participación activa en la defensa de los principios sobre los cuales ha crecido la red y por los cuales es considerado un recurso fundamental para el desarrollo de la humanidad.

Referencias [1] Silva, Neif - Espina, Jane http://www.redalyc.org/articulo.oa?id=29003604 [2] https://es.necessaryandproportionate.org/ [3] RFC4880 de IETF http://www.ietf.org/rfc/rfc4880.txt [4] TAIS https://tails.boum.org/about/index.es.html [5] https://alternatives.tacticaltech.org/

Software Guru

Para explicar mejor permítame querido lector hacer una diferencia que desencadena el punto central del texto: la seguridad digital, la seguridad informática y el derecho a la privacidad digital no son lo mismo aunque puedan parecerlo. Cada una tiene ciertos criterios que las hacen diferentes, y en general se relacionan durante las etapas de desarrollo y prueba del software. Cuando se utiliza un software de cualquier tipo, detrás de él, existen horas de desarrollo basado en la posibilidad de satisfacer ciertas expectativas para el usuario y por lo tanto privilegiar con su elección. Pero ¿cómo interactúan la seguridad digital, la seguridad informática y la privacidad en el software al mismo tiempo? Aunque la seguridad informática se enfoca en la programación del código (código fuente), el uso de estándares y protocolos vigentes aplicables en materia de seguridad, también tiene un aspecto más ético que los usuarios finales no perciben y que siempre está en manos del programador. Ese aspecto es de carácter moral y se refiere a la ética aplicada a la informática o también llamado desarrollo ético de software. La ética informática promueve el desarrollo de código, libre de puertas traseras (backdoors), código malicioso (malware) o de recursos que durante la ejecución del programa causen algún daño al sistema, esto se dimensiona en el documento “Ética Informática en la Sociedad de la Información” [1]. En un tenor diferente, la seguridad digital es una cultura que busca generar conciencia sobre los peligros que acechan a los individuos en su actuar digital. Estas prácticas promueven una serie de “buenos hábitos” de seguridad en la era digital que los usuarios pueden poner en marcha en sus actividades virtuales. En ocasiones la seguridad digital tiene tintes asociados a la brecha digital, por la falta de pericia de algunos usuarios que no forman parte de la generación de “nativos digitales” y que son más vulnerables a ataques al no poder reconocer alguna clase de amenaza o riesgo.

formática y el derecho a la privacidad digital no son lo mismo”.

www.sg.com.mx |

ÉTICA INFORMÁTICA


DIRIJA

SUS ESFUERZOS EN LA NUBE Hace 5 años que SG publicó su primer reportaje sobre el cómputo en la nube. En ese entonces, para la mayoría de nosotros el contacto con el cómputo en la nube se limitaba a utilizar servicios como correo electrónico (Google, Hotmail, etc) o almacenamiento (Dropbox). Pocas eran las empresas en nuestra región que contrataban software como servicio para aplicaciones de negocio (ej. salesforce) y todavía menos las que contrataban infraestructura o plataforma como servicio.

• ¿Cómo automatizo el aprovisionamiento de recursos en la nube? • ¿Cómo establezco políticas de control y regulación sobre datos que tengo en la nube? • ¿Cómo integro los datos de aplicaciones en la nube con mis aplicaciones hospedadas? • ¿Cómo administro de forma centralizada distintas nubes (y con distintos proveedores)?

Hoy el panorama es distinto. Prácticamente todas las empresas recurren al cómputo en la nube, incluso de forma inconsciente. Con este aumento de adopción, también ha aumentado la madurez y complejidad en los escenarios de uso. Ante esto, los departamentos corporativos de TI se están haciendo preguntas tales como:

En fin, ahora el reto ya no es usar la nube sino controlarla y más allá de eso, dirigirla.

22

En las siguientes páginas compartimos artículos que esperamos sean de ayuda para dirigir de mejor manera su operación en la nube.


23

www.sg.com.mx |

Software Guru


CONSTRUYENDO EL STACK DE UNA NUBE EMPRESARIAL Nota del editor: Este artículo es una versión traducida y editada del documento: “Architecting the Right Stack for your Enterprise Cloud” publicado por la empresa Scalr y disponible en http://www.scalr.com/resources/white-papers

E

n este artículo presentaremos un panorama sobre las capas de tecnologías que conforman una arquitectura empresarial de cómputo en la nube, o lo que podríamos llamar el “stack de la nube empresarial”. Nos enfocaremos en tres capas específicas que explicaremos a continuación: 1. Recursos de cómputo 2. Orquestación 3. Gestión

CAPA DE RECURSOS Esta capa considera el hardware y tecnología de virtualización que brindan recursos de cómputo a una nube. También incluye la infraestructura de redes. Típicamente, las empresas ya cuentan con esta infraestructura y conocen bien sus componentes. Sin embargo, conforme las organizaciones se adentran hacia la nube, la primer decisión crítica que enfrentan es si deben usar sus propios recursos de cómputo o tercerizar esta capa hacia un proveedor. Hay 3 caminos posibles: • Montar toda la nube de la empresa sobre una nube pública, como Amazon Web Services. En este escenario, la empresa delega por completo la gestión de la capa de recursos al proveedor. • Montar toda la nube de la empresa sobre una nube privada, tal como OpenStack. En este caso, la empresa tendrá que adquirir y administrar su capa de recursos, y asegurar que se integra correctamente con su capa de nube privada. • Dividir en partes y montar algunas en nube privada y otras en nube pública. Esto es lo que se conoce como una “nube híbrida”. En este caso, la empresa debe administrar la capa de recursos para aquellas partes donde utiliza nube privada. Dada la diversidad de cargas de trabajo que las empresas manejan, lo más común es que elijan una estrategia híbrida. Lo que hacen es analizar las características de las distintas cargas de trabajo y en base a estas elegir cuales son buenas candidatas para nube pública y cuáles es mejor que estén en nube privada. 24


La capa de orquestación es aquella que sirve de puente entre los recursos de cómputo y las aplicaciones en la nube. Es así que esta capa expone APIs que son utilizados por las aplicaciones. Las peticiones al API son traducidas a comandos que se envían a los componentes en la capa de recursos. Es por ello que es crítico que la solución utilizada para la capa de orquestación sea compatible con las tecnologías utilizadas en la capa de recursos. Las plataformas de orquestación vienen a facilitar y acelerar el aprovisionamiento de recursos de cómputo. A diferencia de esquemas tradicionales donde para solicitar un recurso de cómputo (un servidor, espacio de almacenamiento, etcétera) se requiere una gran cantidad de trabajo manual e interacción de personal de TI, las plataformas de orquestación soportan esquemas de autoservicio “on-demand” donde los desarrolladores y usuarios pueden habilitar recursos de cómputo en cuestión de minutos. Como ya comentamos anteriormente, aquellas empresas que vayan a habilitar una nube privada, deben habilitar también su propia plataforma de orquestación. Actualmente, las plataformas de orquestación más populares para nubes privadas son: OpenStack, CloudStack y Eucalyptus. A continuación brindamos un análisis y breve perspectiva de cada una: • OpenStack (Heat). OpenStack es una plataforma open source para cómputo en la nube que se puede usar tanto en nubes públicas como privadas. El proyecto fue fundado originalmente por NASA y Rackspace, pero hoy en día cuenta con el respaldo y participación de una gran cantidad de empresas entre las que destacan HP, IBM, Intel, Red Hat y VMware. Dado que OpenStack brinda una plataforma completa para cómputo en la nube, está formado por distintos componentes repartidos a lo largo del stack. El componente específico para orquestación se llama “Heat”. En general, podemos decir

En el caso de nubes públicas, estas típicamente ya incluyen una plataforma de orquestación. En varios casos (por ejemplo HP, IBM y Red Hat), dicha plataforma está basada en OpenStack.

GESTIÓN DE LA NUBE Las plataformas de gestión de la nube, o Cloud management platforms (CMP), son la capa más alta del stack de la nube. Esta capa brinda servicios que los usuarios finales utilizan para interactuar con la nube. Dichos servicios servicios se apoyan en los APIs que expone la capa de orquestación. La realidad es que aún no hay un consenso claramente definido sobre los servicios que debe brindar una plataforma de gestión de servicios, por lo que cada proveedor ofrece lo que considera que es valioso para sus clientes. Aun así, estos son algunos ejemplos de necesidades que se pueden resolver al nivel de las plataformas de gestión de nube: • Manejar múltiples nubes. Dado que una empresa puede elegir tener distintas cargas de trabajo en distintos esquemas de nube (público y privado) o incluso con distintos proveedores, las plataformas de gestión abstraen esto y brindan una interfaz de gestión única que se comunica de forma transparente con las distintas plataformas de orquestación de la capa inferior. • Aplicar políticas de gobierno corporativo (governance). Es a este nivel donde aplicamos políticas como control de acceso o implementamos la cobranza y asignación de costos cuando una persona/ departamento contrata recursos de cómputo. • Agilizar el flujo de desarrollo. Las plataformas de gestión de nube también pueden brindar servicios que automaticen la creación y gestión de ambientes para el desarrollo, prueba e integración de aplicaciones.

CONCLUSIÓN En este artículo hemos presentado un panorama sobre tres capas esenciales para habilitar una nube empresarial: recursos de cómputo, orquestación y gestión. Recomendamos ampliamente que antes de seleccionar componentes para cada una de estas capas, las empresas tengan claras sus necesidades y restricciones en términos de presupuesto, agilidad y riesgo. Teniendo esto claro será más fácil seleccionar los componentes adecuados a la organización y que mejor le permitan cumplir sus objetivos de negocio. 25

Software Guru

ORQUESTACIÓN

que OpenStack es una plataforma bastante poderosa y flexible, que está en evolución continua. El inconveniente es que este dinamismo también hace complicado el implantar OpenStack. • CloudStack. CloudStack también es una plataforma open source para cómputo en la nube. A diferencia de OpenStack, CloudStack se enfoca más en la estabilidad y facilidad de uso que en la incorporación de nuevas capacidades. Citrix es el principal patrocinador de CloudStack y ofrece una distribución comercial de CloudStack con soporte empresarial denominada CloudPlatform. • Eucalyptus. Eucalyptus es una plataforma de orquestación que se diferencia por su amplio soporte de capacidades de Amazon Web Services. Para aquellas empresas que tienen aplicaciones en AWS y están considerando transicionar a esquemas híbridos o completamente privados, Eucalyptus puede ser la opción ideal.

www.sg.com.mx |

A continuación listamos las principales preguntas que debemos hacernos al evaluar si una carga de trabajo es adecuada para nube pública o privada. • ¿Los datos están altamente regulados y no pueden estar fuera de la red de la empresa? Este es el escenario más común para elegir una nube privada. Vale la pena mencionar que los proveedores de nube pública cada vez tienen mayores niveles de “compliance” e incluso llegan a tener controles más estrictos y mejor compliance que el data center de una empresa. • ¿Se requiere comunicación de muy baja latencia con infraestructura hospedada en la red de la empresa? Esto también puede apuntar hacia nube privada, a menos que se puedan establecer canales de comunicación directa o acelerada entre la nube pública y nuestra red. • ¿Qué tan elástica es la carga? Si la aplicación tiene picos de uso claros en los que consume más recursos de cómputo (por ejemplo en ciertos horarios, días del mes o temporadas) es buena candidata para nube pública, ya que escala automáticamente y solo se paga por los recursos de cómputo consumidos. Por otro lado, si es una aplicación con un consumo de recursos relativamente estable a lo largo del tiempo, entonces habrá que hacer un análisis de costos detallado para evaluar dónde sería más económico hospedar esta carga: en nube pública o privada.


PREDICCIONES DEL CĂ“MPUTO EN LA NUBE Por James Staten

.BIO James Staten es Vicepresidente y analista principal en Forrester Research atendiendo a los profesionistas de infraestructura y operaciones de TI.

26


1. El software como servicio (SaaS) se convierte en el esquema preferido para nuevas aplicaciones. En categorías como CRM y colaboración esto se ha visto muy claro, pero incluso en otras categorías comenzamos a ver esta tendencia. La excepción son los grandes ERPs, pero incluso estos ya están cambiando hacia modelos de application service provider (ASP). 2. El internet de las cosas funcionará sobre la nube pública. El Internet de las cosas, ya sea para consumidores con dispositivos como Samsung Gear, Nike FuelBand o FitBit, o para corporativos con sensores y dispositivos médicos, generará miles de millones de datos en 2014. El mejor lugar para agregar y analizar estos datos y responder a ellos en tiempo real es desde la nube pública. “Es más fácil mover el cómputo a los datos, que los datos al cómputo”, dice una frase conocida en el ámbito de BI.

4. La seguridad perimetral se mueve hacia afuera del perímetro, donde pertenece. La combinación del cómputo en la nube y el cómputo móvil, implica que ya no hay un perímetro que la empresa pueda controlar. Conforme aumenta la cantidad de cosas que se hacen en la nube pública, los controles perimetrales pierden efectividad. Adicionalmente, los usuarios tienen tantos dispositivos que dificultan significativamente el control de dispositivos. El enfoque debe cambiar de proteger la red y dispositivos, hacia proteger los datos aplicando un modelo que en Forrester llamamos “Zero Trust”. 5. Australia se convierte en el segundo mercado mundial de nube pública. Después de Estados Unidos, Australia es el país con mayor uso de la nube pública. China todavía está en etapas tempranas de adopción de la nube pero pronto despegará. 6. Se establecen servicios de continuidad “cloud-to-cloud” para SaaS. Las empresas crecientemente recurrirán a servicios de continuidad “cloud-to-cloud”, los cuales automáticamente realizan respaldos de los datos que tenemos en aplicaciones SaaS y nos permiten fácilmente administrar, descargar y reestablecer dichos respaldos en caso de requerirlo. Las empresas Backupify y Spanning son ejemplos de este segmento. 7. Chef y Puppet reemplazarán soluciones comerciales de automatización de flujos. Con el crecimiento en adopción de la nube públi27

ca, estas herramientas para automatización de la configuración se han hecho muy populares. De acuerdo a nuestras estimaciones, en 2014 se administrarán más cargas de trabajo con estas herramientas que con las de todos los proveedores de herramientas propietarias de configuración combinadas, incluyendo a BMC, CA, HP e IBM. 8. El esquema “bring-your-own-encryption” dominará las discusiones de seguridad. Ante las revelaciones de espionaje por la NSA, las personas y empresas están muy interesadas en estrategias para cifrar sus datos antes de que lleguen a la nube. Las empresas en este espacio (CipherCloud, AlephCloud, PerspecSys, Skyhigh Networks, Vaultive) verán gran crecimiento en este año (y algunas serán adquiridas por los grandes proveedores de TI). 9. La seguridad en la nube estará mucho más centralizada y automatizada. Si su principal razón para no subirse a la nube es la seguridad, se le están acabando las excusas. Los principales proveedores de nube pública han tenido grandes avances en seguridad y compliance, y ya son muy pocos los escenarios donde la nube pública queda descartada por cuestiones de seguridad. Al mismo tiempo, cada vez es más sencillo y confiable asegurar nubes privadas gracias a herramientas como HyTrust. Proveedores de seguridad como CloudPassage, JumpCloud e Illumio permiten definir requisitos de seguridad por medio de la ejecución automatizada de reglas de negocio. Las empresas podrán lograr mejor seguridad de esta manera que haciéndolo ellas mismas. 10. Se comienza a diferenciar entre virtualización avanzada y nube privada. El término “nube privada” se ha utilizado para referirse a cualquier cosa más allá de la virtualización básica, sin importar si verdaderamente cumple el criterio de ser una nube privada. A partir del 2014 veremos que la virtualización avanzada (enhanced virtualization) sí será distinguida de lo que es una nube privada.

La versión original en inglés de este artículo se encuentra disponible en http://swgu.ru/sg43r3

Software Guru

A continuación listamos las 10 predicciones principales de Forrester Research en el ámbito de cómputo empresarial en la nube para el 2014.

3. El catálogo de servicios se convierte en el punto de entrada estratégico para la nube. Las aplicaciones SaaS se convertirán en elementos estándar del portafolio de TI, y se establecerán procesos centralizados para su contratación y soporte. El corazón de estos procesos será el “catálogo de servicios”, el cual no solamente enlista los servicios que provee/soporta el departamento de TI, sino que también será el lugar desde donde los usuarios podrán adquirir y aprovisionar dichos servicios. El catálogos de servicio ayudará a los usuarios de negocio a decidir qué servicios deben obtener y cuando. El catálogo de servicio es donde se conjuntan el valor, transparencia de costo y gobierno corporativo.

www.sg.com.mx |

L

os corporativos ya están tomando el cómputo en la nube en serio. Lo que veremos durante los meses por venir es cómo las empresas integran la nube a su portafolio existente de TI, independientemente de si al departamento de TI le agrade esto. Tanto las áreas de negocio, como las de desarrollo de aplicaciones, requieren mayor agilidad por parte de las áreas de infraestructura y operación de TI . Es así que este será el año en el que los “IT Ops” cederán y desarrollarán estrategias reales para adoptar la nube, soportando escenarios de instalación de aplicaciones en la nube y habilitando a las empresas para ser más ágiles. Conforme nos adentramos en la “Era del Cliente”, el enfoque es hacia los sistemas de interacción con los clientes y la capacidad de explotar dichas herramientas. Las tecnologías y servicios en la nube representan la forma más rápida para contactar nuevos clientes e inyectar vida a las aplicaciones. En el 2014 aprovecharemos la nube no solo para soportar escenarios tradicionales de TI sino también para habilitar nuevos escenarios disruptivos.


NUBES PÚBLICAS, PRIVADAS Y PROPIAS

Por Gunnar Wolf

H

ay dos ángulos principales desde los cuales podemos visualizar el uso de la nube: Por un lado, como desarrollador y proveedor de servicios, hablar de la nube nos hace pensar en escalabilidad, paralelización, distribución geográfica en redes de entrega de contenidos (CDNs), y demás aspectos técnicos, estoy seguro que la mayor parte de los textos en este número irán en ese sentido. Sin embargo, la nube es también, y cada vez más, un concepto que manejan los usuarios finales. Nuestros usuarios, incluso los menos tecnófilos, están empleando los servicios en la nube con cada vez mayor frecuencia. De una forma muy diferente, claro, pero… ¿qué no es acaso lo mismo? Quisiera entonces que hagamos una pausa para pensar en los tres modos clásicos en que nos referimos a la nube: IaaS, PaaS, SaaS — respectivamente, Infraestructura, Plataforma y Software como un servicio—, pero haciéndolo desde la perspectiva de cómo los usuarios finales interactúan con cada una de dichas modalidades.

SAAS Esta modalidad resulta natural. El uso de aplicaciones medianamente interactivas desde un navegador web califica perfectamente para ser un ”software como servicio”. Teniendo los datos almacenados en la nube, la computadora local actúa básicamente como un cliente delgado, que no hospeda la lógica de la aplicación como tal. El mismo término SaaS nació para describir lo que ya era práctica común: El uso masivo de software hecho para presentarse en un navegador Web. Hoy en día, ya asumimos que para poder trabajar cómodamente con una computadora, cualquier usuario requiere conectividad a Internet. El cliente de correo, los marcadores, las referencias para lo que estemos haciendo … Es cierto que todavía podemos trabajar desde lugares sin red, pero cada vez más tenemos que planear dichos periodos de desconexión.

IAAS Parecería que esta categoría estaría reservada sólo para los administradores de sistemas a gran escala, y si acaso a sus usuarios corporativos, máquinas virtuales, configuración del equipo (virtual) de red entre ellas, almacenamiento común a dichos equipos, redes privadas virtuales, etcétera. Sin embargo, hagamos símiles: cada vez es más frecuente que nuestros usuarios empleen servicios de alojamiento y compartición de archivos. Además,

parte de lo que ofrecen en este sentido varios de los proveedores es la instalación local de un programa para sincronizar automáticamente un directorio local con el almacenamiento remoto. ¿No es acaso esto, para todo propósito práctico, Infraestructura como un Servicio?

PAAS Me costó un poco más de trabajo encontrar cómo el usuario final emplea plataformas. Una plataforma es algo que nos facilita nuestros desarrollos, que nos permite tomar piezas como bloques de construcción listos y construir sobre ellos. ¿Qué puede hacer un usuario final que pueda verse de este modo? La respuesta se hace obvia cuando, nuevamente, extendemos las fronteras del significado. Viendo la cantidad de sitios Web que emplean mecanismos al estilo de OpenID u OAuth para la autenticación y autorización centralizada, ¿qué es esto sino el despliegue de una Plataforma como un Servicio? Ahora bien, al hablar de cómputo en la nube, un tema que está siempre presente es el de la seguridad y protección de datos. Analicemos un poco la nube para usuarios finales desde este punto de vista. Justamente en la columna que publiqué en la edición anterior de SG ya había comenzado a hablar de este tema (Cómo mantener un nivel aceptable de privacidad en nuestra vida en línea). No tiene caso reiterar esta conversación sobre privacidad que se ha vuelto parte de nuestra vida diaria, nuestros usuarios están ya mayormente al tanto de lo que significa depositar su confianza en sitios en red.

SE VIENE LA TORMENTA: ¿CONFIAMOS EN NUESTROS PROVEEDORES? Hay una gran cantidad de proveedores de servicios en la nube para los usuarios finales. Es más, casi todos ellos son gratuitos… tristemente, no podemos olvidar la máxima: ”En la nueva economía, no compras un producto, sino que Tú eres el producto”. Otorgar los datos de nuestros usuarios a Dropbox, Google, Slideshare o cualquier empresa de servicios puede vulnerar la confidencialidad de su información —lo cual resulta tan peligroso para ellos como individuos como para la organización entera. Los proveedores que menciono no sólo representan un riesgo por las ya tan sonadas filtraciones que demuestran cómo agencias gubernamentales de todo tipo se han dedicado a la vigilancia invasiva, sino que también por la mera popularidad de dichos servicios: Los

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

28

.BIO


Dice el proverbio en inglés que ”toda nube tiene un borde plateado”, con lo que se refiere a que incluso los problemas tienen aspectos positivos. Teniendo esto en cuenta, podemos darle a nuestros usuarios las principales ventajas de muchas aplicaciones en la nube sin perder el control sobre nuestra información. No acostumbro emplear el espacio que me brinda SG para promover productos específicos, pero en esta ocasión creo que vale la pena hacerlo, y es por ello que les platicaré sobre OwnCloud. OwnCloud es una respuesta a la necesidad de mantener el control de los datos de nuestros usuarios. Es una aplicación web muy fácil de instalar y utilizar que implementa una impresionante cantidad de servicios que nos permiten hospedar los datos de nuestros usuarios en casa. Y no es una solución artesanal, además de una aplicación Web limpia e intuitiva como pocas, hay clientes para el escritorio y dispositivos móviles. Es software libre, y la empresa que dirige su desarrollo ofrece también planes comerciales de servicio y desarrollo a medida. OwnCloud también puede ser visto por nosotros los programadores como una plataforma de despliegue corporativo de aplicaciones: es una aplicación modular, escrita en PHP, con una extensa documentación para los desarrolladores de aplicaciones. Y respecto al núcleo de OwnCloud, su desarrollo se realiza en GitHub, con lo cual es fácil darle seguimiento y participar en su desarrollo. El equipo de desarrollo de OwnCloud ha logrado incorporar la responsividad y usabilidad de HTML5 a un nivel que me tiene francamente sorprendido. ¿Y qué tipo de aplicaciones podemos encontrar? Hay de todo. Probablemente la funcionalidad más socorrida es la de espacio de almace-

CONCLUSIÓN A pesar de que esta columna parece en esta ocasión una inserción pagada (¡cosa que definitivamente no es!), espero aprecien por qué les presento esta alternativa en el número dedicado al cómputo en la nube. Nuestros usuarios tienen ya su concepción (y probablemente familiaridad) de cómo aprovechar a la famosa nube. Nosotros podemos, a través de herramientas como la que reseñé, contribuir de forma importante con la seguridad de su información. Aplicaciones que cubren algunos de los aspectos abordados hay muchas, pero —hasta donde tengo conocimiento— el nivel de integración y la variedad en la oferta de OwnCloud la hacen destacar.

Referencias [1] OwnCloud - http://owncloud.org

29

Software Guru

EL BORDE PLATEADO DE MI PROPIA NUBE

namiento y sincronización de archivos, al estilo de Dropbox. La instalación por defecto de OwnCloud incluye una serie de aplicaciones básicas de productividad (calendario, contactos, gestor de marcadores, reproductor de medios). Si bien es cierto que todas son ya bastante comunes y que ninguna de ellas es ya un “killer app”, su valor está en que estos servicios, que ya asumimos como un lugar común, los podemos proveer desde nuestro propio equipo. Y en este sentido, cabe mencionar que, dado que implementa los protocolos CardDAV y CalDAV, OwnCloud puede operar como proveedor de datos para las principales aplicaciones de dispositivos móviles. OwnCloud se va poniendo más interesante si planteamos su uso ya no sólo para un uso ocasional, sino como parte de los servicios centralizados de nuestra organización. Por ejemplo, puede manejar la autenticación de usuarios a través de LDAP, manejo de los archivos de los usuarios en los directorios en la red corporativa, y todo un largo etcétera. Una de las características más interesantes de la versión 6, liberada en diciembre del 2013, es la edición colaborativa de documentos.

www.sg.com.mx |

grandes proveedores son objetivo de ataques de forma prácticamente ininterrumpida. Y si bien el tiempo de respuesta ante incidentes es típicamente muy corto, la cantidad de documentos sustraídos al presentarse un ataque exitoso puede ser muy grande. Con eso no quiero decir, obviamente, que el código que corramos en nuestro propio servidor sea más seguro o robusto que el que ejecutan los grandes proveedores. Sin embargo, al menos en el momento que se da a conocer un ataque, no dependemos de las prioridades de terceros para aplicar las medidas correctivas.


IPAAS

INTEGRACIÓN DE APLICACIONES MODERNA

Por Pedro Galván

C

onforme el uso corporativo de aplicaciones en la nube (SaaS) sigue en aumento, los departamentos de TI deben encontrar maneras de resolver un problema perpetuo de TI: cómo conectar las nuevas aplicaciones y tecnologías, con las aplicaciones que ya tiene la organización. En este caso, el reto consiste en cómo conectar las aplicaciones y datos en la nube, con sus sistemas legacy hospedados en los data centers de la empresa. Este tipo de ambientes “híbridos” brindan nuevos retos de integración, que requieren un nuevo tipo de plataforma para resolverlos. Para ello está surgiendo una nueva categoría llamada plataforma de integración como servicios, o iPaaS por sus siglas en inglés (integration platform as a service). Un iPaaS es una plataforma de integración basada en la nube que habilita capacidades de integración entre aplicaciones y servicios independientemente de donde se encuentren: en nubes públicas, data centers privados, o redes B2B/EDI.

VENTAJAS En comparación con las soluciones tradicionales para integración de datos empresariales, los iPaas ofrecen las siguientes ventajas: • Diversidad de escenarios. Están diseñados para integrar no solo aplicaciones en el data center, sino también aplicaciones en la nube, y fuentes de datos públicas (ej. redes sociales). • Agilidad. Al ser un servicio en la nube, un iPaaS se puede habilitar rápidamente sin necesidad de adquirir servidores o instalar software. • Integración en tiempo real. Además de soportar esquemas de integración tipo batch y ETL (Extract, Transform and Load), los iPaaS están diseñados para esquemas de integración de datos en tiempo real por medio de comunicación y procesamiento continuo de datos con baja latencia.

te cuando aumenta la carga de trabajo (por ejemplo al realizar tareas batch y ETL), y se reducen cuando no hay carga de trabajo.

PROVEEDORES El mercado de soluciones iPaaS es bastante joven, pero cuenta ya con suficientes jugadores como para acomodar distintas necesidades, preferencias y restricciones. Después de estudiar la oferta de distintos proveedores y revisar distintos reportes, estos son los principales jugadores que personalmente considero que actualmente tienen mayor relevancia en el espacio de iPaaS: Líderes • Dell Boomi (AtomSphere) • Informatica (Informatica Cloud) • Mulesoft (CloudHub) • IBM (WebSphere Cast Iron Live) Retadores/Nicho: • Microsoft (Azure BizTalk Services) • Red Hat (JBoss Fuse) • SAP (Hana Cloud Integration) • SnapLogic (Integration Cloud) • Software AG (Integration Live) • Actian (DataConnect) En la sección de referencias de este artículo pueden consultar a un par de reportes con información detallada sobre estos y otros proveeodres iPaaS.

Referencias [1]”Magic Quadrant for Enterprise Integration Platform as a Service”. Gartner, enero 2014. http://swgu.ru/sg43r1

• Elasticidad. Otra ventaja de ser un servicio en la nube es su elasticidad. Es decir que los recursos de cómputo escalan automáticamen-

[2] “The Forrester Wave: Hybrid Integration, Q1 2014”. Forrester Research, febrero 2014. http://swgu.ru/sg43r2

.BIO Pedro Galván es cofundador y director editorial de SG Software Guru.

30

30


31

www.sg.com.mx |

Software Guru


.PRÁCTICAS Pruebas

Mejores Prácticas en Pruebas de Usabilidad para Web Móvil ›› Por S. Berenice Ruiz Eguino

S

eguramente tendrán un buen contexto respecto a la existencia de estándares, marcos de referencia, guías, buenas prácticas, etc., que continuamente se publican en el mundo con el fin de definir criterios y pautas que apoyen a los desarrolladores de sitios web, para brindar una buena experiencia al cada vez más creciente grupo de usuarios de dispositivos móviles. W3C (World Wide Web Consortium), es una comunidad internacional donde sus integrantes trabajan en conjunto para desarrollar estándares web. Está dirigida por Tim Berners-Lee, creador de URL (Uniform Resource Locator), HTTP (HyperText Transfer Protocol) y HTML (Hyper Text Markup Language), que son las principales tecnologías sobre las que se basa la web. Esta comunidad ha liberado —entre otros importantes estándares y documentos— las Mobile Web Application Best Practices (disponibles en distintas versiones, la más reciente es la de Diciembre de 2010). En las pruebas de software para dispositivos móviles, resulta muy conveniente considerar dichas recomendaciones, ya que al implementarlas se busca no sólo lograr la mayor calidad posible y satisfacer a los usuarios actuales, sino ampliar el mercado de las empresas dado que ya una parte considerable de la población utiliza su smartphone o tablet como mecanismo principal para encontrar información, productos, entretenimiento, soluciones, etcétera. Sabemos que en lo referente a web móvil, los ratings de las aplicaciones están a la vista de cualquiera, por lo tanto, sería difícil ocultar una pobre calidad, que incluso pudiera ser una de las principales razones de su poco éxito. En vista de lo anterior, enfocaremos el contenido de la presente entrega en mostrar algunos de los aspectos de usabilidad para web móvil, que se sugiere tener presentes entre nuestra lista de pruebas imperdonables. Es decir, sería deseable que

nuestros checklist, escenarios o casos de pruebas, contemplen entre otros, los siguientes elementos para buscar el éxito de nuestras aplicaciones móviles. A) Evaluar si el contenido es tan flexible como para ser utilizado con una gran variedad de dispositivos. Ello permitirá alcanzar un mayor número de usuarios y obtener más satisfacción de su parte. Considerar las diferentes plataformas, sistemas operativos, tamaños de pantalla, etc. 1) Evaluar coherencia temática. El contenido desde una URI refleja la misma información al usuario, sin importar qué dispositivo móvil utilice. 2) Capacidades/características. Verificar que se aprovechen al máximo las características de los dispositivos móviles, para proveer una mejor experiencia de uso. 3) Deficiencias en la implementación. Asegurarse que se hayan tomado medidas adecuadas para evitar problemas en la implementación. 4) Pruebas. Cerciorarse que las pruebas realizadas se efectúen tanto en emuladores, como sobre varios modelos de dispositivos móviles reales.

B) Evaluar el apego a estándares web buscando garantizar una mayor interoperabilidad. La diversidad de modelos y opciones disponibles en dispositivos móviles, no debiera convertir en un caos la experiencia del usuario debido a arbitrariedades en sus formas de operar. 5) Etiquetado válido. Asegurar la creación de documentos de contenido válidos de acuerdo a las gramáticas formales disponibles. 6) Compatibilidad de formato. El contenido enviado por la aplicación móvil debe ser en un formato compatible con el dispositivo. 7) Uso de hojas de estilo. Se sugiere el uso de hojas de estilo para las maquetas y presentación de contenido. 8) Estructura. Uso de las funciones del lenguaje de etiquetado para definir la estructura lógica del documento. 9) Mensajes de error. Asegurarse de que los mensajes de error realmente faciliten el regre-

sar al contenido anterior, siendo lo suficientemente informativos.

C) Evaluar posibles problemas de diseño. Los cuales pudieran hacerse más evidentes, entre otras cosas, debido a pantallas y teclados pequeños. Es necesario verificar que se esté evitando el uso de: 10) Tablas anidadas. 11) Gráficos para el espaciado. 12) Marcos. 13) Mapas de imagen. 14) Ventanas emergentes. (Se sugiere evitar el uso de éstas y si se cambia de ventana, informar al usuario).

D) Identificar consideraciones o limitantes tecnológicas dependientes de funciones que solo estén disponibles en ciertos dispositivos móviles. 15) Fuentes. Usar las de mayor compatibilidad posible. 16) Cookies. No depender de la existencia de éstas. 17) Compatibilidad de tablas. Asegurarse de que si se usan tablas es porque son compatibles con los dispositivos. 18) Objetos o Scripts. No debe haber una dependencia de los objetos o scripts integrados. 19) Colores. Asegurarse de que la información mostrada por medio de colores, también sea comprensible sin color.

E) Evaluar la calidad en la Navegación. 20) Barra de Navegación. Asegurarse de proporcionar una barra de navegación reducida y que esté concentrada en la parte superior de la página. 21) Navegación. Revisar que los mecanismos de navegación sean consistentes entre las páginas. 22) Identificar destino de cada vínculo. Revisar que cada link tenga claramente identificado un destino. 23) Teclas de acceso rápido. Designar teclas de acceso rápido a los links y funciones más utilizadas.

.BIO Sandra Berenice Ruiz Eguino es Directora de Operaciones de e-Quallity. Ha participado como Consultora Senior en proyectos de mejora de organizaciones de Prueba de Software; cuenta con certificación internacional en Pruebas por el ASTQB. A lo largo de su trayectoria profesional ha actuado también como Ingeniero de Pruebas Senior, Líder de Proyectos, Administradora de Proyectos nacionales e internacionales, analista y desarrolladora. Ha sido profesora de la Universidad Autónoma de Guadalajara (UAG), donde realizó sus estudios de Maestría en Ciencias Computacionales.

32


F) Evaluar posibles problemas de compatibilidad relacionados a colores, imágenes, estilo, pantalla. Es cierto que elementos como éstos pueden facilitar el destacar cierto contenido, pero a veces pueden propiciar errores debido a las características de pantalla, contrastes de color, formato, etc., de los diversos dispositivos. 26) Re-dimensión de imágenes. Asegurar que se redimensionen las imágenes en el servidor, si tienen un tamaño intrínseco. 27) Gráficos grandes. Verificar que no se empleen imágenes que no pueden ser mostradas en el dispositivo (grandes o con gran resolución), excepto para información crítica que de otro modo se perdería. 28) Legibilidad de la imagen de fondo. Verificar que el contenido siga siendo legible en el dispositivo al emplear imágenes de fondo. 29) Contraste de color. Verificar que la combinación de color del primer plano y el color de fondo proporcionan un contraste adecuado. 30) Scrolling. Revisar que el desplazamiento entre la página se limite a una sola dirección, a menos que sea indispensable también el desplazamiento secundario. 31) Límite de tamaño de página. Verificar que el tamaño de toda la página sea apropiado a las limitaciones de memoria del dispositivo. 32) Tamaño de las hojas de estilo. Uso de hojas de estilo pequeñas.

G) Evaluar los posibles problemas relacionados a retrasos y tiempos de espera en la red. 33) Actualización automática. Verificar que la página no se actualice automáticamente, a menos que se haya informado al usuario y éste tenga forma de desactivarla. 34) Caché. Cuidar que en las respuestas HTTP se proporcione información de caché. 35) Recursos externos. Verificar que se mantenga al mínimo el vínculo a recursos externos.

H) Evaluar que el diseño facilite la introducción de datos, evitando al máximo el uso de teclado u otros métodos monótonos de manejar en dispositivos móviles. 36) Reducción de uso del teclado.

37) Evitar al máximo la introducción de texto. 38) Existencia de un orden de tabulación. 39) Existencia de selección por default. 40) Modo de entrada por default. 41) Etiquetado de controles. Verificar que se asignen adecuadamente etiquetas a todos los controles de formularios. 42) Posición de controles. Verificar que las etiquetas estén colocadas adecuadamente respecto a los controles que correspondan.

I) Evaluar que la información proporcionada a los usuarios de dispositivos móviles sea lo más limitada y sintetizada posible. 43) Título de la página. Asegurarse que el título de la página es corto pero descriptivo. 44) Claridad. Hacer uso de un lenguaje claro y simple. 45) Adecuado. Verificar que el contenido es adecuado para su uso en el contexto móvil. 46) Limitación. Evaluar que el contenido esté limitado a lo que el usuario ha solicitado. 47) Material principal. Asegurarse que el contenido o material principal de la página se ubique antes del material que no lo es. 48) Tamaño usable de la página. Verificar que se divida en porciones usables pero de tamaño limitado.

Estas son las buenas prácticas de la versión más reciente publicadas por el W3C; una buena combinación entre las anteriores y las siguientes, seguramente nos permitirán generar pruebas más completas sobre nuestros sitios y aplicaciones web para móviles (se evita el detalle por cuestión de espacio): 1. Uso escaso de cookies. 2. Uso apropiado de las tecnologías de almacenamiento del lado del cliente para datos locales. 3. Replicar datos locales. 4. No Ejecutar datos JSON (Notación de objetos JavaScript) no confiables. 5. Asegurarse que el usuario es informado sobre el uso de la información personal y de dispositivos. 6. Habilitar inicio de sesión automático. 7. Utilizar compresión de transferencia. 8. Minimizar aplicaciones y tamaño de datos. 9. Evitar redirecciones. 10. Optimizar las solicitudes de red. 11. Minimizar recursos externos. 12. Agregar imágenes estáticas dentro de Sprites. 13. Incluir imágenes de fondo en línea en hojas de estilo CSS. 14. Recursos caché Referencias Recursos Fingerprinting.

33

15. Datos caché AJAX. 16. No enviar información de cookies innecesariamente. 17. Mantener razonable el tamaño del DOM (Document Object Model). 18. Optimizar el tiempo de inicio para la aplicación. 19. Minimizar la latencia percibida. 20. Diseño para métodos de interacción múltiple. 21. Preservar el enfoque en actualizaciones de páginas dinámicas. 22. Uso de identificadores de fragmento para manejar las vistas de la aplicación. 23. Hacer de los números de teléfono un “Click-to -Call “. 24. Garantizar flujos de texto de párrafo. 25. Garantizar la consistencia de estado entre dispositivos. 26. Considerar las tecnologías específicas para móviles para iniciar aplicaciones web. 27. Uso del elemento Meta Viewport para identificar tamaño deseado de la pantalla. 28. Preferir Server-Side Detection cuando sea posible. 29. Utilice Client-Side Detection cuando sea necesario. 30. Utilice Clasificación de dispositivos para simplificar la adaptación del contenido. 31. Soportar una variante No-JavaScript si es el caso. 32. Ofrecer a los usuarios una variedad de interfaces.

Vale la pena revisar además, las herramientas que nos ayudan de forma automática a evaluar muchas características de usabilidad y accesibilidad de este tipo de aplicaciones, y apoyarnos en algunas que el mismo W3C proporciona disponibles en: www.w3c.org/QA/Tools Como ejemplo, el “MobileOK checker”, realiza varias pruebas en una página web para determinar qué tan amigable es en su versión móvil. Las pruebas realizadas se encuentran definidas en la especificación “mobileOK Basic Tests 1.0”. Una página web es considerada mobileOK una vez que pasa todas las pruebas (documentadas en su totalidad y disponibles para su análisis en la sección de Ayuda). Si se desea validar contenido específico como hojas de estilo CSS, o para encontrar links rotos, etc., hay otro tipo de validadores y herramientas que proporciona el mismo W3C, todas muy útiles para los fines que hemos venido mencionando.

www.sg.com.mx |

24) URIs: Cerciorarse que sean lo más cortas posible. 25) Balance. Asegurarse de que haya un balance entre contar con demasiados vínculos en una página y hacer que el usuario vaya de un sitio a otro hasta llegar a lo que busca.

Software Guru

.PRÁCTICAS Pruebas


.PRÁCTICAS Ágil

El Importante Papel del Cliente en un ›› Por Richard Telleria

Proyecto Ágil de Software

S

iempre se ha dicho que la participación del cliente es clave en el desarrollo de un proyecto. Lo sabemos y confirmamos por nuestra propia experiencia. Incluso el manifiesto ágil lo recoge en uno de sus cuatro valores principales, e incluso va un poco más allá: “colaboración con el cliente por encima de la negociación contractual”. Y si vamos a dos de sus doce principios: • Nuestra mayor prioridad es satisfacer al cliente, mediante la entrega temprana y continua de software con valor. • Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos ágiles aprovechan el cambio, para proporcionar ventaja competitiva al cliente. Todos tenemos en mente a algún cliente con el que nos ha tocado tratar, o que nos ha hecho pensar qué tipo de cliente somos o hemos sido. Seguro que algunos nos acordamos del típico cliente impertinente, que incluso en ocasiones podría parecer, por cuestiones incomprensiblemente extrañas, ajeno al proyecto o interesado en que ni siquiera éste saliera adelante. Por el contrario, otras veces “disfrutamos” de un cliente inquieto, que está literalmente encima de nosotros y nos dificulta, lentifica o pervierte nuestra cadencia de trabajo. ¿Quién no ha afirmado en alguna ocasión eso de…? “Si el cliente no nos molestara tanto, le podríamos entregar su trabajo antes”. Probablemente la mayoría se inclinaría por un cliente que se mueva entre estos dos extremos, como seres humanos que somos cuando tenemos una cosa pensamos en la otra y viceversa. Efectivamente, el cliente ideal debería estar pendiente del proyecto pero, asimismo, ser muy consciente del marco ágil en el que se encuentra. .BIO Y por consiguiente, respetar la meRichard Telleria es Licenciado en Ingeniería Informática y certificado todología de principio a fin, que se PMI-ACP. Inició su carrera como desarrollador de software pero dice muy fácil, pero es lo realmente también progresó en el mundo complicado en una adopción Agile. Agile, para adentrarse en la gestión de proyectos. Su experiencia Aunque en ocasiones no lo parezinternacional incluye trabajos en España y Reino Unido. En la actuaca, el hecho de que el cliente interlidad está en Toronto como Agile venga aparentemente cuando le vieCoach para Valueinnova Canadá y Project Manager para Cysnet ne en gana, no es siempre su culpa. Software, empresa que él mismo gestiona junto con otros socios. Dicho de otro modo, tenemos mucho qué hacer para educar, preferen34

temente evitar o minimizar este ruido por su parte. que no estamos hablando únicamente del antes mencionado impertinente. Imaginemos que tenemos un cliente educado, empático, inteligente, pero al que simplemente no le hemos explicado nuestro marco de trabajo, no conoce nuestra filosofía ágil; incluso ni siquiera las características del equipo. En este caso, bastante más común de lo deseable, estaríamos ante el típico cliente que quiere resultados y valor, como es lo normal, pero que no le importa nada más. Bueno, eso no es definitivo, pero es preferible que nos conozcamos todos, como un equipo al completo y juguemos cada uno nuestro papel como tal. Por ejemplo, supongamos que tenemos un proyecto con un cliente externo, que se comunica con el equipo interno de una organización por medio del Product Owner. -Nótese esta aclaración porque podría haber casos donde el propio cliente interno desempeña la labor de Product Owner-. Como bien hemos mencionado antes, el cliente es una pieza fundamental en el transcurso y futuro de nuestro proyecto. Así que tenemos que ayudarle a ser ágil, hacerle sentirse ágil. Debemos educarle desde el comienzo del proyecto, desde el origen del mismo donde es clave su negociación con el Product Owner, en esa captura de requisitos, en esa construcción del Product Roadmap o en esa definición del Release Planning. Vayamos a un escenario más concreto. Si estuviéramos utilizando Scrum o XP para un proyecto de software, el cliente ya debería tener claro antes del comienzo de la primera iteración que: • Para cualquier cuestión, debe dirigirse al Product Owner y no al equipo de desarrollo. • Debe conocer y asumir que sus solicitudes de cambio y nuevas peticiones se aceptan, pero se ejecutarán en próximas iteraciones, nunca en el transcurso de la presente y siempre teniendo en cuenta la prioridad del Product Backlog. • Debe revisar continuamente, tener claras estas prioridades del proyecto y comunicarlo al Product Owner, para que éste pueda ordenar el Backlog, que el equipo irá trabajando y finalmente entregando en forma de valor. • Será en la Demo o Review, una vez terminada la iteración, cuando podrá participar, dar su opinión y solicitar sus nuevas peticiones, que el Product Owner traducirá en forma de historias de usuario priorizadas para siguientes iteraciones.


dista mucho del que tiene lugar en el tradicional Waterfall, donde nos basamos en las fechas y en nuestros diagramas a largo plazo, cuyo cumplimiento de hitos es realmente complicado en el tiempo, sobre todo en el cambiante mundo del software. En Agile estamos potenciando esta relación entre el cliente y equipo, haciéndola más cercana y humana. Es por ello, por lo que hacemos especial énfasis en su fortalecimiento. Y aquí podríamos volver a pensar en el manifiesto ágil y sus cuatro valores. Incluso sería preferible que esta relación fuese más allá de lo profesional, conociendo así los gustos del cliente; hasta aficiones y forma de afrontar la vida, los problemas, etc. Sin embargo, sucede a menudo que lo vemos como un enemigo, y nada más lejos de la realidad, tener al cliente como amigo es una garantía de éxito. Entrar en disputas, discusiones y demás problemas nos lleva precisamente a desperdicio, desconfianza o falta de concentración y esto no hace sino crear precedente en el futuro. Todos debemos remar en la misma dirección, aplicando ineludiblemente la teoría y, como tal, debemos mimar el trato, no sólo con el equipo, sino empezando por el cliente; pensando también en los usuarios de nuestro producto y, en general, en todos los interesados de nuestro proyecto. Como conclusión, espero humildemente haber hecho reflexionar a más de uno sobre los clientes que conoce, tiene o ha tenido y cómo se ha comportado o tratado con ellos. Del mismo modo, a mis queridos clientes, siempre ansiados al principio y algo más cuestionados después y, por supuesto, a toda la comunidad ágil a la que me enorgullezco de pertenecer.

www.sg.com.mx |

En general, debe conocer y creer en el funcionamiento del equipo, su velocidad, y lo que es más importante, y repetimos, respetar la metodología. Y permítanme otro pequeño inciso sobre este “respetar la metodología” puesto que aquí radica la verdadera dificultad. Este puede ser otro ejemplo en el que se afirma: “Sí, claro que somos ágiles” o “Estamos usando Scrum, XP, Kanban…” pero no es nada más que un intento que no se está llevando (correctamente) a cabo. Si el cliente no entiende, no quiere, no cree o no hace uso de la metodología ágil, entendiendo sus valores y principios y llevándola a cabo, estamos en uno de esos escenarios en el que nos planteamos: “¿Pero realmente somos ágiles?” o algo así como “Pues yo hago Scrum y no funciona”. Por descontado que Scrum, no es sólo poner papelitos en la pared. Ser ágil no significa únicamente celebrar diariamente las reuniones stand up y poco más. De hecho, es completamente imposible aplicar Agile con un cliente que no está verdaderamente comprometido, sin que participe en el proceso como se le debe exigir. También es necesario tener en cuenta el tipo de cliente como profesional con el que estamos tratando: más o menos técnico, más cercano o más distante, más o menos paciente. No tiene nada que ver un experto tecnológicamente hablando, con un gestor financiero o un comercial. En cualquier caso, lo realmente importante es conocerlo y hablar en su mismo idioma, y no me refiero precisamente al lenguaje. Este compromiso, negociación y trato prácticamente diario con nuestro cliente,

Software Guru

“El hecho de que el cliente intervenga aparentemente cuando le viene en gana, no es siempre su culpa”.


.PRÁCTICAS Usabilidad

Interfaces Naturales de Usuario: La Experiencia de la Universidad de Colima ›› Por Pedro Santana

L

a forma en que interactuamos con las computadoras, ha sufrido cambios importantes desde el inicio de la computación; que van desde la utilización de tarjetas perforadas, hasta los esfuerzos de hoy en día, para que interactuemos sin dispositivos informáticos aparentes, con los que realicemos la comunicación. A este tipo de interacción, se le ha dado el nombre de: Interfaces Naturales de Usuario (NUI por sus siglas en inglés). Un primer acercamiento a este tipo de interfaces sería: aquellas que permiten a los usuarios de hardware y software, interactuar con ellos en la misma manera cómo interactúan con el mundo real. Wigdor y Wixon, en su libro ‘Brave NUI World’, nos dicen que la meta de estas interfaces es construir una experiencia de uso, que le sea natural a nuestro usuario.

menzó cuando nos dimos cuenta, que lograr una interacción natural al diseñar videojuegos, era un problema común entre los diseñadores. Por esta razón, realizamos un análisis de los nuevos paradigmas de interacción. De dicha investigación encontramos que, una de las técnicas era capturar el movimiento de la cabeza, para controlar los personajes en los juegos. Por lo que desarrollamos una solución tecnológica de bajo costo, basada en la detección de luces infrarrojas. Para probar nuestros dispositivo se creó Fallbox, un juego 2D en el cual el jugador usa el movimiento de su cabeza, para controlar el personaje del juego y evitar ser golpeado por cajas que caen. Ver Figura 1.

Para que una interfaz sea considerada natural, debe cumplir con las siguientes consideraciones: • Crear una experiencia, que dé la sensación de ser una extensión del cuerpo. • Crear una experiencia, que le sea natural tanto a usuarios expertos, como a los usuarios nuevos. • Crear una experiencia, que sea auténtica al medio. • Crear una interfaz de usuario, que considere el contexto, tomando en cuenta las correctas metáforas, indicaciones visuales, realimentación y métodos de entrada y salida. • Evitar caer en la trampa, de copiar los paradigmas de interfaz de usuario existentes. .BIO Pedro César Santana Mancilla es profesor e investigador de tiempo completo de la Facultad de Telemática en la Universidad de Colima. Sus líneas de investigación se enfocan a la Interacción Humano Computadora y la Tecnología en la Educación. En 2012 fue galardonado con un IBM Faculty Award para apoyar su trabajo de investigación en ambientes inteligentes con interacción natural. Es vocal de la Asociación Mexicana de Interacción Humano Computadora y miembro de la SMCC, de la ACM y del IEEE. psantana@ucol. mx @pecesama

Partiendo de estos conceptos, desde el año 2009, en la Facultad de Telemática de la Universidad de Colima, se desarrollan aplicaciones educativas y de entretenimiento, controladas por medio de interacción natural. A continuación se presentan estas experiencias.

Seguimiento del movimiento de la cabeza

Nuestra experiencia con las NUI co-

Figura 1. Fallbox.

Interacciones naturales para el aprendizaje de conceptos matemáticos

Un problema común entre los estudiantes de educación superior (en general de la vida escolar), es la dificultad del aprendizaje de las matemáticas. En la actualidad los métodos de aprendizaje de las matemáticas, han permanecido relativamente igual a través del tiempo. Aunque con el surgimiento de nuevas tecnologías, como dispositivos portátiles (teléfonos inteligentes y tabletas) y dispositivos económicos de reconocimiento de movimientos del cuerpo; estudiantes y profesores, tienen un gran interés en nuevas formas de interacción en el proceso de enseñanza-aprendizaje, mediado por computadora. En este contexto el uso de NUIs, ofrece un gran potencial para 36


.PRÁCTICAS

Usabilidad

“Evitar caer en la trampa, de

copiar los paradigmas de interfaz de usuario existentes”.

mejorar las interacciones en aulas, incrementando la participación de los estudiantes y creando nuevas oportunidades de discusión sobre lo aprendido. Debido a su naturaleza las matemáticas ofrecen una oportunidad significativa de ser mejoradas con el uso de las UNI. Por eso creamos MathNUI, un software que permite a los estudiantes de nivel superior aprender conceptos matemáticos, por medio de gestos frente al pizarrón. Ver Figura 2.

Figura 3. Tecnología de interfaces naturales de usuario.

Figura 2. MathNUI.

Activación física para niños de primaria

En la actualidad, México es un país con alto índice de obesidad en su población. Uno de cada tres niños que cursan la primaria, padece obesidad y sobrepeso; ocupando así México uno de los primeros lugares en obesidad infantil a nivel mundial. Por estas razones, surge la necesidad de proponer una solución basada en un juego serio, que motive a niños a activarse físicamente y a llevar una vida más saludable, mostrando que la tecnología no es sólo una fuente de ocio. Para poder motivar a niños, es necesario utilizar la tecnología de interfaces naturales de usuario, la cual permite a los niños interactuar con el juego, así como lo hacen mientras se activan físicamente en el patio escolar. La trama que sigue el juego, está basada en la materia de historia, ya que un estudio contextual la situó como la materia de menor agrado para alumnos de 5to y 6to grado de primaria. Ver Figura 3.

Interfaces tangibles para la educación especial

Enseñar a leer a niños con síndrome de Down (SD) es una tarea educativa difícil, que requiere técnicas pedagógicas especiales. A partir de un proceso de observación escolar y revisión de literatura, temas clave surgieron sobre las necesidades de estos niños, que nosotros proponemos abordar con tecnología tangible. Desarrollamos un sis-

Figura 4. Interfaces tangibles para la educación especial.

Conclusiones

El uso de interfaces naturales aplicadas a la educación y el entretenimiento nos ha brindado, además del aprendizaje, una forma motivadora de adquirir conocimiento por parte de nuestros estudiantes, ya que por su naturaleza, diseñar este tipo de interfaces ofrece retos constantes, que deben ser superados por los alumnos. De esta forma, se logra que adquieran las competencias necesarias, para afrontar la vida profesional. 37

www.sg.com.mx |

Software Guru

tema tangible con Realidad Aumentada para apoyar la enseñanza de la lectura a niños con SD. Pruebas mostraron que nuestro sistema, ayudó a mantener la atención de los niños con SD en sus tareas educativas. Ver Figura 4.


.PRÁCTICAS Project Management

Importancia de la Medición de Tamaño Funcional Por Francisco Valdés Souto

M

uchas veces en la literatura para desarrollo de software se ha hecho la analogía acerca de una construcción de una casa con la construcción de un software. En esta analogía normalmente, los distintos planos de la casa son los distintos modelos de diseño empleados para la construcción del software. ¿Qué pasaría si en los planos no vinieran las medidas?, es muy probable que la construcción de la casa fuera un caos, por que no serían del tamaño correcto las ventanas, la loza, las puertas etc. Es fácil ver que no se podría construir una casa sin conocer las medidas del tamaño de cada uno de sus elementos. Más aún, en función de estas medidas se puede estimar la duración de la obra, el costo, se puede tener un control de las dimensiones de la casa, comparar contra otras construcciones, etc. ¿Se puede desarrollar el software sin tener medidas de tamaño? La respuesta es sí, en la mayoría de los casos así se hace. Sin embargo, .BIO esto fomenta que el desarrollo de Francisco Valdés Souto es Candidato a PhD. en Ingeniería de software sea un arte y no un proSoftware con especialización en medición y estimación de softceso ingenieril, con resultados nada ware Universidad de Quebéc en prometedores (The Standish Group École de Technologie Supérieure. Certified ScrumMaster (CSM). International, 2011)( Emam, 2008). Project Manager Professional (PMP). Primer mexicano certificado como COSMIC FFP Size Measurer por el COMMON SOFTWARE MEASUREMENT INTERNATIONAL CONSORTIUM (COSMIC). COSMIC International Advisory Council (IAC). Experiencia de 14 años en desarrollo de Software Financiero de desempeño crítico, Socio de SPINGERE, primera empresa en ofrecer servicios especializados en dimensionamiento y estimación de software desde un enfoque ingenieril en América Latina. Participación en conferencias internacionales como: SERA2010, IWSM-Mensura 2007. @valdessoutofco

“De acuerdo al testimonio del Goverment Accountability Office del pasado septiempre, si se establecieran con más realismo las líneas base de los requerimientos, costo, calendario y riesgos durante las fases de planeación de los proyectos, cerca de la mitad serían cancelados o rebasarían los presupuestos de los programas de TI. Esto podría ahorrar $5.5 billones anuales de acuerdo con

un estudio realizado por Price Systems LLC, una empresa de software y consultoría de Mount Laural, N.J., USA. El estudio considera 104 ejecutivos de Gobierno de TI.” (PMI, 2007) Muchas personas involucradas en la industria del software tienen una idea errónea acerca de la medición del mismo, consideran que no se puede medir ya que es algo intangible, que es algo intelectual por lo que medirlo sería muy complejo. Esto no es cierto, por ejemplo, la velocidad de la luz la medimos y no precisamente de manera física, se mide con un modelo adecuado y generalmente aceptado. Entonces, ¿se puede medir el software? Sí, de hecho hoy en día la única medición estándar es el tamaño funcional (Functional Size Measurement, FSM, ISO/IEC 14143). Si cada organización midiera el software de manera distinta (por módulos, LOC, CU, etc.) no se podrían hacer comparaciones; esto sería el equivalente a que las medidas utilizadas en cada plano fueran diferentes ¿serviría?, por supuesto que no. El FSM es muy importante, ya que es el único estándar de medición de software existente, es generalmente aceptado y nos habilita para realizar la parte ingenieril del desarrollo de software. A continuación vamos a mencionar algunos de los usos más relevantes que se le pueden dar a una medición de tamaño funcional adecuada.

Estimación de proyectos

La estimación de proyectos es muy importante para poder tener una buena administración de recursos a lo largo del proyecto. Hay que recordar que en cualquier proceso de producción de algo (en este caso el software) existe una relación entre la cantidad producida y el costo/esfuerzo requerido para hacerlo. Si se tiene una buena medición de tamaño funcional, es posible generar modelos de estimación algorítmicos que permitan hacer estimaciones del esfuerzo o costo de los proyectos. Si las mediciones funcionales no son confiables, los modelos de estimación no los séran. 38


.PRÁCTICAS Project Management

“La estimación de proyectos es muy

importante para poder tener una buena administración de recursos a lo largo del proyecto”.

Control del alcance de los proyectos

El alcance de los proyectos muchas veces es definido de manera subjetiva, si se mide el alcance del proyecto utilizando un método de medición de tamaño funcional, cada modificación o cambio puede ser medido de igual manera, lo que permite determinar la diferencia entre el alcance original o tamaño original y el nuevo tamaño, “scope creep”. Se pueden definir umbrales de modificación de alcance, por ejemplo 20%, lo que implicaría dividir el tamaño funcional del nuevo requerimiento o modificación entre el tamaño original, si excede el umbral no se aceptaría porque podría repercutir en el tiempo de entrega o en costos. Con estos elementos se puede ayudar a determinar si procede un cambio o requerimiento nuevo, pero también ayuda a saber al final del proyecto cuánto creció en alcance de manera cuantitativa y no solamente de forma subjetiva. Actualmente esto es muy complicado de saber.

Control de contratos de software

Hoy en día, para la definición de contratos de desarrollo de software se hace un requerimiento, el proveedor del desarrollo pone el precio en base a su experiencia y con una negociación se determina el precio final. Si se necesitara una medición del tamaño de software, solamente basta con multiplicar el número de unidades de tamaño a desarrollar por su costo y ya está. Esto podría apoyar a la industria ya que se debería tender a una estabilización de los costos por unidad de tamaño de software. Si se requiriera un cambio de alcance o modificación del software, ya se sabe el costo por unidad de tamaño funcional, no se reinicia una negociación para determinar el costo del cambio que muchas veces suele sobrestimarse.

Conclusión

La medición de tamaño funcional del software es muy importante, ya que hoy en día es el único estándar cuantitativo para determinar el valor de una característica del software, y si se utiliza adecuadamente puede ser el habilitador para que los proyectos de desarrollo de software sean exitosos, y así ayudar entre otras cosas a la estimación de proyectos, medición del desempeño de proyectos, control del alcance de los proyectos, y control de contratos de software.

Referencias [1] The Standish Group International (2011), Extreme Chaos, Inc. 2000-2011 Reports. [2] Emam, K.; Koru, A.G. (2008), A Replicated Survey of IT Software Project Failures, Software, IEEE Volume 25, Issue 5, Sept.-Oct. 2008 Page(s):84 - 90 [3] PMI (2007), Off Base : Insufficient expertise in setting baselines hits U.S federal IT budgets where it hurts”, PM NETWORK, March 2007 / VOLUME 21 [4] Alain Abran, (2008) , Software Benchmarking, Estimation and Quality Models Based on Functional Size with COSMIC – ISO 19761, Draft April 2008

39

Software Guru

En cualquier industria la habilidad para medir el desempeño es crítica para poder mejorarlo. Por ejemplo, cuántas veces hemos escuchado en el software temas relacionados a la productividad. La productividad en el software como en cualquier otra industria es muy importante, todos quisiéramos que las organizaciones fueran más productivas, que las áreas de software también lo fueran, es más que los programadores o desarrolladores fueran más productivos, ¿qué significa esto? La productividad está definida por la cantidad de producto terminado, dividida entre el esfuerzo necesitado para producirla (o algún otro recurso); el elemento clave es el tamaño, que para el software es tamaño funcional. Hay otras mediciones que se pueden obtener de un proyecto como son velocidad de entrega, que se puede medir dividiendo el tamaño del software en un tiempo determinado. La densidad de defectos, que se obtiene de dividir el número de defectos entre el tamaño de software. Un tema importante es que teniendo un estándar de medición confiable, el desempeño de las organizaciones y/o áreas puede ser comparado gracias a la estandarización de las mediciones de tamaño funcional, que como hemos visto para el desempeño del desarrollo de software son una parte fundamental.

www.sg.com.mx |

Medición del desempeño del proyecto


.PRÁCTICAS Arquitectura

El Flujo de la Información en la Organización sin Fronteras ›› Por Ulises Bejarano Téllez

E

l pasado 3 y 4 de febrero se celebró en la Ciudad de San Francisco, en Estados Unidos de Norteamérica, uno de los mayores eventos relacionados con Arquitectura Empresarial a nivel mundial. El tema central de este evento fue “El flujo de la información en la organización sin fronteras”. En este evento organizado por el Open Group (The Open Group) participaron representantes de diversos países pertenecientes a las casas de software y consultoría de sistemas más grandes del mundo, con el único objetivo de compartir su conocimiento adquirido y establecer las bases para la evolución tecnológica. Podemos definir a la arquitectura empresarial como una estrategia que busca manejar la complejidad de los grandes proyectos de transformación tecnológica, como puede ser crear una nueva capacidad de negocio, fusionar dos grandes organizaciones, o transformar las operaciones por medio del cambio tecnológico. Las metodologías de arquitectura más conocidas coinciden en proponer 4 dominios (horizontales): negocio, datos, aplicaciones y tecnología. Siendo así, podemos ver a la arquitectura empresarial representada como un cubo. Este cubo nos puede presentar en una sola vista la foto completa de cómo los diferentes procesos y objetivos de negocio adquieren, generan y transforman datos, por medio de las aplicaciones que los soportan, montados en componentes tecnológicos físicos y virtuales (ver figura 1). También podemos visualizar este cubo por medio de un corte organizacional vertical, donde podemos ver exclusivamente la arquitectura a nivel de los cuatro dominios para una sección específica de la organización. O, finalmente, podemos enfocarnos en un corte del cubo, donde podemos ver la foto completa solamente de uno de los cuatro dominios. Es curioso que la gente que tenemos años trabajando en informática, entendemos la Arquitectura como la interacción de los componentes de Software y Hardware. Sin embargo, este concepto de Arquitectura Empresarial, está más enfocado a entender el negocio y encontrar la forma en la que realmente las áreas de TI, dan un valor al mismo y cómo apoyar los planes estratégicos de transformación que tiene la organización. En este evento, se presentaron distintos puntos de vista sobre esta forma de ver al negocio, en una presentación realizada por el conocido Mike The Architect, quien mostró cómo podemos cambiar la forma en la que entendemos el negocio, por medio de técnicas como el Bussiness Model Canvas de Alexander Osterwalder, para generar un lenguaje común entre TI y el negocio; para a partir de ahí entablar una .BIO alineación. Ulises Bejarano Téllez es un Arquitecto Empresarial con 8 años de Otro de los puntos que, en lo experiencia en este ramo, certificado como Master Certified Architect personal, me parecieron más relepor el Open Group, Arquitecto de vantes de este evento, fue la presenIntegración nivel experto por IBM, TOGAF e ITIL, además de pertenecia de Alan Hakimi, un reconocido cer a la Asociación de Arquitectos Empresariales y con experiencia en Arquitecto Empresarial, con su preconsultoría en diferentes países sentación Architectural Zen, donde @UlisesBejarano1 nos habla sobre la Arquitectura Em-

“la arquitectura empresarial como

una dinámica de transformación de las organizaciones”. presarial como una dinámica de transformación de las organizaciones, de acuerdo con sus condiciones particulares; coincidiendo que toda transformación empieza en el negocio, sin dejar de lado, que todas las condiciones estarán dadas, por el entorno en el que prevalecen las personas que realizan estos cambios y parte de estos cambios, son así fomentados por la experiencia humana y la complexidad de estas interacciones. Felizmente, pude observar que entre los expositores estuvo una empresa Latinoamericana, que por medio de Arquitectura Empresarial pudo realizar exitosamente, la fusión de operaciones de dos aerolíneas en Colombia y Costa Rica. En este evento se tocaron, además, temas que seguramente estaremos escuchando muy pronto como DEOS (Dependability Engineering for Open Systems), que está siendo diseñado y fondeado por el gobierno Japonés, que busca asegurar la interdependencia entre sistemas y componentes tecnológicos, por medio de una mejora continua, con base a los principios de Kaisen y Open Trusted Technology Provider (OTP), patrocinado por las mas grandes organizaciones en tecnología a nivel mundial, con el objetivo de generar un estándar que asegure la calidad a los compradores de tecnología.

Figura 1. Cubo de Arquitectura Empresarial.

Referencias [1] Mike the Architect.- Mike Walker Enterprise Architect http://www.mikethearchitect.com/ [2] Business Model Generation, A. Osterwalder, Yves Pigneur, Alan Smith

40


www.sg.com.mx |

Software Guru


.COLUMNA Código Innovare

El Software más allá del Software DESARROLLO DE SERVICIOS ALREDEDOR DE UN PRODUCTO

C

ada vez más frecuentemente oímos hablar sobre servicios y productos tecnológicos de varios tipos, incluidos los de la nube, haciendo más evidente la necesidad de contar con una infraestructura de servicios operativos que funcionen alrededor de esas ofertas y le den el soporte suficiente para que sean un verdadero modelo de negocio sustentable y no sólo una elaborada solución tecnológica; y aquí es importante que recordemos que es poco común que los desarrolladores puedan por si solos considerar todas las implicaciones necesarias para la implementación del medio ambiente (plataforma y servicios) donde vivirá el producto tecnológico (ya sea software o hardware) tras su liberación. El desarrollo de servicios comienza desde las etapas de definición y planeación de lo que será el producto tecnológico, al describir la misión y objetivos de éste, así como las funcionalidades que contendrá y el público objetivo al que atenderá, Victor Jesús para los servicios se incluirán una serie de disciplinas Hernández Salinas es Coordinador diversas como mercadotecnia, docencia, comunicade Servicios de Productos en INción, administración sólo por mencionar algunos, FOTEC. Es Licenciado en Sistemas para cubrir aspectos que van desde publicidad, dode Computación cumentación técnica, manuales de usuario, capacitaAdministrativa por la UVM. Desde ción, presentaciones y conferencias sobre el modelo 2003 colabora en INFOTEC en el tecnológico, publicar artículos, estrategias de Social equipo de DesaMedia, alianzas, soporte técnico, entre otras más. rrollo de Nuevos Productos y ServiEs importante definir qué tipo de servicios opecios. Fue creador y Coordinador del rativos y de vinculación se otorgarán para poder arárea de servicios a producto y su mar no sólo una estrategia comercial, sino una estranormatividad. Es tegia técnico-operativa que le de sustento y validez además coordinador del programa a todo lo que se diga del producto en el mercado y de certificaciones para SWB. que además sirva como respaldo para que los clienHa impartido tes lo puedan adoptar y saquen provecho de su uso. conferencias sobre Web Semántica, Al igual que a un producto le definimos metas y Ciudades Digitales y Servicios a Proobjetivos, los servicios asociados a ese producto tamducto en diversos foros, participado bién deberán contar con su propia visión y misión, en mesas redonconsiderando que los equipos serán interdisciplinadas gubernamentales y publicado rios e integrales, para permitir que el producto y la artículos en diversas revistas y empresa cuenten con diferenciadores evidentes que sitios web. ofrezcan beneficios sustanciales a los clientes, aportando ventajas competitivas para el posicionamiento

comercial. Lo importante es definir los mecanismos que permitan lograr la atracción, preferencia y lealtad de los clientes hacia la marca del producto, brindándoles beneficios como servicios de respaldo, garantías sobre la calidad de los productos liberados, experiencia de uso, resolución de necesidades en tiempo real y sobre todo enfocando los servicios en cuatro aspectos fundamentales: 1. Entender los requerimientos del cliente. 2. Conocer los costos de servir al cliente. 3. Entender la oferta y costo de la competencia. 4. Potencializar el desarrollo de cadenas integradas con clientes y aliados.

Valor estratégico y económico

El término valor estratégico refiere a la posición de una empresa en el mercado para captar y defender demanda frente a sus competidores, mientras que el valor económico habla de la rentabilidad en términos de retorno sobre el capital invertido y valor de capitalización en el mercado. Por lo que es de suma importancia que al planear los servicios que acompañen a un producto, la empresa debe evolucionar integralmente para lograr un mejor posicionamiento en el mercado y entendiendo que las marcas no son razón suficiente de compra, mientras no estén respaldadas por un valor real para el cliente. Es importante también entender la oferta y costo de la competencia (y entiéndase oferta = solución completa Producto+ Servicios), lo que implica que debemos analizar sus ofertas versus la nuestra. Una estrategia cada vez más efectiva es aprovechar el desarrollo de cadenas integradas con clientes y aliados para identificar el valor de cada participante (hay que recordar que la percepción de valor del fabricante es distinta a la del mercado, puesto que la primera se basa en el costo de lo que implicó el desarrollo, mientras la segunda radica en el valor de tener el producto y los beneficios que se obtendrán), además de establecer incentivos acordes con la integración pretendida. Por último, se deben involucrar los procesos, decisiones, información y alianzas o convenios en la consecución de estrategias ganar - ganar. Es necesario el gestionar algunos aspectos que le darán fuerza al medio ambiente donde vivirá el producto, para ello se considera el promover acciones 42


.COLUMNA Código Innovare

“La empresa debe evolucionar

integralmente para lograr un mejor posicionamiento en el mercado”.

• Procesos para la ejecución de los servicios: En este punto además de consolidar los servicios, se debe contar con un orquestador de procesos que controle la ejecución de las actividades y que sirva de motor para el cumplimiento de reglas de negocio y de los flujos definidos para la operación de los servicios. Dejando por supuesto, un registro de los datos generados durante la ejecución de las actividades en una base de conocimientos institucional, de forma que no se pierda la experiencia adquirida. Es importante resaltar que todo debe basarse en estándares de información, operación e interfaces de comunicación para futuras actualizaciones y ajustes. Además, siempre debe mantenerse vigilado el cumplimiento de los candados de seguridad que se hayan impuesto para el resguardo de la información y por supuesto, la constante vigilancia de los posibles riesgos detectados. • Monitoreo de los servicios: Aun con todo lo anterior, siempre se debe ser un poco psicótico al respecto de la adecuada implementación y ejecución de los servicios para asegurar que se ejecuten de acuerdo al plan y que se cuenta con un adecuado esquema de mejora continua prestando atención en actividades como: – Identificar cuellos de botella. – Analizar el rendimiento de los servicios.

Por supuesto que todo lo que hemos descrito no se centra sólo en los procesos y definiciones, sino que también se deberá contar con suficiente personal capacitado para dar respuesta en tiempo y forma a los requerimientos de todo tipo y generar modelos de transferencia de conocimiento eficientes que permitan preparar profesionistas en plazos cortos, a fin de generar mano de obra y necesidades en el mercado para contar siempre con profesionales que ayuden a mantener la operación de los servicios otorgados a clientes de versiones anteriores y/o presentes del producto, pues aun cuando se liberen nuevas versiones, no se debe olvidar que la mayor parte de los clientes no migrarán de manera inmediata y que debe tenerse la infraestructura para soportar ambas versiones (la anterior y la nueva) en funcionamiento, al menos por un tiempo, y contar con la infraestructura que clientes internos y externos demanden para garantizar su apoyo en el plan estratégico organizacional para el posicionamiento tanto del producto como de la empresa en el mercado nacional e internacional. Es primordial que el o los equipos (considerando las diversas funciones que deben atenderse) brinden los servicios que den respaldo al producto deberán contar con recursos para la operación, procesos y profesionistas involucrados con la operación y evolución de nuestro producto tecnológico. Ver Figura 1.

Figura 1. Modelo de productos y servicios Infotec.

>> Victor Jesús Hernández Salinas 43

Software Guru

• Definición de los procesos: Esto implica contar con indicadores de desempeño que ayuden a medir efectividad y determinar un escalamiento en caso de no cumplir los objetivos, así como definir de manera puntual roles y actividades con calendarios de tiempos absolutos, naturales y de negocio. Se deberá contar además con herramientas y aplicaciones internas para el registro de operaciones y la incorporación de reglas de ejecución de acciones para el inicio y término de cada actividad.

– Asegurar balance entre funciones. – Realizar simulaciones de procesos basadas en la información de operación. – Detectar desviaciones y mejores prácticas. – Promover la innovación a través de los procesos. – Analizar las tendencias basándose en los indicadores de desempeño. – Crear mejores prácticas.

www.sg.com.mx |

para diseñar cuál debe ser la experiencia de uso del producto y así centrarse en el cliente y no en el producto o servicio. De igual manera, deberemos tomar en cuenta el desarrollo de capacidades, combinando aspectos humanos, tecnológicos y procesos de negocio, permitiendo considerar la conveniencia de generar convenios con Universidades y Centros de Investigación en el desarrollo de nuevas líneas de investigación y desarrollo. Además de buscar alianzas con partners para expandir el modelo de negocio, ofreciéndoles la posibilidad de operar los servicios de manera compartida contando con certificaciones como proveedores de servicios auditados por la empresa de manera periódica y colocar a la empresa como coordinador de los servicios y no como proveedor directo de ellos, con lo que le permitiría concentrarse en el desarrollo y mantenimiento del producto (si tiene dudas analice el modelo utilizado por Microsoft). Ahora bien, centrándonos en lo que será la ejecución de los servicios que se ofrecerán junto con el producto, es necesario entender que también tienen un ciclo de vida y que para asegurar su correcto desarrollo y funcionamiento, es necesario hacer énfasis y mantener el enfoque en:


.COLUMNA Tecnológico

El Babel del Desarrollo E

Mauricio Angulo (@mauricioangulo) 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.

scribir programas y aplicaciones nunca había sido tan fácil como lo es ahora. Actualmente abundan herramientas y lenguajes para crear aplicaciones en cualquier plataforma; desde sitios web hasta aplicaciones móviles, de escritorio, para hardware especializado, hasta aplicaciones para backend en un servidor o en la nube. Y lo mejor es que buena parte de estos lenguajes y herramientas se pueden conseguir de manera gratuita o a un costo mínimo. El problema al que se enfrenta la industria en la actualidad, no es la falta o inaccesibilidad de buenos lenguajes o plataformas de desarrollo, sino justo lo contrario. Hay una enorme variedad de lenguajes para desarrollo que, a su vez, se subdividen en muchos frameworks, librerías, plugins y que, a su vez, se especializan para diferente hardware, sistemas operativos o runtimes; obligando a los programadores a especializarse, con la consecuencia de que les será más difícil cada vez moverse a otra plataforma de desarrollo. En el lado de los clientes y usuarios, también hay un costo asociado a quedarse acotado a cierta plataforma, debido a decisiones relacionadas con la infraestructura de la empresa; haciendo más complejo y caro, el proceso de una migración o de interoperabilidad con sistemas en plataformas diferentes.

Muchas formas de resolver el mismo problema

La sabiduría popular dice que: “hay muchas maneras de atrapar a una liebre”, y aunque todas son diferentes, lo que cuenta es el resultado final. En el mundo del desarrollo, es posible aplicar la misma máxima en lo general. Hay muchas maneras de programar la misma funcionalidad en diferentes programas y plataformas; el usuario final casi nunca notará la diferencia. La “receta secreta”,

es algo que pertenece al mundo técnico y algo de lo que idealmente el usuario jamás se enterará. A nivel técnico, la historia es otra: diferentes personas tendrán diferentes grados de conocimiento, experiencia y preferencias sobre la tecnología, que se utilizará para resolver un problema o crear una aplicación o servicio; tanto en lo personal, como en lo que respecta al equipo de desarrollo y a los lineamientos del cliente o la empresa que esté haciendo el desarrollo. En este momento es donde comienza a haber problemas en la toma de decisiones, ya que en muchas ocasiones hay que trabajar en base a decisiones, que otras personas ya han tomado –no siempre de la manera más informada- o hay que negociar en base a las habilidades del equipo de desarrollo o con criterios de calidad impuestos por externos. No es sorpresa entonces, que lenguajes como COBOL, Clipper, FoxPro, AS400 CL, BASIC, o muchos otros cuyo ciclo de vida terminó hace tiempo, sigan vigentes en empresas que en su momento realizaron cuantiosas inversiones en ella y mantienen sistemas viejos; aunque cada vez sea más difícil encontrar profesionistas que sepan cómo desarrollar en ellos. Esta inercia tecnológica, produce a la larga una brecha digital donde una decisión tomada en el pasado basada en una arquitectura deficiente, no sólo puede impactar y dejar desprotegidos a los usuarios de un sistema, sino que puede llevar al equipo de desarrollo a un callejón sin salida, tecnológicamente hablando.

Especialistas vs generalistas

La otra cara de este tema es que, en la medida que un programador trabaja y toma experiencia en una plataforma, es cada vez menos probable que la deje o que se cambie a otra; a menos que las condiciones en su entorno cambien 44


.COLUMNA

Tecnológico

›› “¿qué es lo mejor: ser generalista o especialista?”.

situación real y, si lo tuviera, entonces terminaría convirtiéndose en un especialista al enfocar su tiempo y capacidad en una plataforma específica, en lugar de seguir explorando otras de manera simultánea.

Entonces, ¿qué es lo mejor: ser generalista o especialista? Ninguna posición es más correcta que la otra, pero en general son mutuamente exclusivas y al escoger una, hay que dejar de lado la otra. Cada una tiene sus pros y contras y dependerá más del plan de carrera del programador y sus expectativas a futuro, que es lo más conveniente en cada caso. Para un desarrollo específico es bueno recordar que, cada implementación tiene un ciclo de vida y que ningún código se vuelve mejor con el tiempo, sino lo contrario. El buen código hay que revisarlo, actualizarlo y cuando llega su momento, migrarlo para adaptarlo a las condiciones cambiantes del mercado y de la industria. Sobre las habilidades de un programador pasa lo mismo: un profesionista de las tecnologías de información que se aferra a una tecnología muy específica, corre el riesgo de quedarse de lado en sus capacidades y perder tracción laboral; a menos que labore en un proyecto a largo plazo que requiera un juego de habilidades muy específicas. Aunque existen lenguajes como C o Assembly que fueron creados hace más de 40 años y que siguen en uso, hay otros lenguajes de desarrollo que permiten la creación y el mantenimiento de manera más ágil y eficiente de programas y sistemas, algo que se sigue buscando como la principal característica de un lenguaje de desarrollo. También es importante tener en cuenta que, en los modelos actuales de desarrollo, se debe buscar siempre la manera de hacer software que sea modular y que pueda inter-operar con otras plataformas en lugar de crear silos tecnológicos con arquitecturas monolíticas para facilitar, tanto su mantenimiento como su migración, cuando sea necesario. En ese aspecto podemos afirmar que, si para todo problema siempre hay una solución que es la óptima, es bueno recordar que hay varias soluciones, que también son correctas y que pueden ser más óptimas en el largo plazo.

>> Por Mauricio Angulo S. 45

Software Guru

La solución única o la correcta

www.sg.com.mx |

dramáticamente. La certificación y la especialización en el mundo de las tecnologías de información, es algo que es impulsado y perseguido por desarrolladores y personal de infraestructura, que buscan subir escalones en el organigrama para aspirar a mejores puestos –y a mejores sueldos-, así como por la empresas, que esperan poder contar con personal con experiencia y madurez, para la creación de aplicaciones y sistemas complejos. La especialización es un proceso que a nivel profesional es caro y requiere tiempo para cristalizarse; muchas veces más del que se dispone en el mundo real, para cubrir las expectativas de la industria donde la tecnología cambia rápida y constantemente. Es normal que las personas con especialidad en una plataforma dada, sean pocas y difíciles de encontrar y pocas empresas disponen del tiempo o los recursos, para desarrollar a un equipo desde cero. Con los especialistas ocurre una situación recurrente: es normal que deseen resolver todo en su trabajo, usando sólo la plataforma que dominan, incluso si ese lenguaje o plataforma no es la mejor herramienta, para resolver un problema dado por una “ceguera tecnológica”, que no les permite ver más allá de lo que conocen. Por otro lado, es comprensible: un especialista de una plataforma corre el riesgo de quedarse fuera, si la tecnología en la que trabaja cambia repentinamente o desaparece y, es normal, que sea entusiasta sobre ella y la promueva lo mejor que pueda. En este punto es común encontrar desarrolladores que fuera de su plataforma principal de trabajo buscan también conocer y aprender lenguajes adicionales o complementarios para cubrir más terreno curricularmente hablando y no quedarse en el aire en un momento dado. Es común escuchar a los programadores decir que: “si sabes programar bien lo puedes hacer en cualquier lenguaje” y es normal que un programador, busque extender sus capacidades de desarrollo y sea capaz de manejar varios lenguajes de manera simultánea; lo que da lugar a la figura del “generalista”, alguien que conoce varios lenguajes de desarrollo de manera superficial. El problema con el generalista es obvio: tener en el equipo a alguien que conoce un poco de muchas cosas funciona para proyectos sencillos, pero casi nunca para proyectos más complejos. No es que esa persona no pueda aprender y profundizar en un lenguaje, pero esa curva requiere tiempo que no siempre está disponible en una


.COLUMNA Invitada

Logística de Software

UN ENFOQUE DIFERENTE PARA EL DESARROLLO DE SOFTWARE

L

a logística siempre ha sido un tema de estudio dentro de la ingeniería industrial para saber ¿cuál es la mejor forma (costobeneficio) de hacer llegar un producto al consumidor final? En la vida personal me he adentrado en el tema de la logística, siendo mi profesión dedicada a las Tecnologías de Información, no es un campo de aplicación donde se haya explotado la logística, pues los avances tecnológicos hacen que la información tenga una fluidez muy aceptable, por ejemplo la fibra óptica, las redes de información, mecanismos de comunicación, dispositivos flexibles, hardware con capacidades de almacenamiento y procesamiento increíbles, etc. Existe una frase que tiene un contenido de fondo importante y que se puede aplicar a cualquier industria, “En el mercado ya no existe la competencia por el mejor producto, más bien se ha convertido en la competencia por la mejor cadena de suministro”. Esto quiere decir que no basta con tener un producto con estándares de calidad altos, lo importante es que llegue al usuario final y que lo acepte, desde la selección de materia prima de calidad, como la mano de obra eficiente, los diseños, la distribución, publicidad, etc. todo debe estar sincronizado, y estructurado de la mejor forma para cuidar costo y calidad, todos estos componentes conforman una cadena de suministro. ¿Cómo podemos aplicar este principio al desarrollo de software? En la industria de tecnologías de información, en el desarrollo de sistemas, el producto final, aunque no sea tangible es una solución de gestión de Ignacio Ramírez tiene más de 18 información que satisface las necesidades de uno o años de experiencia en el área de muchos usuarios y principalmente de una compatecnologías de información. Lañía. La cadena de servicio dentro de TI debe estar boró en Servicios enfocada a dar la mejor solución de información a RC como Líder e Integrador de todos los usuarios involucrados. proyectos informáticos. Cuenta A pesar de la existencia de lineamientos, teocon estudios rías, estándares, métricas, modelos de procesos, de Licenciatura en ciencias de metodologías, estudios y estadísticas realizadas por la informática (UPIICSA) y organizaciones serias, de experiencia y presencia, Maestría en Ingeniería Industrial referentes al desarrollo de software, existen en el en planeación entorno otras variables que se deben contemplar y estratégica en ingeniería y tectomar la similitud de la cadena de suministro, pues nología (Universidad Anáhuac). en el fondo se busca el mejor camino para desarroiramirez@ llar software de calidad con los mejores costos, fiserviciosrc.org nalmente es una solución que deberá ser aceptada por los usuarios.

Agregando valor al proceso

Una forma de analizar los componentes (eslabones) de una cadena de suministro es mediante el análisis de la cadena de valor, misma que nos permite identificar la ventaja competitiva sostenida de cada unidad organizativa. Partiendo de esta herramienta

es posible saber si el conjunto de las ventajas competitivas, que se pueden integrar al proyecto de tecnología de información, aportarán de la mejor manera para finalmente tener un sistema que sirva exitosamente a los usuarios (maximizar valor y minimizar costos de desarrollo). Cada eslabón de la cadena cuenta con actividades primarias y actividades secundarias o de apoyo. Las primarias se refieren al proceso natural de creación de un bien o servicio y las de apoyo son las actividades auxiliares. Ver Figura 1.

Figura 1. Modelo Cadena de valor (servicios).

El valor que genera cada participante dentro del desarrollo de software debe de enlazarse a la red de participantes dentro del proyecto. Este tipo de análisis ha resultado en proyectos de software y se ha llegado a los resultados esperados. Se analiza a cada uno de los equipos de trabajo y/o elementos de los mismos como una unidad organizativa, de esta forma se tienen identificadas las ventajas competitivas que aportarán a cada proyecto. Esto depende de la forma de trabajo que se haya definido, de la metodología, de la herramienta de desarrollo a utilizarse, principalmente deben estar enfocados a lograr los objetivos buscados en tiempo, alcance, calidad y costos.

Cadena de servicios en el desarrollo de una solución

Sabemos que tenemos equipos de trabajo tanto internos como externos, pero cualquiera que sea el origen es importante saber en qué se destacan para poder integrarlos a nuestra cadena de trabajo. Aquí se proponen algunas características genéricas que han funcionado en proyectos importantes y globales. Equipo de análisis: debe estar integrado por personas que conozcan ampliamente el contexto de la organización y los objetivos que se buscan, principalmente internos que tengan dentro de sus habilidades un sentido analítico así como minuciosos y detallistas. 46


.COLUMNA Invitada

›› “La experiencia por sí sola no es garantía de seleccionar la mejor solución o el mejor camino”.

Figura 2. Buscando la integración.

Equipo de desarrollo: El valor se centra principalmente en conocimiento tecnológico y es a partir de esta etapa en donde podemos aprovechar el valor agregado que pueden proporcionar en potencia los equipos externos si es que no se cuenta de forma interna las habilidades requeridas.

La experiencia por sí sola no es garantía de seleccionar la mejor solución o el mejor camino, si no va acompañada de cimientos o raíces sólidas de conocimiento, métricas y análisis. Los indicadores son la mejor manera de tomar control. “Si lo puedes medir, lo puedes administrar”.

Equipo de calidad: Su principal ventaja se centra en el enfoque integral, así como amplia visión de las posibilidades de uso con la herramienta. La experiencia y aplicación de técnicas de pruebas de caja negra y caja blanca de forma completa y exhaustiva. Es recomendable que no estén involucrados de forma directa en las etapas de análisis, diseño y desarrollo.

En resumen

Equipo de implantación: El valor que se busca se centra en el marketing, pues es el equipo que tiene contacto con los usuarios y depende de este punto, la aceptación o rechazo de la solución realizada. Equipo de soporte y mantenimiento: La continuidad operativa es un tema importante y de mucho valor para los usuarios, pues representa el acompañamiento (servicio) que se le brinda en el uso de la herramienta. Cabe aclarar que estas características no necesariamente deben ser así en todos los casos, pues depende del entorno y variables tanto internas como externas a contemplar para lograr el objetivo establecido.

Existen muchas estrategias para lograr la meta, sólo una o muy pocas son las óptimas. ¿Estamos listos y preparados para identificar dentro de cada contexto particular cuál es la mejor? Los proyectos que arman sus “cadenas de suministro” sin un análisis serio son proyectos costosos o fracasan. Es importante conocer las capacidades y limitaciones que existen en los integrantes de los proyectos, pues esto nos permitirá saber en dónde pueden agregar el mayor valor posible para alcanzar los objetivos y esto cambia dependiendo de las diferentes variables y entornos. Si nuestra “cadena de proceso de desarrollo/implantación” es sólida en cada eslabón, es garantía de llegar a la meta. La dirección del proyecto debe buscar una sinergia enfocada a la solución deseada por los usuarios y debe estar apoyada por las herramientas, metodologías, métricas, y formas de control conocidas y sugeridas dentro del mundo de software. La satisfacción del usuario final (usabilidad, funcionalidad, performance, seguridad y calidad) es nuestro objetivo, pues ahí está el máximo valor que en conjunto da nuestro trabajo.

>> Por Ignacio Ramírez

Estrategia de orquesta

En este análisis es importante resaltar el tipo de liderazgo que se requiere, pues en similitud con una orquesta sinfónica, los elementos que lo componen son expertos en el instrumento que le corresponde. El director de orquesta debe marcar los tiempos, los tonos, la entrada de cada instrumento y buscar bajo su propia experiencia, conocimientos y estilo, que la interpretación sea coherente y perfecta. El líder o líderes de proyecto deben buscar que los participantes enfoquen y canalicen su experiencia e integren sus esfuerzos a dar el mayor valor de su trabajo y crear una sinergia que se traduzca en beneficio para los usuarios. Ver Figura 2.

Referencias [1] Porter, Michael E. (1985). Competitive Advantage: Creating and Sustaining Superior Performance. [2] Value Chain Analysis: http://www.strategicmanagementinsight.com/tools/valuechain-analysis.html [3] Directores de empresas, Directores de orquesta:http://direccionestrategica.itam. mx/wp-content/uploads/2010/06/Articulo-liderazgo.doc [4] Grant, R.M. (2010). Contemporary Strategy Analysis. 7th ed. John Wiley & Sons.

47

www.sg.com.mx |

Equipo de diseño: Su valor está enfocado por el lado del usuario a ofrecer un grado alto de usabilidad de la solución, y por el lado tecnológico en integrar las capacidades de la o las herramientas a utilizar. Debe existir una integración directa con el valor ya generado por el equipo de Análisis. Muy deseable que conozcan las limitantes y fortalezas de la herramienta a utilizar para poder estimar en cuanto a alcances, tiempos y costos.

Software Guru

Su valor se centra en la gestión y entendimiento de requerimientos (logística interna).


.COLUMNA Invitada

Administración de Proyectos en la era de

Big Data

M

eses atrás empecé a escribir un artículo sobre cómo creo que será la Administración de proyectos en la era del Big Data. Antes de compartir mis comentarios, quiero revisar el concepto general. Jhon Weathington (2012) propone la siguiente definición: grandes cantidades de datos que fluyen con rapidez. • Para ser competitivo con los clientes, los grandes volúmenes de datos deben crear productos que sean valiosos y únicos. Iván Rivera es maestro en Administración de Tecnologías de Información por el Tecnológico de Monterrey. Administrador de Proyectos Certificado por el PMI y por la Universidad de Stanford, con más de 10 años de experiencia en el control de proyectos con fuertes restricciones de alcance, tiempo, costo y calidad, alineados a la estrategia organizacional. Cuenta con antecedentes empresariales desarrollados a través de puestos directivos en empresas de servicios. Innovador, orientado a soluciones y con habilidades de coordinación de equipos de trabajo.

• Para ser competitivo con los proveedores, los grandes volúmenes de datos deben estar disponibles gratuitamente, sin obligaciones o limitaciones. • Para ser competitivos con los nuevos operadores, grandes volúmenes de datos son difíciles para los recién llegados a probar. • Para ser competitivo con sustitutos, los grandes volúmenes de datos deben crear productos que excluyan a otros productos que pueden satisfacer la misma necesidad. En resumen: Big data es gran cantidad de datos en movimiento rápido y con libre disposición que potencialmente sirve a una necesidad valiosa y única en el mercado, pero es extremadamente caro y difícil de extraer por medios tradicionales. Jhon Googpasture (2012) revisa un ensayo de Cukier y Mayer- Schoenberger en la Revista Foreign Affairs que señala que usar grandes volúmenes de información requiere tres cambios profundos respecto a proyectos tradicionales:

1. Recopilar y utilizar una gran cantidad de datos en lugar de conformarse con pequeñas cantidades o muestras, al contrario de cómo se han hecho estadísticas en el último siglo. 2. Cambiar nuestra preferencia por los datos muy procesados en lugar de aceptar el desorden. 3. En muchos casos, tendremos que abandonar nuestra búsqueda por descubrir la causa de las cosas, a cambio de aceptar las correlaciones. Jhon considera que “olvidar muestras económicamente viables, aceptar desorden sobre la exactitud, y ser felices sin entender la causalidad de la correlación” son las bases de la definición de “Terminado” para el patrocinador del proyecto. Según una reciente encuesta de Infochimps, el 58% de los encuestados indicó que el alcance impreciso fue la causa principal del fracaso de los proyectos de BigData (Gilchrist, 2013). La gestión de requisitos es una preocupación importante en estos proyectos, ya que el alcance inexacto es una de las tres principales causas de fracaso de acuerdo con la opinión de directores de TI encuestados. Considerando estas estadísticas sombrías para los proyectos de Big Data, es evidente que algo hay que hacer para solucionar este problema. Y algo debe cambiar en la manera de gestionar los requisitos. Los consejos que se pueden aplicar para ayudar a planear para el éxito de los proyectos de BigData, según Patti Gilchrist (op cit.) son: 48


.COLUMNA Invitada

›› “los datos sólo valen algo si los puede usar alguien que entiende la misión de la empresa”.

2. Definir el problema. En el entorno actual de negocios de ritmo rápido y dinámico en el que hay una presión constante para la innovación y la velocidad al mercado, muchos equipos de proyectos abrazan un sentido de urgencia para comenzar a trabajar en un proyecto con información muy limitada, a regañadientes consienten esperar a tener una visión clara, y comienzan la ejecución sin una comprensión fundamental del problema que debe ser solucionado. La recomendación es que antes de iniciar un proyecto de Big Data se debe tener una idea muy clara de qué es exactamente lo se está tratando de lograr cuando se empieza. 3. Priorizar objetivos. En el artículo de Gilchrist también se recomienda determinar las prioridades. Entender los motivadores del negocio ayudará a priorizar los objetivos y asegurarse que el proyecto se está centrando en lo que va a agregar valor al negocio. 4. Establecer el caso de uso. ¿Con qué frecuencia se ha empezado a trabajar en un proyecto en el que no se proveen casos de uso? A menudo, en un esfuerzo frenético para aumentar la velocidad del mercado, los proyectos comienzan su ejecución sin una comprensión clara de los casos de uso. El modelado de casos de uso es una herramienta de planificación eficaz que proporciona un marco para los requisitos en un lenguaje fácil de entender y que sirve para facilitar el lograr acuerdos con los clientes y las partes interesadas. Los Casos de Uso enlazan las necesidades de los interesados con los requerimientos, ayudan a validar que se capturan todos estos requerimientos, y a verificar la comprensión de los interesados. 5. Determinar las necesidades de datos e identificar las fuentes de datos necesarias para apoyar sus casos de uso. Hay que recordar que mientras más grande es la misión de una organización, más complejos serán sus requerimientos de datos, y se requerirá más trabajo para delimitar el alcance en forma adecuada.

6. Se deben considerar las necesidades de infraestructura. Muchas organizaciones subestiman las necesidades de almacenamiento. Aunque las organizaciones son conscientes de los volúmenes de datos existentes, no se dan cuenta de que tendrán que duplicar los datos en un entorno independiente para realizar el análisis avanzado requerido. Debido al modelo de servicio basado en la utilidad o la medida de la computación en nube, muchas organizaciones han descubierto que los servicios basados en la nube ofrecen un precio más económico a la escala requerida para el manejo de grandes volúmenes de datos. 7. Comprender plenamente las necesidades de recursos. Un reto para la mayoría de los proyectos de TI es encontrar las habilidades necesarias para ejecutar con éxito los objetivos de negocio definidos. Para los proyectos de Big Data, es una tarea aún más difícil. Teniendo en cuenta las nuevas tecnologías y herramientas que intervienen, hay una escasez de recursos con experiencia. Y hay nuevos roles emergentes en la escena, como el ingeniero de datos - que es un rol relativamente nuevo pero crucial en los proyectos de Big Data. Para tener éxito en un proyecto de BigData, se necesitan recursos con conocimientos de matemáticas, estadística, algoritmos, ciencia de datos, así como visión para los negocios para entender cómo el esfuerzo se inscribe en el panorama más amplio de metas y objetivos de negocio. Un buen esquema de seguridad también resulta beneficioso si se utiliza información clasificada o restringida. Además, se necesita gente que se sienta cómoda con el aprendizaje y el uso de herramientas y tecnologías nuevas y complejas, tales como bases de datos no relacionales. La necesidad de una gama compleja y amplia de habilidades hace aún más difícil la tarea de encontrar los recursos adecuados para el equipo. Así que cuando se prepare para el próximo proyecto de Big Data, se deben evaluar el alcance, los requisitos y criterios de éxito para idear un plan que permita llevar a cabo las metas y objetivos.

>> Por Iván Rivera 49

Software Guru

Hay que recordar que los datos sólo valen algo si los puede usar alguien que entiende la misión de la empresa y puede explicar por qué se necesita un proyecto Big Data en primer lugar.

Y se debe tener en cuenta el origen y la calidad de sus datos. ¿De dónde proceden?, ¿se necesita limpiarlos?, ¿están almacenados en bases de datos relacionales tradicionales?, ¿es un formato estructurado, procedente de canales web y las redes sociales?, ¿los datos están en reposo o en movimiento?

www.sg.com.mx |

1. Identificar las metas y objetivos de negocio. ¿Con qué frecuencia los equipos de trabajo del proyecto no están conscientes de la misión general o cómo el proyecto encaja en la estrategia general de la empresa?


.TECNOLOGÍA Base de Datos

NOSQL

una nueva generación de bases de datos

›› Por Ismael Villegas

L

a generación de contenidos masivos de información dentro de Internet, ha generado nuevos paradigmas de respuesta al almacenamiento de información. Los manejadores tradicionales de administración de bases de datos relacionales (RMDBS) han tenido dificultad para enfrentar los nuevos esquemas de almacenamiento y manejo intensivo de información que las nuevas aplicaciones y ambientes requieren. Paradigmas nuevos surgen y permiten expandir el panorama de almacenamiento de datos en esquemas poco convencionales, los cuales revisaremos de manera general en este documento.

¿Qué es NOSQL?

Arquitectura de documentos La arquitectura basada en documentos utiliza una estructura compleja de datos denominada documento para almacenar los campos de cada registro. Se pueden generar arreglos de registros o anidamientos de documentos. Estas estructuras de datos son del tipo JavaScript Object Notation (JSON), XML o BSON o del tipo binario como PDF. Ver Figura 1. Estos documentos pueden ser invocados utilizando una URL. En conjunto con Javasript y HTML se pueden invocar a los documentos teniendo la capacidad de generar un sitio web completo a partir de ellos. Esta facilidad de interactuar por medio de una URL utilizando el protocolo http distingue a las bases de datos de documentos de las bases de datos de Llave/valor.

Nueva generación de bases de datos que puede cubrir cualquiera de estos puntos: ser no relacional, distribuida, opensource y escalable de manera horizontal. La idea original fue bases de datos web escalables modernas. Generalmente otras características aplican como: libre de esquema, soporte sencillo de replicación, API sencilla, eventualmente consistente, una gran cantidad de datos y más. Entonces el término “nosql” (la comunidad ahora lo traduce como “no solo sql”) debe ser visto como un alias.

Arquitecturas Llave/Valor La arquitectura Llave/Valor consta en una llave como “Colonia” que se asocia con un valor “Centro”. Estas estructuras pueden ser utilizadas como colecciones, diccionarios, arreglos asociados o caches. Los valores almacenados pueden ser textos largos no solo enteros o cadenas cortas, lo cual los hace ideales para guardar comentarios, mensajes o descripciones largas. Cada llave almacenará un conjunto de contenedores (campos o columnas), cada contenedor corresponde a un nombre y un valor. Se genera un contenedor por cada pedazo de dato que se tenga. Cada registro tiene una llave y una colección de valores. Las búsquedas realizadas en este tipo de estructuras son rápidas ya que funcionan bajo el concepto de tablas hash. Estas búsquedas también son sencillas de administrar a lo largo de la base de datos, lo que permite barrer clusters de servidores sin dificultad. Las bases de datos Llave/Valor están diseñadas para escalarse de manera horizontal y para que sean veloces. Estas estructuras resuelven situaciones en donde la información no está relacionada. Pueden utilizarse para llevar el registro de la actividad de los usuarios en un sitio Web. Considerando la ausencia de índices, este tipo de estructuras no son útiles para realizar operaciones complejas con los datos, solo soportan sentencias simples de creación, lectura, actualización y eliminación.

Figura 1. Documento JSON utilizado en CouchDB para representar la información del usuario y su dirección.

La distribución de documentos entre varios servidores es simple y su replicación a través de una implementación distribuida es sencilla de implementar. La utilización de estas bases de datos en ambientes en donde la información no está definida y se desconoce el volumen a manejar, facilita el uso de documentos como elementos de información para crear objetos que se adapten con los lenguajes actuales de programación. Se debe considerar que los queries que manejan grandes joins, no pueden ser ejecutados en este tipo de bases aun cuando se manejan índices en la administración de los registros. La existencia de documentos con información redundante o incompleta es común en este tipo de bases, por lo que la desnormalización de la información no debe ser extraño al estar operando la base de datos. Columnar El modelo de columnar utiliza el esquema de llave/valor para almacenar la información pero introduce un patrón de jerarquías y un semiesquema para ordenar y almacena los datos, generando las columnas por la que es llamada esta arquitectura. Las filas contenidas en esta base de datos pueden variar, es decir pueden contener un número diferente de campos ya que es una propiedad de los registros llave/ valor. Las tablas de estas bases de datos deben ser declaradas, lo cual amarra a este tipo de bases a la presencia de esquemas definidos para trabajar los datos. Ver Figura 2. 50


.TECNOLOGÍA de Datos

Base

“Paradigmas nuevos surgen y

Figura 2. Esquema de tabla en HBase con filas, llaves, familias de columnas,

aristas. Nuevas aristas pueden ser agregadas en cualquier momento, permitiendo relaciones uno a muchos o muchos a muchos de una manera sencilla, evitando el uso de tablas intermedias para la representación de esta unión, como será en el caso en una base de datos relacional. Estas bases de datos se enfocan más en las relaciones de los datos, más que en las características de sus valores. Estas bases de datos son ideales para el manejo de información no estructurada, aún mejor que las bases de datos orientadas a documentos. Se puede utilizar este tipo de base de datos para guardar información relacionada entre si y puede ser representada a partir de estructuras compuestas de nodos y aristas que conforman un grafo. Este grafo puede ser barrido ubicando la relación existente entre sus nodos. Una red social pudiera ser almacenada dentro de esta base de datos en donde los usuarios representan nodos que guardan cierta relación con sus nodos vecinos. Los sistemas orientados a objetos serán bien almacenados en estas bases, dada la similitud del objeto con un nodo dentro de la base. Se debe tener en cuenta que debido a la complejidad que pueden alcanzar los nodos no es recomendable particionar este tipo de estructuras ya que los brincos entre nodos de red no son resueltos de manera rápida por la base de datos. Es común que si se utiliza esta base de datos, forme parte de un “ecosistema” de bases de datos en donde el volumen de información se almacena en otras bases y la base de grafo almacena las relaciones entre los datos. Entonces, base de datos NoSql debe entenderse como: la herramienta de almacenamiento de información que derivado de grandes volúmenes de información y una necesidad creciente de disponer la información de manera inmediata, no se apega a las características principales de un manejador RMDBS, algunas bases no cuentan con esquemas de datos definidos, otras tantas permiten el almacenamiento de su información en servidores distribuidos por el mundo, algunas dejaron de utilizar el SQL como lenguaje para manipulación de datos, otras manejan la replicación de datos y el manejo de errores de manera natural sin necesidad de configuraciones de hardware costosas.

columnas y valores.

Referencias

Grafos Las bases de datos de grafos reconocen entidades en un negocio o dominio, y explícitamente siguen las relaciones entre estas. Las entidades reciben el nombre de nodos y las relaciones el nombre de

[1] http://www.nosql-database.org/ [2] http://nosql.mypopescu.com/ [3] http://www.techrepublic.com/blog/10-things/10-things-you-should-knowabout-nosql-databases/

.BIO Ismael Villegas es docente de a nivel Maestría y Licenciatura, consultor de sistemas en el manejo de desarrollos de software y administración de proyectos tecnológicos en el ramo de instituciones financieras por 16 años. Actualmente trabajando en un proyecto global en la migración de plataformas tecnológicas del cliente en México, hacia ambientes virtualizados concentrados en Estados Unidos. Recientemente certificado como Project Manager Profesional(PMP) por el Project Management Institute(PMI).

51

www.sg.com.mx |

Estas bases de datos se escalan de manera horizontal, están pensadas para solucionar problemas de Big Data. Cuentan con la facilidad de versionar y comprimir su contenido. Esta capacidad de versionado facilita el manejo de sitios web dentro de la base de datos, tanto para que sean almacenados como para que sean controlados. La historia de los cambios en un sitio son almacenados de manera automática en la base de datos. La capacidad de almacenamiento de la base de datos está en el orden de los gigabytes o terabytes, ya que la base puede almacenarse en distintos servidores y la utilería de replicación puede reaccionar ante fallos en el almacenamiento de los datos. Se debe conocer por adelantado la forma en que se va a manejar el esquema de datos, ya que debe pensarse en resolver de manera fácil las diferentes consultas (queries) que se le van a presentar, no importando el contenido de la base. La terminología de la base de datos es muy similar a las bases de datos relacionales. No se cuentan con índices para localizar u ordenar la información, solo se cuenta con las filas llave que definen el orden de los registros, no se puede ordenar la base ni por columnas ni por valores.

Software Guru

permiten expandir el panorama de almacenamiento de datos en esquemas poco convencionales”.


.PERSONAS Carrera

Presentaciones efectivas de TI: ›› Por Raúl Reyes González

Demuestra el valor de tu trabajo

N

o podemos negar, que en algún momento de nuestra labor como profesionales, tendremos que realizar presentaciones técnicas; son necesarias y representan la oportunidad más importante para demostrar el valor de nuestro trabajo. Varias veces, como consultor de TI, he visto a colegas que no prestan atención a esta habilidad tan importante en nuestros días y se presentan ante el cliente, sin saber que no sólo se trata de hablar, sino de transmitir eficazmente un mensaje. A continuación se muestran algunos consejos para la elaboración de presentaciones técnicas hacia el cliente.

Planeación pre-presentación

Uno de los ingredientes clave para realizar una presentación efectiva al cliente, es relacionar las características técnicas con las necesidades del cliente y mostrarle que la solución que le presentas cuenta con los beneficios que él espera. ¿Cuántas veces hemos ido a presentar las características de nuestro producto, sin saber nada del cliente? A veces es necesario realizar una reunión inicial de levantamiento de requerimientos entre el cliente, el vendedor y tú, donde el objetivo de esta reunión inicial de levantamiento, es hacer que el cliente hable lo más que se pueda y no que el vendedor hable lo que él quiera. Paso 1: queremos escuchar al cliente. ¿De qué les agrada hablar a las personas? de sus intereses, opiniones; en resumen: de su persona. Fíjate bien en los detalles, te servirán posteriormente para derribar las barreras de desconfianza que existirán en el cliente y el vendedor, más adelante en el proceso. Paso 2: queremos saber la expectativa del cliente. Debes tomar en cuenta lo siguiente: la mayoría de los clientes podrán estar pidiendo un producto en específico, pero puede darse el caso que no sepan ni siquiera que existen otros tipos de productos. Ten cuidado en no obviar el problema del cliente. Paso 3: debemos identificar lo que realmente “le duele” al cliente. Nuestra función, como contraparte técnica ante el cliente, es la definición de lo que el cliente requiere, pero que no puede lograr sin nuestra ayuda. A lo anterior lo llamaremos: problema. Debemos comenzar definiendo el problema, necesitamos saber exactamente qué necesita alcanzar nuestro cliente para lograr sus objetivos, lo cual resultará primordial para definir posteriormente la forma en la que le ayudaremos con nuestro producto o servicio. Por ejemplo, un cliente requiere incrementar su nivel de ventas en un 20%. Los problemas no necesariamente tendrán una correlación directa con el producto que tú representas. No olvides de asegurarte que entendiste correctamente el problema de negocio.

Paso 4: No olvides el paso 1 (queremos escuchar al cliente) En nuestra vida rodeada de tecnología, nunca hay absolutos, sólo relativos, por lo que nuestras soluciones son un conjunto de bloques de construcción unidos para cumplir un propósito específico. Por lo tanto, es mucho más recomendable en esta etapa de descubrimiento, no entrar en muchos detalles sobre la solución a ofrecer. Paso 5: Mientras más específico, mejor. Avanzada la reunión, una vez que hemos escuchado y platicado los problemas, es necesario recabar los requerimientos técnicos específicos que nos permitirán definir el tipo de solución (o soluciones) a ofrecer. Debemos tratar de ser lo más específico posible. Trata de hacer una lista con las preguntas más importantes, para evitar que se te olvide recabar datos importantes.

Elaboración de la presentación

Bien, ha llegado el momento de elaborar la presentación para el cliente. Agenda Una presentación técnica efectiva, debe contener una agenda para la reunión, la cual cumplirá con dos propósitos: organizar tus ideas y organizar el tiempo que tienes para la presentación. Es importante que en todas las presentaciones comiences por decirle a tu audiencia, qué es lo que van a escuchar; así les será más fácil llevar el hilo y no perderse. Audiencia Trata de tener, al menos, una lista de los probables asistentes a la presentación. En la lista de personas podrás observar que los nombres vendrán acompañados de los puestos que ocupan en su organización, por lo que es bastante posible que encuentres mezclados puestos técnicos y puestos rudos (no técnicos). Un buen consejo, es pedirle al vendedor te permita llamar por teléfono a los técnicos para “revisar la agenda” y, por tu cuenta, tener una conversación rápida para obtener datos técnicos interesantes, sobre los requerimientos y criterios de evaluación. De esta manera podrás cubrir mejor las expectativas. No queremos sorpresas. Instalaciones Este punto también es de los que se subestiman y, la razón por la que me interesa hacer este apartado, es para que todo el trabajo que has realizado hasta ahora no se arruine por pequeñeces. Un hombre sabio un día me dijo: todo lo que no juega a tu favor, juega en tu contra. Por lo que nuevamente: no queremos sorpresas. Una buena sugerencia es que te lleves un kit (además de tu laptop y cargador): cable de red UTP; adaptador para VGA o 52


.PERSONAS Carrera

“Mientras más específico, mejor”.

Una vez que te encuentras listo para comenzar con la presentación, verás cómo los asistentes comienzan a integrarse a la sala. Es un buen consejo acomodar en la mesa frente a ti las tarjetas de presentación para que, de un vistazo, puedas ubicar a las personas. Dirígete a las personas por su nombre; asegúrate de aprender la correcta pronunciación, incluso anotarlo si así prefieres. Evita poner diminutivos o apodos, a menos que la persona te indique hacerlo. ¿Hablar “de usted” o hablar “de tú”? Lo que puedo compartirte es que a personas mayores y/o altos ejecutivos, les parece más apropiado ser llamadas por su apellido o por su título, que por su nombre de pila cuando les hablan personas mucho más jóvenes (que es lo que normalmente nos pasa como tecnólogos, generalmente somos los más jóvenes de la reunión). Por lo que, siempre es mejor comenzar por dirigirte de manera más formal con el Sr. Fernández, que llamarle simplemente “amigo Mike”. Al inicio, normalmente, el vendedor toma el control de

Diapositivas

Normalmente el vendedor comenzará con la presentación (lo ideal es que comience por el problema del cliente) y mostrará información de la empresa, datos de mercado relevantes, etc. Ojo, mantente atento ya que los asistentes técnicos pueden, por empatía, realizarte preguntas sobre lo que presenta el vendedor y no se vería bien que te sorprendan “papando moscas”. Un buen tip es contemplar un promedio de 3 minutos por slide/ diapositiva. Aunque esto pudiese parecer mucho tiempo por slide, recordemos que representa un promedio. También contempla tiempo para interactuar con tu audiencia. Considero que unos 15 slides representan como unos 45 minutos, más o menos. Otro tip es que no cargues tu presentación con demasiados slides. El más importante de todos los tips. Por favor, memoriza tus slides, relaciona el contenido de estos con los beneficios/características y sobretodo hazlo de cara a la audiencia, no a la pantalla. El contacto visual es fundamental. Otro punto importante a considerar es que no abuses del uso de slides que van mostrando poco a poco el contenido para seguir adelante, ya que la audiencia pondrá más atención en qué momento avanzas al siguiente punto, que en lo que estás diciendo. Mantén los slides sencillos y consistentes.

Última recomendación

Antes de una competencia, como en un partido de fútbol, los jugadores comienzan por calentar sus músculos para no lastimarse, pero sobre todo lo hacen para asegurar el tener un buen rendimiento. Tú también puedes hacerlo. Una vez que hayas llegado con anticipación a la reunión, saca una hoja de papel y repasa los puntos clave de la presentación o del diagrama para el pizarrón. Verás cómo se mejora tu presentación una vez que hayas “calentado”. .BIO

Raúl Reyes González es un consultor de TI y un entusiasta sobre la nube, líder de la comunidad de usuarios de VMware en la Ciudad de México (VMUG) y miembro activo de otras comunidades. Cuenta con las certificaciones VCP5, AWS-CSA-A e ITIL v3; Ingeniero en Sistemas por parte de UNITEC, cuenta con un diplomado en Consultoría Aplicada a la Administración de TI por parte de la Ibero, y actualmente se encuentra cursando la Maestría en Administración de Negocios. @RaulRgmx

53

Software Guru

Durante la presentación

la reunión y, como parte de la presentación, debería presentarse. Preséntate expresando una breve descripción de tu experiencia o función en la empresa. Una vez que se han presentado, el grupo del cliente hará lo mismo.

www.sg.com.mx |

HDMI; 1 ó 2 plumones para pizarrón blanco; apuntador láser; mouse externo, llave USB y tiras velcro. Agrega lo que consideres pertinente a la lista y mantén este kit organizado, utiliza las tiras de velcro para organizar los cables. ¿Y el proyector? ¿debo llevar uno? Este punto es discutible. Me he encontrado con empresas que otorgan a sus colaboradores proyectores pequeños y ligeros, ya que una mala presentación puede influir mucho en la toma de decisiones de un proyecto. Sin embargo, otros colaboradores han optado por desarrollar “white boarding”, con excelentes resultados. Existen varios videos en You Tube (“how to whiteboard”), que muestran lo efectivas que pueden ser este tipo de presentaciones, incluso mejores que las realizadas en PowerPoint. Otro consejo, llega 15 minutos antes. No al edificio, sino a la sala de juntas. Debes estar instalado y listo para comenzar a la hora establecida. ¿Para qué? Para saludar a los asistentes, presentarte y establecer confianza cara-a-cara. No puedes crear confianza si te encuentras ocupado instalando tu equipo. Por favor, lleva suficientes tarjetas de presentación.


.PERSONAS Gerencia

En Búsqueda de la ›› Por Rosalinda Muñoz

Auto-organización

E

n las semanas que le siguieron al temblor del Distrito Federal en 1985, la sociedad civil se organizó para apoyar a los rescatistas con comida, agua, descanso e incluso, ayuda médica y psicológica. La gente puso tiendas entre los edificios derrumbados, improvisaron cocinas, camas y consultorios. Lo hicieron a pesar de que el Gobierno, que buscaba controlar la situación y la información, se los prohibió. Sin embargo, policías y militares no pudieron contra ellos. Algunos voluntarios tenían familiares bajo los escombros, otros más lo hicieron por solidaridad. La sociedad civil tenía un objetivo compartido: ayudar lo más pronto posible y reclamó su derecho a participar. El modelo de mando y control, donde existe una autoridad central, no fue necesitado. Algo similar sucedió con los huracanes Ingrid y Manuel. Si bien, el sentido de emergencia es el que detona estas acciones, las personas se organizan y cooperan con la causa sin que exista un líder o una obligación. A esto se le llama auto-organización: cuando no necesitamos una jerarquía para lograr un objetivo compartido. No es necesario que exista la necesidad de emergencia; las personas se organizan dentro de grupos de lectura, en foros de internet y para la planeación de una fiesta. Incluso, actividades internacionales como la Wikipedia, la creación de subtítulos para series y movimientos naturalistas y religiosos. Basta ver a los niños jugar en una fiesta infantil, ellos ponen sus reglas y actúan en consecuencia. Si no están de acuerdo pelean y al final llegan a un acuerdo; podría decirse que auto-organizarnos es una cualidad innata.

Vivimos en un mundo complejo

Conforme crecemos, todos los adultos (y en especial los ingenieros) tenemos el deseo de mantener un orden y una jerarquía. Nos es importante que podamos predecir un comportamiento, como dar la fecha de entrega de un proyecto con exactitud. Sin embargo, en el desarrollo de software enfrentamos problemas complejos relacionados con el conocimiento de la tecnología, de los requerimientos y hasta las personas involucradas en el desarrollo (incluidos los stakeholders). ¿El cliente no recibe lo que espera?, entonces hay que tener un equipo de pruebas que lo garantice; ¿el cliente cambia el requerimiento a medio desarrollo?, entonces hay que hacerlo firmar contratos estrictos; ¿el diseño del sistema no soporta los requerimientos de stress y volumen?, entonces hay que inspeccionarlo. Nuestra respuesta natural a la pérdida de control es la burocracia: poner más control y crear expertos. La realidad es que vivimos en un mundo complejo en el que una gran cantidad de variables y la interacción entre éstas, son las que provocan un resultado. Tratar de rastrear una causa raíz es una misión imposible. ¿El cliente no recibe lo que espera?, tal vez el cliente no sabe lo que quiere, o los analistas no han hecho las preguntas correctas, o

quizás el equipo de desarrollo no entendió bien el requerimiento, o la especificación funcional estaba inconsistente, o el administrador de proyecto del cliente no responde las llamadas, o al final, tal vez son todas estas variables y muchas más que desconocemos. Si volteamos a ver otros sistemas complejos, como nuestro cerebro o el universo, encontramos un elemento en común, el control distribuido en forma de auto-organización.

¿Qué es un equipo auto-organizado?

La auto-organización se basa en el principio de que las personas más cercanas al problema son las personas idóneas para resolverlo. Las personas conocen sus habilidades y aptitudes y las ponen a disposición del grupo para así lograr un objetivo común. Para equipos de desarrollo de software que deben resolver problemas complejos, el ser un equipo auto-organizado no debiera ser una buena práctica ni algo opcional o deseada. La auto-organización debe ser la práctica default. La adaptación al cambio y la innovación que requieren estos equipos encuentran tierra fértil en un equipo auto-organizado. Sus integrantes se sienten motivados y en control de su proceso, ponen sus propias reglas, aprenden conforme ejecutan, se presionan los unos a los otros, son capaces de lograr resultados asombrosos. El control distribuido es crucial para la supervivencia en un ambiente complejo.

¿Dejar el control al equipo?, es que no conoces a mi equipo

En un equipo auto-organizado son los integrantes quienes asisten a juntas, estiman, dan fechas de entrega y dan seguimiento al proyecto, hablan directamente con el cliente cuando se está definiendo el requerimiento, plantean la arquitectura, el diseño y los lineamientos de calidad de código. Todos exponen y conocen los resultados. La idea asusta a los altos mandos acostumbrados a tener el control. Conocen a los integrantes de su equipo e imaginan escenarios anárquicos, donde cada quien llega a la hora que quiere, se toman decisiones “al aventón” y la calidad del producto es pisoteada. La realidad es que líderes y gerentes conocen a su equipo en un contexto de control. Quizá han delegado responsabilidades, pero no han dado el empoderamiento (empowerment) a todo el equipo. Aún con un equipo auto-organizado, líderes y gerentes seguirán a cargo del proyecto de desarrollo y del equipo. Pareciera que se está pidiendo a estos altos mandos que se pongan la soga al cuello y le damos la soga al equipo para que la jale o la suelte. Pero nada más lejos de la realidad. Líderes y gerentes son responsables de establecer los límites en los que el equipo podrá moverse. Deben de proveer la estructura de trabajo, es decir: los 54


“En el desarrollo de software enfrentamos

¿Cómo lograr la tan ansiada auto-organización?

Lyssa Adkins en su libro Coaching Agile Teams, habla de una recuperación del “mando y control”. Asegura que a pesar de ser creyente fiel y fanática de los equipos auto-organizados, hay ocasiones que sus viejas costumbres de “yo digo y tú haces”, salen a la superficie. De mi experiencia como gerente, sé que es más fácil mandar que convencer. Y para el equipo también es más fácil obedecer que proponer, en especial cuando nos consumen los problemas de día a día, las fechas límite se acercan, la calidad del desarrollo queda en esperanzas. Comienza la desconfianza, las horas extras y la asignación de culpas.Sin embargo, hay un elemento colgado en la pared que me recuerda mi obligación de promover la auto-organización: el tablero físico de tareas. También conocido como tablero de Kanban, en este tablero hay post-its, indicadores de colores y hasta estampas. Abarca todo un pasillo y es el centro de gravedad del equipo. Frente a ese tablero tenemos juntas y resolvemos conflictos; ahí se asignan las tareas, se cuelgan diseños y se replantea la táctica a seguir. De una mirada el equipo sabe si está perdiendo el paso.

Una vez que los integrantes del equipo entienden la dinámica del tablero (como qué significa cada columna) y ponen las reglas de trabajo conjunto (como siempre tomar una tarea de prueba antes que una de programación), las conversaciones dejan de ser el “dime que hago” y se transforman en “hay que echarle la mano a fulanito” o “estamos teniendo un impedimento que no nos permite avanzar y no lo hemos manejado correctamente”. La transparencia y comunicación que derivan de ese tablero son pasos firmes hacia la cultivación de un equipo auto-organizado. A partir de ahí es necesario seguir trabajando todos los días. Líderes y gerentes deben de preguntarse qué les impide dejar el control, cuáles son sus temores y cómo enfrentarlos. Como estrategas deben apoyar al equipo de desarrollo en su crecimiento profesional buscando que la visión personal y como equipo se encuentren. Los integrantes del equipo de desarrollo deben procurar la excelencia técnica y la comunicación con sus compañeros. Deben apoyarse y conocerse en el otro hasta lograr una simbiosis. El éxito y la satisfacción de pertenecer a ese equipo se darán cuando sus integrantes se den cuenta que el resultado del trabajo en conjunto es mucho mejor que la suma de los logros individuales. El camino que debemos seguir para lograr un equipo auto-organizado está lleno de tentaciones y obstáculos. Pero sé que vale la pena. ¿Estás listo para intentarlo?

.BIO Rosalinda Muñoz (Rox) es Scrum Master en Tralix. Su principal interés siempre ha sido desarrollar software con calidad para que sus clientes estén satisfechos y los equipos de desarrollo se sientan orgullosos y sean competitivos. Estudió una maestría en Ingeniería de Software en España y al volver a México implementó el aseguramiento de calidad con procesos y auditorías. Estudia y pone en práctica conceptos de cultura organizacional, ontología del lenguaje y desarrollo de softskills. Se prepara para ser Agile Coach. @jeri4queen

www.sg.com.mx |

principios y valores que se deben procurar. También deben tener una visión de hacia dónde se debe mover el equipo y asegurarse que el equipo la entienda y se la apropie.

Software Guru

problemas complejos relacionados con el conocimiento de la tecnología”.


.PERSONAS Tendencias

Entorno Social ›› Por Miguel Sánchez Pecharromán

como parte de la empresa

“Un entorno único de interacción de y con los empleados”.

¿D

eben las empresas plantearse un entorno digital social para sus empleados? ¿Qué riesgos deben asumir ante este cambio? ¿Cómo pueden beneficiarse de este cambio? No es nuevo hablar del elevado uso de las redes sociales por parte de los usuarios de internet, ni tampoco lo sería si comenzamos a especular sobre el futuro de dichos soportes pero, ¿disponer de una intranet social es una tendencia o realmente está disfrutando de su etapa de madurez?

¿Qué es una intranet social?

Desde hace mucho tiempo se viene hablando del elevado riesgo de las compañías ante una concentración de “Know How” en determinados recursos y su posible fuga. Ante ello, se plantean la necesidad de introducir herramientas que permitan una gestión y fluidez del conocimiento entre las diferentes áreas. Sin embargo, hasta la fecha se han implementado herramientas particulares de Gestión del Conocimiento que acaban teniendo un uso por debajo de las expectativas tanto de introducción de datos como de consulta de los mismos. Además, en muchas organizaciones no llegan a implementarse debido a una falta de cambio cultural hacia la compartición de conocimiento. Dentro de este ámbito nace el concepto de intranet social, un entorno único de interacción de y con los empleados. Dentro de este entorno necesitaremos facilitarles, de forma integrada, todas las herramientas necesarias para comunicarse, compartir conocimiento y otras acciones propias de su día a día laboral.

¿Qué puede aportar un entorno social?

Estos entornos, bien entendidos, pueden ofrecer a las empresas herramientas que, no sólo faciliten el trabajo de sus empleados, optimicen los tiempos de ejecución de tareas cotidianas sino, además, evitar caer en errores redundantes o aumentar la rentabilidad de los casos de éxito. Pero si el uso de la intranet aún es reducido en muchas empresas, ¿cómo vamos a plantearnos que además se plantee un uso social? Actualmente, están cada vez más en boca de todos, herramientas como wikis, chats, blogs, foros o simples carpetas compartidas dentro de las herramientas ofrecidas por las empresas a sus empleados, pero

es cierto que, generalmente, no están integradas dentro de un mismo entorno. Si logramos un entorno único de trabajo, lo que podremos conseguir es que el empleado se sienta cómodo dentro de la herramienta y maximice su tiempo en la misma y, por lo tanto, ofrezcamos las herramientas que le interesen a la empresa dentro de un mismo entorno. ¿Se han planteado que ocurriría si lográramos un entorno de interacción con el servicio de soporte de IT de la compañía a través de la intranet? ¿Y si pudiésemos ofrecer un lugar donde comentar nuevas ideas de mejora de la compañía? ¿Mejoraría la rentabilidad de los servicios internos? ¿Y el clima laboral? ¿Podríamos llegar a conocer mejor a nuestros empleados?

¿Cómo podemos afrontarlo?

Está claro que todo esto no se puede esperar únicamente desarrollando el entorno, sino que debemos plantearnos un proyecto de Gestión del cambio detallado por fases. No podemos otorgar herramientas sociales a los empleados sin explicarles su uso, orientarles y hacerles ver la buena experiencia de usuario. Tampoco debemos incluir a todos los usuarios dentro de los mismos grupos. Deberán existir grupos de afinidad y herramientas por perfiles y asegurar el correcto uso de las mismas. Pero no debemos tener miedo al cambio o a que los empleados hablen de nosotros como empresa. Por supuesto que debe haber una moderación, pero estas vías ya las utilizan en su día a día, en la máquina de café, a través de correos electrónicos o de chats de grupo. Lo que pretendemos ahora es aprovechar los cambios tecnológicos para ofrecer un entorno único de interacción que permita a la compañía sacar el máximo provecho del conocimiento y las inquietudes de sus empleados.

.BIO Miguel Sánchez Pecharromán es Project Manager en la empresa ADESIS.

56


.TECNOLOGÍA Gadgets

XY Tag

Nuevas bocinas inalámbricas de Sony

Sony actualizó su línea de bocinas portátiles inalámbricas. El equipo que abandera a esta línea es el modelo SRS-X9, que destaca por ser un equipo de alta fidelidad y gran potencia (7 altavoces con un total de 154 Watts). Igualmente elegante pero más compacto es el equipo SRS-X7, el cual mide 30 cm de largo y pesa menos de 2 kg, pero aun así entrega más de 30 Watts y su batería recargable brinda 6 horas de duración. Todavía más compacto y ligero es el modelo SRS-X5, con una potencia de 20 Watts y 8 horas de duración de batería. Todos estos equipos ofrecen conectividad por medio de BlueTooth (v. 3 en el X9 y X7, y v. 2.1 en el X5) y también tienen capacidades NFC. Adicionalmente, el X7 y X9 cuentan con conectividad via WiFi.

¿Acostumbras dejar tus llaves por todos lados? Ponles un XY tag y listo, ya no sufrirás para encontrarlas. XY es un “tracking tag”, es decir una pequeña placa que puedes poner en cosas, mascotas o incluso personas que quieras localizar. El tag se comunica con tu smartphone por medio de Bluetooth y te permite saber donde está. XY Tag tuvo gran éxito como proyecto en Kickstarter, y comenzará producción en abril para estar entregando los primeros dispositivos en junio de este año. De acuerdo con sus creadores, las prioridades al desarrollar el XY Tag han sido la seguridad y accesibilidad en términos de precio. Para la campaña en Kickstarter, había que poner un mínimo de 15 dólares para recibir un tag, pero conforme el producto se comience a fabricar en grandes cantidades esperamos que su precio baje significativamente.

SanDisk Ultra microSDXC

En el año 2004 se lanzó la primer tarjeta micro SD, con una capacidad de 128 MB. Diez años después, SanDisk nos presume su tarjeta Ultra microSDXC con 128 GB de capacidad, es decir 1,000 veces más que la original. Según nuestros cálculos, esta capacidad nos permitiría almacenar más de 16 horas de video en Full HD. Por el momento, la Ultra microSDXC solo está disponible vía Amazon.com (y BestBuy en Estados Unidos), pero se espera que para el verano ya llegue a tiendas en todo el mundo.

Wisdom, en armonía con tu hogar

Perfect Choice presenta Wisdom, una línea de bocinas fabricadas con un estilo escandinavo tradicional y acabados de madera natural que combina en armonía con la decoración del hogar contemporáneo. Gracias al gabinete de madera su sonido es claro y de alta fidelidad. Con Wisdom podrás disfrutar de la música de tu laptop, smartphone o cualquier dispositivo que tenga salida 3.5mm. Wisdom cuenta con tres tipos de bocinas para cumplir con los gustos de cada persona: Bocina Estéreo, Bocina NFC / Bluetooth® Recargable y Bocinas 2.1 + Subwoofer.

57

www.sg.com.mx |

Seguramente conoces los HEXBUG, unos insectos robóticos de juguete que en los últimos años se han hecho populares entre niños y adultos. Ahora HEXBUG nos presenta Aquabot, un pez robótico capaz de nadar y por medio de propulsión electromagnética. El Aquabot cuenta con sensores que se activan al ser sumergido en agua y activan su funcionalidad de nado y exploración. Después de un momento, el Aquabot se pone en modalidad de descanso, pero basta con dar unos ligeros golpes al tanque de agua, y sus sensores se activarán y lo pondrán a nadar de nueva cuenta.

Software Guru

HEXBUG Aquabot


.COLUMNA Invitada

Definiendo“Ciencia de Datos” S

e han realizado intentos para definir estos conceptos, en el caso de big data acostumbra mencionarse a las 3 Vs (volumen, variedad y velocidad), y en el caso de la ciencia de datos es común que se mencione que es la conjunción entre distintos campos, entre ellos matemáticas, estadística, ciencia computacional y visualización de datos. El problema es que estas definiciones son abiertas; nombran algunos ejemplos (como el volumen), pero esencialmente dejan abierta la posibilidad de llamar cualquier cosa “big data” o “ciencia de datos”. Esto no es de sorpender, ya que a fin de cuentas son términos creados con propósitos de marketing. Si alguna vez queremos llegar a una definición utilizable y deshacernos de todo el despliegue publicitario, debemos considerar una definición más precisa, inclusive cuando esto signifique hacerlo más exclusivo. Big Data • Debe involucrar cómputo distribuido en múltiples servidores. • Debe entremezclar gestión y procesamiento de datos. • Debe ir más allá de las bases de datos relacionales y data warehouses. • Debe permitir resultados que no estaban disponibles con los enfoques anteriores, o que llevarían sustancialmente mucho más tiempo (tiempo de ejecución o latencia).

Ciencia de Datos: • Debe involucrar conocimientos de uno o más dominios (por ejemplo finanzas, medicina o geología). • Debe tomar en cuenta aspectos computacionales. • Debe incluir técnicas científicas tales como la prueba de hipótesis y la validación de resultados. • Los resultados deben ser confiables. • Debería involucrar más matemáticas y estadísticas que los enfoques anteriores. • Debería incluir el aprendizaje automatizado (machine learning), inteligencia artificial o algoritmos de descubrimiento de conocimiento (knowledge discovery). • Debería implicar la visualización y creación rápida de prototipos para el desarrollo de software. • Debe satisfacer al menos uno de estos deberes en un nivel perturbador. Pero todo esto está muy leErich W. Schubert. Estudió Matemáticas y jos de una definición adecuada, Ciencias de la Computación en la Universidad de Munich. Sus intereses están en el en parte debido al gran dinamiscampo de la estructura y naturaleza de la información y el conocimiento por lo que mo que hay alrededor de estos la mayoría de sus proyectos, investigaciones y temas de docencia pertenecen a conceptos. dicha categoría.

Artículo original http://www.vitavonni.de/ blog/201401/2014012401-definition-ofdata-science.html

Hay una gran cantidad de traslape que debemos tratar de comprender. Por ejemplo, la ciencia de datos no es sólo esta-

dística porque está mucho más preocupada por cómo se estructura la información y cómo hacer el procesamiento de datos con mayor eficiencia computacional. Sin embargo, a menudo la estadística es mucho mejor para tomar en cuenta el conocimiento del dominio. En cambio, las personas procedentes del área de computación por lo general se preocupan muy poco sobre el conocimiento del dominio y la confiabilidad de sus resultados, son felices con lograr que los datos sean procesados. Por último, pero no menos importante, pocas personas estarán a favor de una definición tan acotada y estricta. Porque esto implicaría que muchos tendrían que eliminar ese título de “científico de datos” en su tarjeta de presentación - ¿y para qué morder la mano que nos alimenta? En mi caso, la mayor parte de lo que hago estrictamente no califica como “big data”. Y aunque esto no disminuya el valor de mi trabajo, sí lo hace menos comercializables. Esencialmente, esto es como un “acuerdo entre caballeros” global: explotemos estas palabras mientras podamos, y luego pasamos a las siguientes. Tal vez lo que deberíamos hacer es dejar estos términos a la gente de marketing para que los inflen hasta que exploten. En su lugar, deberíamos atenernos a los términos establecidos y mejor definidos: • Cuando hagamos estadística, llamémosla estadística. • Cuando hagamos aprendizaje no supervisado, llamémosle aprendizaje automático. • Cuando nuestro enfoque es cómputo distribuido, llamémosle cómputo distribuido. • Sigamos llamando gestión de datos a la gestión de datos. En fin, lo que sea que hagas, utiliza el término preciso. Por supuesto, en ocasiones tendremos que entrar en el juego del “buzzword bingo”, no podemos evitarlo. Pero cuando podamos, seamos más precisos. También debemos ser más cuidadosos con el uso del adjetivo “disruptivo”. Mientras lo que hagamos sea “negocios como de costumbre “, y se base en software disponible comercialmente, no va a ser disruptivo. En realidad, lo que buscan las empresas no es big data ni ciencia de datos. Lo que buscan son resultados disruptivos, lo cual requiere hacer las cosas de manera radicalmente distinta.

›› Por Erich W. Schubert

58


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.