Documentos de Académico
Documentos de Profesional
Documentos de Cultura
sg47 PDF
sg47 PDF
PAG. 30
—
CONTRATACIÓN BASADA
EN RESULTADOS
PAG. 32
—
USER EXPERIENCE DESIGN
PAG. 38
—
TUTORIAL
APPS MÓVILES CON
XAMARIN.FORMS
PAG. 14
—
NO.47 CONOCIMIENTO EN PRÁCTICA
www.sg.com.mx
MAKER ZONE
GENERACIÓN DE
MAPAS CON DRONES
PAG. 42
COMERCIO
DIGITAL TENDENCIAS Y TECNOLOGÍAS
NO.47 CONOCIMIENTO EN PRÁCTICA
www.sg.com.mx
EN PORTADA
COMERCIO DIGITAL
020
¿Sabemos qué Necesitan los Contratación Basada Tendencias en Software 007 Carrera: Guía para certificarte
Emprendedores? 010 en Resultados 032 — como Tester 053
— Tejiendo Nuestra Red 008
Seguridad y Frameworks 036 —
— Código Innovare 031
A la Defensa de los Usuarios 038 —
HERRAMIENTAS Y O EN CADA
T TECNOLOGÍAS
—
Sobre Nuestra Misión
Progamar es un
modo de vida 048 NÚMERO
como Testers 040
OpenStack 012 — Noticias y Eventos 005
— Mapas de Alta Resolución —
WebRatio 013 con Drones 042 Radar 006
—
V VOCES —
Xamarin.Forms 014 Hardware 054
—
Los Bugs del Biblioteca 056
ESTRATEGIA
E DE TI
Testing en México 041
—
F FUNDAMENTOS Más allá del Software 046
El Presupuesto de TICs 028 —
— Software
Certificados Digitales 052 Planeación Estratégica 030 Defined Networking 050
EMPRENDIENDO
010
O EDITORIAL
Renaciendo
cual fénix
La última vez que platicamos por medio de estas líneas era diciem- Es por ello que tomamos un tiempo para hacer varios ajustes en SG de for-
bre de 2014. Cinco meses después, te presentamos este nuevo número de ma que podamos seguir realizando por muchos años más nuestra misión:
SG. Lo sabemos, es mucho tiempo y te pedimos una disculpa. informar, inspirar y vincular a los profesionistas y organizaciones de TI en
Latinoamérica para impulsarlos a ser de clase mundial.
¿Qué estuvimos haciendo durante todo ese tiempo? Pues más que nada, es-
tuvimos pensando en cómo queremos que sea Software Guru, y qué necesi- En esta edición de SG notarás algunos cambios: nuevos colaboradores, sec-
tamos hacer para que eso suceda. ciones y temas, además de un ligero rediseño. Continuaremos con los ajustes
a lo largo del año, pero prometemos ya no hacerte esperar tanto.
Como sabes, SG nació hace poco más de 10 años. Durante este tiempo, tanto
la industria de medios como la de TI han sufrido grandes cambios tanto a Agradecemos tu paciencia y lealtad. Lo mejor está por venir.
nivel global como local. Es así que SG también necesita cambiar para ajustar-
se a las nuevas características de la industria y satisfacer las necesidades de Equipo Editorial
nuestra audiencia. Software Guru
DIRECTORIO SG
Dirección Editorial Pedro Galván | Dirección de Operaciones Mara Ruvalcaba
Coordinación Editorial Susana Tamayo | Arte y Diseño Oscar Sámano | Suscripciones María de Jesús Montiel
Consejo Editorial Luis Daniel Soto | Gunnar Wolf | Luis Vinicio León | Hanna Oktaba
Ariel Jatuff | Emilio Osorio | Gloria Quintanilla | Jorge Valdés
COLABORADORES
Andrés Bianciotto, Celeste North, Miguel Ángel Barajas, Alder López, Arturo Téllez, Héctor Santillán, Gabriela Campos, Guilherme Siqueira Simoes, Humberto Cervantes,
Misael León, Pilar Barrio, Carlos González, Quauhtli Martínez, Víctor Hernández, Carlos Perea, Héctor Uriel Pérez, Ismael Villegas, Armando Márquez
Ventas Claudia Perea | Ventas y Delivery Yoloxochitl Juárez | Marketing y Alianzas Fernando Hernández | SGCampus Vanessa Amaya y Ariel García
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 licen-
ciados 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.
004
NOTICIAS O
Noticias
HACKMTY 2
Software Guru organizó la edición 2015 del Mobile Day (enfocado en el desarrollo de apli-
caciones móviles empresariales) el pasado 19 de marzo en Ciudad de México. Este es su
segundo año y contó con más de 300 asistentes interesados en construir mejores apps. A
lo largo del día, los participantes aprendieron sobre mejores prácticas de UX design, estra-
tegias de testing para lidiar con la gran variedad de dispositivos, criterios para desarrollar
apps nativas o híbridas, low-code mobile platforms, gamification, y la plataforma Twitter
Fabric, entre otros temas. Agradecemos a los participantes y nos vemos en 2016.
El pasado 28 de marzo se celebró el Global Arduino Un año más, y otra edición del SXSW Interactive. El festival más importante de medios
Day con eventos en distintas ciudades del mundo. interactivos se realizó del 13 al 17 de marzo en Austin, Texas reuniendo a más de 30 mil
América Latina tuvo una participación nutrida con la participantes. México tuvo participación a través del panel “Navigating the Entrepreneurial
realización de más de 70 eventos. Tan solo en Brasil Ecosystem in Mexico”, así como un pabellón en la expo con la presencia de varias empre-
se realizaron más de 30, y en México 9. Ciudad de sas nacionales (entre ellas SG). En cuanto a las novedades y tendencias, previo al evento
México fue una de las sedes con mayor participa- el tema que se esperaba que dominara las conversaciones era el de Internet de las Cosas,
ción realizando un evento en el Centro de Cultura apareciendo en al menos 70 sesiones (de un total de mil 250 sesiones que se realizan a
Digital con conferencias y exhibición de proyectos. lo largo del festival). Y efectivamente IoT fue un tema importante, pero lo que en realidad
Adicionalmente se contó con un programa de talle- dominó las conversaciones en SXSW 2015 fue Meerkat, la app para hacer live streaming
res prácticos realizados a lo largo de una semana en que había sido lanzada apenas un par de semanas antes, y durante SXSW captó cerca de
los maker spaces de Hacedores y 330 ohms. 100 mil usuarios nuevos. Así que la noticia es que SXSW todavía puede funcionar como
Imagen cortesía de hacedores.com detonador de apps y startups.
SG.COM.MX 005
O RADAR
Cada uno de estos servicios tiene sus pros y contras. Por ejemplo, el servicio de Amazon Por su parte, Visual Studio 2015 (la versión “tradi-
es bastante sencillo de usar pero es muy limitado en cuanto a sus capacidades. En cambio, cional”) también ya está disponible como Release
Watson Analytics y Azure Machine Learning son mucho más poderosos pero involucran Candidate. Entre sus nuevas capacidades podemos
una mayor curva de aprendizaje. Esperamos próximamente poder preparar un comparativo encontrar mejoras al emulador Android, herramien-
entre estos servicios y compartirlo en estas páginas. tas para Docker, y soporte para Apache Cordova.
AngularJS es un framework Javascript para el desarrollo de apps web creado por Google
que ha cobrado gran popularidad. En octubre de 2014 el equipo de Angular anunció planes
para lanzar una versión 2.0 con grandes mejoras, pero que no sería retrocompatible con la
rama 1.x. Como era de esperarse, la mayoría de los desarrolladores pusieron el grito en el
cielo. Así que durante su conferencia, Angular (ng-conf) en marzo de este año, se dieron a
JAVA 7 LLEGA AL 3 conocer los planes actualizados...
FINAL DE LA LÍNEA
La rama 1.x se mantendrá, y estará hospedada en http://angularjs.org mientras que
Angular 2.0, actualmente en versión alfa, será hospedado en http://angular.io. El plan es
monitorear el tráfico a ambos sitios, así como la actividad en los repositorios de GitHub,
En esta ocasión no les hablamos de algo que viene, para conocer el nivel de interés en cada rama y determinar hasta cuándo seguir mante-
sino de algo que se va. En abril de 2015 Oracle cesó niendo la rama 1.x, así como investigar posibles estrategias de migración de 1.x a 2.
la disponibilidad pública de parches y actualizacio-
nes para Java 7 incitando a los usuarios a migrar a Angular 2.0 está principalmente enfocado al desarrollo de aplicaciones móviles, incorpora
Java 8 o comprar un plan comercial de soporte de un mecanismo mejorado de dependency injection que soporta child injectors, aprovecha
largo plazo para seguir recibiendo actualizaciones y las capacidades de los navegadores más modernos y el código es más esbelto y con mejor
parches para la máquina virtual de Java 7. Entonces, desempeño que el de la rama 1.x. Así que a futuro, es mejor opción que 1.x.
si tienes aplicaciones en producción que utilizan la
JVM de Oracle para Java 7, ve revisando cuál va a En resumen, si tienes aplicaciones hechas con Angular 1.x, puedes estar tranquilo por aho-
ser tu estrategia ya sea para migrarla, comprar so- ra, pero mantente al tanto de recomendaciones para posibles estrategias de migración a
porte comercial o utilizar otra máquina virtual que 2.0. Por otro lado, si apenas estás entrándole a Angular, vale la pena que mejor enfoques
mantenga soporte. tus esfuerzos a Angular 2.0.
006 SG.47
TENDENCIAS EN SOFTWARE C
El mercado de “Software empresarial” es enorme, se o uno especializado para administrar Wi-Fi sólo por unas horas,
estima en $317 billones de dólares anuales y tiene el ma- usarlo en la nube y luego apagarlo permanentemente. Es posi-
yor crecimiento porcentual en inversión en Tecnologías ble adquirir un servidor de análisis de datos por mes, ya que la
de Información [1]. La transformación del modelo “tradi- mayoría de proyectos tienen duraciones menores a tres meses
cional” al software como servicio (SaaS) ha cambiado los y no justifican la compra anual ni “mantenimiento” del mismo.
requerimientos, el modelo de negocio y la forma en que la Este marketplace cuenta ya con más de 2 mil productos, con la
casa de software empaquetado vende y se mercadea. ventaja para el cliente de que hay un único punto de contacto
y atención, y una cuenta de servicios consolidada. Se facilita la
No obstante, el cambio al SaaS ha sido mucho más lento evaluación de software como nunca antes.
que lo anticipado. La infraestructura como servicio abrió las Luis Daniel Soto (@luis-
puertas al software tradicional para operar en la nube, y en Para los vendedores también hay ventajas clave: vender alre- dans / @luisdanielsoto)
los meses más recientes dicha migración continúa acelerán- dedor del mundo, a grandes compradores y recibir el pago en trabaja en Amazon Web
dose. Aún así, la nube pública, incluyendo a Google, Amazon Estados Unidos mediante la plataforma de comercio electróni- Services, enfocado en el
y Microsoft tiene menos del 15% de la base instalada total de co global, hacerse visible a más de un millón de clientes existen- desarrollo global de ne-
servidores a nivel mundial. tes, eliminar los problemas de la distribución física del software. gocios para Big Data e
¿El fin del canal? Inteligencia de negocios.
IDC anticipa que para el año 2018 el 50% de las cargas de Algunas empresas de software han invertido 5-10 años en crear sotols@amazon.com
trabajo de software operarán en la nube pública [2]. ¿Cómo una muy amplia red de canales. La nueva realidad es distinta: El
es esto posible? internet llega a los usuarios de negocio y estos van a poder ac-
Mercados de software empresarial ceder el software empresarial de la misma forma que funciona
Enfoquémonos en el software tradicional. Hoy el adquirir cualquier “app store” y en muchas ocasiones con nulo o muy
software empresarial no es simple: poco soporte del departamento de sistemas. Los canales van a
El “licenciamiento” es complejo, requiere de contratos y tener que enfocarse 100 por ciento en servicios de valor agrega-
acuerdos legales con muchos proveedores. Agregar o re- do, el licenciamiento del producto gradualmente desaparecerá,
ducir servicios sólo puede suceder en ciertos periodos y de ya que el software será cada vez más un “producto básico”. La
forma limitada. Establecer una relación comercial y formas magia del software continuará, pero las reglas van a cambiar.
de pago con muchos vendedores es laborioso y difícil de ad-
ministrar. En algunas ocasiones el software especializado no Desde febrero de este año, estoy dedicado a la nueva misión
tiene distribuidores locales. de simplificar el acceso al software.
SG.COM.MX 007
C TEJIENDO NUESTRA RED
En la columna anterior les platiqué sobre el concepto de la forma de trabajar y la vista operacional con el trabajo mismo.
las alfas de Esencia y su posible uso. Mientras se publicaba A raíz de esta observación, los colaboradores de Jacobson nos
la revista, me enteré de que en noviembre del año pasado el propusieron incorporar KUALI-BEH como extensión de los alfas
estándar ESSENCE de OMG superó la prueba como beta 2 de Way of Working y Work, lo que quedó documentado como
y, finalmente, fue publicado en su versión 1.0 [1] con KUALI- Apéndice B (normativo) del estándar.
BEH incluido. En la sección 6 del documento se pueden apre-
ciar los reconocimientos para la UNAM y todas las organi- En esta ocasión les quiero presentar cómo la vista estática
La Dra. Hanna Oktaba es zaciones y personas que nos han apoyado en esta aventura. de KUALI-BEH quedó expresada como sub-alfas de Way of
profesora de la UNAM y Working llamadas Autoría de Práctica (Practice Authoring)
su objetivo principal es La historia de cómo se gestaba KUALI-BEH y como se “casó” y Autoría de Método (Method Authoring).
generar conocimiento a con ESSENCE la pueden encontrar en mis columnas de los Autoría de práctica
través de la creación y años entre 2012 y 2014. En esta ocasión les explicaré cual es Es una guía definida de trabajo, con un objetivo específico,
promoción de estándares. el resultado final de la integración de KUALI-BEH a la Esencia. que asesora en la manera de producir un resultado a partir
@hannaoktaba de una entrada. La guía proporciona un conjunto sistemático
KUALI-BEH (buen camino) es una propuesta de conceptos y repetitivo de actividades enfocadas en el logro del objeti-
comunes para los proyectos de desarrollo de software, que vo de la práctica y del resultado. Se definen los criterios de
permiten expresar los métodos y prácticas de las organi- terminación, asociados al resultado, para determinar si fue
zaciones, así como su ejecución durante los proyectos. Se logrado el objetivo. Se requieren competencias particula-
compone de dos vistas (Ver figura 1): estática y operacional. res para realizar las actividades de la guía, opcionalmente
apoyadas por el uso de herramientas. Se pueden asociar las
La vista estática permite a los ingenieros de software expre- medidas seleccionadas para evaluar el desempeño y el logro
sar sus formas de trabajar como métodos compuestos por de los objetivos de la práctica. Las medidas se estiman y se
prácticas, los cuales se resguardan como infraestructura del recogen las mediciones durante la ejecución de la práctica.
conocimiento de la organización.
La Autoría de Práctica proporciona un marco para que los
La vista operacional se relaciona con la realización dinámica practicantes definan sus diferentes formas de trabajar. La do-
de proyectos. Proporciona a los equipos los mecanismos para cumentación de la especificación [1], en su anexo B dedicado
ejecutar los métodos adaptando sus prácticas al contexto es- a KUALI-BEH contiene una plantilla para definir prácticas.
pecífico del proyecto y a las necesidades de los involucrados.
La figura 2 muestra los estados por los que pasa la autoría
Entonces ¿cómo se integró KUALI-BEH a la Esencia? En la en- de práctica: Identificada, Expresada, Acordada, En Uso, En
trega anterior de esta columna en SG 46 expliqué qué son los Optimización y Consolidada.
alfas, el concepto básico de la propuesta de Ivar Jacobson y sus
colegas. En particular, el área del Esfuerzo/Proyecto tiene tres Su uso es recomendado para las organizaciones que no tienen
alfas: Equipo (Team), Forma de Trabajar (Way of Working) y documentadas las formas de trabajar. Sobre todo, se sugiere
Trabajo (Work). Al analizar estas alfas nos dimos cuenta de que que las pequeñas organizaciones intenten ponerse de acuerdo
la vista estática de KUALI-BEH tiene que ver con la definición de y expresar sus formas de trabajar tácitas, empezando por lo
008 SG.47
TEJIENDO NUESTRA RED C
Figura 2. Los estados de Practice Authoring sub-alfa. Figura 3. Los estados de Method Authoring sub-alfa.
que les parezca más importante, para que em- prácticas y métodos hay dos puntos que consi- suficientes para lograrlo (completo) y no
piecen a acumular conocimiento explícito com- dero son novedosos: generar desperdicios en actividades o pro-
partido por la organización. Cuando tengan defi- ductos innecesarios (consistente).
nidas varias prácticas interrelacionadas pueden 1. Proponemos definición de prácticas y
componerlas en un método. métodos (antes llamados procesos) de Conclusión
manera de “abajo hacia arriba” (bottom Este es el primer acercamiento a lo que propo-
Autoría de método – up), a partir de las formas tácitas de ne KUALI-BEH como parte del nuevo estándar
Un método es una articulación de un conjunto trabajar, que cada organización tiene. Es de OMG Esencia. A los interesados les reco-
coherente, consistente y completo de las prác- decir, primero las prácticas individuales y miendo revisar el Apéndice B para tener mayor
ticas, con un propósito específico, con el fin de luego su composición en métodos. Que detalle. Con gusto recibo sus comentarios en
cumplir con las necesidades de los involucrados luego se pueden ir mejorando en función @hannaoktaba
en condiciones específicas. de los acuerdos y necesidades de la pro-
pia organización.
La sub-alfa de Autoría de Método pasa por —
los siguientes estados: Identificado, Integrado, 2. El método bien formado (léase proceso) Referencias
Bien Formado, En Uso, En Optimización y no es un conjunto de prácticas cualquie- [1] ESSENCE: Kernel and Language for Software Engineer-
Consolidado, que se ilustran en la figura 3. ra, las prácticas tienen que aportar algo ing Methods 1.0. http://www.omg.org/spec/Essence/1.0
En nuestra propuesta para la autoría de las al propósito del método (coherente), ser
SG.COM.MX 009
I EMPRENDIENDO
Nota del editor: Este artículo fue originalmente escrito en enero 2015 y por lo tanto se enfoca en “el inicio de año”. Por cuestiones ajenas al autor el artículo se está
publicando en mayo, pero se mantiene igual de relevante.
Mientras estás leyendo esta nota, el precio TechCrunch (tcrn.ch/1FS7Y1O), o la adquisición sino que —aunque es mejor que la muerte—
del petróleo nos juega una mala pasada, anuncian de Aventones por BlaBlaCar. tampoco están en el sustrato correcto para la
otro recorte en Pemex y quizás el tercer recorte etapa de vida de la empresa, retrasando su cre-
federal. Te preguntas ¿en qué mes fue el “Mexican Por supuesto que estamos lejos de las va- cimiento por falta de opciones.
Moment”? y ¿por qué parece tan lejano? Aún se luaciones “billonarias” de los Uber, Alibaba y
escucha el eco de los grandes anuncios sobre Facebook del mundo, pero que eso no nos opa- Un candidato más que saludable para tomar
reformas y todavía nos agobia el vacío que que la perspectiva: tenemos un nivel más que una posición fuerte en ese segmento es el mar
dejan miles de líneas borradas en archivos de saludable de energía emprendedora que debe- de family offices que floreció en México a partir
Excel, como un pequeño hipo en la pantalla, mos encauzar y favorecer para establecer éxi- de la diáspora de empresarios medianos que
mientras se ajustan las previsiones de creci- tos, repetirlos, exportarlos e inspirar a nuevas salieron del país y establecieron una adminis-
miento en grandes despachos. generaciones a seguir este camino. tración profesional para sus activos. Una vez
dado ese paso, y más allá de alguna cuestión
Muchos ensayan esas frases trilladas que son Hoy la “capa” de incubadoras y aceleradoras sentimental sobre la empresa familiar, las inver-
mitad resignación, mitad refugio. Que así so- en México está bien poblada, aunque nunca siones se evalúan según su mérito propio y pro-
mos, que “puespaquésiyaves”, etc. Otros sim- sobran. Y cualquier proyecto que facture unos yectos atractivos pueden ser buen destino de
plemente se levantan y comienzan otro día de cuantos millones por año y tenga un camino capitales que en otra época irían directo a bie-
mucho trabajo, paga insuficiente y pocas pro- claro de crecimiento puede conseguir capital nes raíces (y algunos aún lo hacen por defecto).
babilidades de éxito. Como ayer, como mañana. mexicano o extranjero sin mucho peregrinar.
Ya tuvimos muchos “años de”, ya vivimos el
Los emprendedores mexicanos, por necedad o Hay un vacío entre esos dos pasos, que es el año del emprendimiento, el de las incubadoras,
virtud, llevan años librando batallas que harían desafío actual: una vez que se monta la startup el de los eventos, el de las apps. Ya conocemos
renunciar a Sísifo. Con un sistema financiero au- y se valida el producto durante unos 6 meses las estadísticas que indican que son las PyMEs
sente, capital “de riesgo” conservador hasta el de incubación, ¿quién pone 150 mil - 200 mil y emprendimientos quienes emplean al grueso
paroxismo, educación de otro siglo, burocracia dólares para financiar el primer año “serio” de de la población activa. Ya descubrimos que ig-
Kafkiana y ni empecemos a hablar de las políticas operación de la empresa, hasta que la factura- norándolos no desaparecen.
federales “pro-emprendimiento”, estos Quijotes ción logre cubrir los gastos?
me hacen parafrasear aquella declaración de Comencemos a mirar seriamente a la materia
Jurassic Park: “entrepreneurship finds a way”. Tenemos un grupo de emprendimientos que prima que alimenta y se desdobla en todo lo
pasan por más de una incubadora en sus ini- otro: el loco solitario que un día se pone de pie y
Como contrapartida, ese medio ácido no impide cios, en una suerte de respirador artificial mien- dice: “voy a mover esa piedra”. Es hora de que le
que cada tanto escuchemos de grandes opera- tras reúnen fuerzas para dar el salto a la reali- preguntemos qué necesita. Es tiempo de hacer-
ciones, como la venta de SinDelantal.mx a Just dad. No sólo están absorbiendo recursos que se le la vida fácil, porque pocas veces tanto futuro
Eat, por más de 20 millones de dólares según utilizarían mejor generando nuevas empresas, depende de tan módica locura.
Andrés Bianciotto (@andresb) fundó Next.LA, un servicio de hosting especializado en medios digitales y dirige Founder Institute en México, una incubadora de startups con presencia en
más de 100 ciudades del mundo. andres@next.la
010 SG.47
T INFRAESTRUCTURA
Figura 1.
Arquitectura
de OpenStack
Sin duda el cómputo en la nube está cambian- grandes conceptos: cómputo, almacenamiento información en una base de datos compartida.
do la forma en la que consumimos recursos de y red, que a su vez son soportados por varios La comunicación entre programas se realiza tí-
cómputo. Nos estamos acostumbrando a consu- servicios compartidos. picamente por medio de APIs y es “stateless”.
mir todo “como servicio”.
Al momento de editar este artículo, está por libe- La comunicación directa con el hardware o soft-
Una de las formas más básicas de consumir rarse la versión Kilo de OpenStack (abril 2015), ware a controlar se hace mediante agentes y/o
recursos como servicio es el denominado que incluye los siguientes proyectos: plug-ins específicos del fabricante.
Infrastructure as a Service (IaaS) donde bási- • Gestión de recursos de cómputo (Nova).
camente rentamos una máquina virtual conec- • Almacenamiento de objetos (Swift). Distribuciones de OpenStack
tada a la red y pagamos por el uso de proce- • Almacenamiento de bloques (Cinder). OpenStack sufre del mismo “problema” que
samiento, almacenamiento y transferencia de • Manejo de imágenes (Glance). GNU/Linux en cuanto a que la configura-
datos. Empresas como Amazon, Microsoft, • Aprovisionamiento de base de datos como ción, empaquetado e instalación manual es
HP e IBM ofrecen este servicio. Sin embargo, servicio (Trove). un compleja. Por ello, al igual que GNU/Linux
también existen productos y proyectos para • Manejo de redes y direcciones IP (Neutron). Openstack se distribuye de una manera em-
que las empresas puedan crear su propia nube. • Gestión de identidad y SSO (Keystone). paquetada. Es así que los “sospechosos co-
Dentro de estos proyectos, el que más destaca • Panel de control (Horizon). munes” son los que han creado distribuciones
es OpenStack, una plataforma para construir • Orquestación de servicios (Heat). los cuales dan soporte y mantenimiento así
nubes altamente escalables. • Telemetría para monitorear el uso de servi- como compatibilidad con sus propias distribu-
cios (Ceilometer). ciones de GNU/Linux, una lista no extensiva
Openstack (http://openstack.org) es un sistema • Aprovisionamiento de clusters Map- de estas distribuciones de OpenStack son:
operativo de cómputo en la nube que controla Reduce para Hadoop y Spark (Sahara). RDO de RedHat, SUSE Cloud de SUSE, Ubuntu
grupos de recursos de cómputo, almacenamien- • Aprovisionamiento en “bare metal” (Ironic). OpenStack, Mirantis.
to y redes. Se administra por medio de un panel • Mensajería entre aplicaciones (Zaqar).
de control (dashboard) y permite que los mismos • Sistema de archivos compartido (Manila). También está Devstack, que es un “shellscript”
usuarios puedan aprovisionar recursos a través • DNS como servicio (Designate). que nos permite hacer un despliegue automatiza-
de una interfaz web. OpenStack es software libre • Gestión de llaves secretas (Barbican). do de OpenStack en una sola máquina virtual para
(licencia Apache 2.0) y se construye de forma propósitos de pruebas. Es una excelente forma de
abierta y colaborativa. Es muy rico en caracterís- Arquitectura jugar un poco con la plataforma y entender un
ticas y altamente configurable, por lo que permite La figura 1 muestra un diagrama con un ejemplo poco más como funciona OpenStack.
crear soluciones para todo tipo de nubes. Puede de arquitectura común de OpenStack, donde se
controlar múltiples hipervisores y manejadores de muestran los principales servicios y cómo inte- Conclusión
virtualización, además de ser compatible con una ractúan entre sí. OpenStack es una excelente opción para aque-
gran variedad de hardware y software, lo cual nos llas empresas que desean establecer su propia
ayuda a mitigar casos de “vendor lock-in”. Aunque a primer vista se ve complicada, en infraestructura de cómputo como servicio. Al ser
realidad no lo es tanto si nos abstraemos al ni- una plataforma abierta, ayuda a las empresas a
Proyectos de OpenStack vel de los distintos servicios (compute, stora- evitar el evitar el vendor lock-in, reducir costos y
OpenStack está organizado en torno a 3 ge, network, etc). Los programas mantienen su tener mayor control sobre su futuro tecnológico.
Miguel Ángel Barajas (@gnuowned) es un Arquitecto Senior de Soluciones especializado en cómputo en la nube. Actualmente colabora con Cisco Systems atendiendo clientes en la
región de Latinoamérica.
012 SG.47
CONTENIDO PATROCINADO
WebRatio Platform
DESTÁCATE EN LA ERA DE LOS NEGOCIOS DIGITALES
Singularidad y velocidad
La revolución digital que vivimos permite a las empresas ofrecer productos
y servicios únicos, revolucionando el mercado y respondiendo a las necesi-
dades de los clientes de forma fácil y rápida. Para satisfacer las exigencias
de los mercados dinámicos que demandan velocidad y agilidad, las organi-
zaciones de TI deben ver más allá de los métodos de desarrollo tradicional.
El código generado por las aplicaciones web es 100% Java. El front-end de Contáctanos
las aplicaciones se vuelve responsivo y dinámico gracias al uso de HTML5, Estados Unidos: +1 612 638 2762
CSS3 y Javascript. Para el back-end se utiliza Java, Spring y Hibernate, Latinoamérica (Ecuador): +593 7 4103 792
también se integra con todas las bases de datos, sistemas gerenciales y
otros que ya existan en la empresa. Estaremos presentes en SG CONFERENCE & EXPO 2015, ¡ven a conocernos!
SG.COM.MX 013
T TUTORIAL
Xamarin es una plataforma para desarrollar podemos reutilizar el código en un 75-85% según Lo que muestra la figura 1 es que tenemos un
aplicaciones para plataformas iOS, Android, fuentes oficiales. Esto no quiere decir que no ten- proyecto o librería compartida que contiene
Windows Phone, Windows Store y Mac usando gamos que saber detalles de cada plataforma, de los componentes de las capas de negocio, ser-
el lenguaje de programación C#. Cabe aclarar hecho lo mejor es conocer al menos conceptos vicios y datos. Por otro lado, tenemos distin-
que en este artículo sólo trataremos el desarrollo básicos del manejo de recursos, configuraciones, tas aplicaciones para cada tipo de cliente, que
de Android e iOS por ser las plataformas de ter- etcétera, ya que al final el proceso es como si es- utilizan las librerías y componentes nativos de
ceros. Para Windows Phone o Windows Store, si tuviéramos desarrollando una aplicación nativa la User Interface de cada plataforma. Las apli-
somos desarrolladores de .NET no se nos com- respectivamente, pues se genera una .APK para caciones cliente acceden al código compartido
plica en lo absoluto, es muy parecido a lo que ya Android y un .IPA para iOS; y se le debe dar el para interactuar con las capas de negocio, ser-
sabemos desarrollar, sólo que con diferentes es- tratamiento normal a cada una para probar en vicios y datos.
tándares de desarrollo de la UI (User Interface). dispositivos o emuladores para posteriormen-
Es importante mencionar que Xamarin dispone te publicar. Otro punto importante es que para Para desarrollar las aplicaciones nativas
de una versión para estudiantes, con la que se Android por ejemplo, si tenemos algunos com- para cada plataforma, Xamarin ofrece dos
puede compilar y probar las aplicaciones utili- ponentes en java podemos utilizarlo por medio estrategias:
zando Xamarin Studio. Adicionalmente se anun- de lo que llamamos Java Integration, para hacer • La primera es crear aplicaciones específicas
ció hace algunos meses la firma de colaboración un Java Bindings Library (una clase wrapper del para cada plataforma por ejemplo utilizando
entre Xamarin y Microsoft, que además de tener tipo en java) para hacer referencia desde C# hacia Xamarin.iOS y Xamarin.Android, dependien-
un equipo de trabajo dedicado a optimizar y ex- los archivos .jar; así como también un Java Native do del caso. Esto permite aprovechar los ele-
plotar mejor los recursos de las diferentes pla- Interface (JNI) que permite realizar llamadas a mentos de UI específicos de cada plataforma y
taformas, se tendrá disponible desde la versión código java corriendo en la JVM (Java Virtual construir así interfaces de usuario avanzadas y
Visual Studio Community 2015 la Free Xamarin Machine) desde aplicaciones no escritas en java, personalizadas para cada una.
Starter Edition for Visual Studio Users, es decir, por lo cual Xamarin.Android utiliza JNI para crear • La segunda estrategia es Xamarin.Forms.
podremos compilar, ejecutar y probar las apli- sus bindings en el codigo C#. Una serie de componentes que permite de-
caciones para Android e iOS, por lo que si ha- finir interfaces de usuario para distintas pla-
bía duda de qué tan fuerte está Xamarin en el Por ejemplo para Android, al construir el pro- taformas desde una misma base de código.
mercado, con los recientes anuncios por parte yecto nos generará el archivo .APK, el cual po- Xamarin.Forms está orientado a construir
de ambas compañías vemos una seria consoli- dremos ejecutar en un emulador, en un disposi- aplicaciones con interfaces de usuario senci-
dación en el mundo de desarrollo de aplicacio- tivo o incluso en la tienda de google realizando llas, donde es más importante la capacidad de
nes multiplataforma y se despeja la interrogante. el proceso tradicional. compartir código que el brindar interfaces de
usuario avanzadas y personalizadas para cada
Xamarin nos da la posibilidad de tener una base La figura 2 ilustra la arquitectura típica de una plataforma, sin embargo, existe la posibilidad
de código compartido que contiene entidades de aplicación Xamarin. de hacer la personalización de los compo-
negocio, lógica de negocio, acceso a servicios, et- nentes a cada plataforma heredando nuestro
cétera, y simplemente tener código distinto para componente básico de Xamarin.Forms a uno
los detalles de interfaz de usuario para la capa de que se implementara en el proyecto de iOS y
cliente en cada plataforma. Básicamente es como Android , y ahi podemos usar instrucciones tí-
desarrollar al mismo tiempo para todas las plata- picas (equivalentes en .NET) de Objective-C y
formas, por lo que minimizamos tiempos de de- Java respectivamente.
sarrollo. Por ejemplo, tradicionalmente tenemos
que desarrollar la aplicación en Java para Android Primera aplicación Xamarin.Forms
y en Objective-C para iOS la misma funcionali- A continuación mostraremos cómo se construye
dad, lo cual es tedioso y repetitivo, con Xamarin Figura 1. Arquitectura de aplicación Xamarin. una aplicación con Xamarin.Forms. Por ahora solo
Alder López es ingeniero de software e investigador en la empresa Advanced Technology Research. Se especializa en el desarrollo de aplicaciones móviles.
https://mx.linkedin.com/in/alder1sismty
014 SG.47
TUTORIAL T
crearemos para iOS y Android como se mencionó plataforma utilizando la directriz #ifdef. Por
antes. Haremos esto en Visual Studio. ejemplo, un bloque con #ifdef __ANDROID__
1. Visual Studio –> Nuevo Proyecto. solo se ejecutará en plataforma Android.
2. Seleccionamos aplicación en blanco de
tipo Xamarin.Forms.Portable.
3. En el nombre de la solución, escribi-
mos “SG”.
Listado 2. MainActivity.css
En el proyecto SG tendremos el programa App. Si quisiéramos hacer una forma de captura, por
cs cuyo código base se muestra en el listado 1. ejemplo un login con usuario/contraseña, inclui-
ríamos un código similar al del listado 4 en nues-
El listado 2 muestra el el código del tro proyecto portable, sin necesidad de tener que
MainActivity.cs en el proyecto de Android, y mover un dedo sobre el código de iOS y Android. Listado 5. Consultar plataforma.
el listado 3 muestra AppDelegate.cs para el La figura 3 muestra cómo se despliega esta for-
proyecto iOS. Notemos que en los proyectos ma tanto en iOS como en Android. Nótese que Una tercera forma es utilizar inyección de de-
SG.Droid y SG.iOS se tiene la instrucción: en cada caso se aplica automáticamente el estilo pendencias. La forma de lograr esto es que en
default de la plataforma correspondiente. el proyecto portable definimos las interfaces
Xamarin.Forms.Forms.Init(this, bundle); de nuestras clases, y éstas se implementarán
Inyección de dependencia en cada plataforma (iOS y Android para nues-
Este código inicializa los componentes necesa- Incluso en el proyecto Portable podemos espe- tro caso), utilizando DependencyService de
rios para que todo esto funcione. cificar un comportamiento diferente para cada Xamarin para instanciar las implementaciones
SG.COM.MX 015
T TUTORIAL
o si se requiere algo mucho más robusto po- public class CustomEntry: Entry { }
demos utilizar Unity , TinyIOC, Autofac entre
otras que se pueden obtener desde Nuget. Posteriormente, implementamos
la personalización de dicho control
Las principales clases candidatas a ser imple- Listado 7. Implementación para Android en Android e iOS. El listado 9 tiene
mentadas por medio de inyección de dependen- la personalización para Android, y
cias son las que utilizarán recursos propiamente el 10 para iOS.
de la plataforma como: acceder a la ruta de la
aplicación en el dispositivo móvil para almacenar Analizando el código, podemos
un archivo, acceso a los recursos de redes, pre- darnos cuenta que existen di-
ferencias, creación y acceso a una base de datos ferencias irreconciliables entre
de SQLite, preferencias de la aplicación en el dis- plataformas por la forma en que
positivo, personalizar un control como un botón, procesan sus datos y la arquitec-
un grid, procesamiento de una imagen, etcétera. tura, por lo que es necesario que
en funcionalidades como estas
DependencyService es el medio por el cual po- desarrollemos el código específi-
demos resolver las interfaces cuya implementa- co para la plataforma.
ción se encuentra en cada plataforma. Al utilizar:
Estilos
[assembly:Dependency(typeof( Clase))] Podemos definir estilos que de-
terminen los aspectos visuales de
estamos indicando a .Net que esa clase podrá re- nuestra interfaz de usuario tales
solverse mediante DependencyService tomando como colores, tipografías, tama-
la implementación en la plataforma en ejecución. ños, etcétera; de tal manera que
no estemos redefiniendo dichos
A continuación mostraré un ejemplo para reali- estilos en cada pantalla. Para lo
zar la funcionalidad de localización de recursos cual creamos una clase donde
para soportar multilenguaje. Listado 8. Implementación para iOS definimos los estilos y de ahí los
vamos colocando según se requiera.
Primero, en el proyecto portable declaramos un Teniendo estas implementaciones, basta con po-
interfaz llamado ILocalizeService. El listado 6 ner desde nuestro código portable algo como: El listado 11 muestra el código de un programa
muestra el código. AppStyles.cs que define un estilo para objetos
var language = DependencyService.Get<ILocale>(). Label. Este código es independiente de la pla-
GetCurrent(); taforma así que sólo se fija una vez en nuestro
proyecto portable.
Personalización de controles
Otro tema muy importante en Xamarin.Form Entonces cuando creamos un objeto Label, pode-
es que es posible personalizar los controles mos establecer su estilo de la siguiente forma:
UI específicos para cada plataforma utilizando
Custom Renderers. Esto se realiza mediante la var nameLabel = new Label () {
Listado 6. Definición de interfaz. directriz ExportRenderer. A continuación vere- Text = “Name”,
mos un ejemplo donde personalizamos un con- Style = AppStyles.LabelStyle
Lo siguiente es codificar la implementación trol para cada plataforma. };
puntual de esta funcionalidad en cada plata-
forma. El listado 7 contiene la implementación En nuestro proyecto portable definimos un
para Android, y el listado 8 para iOS. CustomEntry de la siguiente forma:
016 SG.47
Listado 9. CustomEntryRenderer en Android.
Conclusión
En este artículo hemos visto cómo por medio de Xamarin.Forms podemos construir aplicacio-
nes móviles que reutilicen elementos de código común para generar aplicaciones nativas para
cada plataforma, y también hemos visto algunas formas en que podemos ajustar el comporta-
miento y estilo de cada plataforma.
El código generado durante este tutorial está disponible como un repositorio en:
https://github.com/pacificIT/SG.Xamarin
COMERCIO
DIGITAL
HACE MÁS DE 15 AÑOS QUE SE REALIZA COMERCIO POR MEDIO DE INTERNET, ASÍ
QUE DISTA DE SER UNA NOVEDAD. SIN EMBARGO, DESPUÉS DE MÁS DE DÉCADA Y
MEDIA DE EVOLUCIÓN, HAY ALGO EN EL ÁMBITO DEL COMERCIO DIGITAL QUE LE
ESTÁ DANDO UN NUEVO AUGE. MÁS AÚN, POR PRIMERA VEZ EN LATINOAMÉRICA
LO ESTAMOS ATESTIGUANDO COMO ALGO VIABLE Y DISPONIBLE LOCALMENTE.
COMENCEMOS (Y COMERCIEMOS)...
018 SG.47
SG.COM.MX 019
EL SUPERMERCADO
DIGITAL
Por Pedro Galván
Cada vez más, los comercios están introduciendo tienen capacidad de compra. Estos consumido-
modelos de e-commerce que facilitan a los consu- res tienen un gran entusiasmo por la tecnología
midores a comprar en línea los productos que les y para ellos comprar vía internet es natural. Por
interesan. Por ejemplo, en 2011, Tesco (Homeplus) ejemplo, 30% de los millenials (edades de 21
introdujo el primer supermercado virtual en una a 34 años) y 28% de la generación Z (15 a 20
estación del metro de Seúl en Corea del Sur (ver años) ya hacen algunas compras de despensa
figura 1). El supermercado consistía en letreros por internet. La figura 1 muestra mayor detalle.
(pósters) en la pared con imágenes de productos
que el usuario seleccionaba con una app y al hacer ¿Qué está pasando localmente?
“check-out” se enviaban ese mismo día a su casa. En México, aunque son todavía pocas las empre-
De esta manera, los usuarios aprovechaban su Figura 1. Supermercado virtual en Seúl. sas que venden artículos de despensa en línea
tiempo mientras esperaban a que llegara el metro. con entrega a domicilio, sí las hay y se espera que
la oferta aumente considerablemente durante
Los compradores están puestos ya están activas en línea, y por lo tanto no es re- los próximos años. Por un lado están las grandes
The Nielsen Company recientemente realizó una presentativo de la población en general. Aun así, tiendas de supermercados como Superama que
encuesta en la que participaron más de 30 mil el estudio sin duda nos permite ver hacia donde lo ofrecen desde hace varios años, pero también
personas en 60 países para entender el impacto van las cosas. han surgido startups para productos de espe-
que la tecnología digital tendrá en el escenario cialidad, o difíciles de conseguir. Un ejemplo es
de grocery shopping (“comprar la despensa”) del 13% de los participantes indicaron realizar compras My Coffee Box, un servicio de suscripción online
futuro. El reporte “The Future of Grocery” [1] ge- en alguna tienda virtual con entrega a domicilio, que te envía cada mes a domicilio una dotación
nerado a partir de los resultados de la encuesta, y un 12% indicó que realizan órdenes por internet de café gourmet sembrado por pequeños pro-
muestra cómo los consumidores utilizan la tec- y pasan a recoger su pedido. Más del 50% están ductores nacionales. Otro caso es el de Good
nología para comprar y ofrece ideas de cómo los interesados en utilizar estas opciones en el futuro. Express, una tienda en línea de comida saludable
comercios pueden aprovechar esta oportunidad (por si no sabes en dónde conseguir esos ma-
para mejorar la experiencia de sus clientes. Dado El crecimiento de las ventas en línea se debe en zapanes de alga spirulina). Mi Alacena es otro
que la encuesta se realizó por medio de internet, gran parte a que los jóvenes que crecieron con la nuevo startup, que busca permitirte comprar
sólo refleja el comportamiento de personas que tecnología digital están alcanzando la madurez y productos y alimentos que no hay en tu ciudad y
020 SG.47
EN PORTADA P
recibirlos en tu domicilio (conforme escribo esto Imagina un supermercado en el que al momen- de compra, y Wi-Fi. Actualmente, sólo un pe-
se me antojan unos tamales de elote de la Chata to de entrar recibes recomendaciones y ofertas queño porcentaje de consumidores en el mun-
de Culiacán). Si conoces otros casos que quieras personalizadas, donde de antemano puedas do está utilizando tales capacidades, pero hay
compartir de empresas locales que están ha- saber en qué pasillo y estante está el producto un alto interés por hacerlo. Por ejemplo, un 18%
ciendo e-commerce en nuestra región, por favor que buscas, donde puedas saber cuándo y en reporta utilizar cupones digitales actualmente
coméntalos en la versión online de este artículo donde se cosechó una fruta, donde no tengas pero un 65% planea hacerlo próximamente. El
en http://swgu.ru/q3 que hacer cola y ni siquiera tengas que sacar caso de las listas de compra en el móvil es simi-
tu cartera para pagar. Suena futurista, pero si lar, con un 15% de uso actual y un 64% de in-
lo piensas, la tecnología para hacerlo ya existe. tención futura. 14% indicó utilizar una app de la
Parte 2. Mejorando la Experiencia Posiblemente sea un caso de “el futuro ya está tienda o de su programa de lealtad para recibir
en Tiendas Físicas aquí, pero no está distribuido uniformemente”. información y ofertas, y un 63% planea usarlas
La primera parte de este artículo se enfoca en la cuando estén disponibles para la tienda de su
compra de productos con entrega a domicilio. Pero la compra vía internet es solamente un as- preferencia. 12% reporta utilizar el Wi-Fi de la
Es decir, en cómo la tecnología puede ayudar al pecto de la transformación digital del autoservi- tienda para recibir ofertas, y un 11% escanea
consumidor a evitar las tiendas físicas. cio. Una estrategia digital completa para retail códigos QR para acceder a mayor información.
incluye interacción en todos los puntos de la
Pero las tiendas físicas (brick and mortar) segui- experiencia de compra, desde localizar tiendas, La figura 3 refleja los porcentajes de uso e in-
rán predominando, al menos en un futuro cer- hacer listas, checar precios, investigar productos, terés en las distintas regiones del mundo, para
cano. Además del beneficio obvio que ofrecen pagar, y compartir tu experiencia de compra o uso distintas posibilidades que complementen la
de poder obtener un producto inmediatamente de un producto con otros (ej. en redes sociales). experiencia digital en una tienda física. Como
y sin costos de envío, hay experiencias senso- podemos ver, la región de Asia Pacífico es don-
riales que son prácticamente imposibles de Todos estos puntos de interacción se dan den- de estas capacidades están más instaladas y
replicar en línea, como por ejemplo el olor de tro y fuera de las tiendas, y los consumidores los consumidores tienen mayor disposición a
pan recién horneado. De hecho, 61% de los par- crecientemente utilizan tecnología para simpli- utilizarlas. En Latinoamérica, aunque el uso ac-
ticipantes en el estudio de Nielsen previamente ficar y mejorar el proceso. tual es bajo, hay bastante entusiasmo por ha-
mencionado, consideraron que ir al supermer- cerlo en el futuro.
cado es una experiencia grata. Insertar estrategias digitales a la experiencia
de compra en tiendas físicas todavía es algo Todas las estadísticas y gráficas presentadas
Así que las tiendas de autoservicio deben bus- novedoso y experimental. Las tiendas de auto- en este artículo se obtuvieron del estudio “The
car cómo aprovechar la tecnología para asegu- servicio tienen mucho camino que recorrer para Future of Grocery”, publicado por The Nielsen
rarse de que la experiencia del consumidor sea cubrir aspectos básicos de habilitación digital Company en abril de 2015. Para obtener una
grata, eficiente y asegure su retención. tales como cupones móviles, apps para listas copia del reporte, visita http://swgu.ru/py
SG.COM.MX 021
GATEWAYS DE
PAGO EN LATAM
Por Pedro Galván
022 SG.47
EN PORTADA P
Joel Cano es Director de Operaciones en meXBT, empresa especializada en negocios con criptomonedas.
SG.COM.MX 023
EL BLOCKCHAIN
Y SUS APLICACIONES
Por Pedro Galván
Hoy en día, una conversación sobre tenden- del blockchain. Aproximadamente cada 10 mi-
cias en comercio que no hable sobre bitcoin, sin nutos se crea un nuevo bloque que contiene un
duda quedaría incompleta. Ya en este reportaje grupo de transacciones aceptadas, se agrega el
hablamos sobre bitcoins y la expectativa que bloque a la cadena, y se envía al resto de los
hay alrededor de la criptomoneda, pero ahora nodos. El proceso de calcular los bloques para
quisiera platicar sobre la tecnología que susten- irlos agregando a la cadena es lo que se conoce
ta al bitcoin, es decir el block chain.* como hacer minería. Es un proceso diseñado
para ser computacionalmente intensivo, de tal
Conforme escribo este artículo, Nasdaq ha manera que el número de bloques que se en-
anunciado que comenzará a experimentar con cuentra cada día se mantiene constante.
usar blockchain para registrar transacciones
[1]. Pero las aplicaciones de éste no se reducen El algoritmo blockchain fue inventado específi-
al ámbito financiero. Por ejemplo, la plataforma camente para el sistema Bitcoin, pero se puede
DemocracyOS está considerando aprovechar aplicar en cualquier otro caso donde se requiera
esta tecnología para registrar votación ciuda- establecer un consenso distribuido en presen-
dana. El artículo “Block chain 2.0: The renais- cia de actores maliciosos o no confiables.
sance of money” publicado por Wired en enero
de este año lo plantea así [2]: Garantizando la integridad
Como su nombre lo indica, el blockchain es una Monedas de colores
“Bitcoin, altcoin, dodgecoin … ¿a quién le im- cadena de bloques. La cadena va desde el blo- Imaginemos que a nuestros bitcoins les agregamos
portan? Lo único que importa es el block chain”. que inicial (génesis) hasta el bloque más recien- notas para indicar que en realidad representan cier-
te. Es así que una copia completa del blockchain to activo. Esto es lo que se conoce como monedas
Así que hay que asegurarnos de entender qué contiene todas las transacciones realizadas en coloreadas (colored coins), y es un mecanismo que
es, cómo funciona y cómo se podría aplicar en un sistema a lo largo de su historia. A partir de permite utilizar el blockchain para almacenar y ges-
otros campos. esta información, es posible determinar el valor tionar la propiedad de activos que no son bitcoins.
que corresponde a cada dirección del sistema Por ejemplo, podríamos manejar el capital social de
Fundamentos en cualquier punto de la historia. una empresa en el blockchain por medio de colo-
El aspecto central sobre el que se basa el diseño rear monedas que representen acciones y repar-
del sistema bitcoin es que no hay una autoridad Para implementar este encadenamiento, cada nue- tirlas entre los accionistas. Las acciones entonces
central. Ante esto, se requiere un mecanismo vo bloque contiene un hash del bloque previo. Esto se podrían negociar inmediatamente y sin costos
para determinar quién es dueño de qué monedas. garantiza un orden cronológico, ya que un bloque de transacción. También podemos representar
Dicho mecanismo debe ser distribuido (repartido nuevo requiere conocer el bloque anterior para bienes inmobiliarios como monedas coloreadas.
entre una red de nodos) y resistente a ataques poder determinar su hash. Una vez que un bloque Entonces, puedes poner tu casa en un bitcoin, y
que quieran alterar su integridad. Este es el rol es parte de la cadena, todos los bloques subse- transferir la propiedad de tu casa por medio de una
que juega blockchain. Es una bitácora donde se cuentes tienen rastro de ese bloque, por lo que si simple transacción en la red de bitcoin.
registran todas las transacciones de bitcoins que quisiéramos alterar un bloque, cambiaría su hash y
se comparte por todos los nodos que participan por lo tanto habría que regenerar todos los bloques Coloredcoins.com [4] es un servicio para colo-
en la red bitcoin. En otras palabras, el blockchain subsecuentes, lo cual lo hace impráctico compu- rear monedas, es decir crear activos digitales
es una bitácora transaccional distribuida, y en el tacionalmente y por lo tanto es un mecanismo de sobre la red bitcoin. No me sorprendería que al-
caso del bitcoin viene a ser el equivalente a su li- protección para evitar alteración de datos. gún romántico(a) ya haya puesto su corazón en
bro mayor de contabilidad (ledger). un bitcoin y lo haya transferido a su amado(a).
Podremos tener nuestras opiniones sobre el
Blockchain es administrado por la red de no- bitcoin y su viabilidad, pero es un hecho que Contratos inteligentes
dos del sistema bitcoin. Dichos nodos están la tecnología blockchain funciona y es efecti- y dinero programable
continuamente difundiendo transacciones va para su propósito. Un blockchain se puede Uno de los campos de aplicación para el block-
del tipo: el emisor X envía Y bitcoins al recep- utilizar para firmar digitalmente cualquier tipo chain es el de contratos inteligentes. Esto consiste
tor Z. Los nodos validan las transacciones, las de información sensible, sin necesidad de una en crear programas que pueden manejar dinero
agregan a su copia del libro de contabilidad, y autoridad central. Esto por ejemplo se puede automáticamente. Al crear un contrato se defi-
difunden estas nuevas transacciones a otros aplicar en la gestión de contratos, depósitos de nen ciertas condiciones o criterios que se deben
nodos. Cada nodo de red tiene su propia copia garantía, autenticación, etcétera. cumplir, y las acciones (transacciones) que se
024 SG.47
EN PORTADA P
Conclusión
Nos dirijimos a un mundo de aprendizaje automa-
tizado (machine learning), en el que las computa-
doras pueden actuar sin necesidad de ser progra-
madas explícitamente. Dicho mundo requiere de
la capacidad de asignar recursos de forma rápida
y eficiente, sistemas capaces de auto-organizarse
y realizar las transacciones. El blockchain parece
ser la clave para lograrlo. Si te interesa ir a mayor
profundidad técnica sobre cómo crear una cade-
na alternativa del blockchain, la wiki de Bitcoin [8]
tiene buena información al respecto.
SG.COM.MX 025
5 FORMAS DE
PREPARARSE PARA
EL COMERCIO MÓVIL
Por Jennifer Polk
026 SG.47
EN PORTADA P
M-COMMERCE EN IMÁGENES
Para cerrar este reportaje sobre tendencias en comercio móvil, les La segunda figura, creada por Pymnts.com es un mapa del metro que re-
compartimos un par de infografías interesantes que ayudan a dimensio- presenta los distintos conceptos que sustentan la cartera digital, agrupa-
nar la diversidad y complejidad de este todavía naciente ecosistema. dos como rutas. Este mapa fue hecho en 2013 y le hace falta una actua-
lización (por ejemplo, no hace mención de las criptomonedas), pero sin
La primer figura, creada por Trinity Ventures, es un mapa de los principa- duda ayuda a visualizar los distintos conceptos, servicios y tecnologías
les jugadores en el ecosistema de mCommerce, agrupados por categoría. que se conjuntan para soportar la visión de la cartera digital.
Figura 1. m-Commerce
market map.
Trinity Ventures.
SG.COM.MX 027
E ESTRATEGIA DE TI
El Presupuesto de TICs
INDICIOS, ARGUMENTOS Y EXPECTATIVAS
—
Por Héctor Santillán
Héctor Santillán (@hectorsantillan) se desempeña como consultor en gobernabilidad de TICs, formulación de soluciones de negocio y marketing digital.
028 SG.47
ESTRATEGIA DE TI E
Justificar el presupuesto
de tecnología
Aunque al justificar el gasto en tecnología de-
bemos considerar los ahorros que vamos a
generar, debemos estar conscientes que esto
posiblemente no sea suficiente y concientizar a
las áreas financieras de que así como aumenta
la plantilla de una organización, su activo fijo,
sus ventas, requerimos estar aumentando los
sistemas y el presupuesto asignado a éstos.
SG.COM.MX 029
E ESTRATEGIA DE TI
Ahora que estamos en el segundo trimestre beneficios cualitativos y cuantitativos en térmi- “plan estratégico” de TI, adivinando qué puede
del año, probablemente tengamos una buena nos de negocio. Incluso tratándose de proyec- ser relevante para el negocio. El inconveniente
cantidad de iniciativas y proyectos de TI en tos regulatorios, tendríamos que ser capaces que esto acarrea es que estamos colocando una
curso, todos ellos obviamente apegados al de justificarlos en función de evitar las multas restricción importante al negocio, definiendo no-
presupuesto y al plan estratégico de TI, que a o sanciones económicas o evitar daño reputa- sotros solos la arquitectura e infraestructura, sin
su vez está alineado a los planes de negocio cional a la compañía. Planear también implica fundamento alguno de negocio.
pues fueron conjuntamente elaborados entre ser capaces de tener identificados los recursos
octubre y noviembre del año pasado. requeridos en aspectos de infraestructura, licen- ¿Por dónde empezar?
ciamiento, software, habilidades e información, De esta forma, la planeación estratégica de TI
Nada más lejos de la realidad… Para este momen- los tiempos en que tendría que llevarse a cabo consiste en construir la visión del futuro de la
to del año, algunas iniciativas de TI seguramente y lo más importante, quiénes serán los respon- organización, con base en las iniciativas y pro-
surgieron como resultado de atender un tema sables de ejecutar dichos proyectos, así como el yectos tecnológicos de alto impacto y largo pla-
regulatorio, alguna petición urgente del negocio o patrocinador no solamente financiero. zo que hagan correspondencia con las respecti-
apagar un fuego. Pocas veces se observa un pro- vas iniciativas estratégicas de negocio.
ceso formal de planeación. Mucho menos con un ¿Es válido hablar de
sentido estratégico ya sea de TI o de negocio. estrategia tecnológica? Llevar a cabo un ejercicio de planeación estra-
Por otro lado, es una tentación cotidiana en las tégica de tecnología en conjunto con las áreas
Para comprender por qué sucede así, debemos empresas, darle la connotación de estratégico de negocio, ofrece consistencia, minimiza el
estar conscientes que dentro de las organiza- a todo lo que consideramos importante a dis- fracaso de los proyectos y asegura la entrega
ciones tenemos un entendimiento distorsiona- creción del solicitante, máxime cuando el so- de valor al negocio. Es decir, alinea la visión
do tanto de lo que es planeación como de lo licitante está del lado del negocio. Estratégico tecnológica con la visión que tiene y persigue
que es estratégico, y en algunas ocasiones sor- no sólo es aquello que requiere grandes can- el negocio, y garantiza que todas las iniciati-
prendentemente hasta de lo que son las TIC. tidades de recursos o que provenga de la alta vas y proyectos por realizar tienen un sustento
dirección. Estratégico debe ser aquello de alto razonable y no son capricho de uno o algunos,
¿Realmente hacemos impacto —en función del negocio— y con- sin poner en riesgo la consecución de las metas
planeación tecnológica? secuentemente de largo plazo. Si estos dos organizacionales.
Como mexicanos tenemos un reto cultural- componentes no están presentes a la par, no
mente hablando, pues no somos precisamente podemos decir que es estratégico. Una vez estructurado el plan, deberá ser pre-
proclives a planear, justificando en muchas oca- sentado, revisado, aprobado y priorizado por
siones que el área de TI es un área de servicio — Algo indispensable es que el ejercicio de pla- la dirección general o comité si fuese el caso,
lo cual es cada vez menos cierto— y debemos neación estratégica no debe realizarse en ais- y finalmente comunicado para que se tenga
sólo responder a lo que el negocio requiera en el lamiento. Muchas empresas aíslan —con el certeza de la utilización de los recursos, en los
momento que lo requiera. Luego entonces, nos afán de crear un clima favorable de “análisis y tiempos programados y saber en qué momento
encontramos con listas de buenos deseos ela- reflexión”— a su cuadro directivo para elaborar tendrá lugar cada proyecto.
boradas con solicitudes de pasillo por parte de el plan estratégico de negocios y a su regreso
las gerencias o de la dirección general. (generalmente de lugares paradisiácos) le co- Tomando esto en consideración cualquier or-
munican dicho plan al responsable de TI para ganización, ya sea pública o privada, pequeña
La planeación de TI implica llevar a cabo un pro- que con base en él, elabore el plan estratégico o grande, familiar o con gobierno corporativo,
ceso formal de levantamiento de requerimientos de tecnología. En el lado contrario de la mone- puede hacer realidad un Plan Estratégico de TI
que estén debidamente justificados en cuanto a da, algunos CIOs elaboran a ciegas su propio que soporte lo que el negocio requiere.
Arturo Téllez Mejía actualmente funge como Gerente de Seguridad y Redes para Quálitas Compañía de Seguros. Es egresado de la Licenciatura en Informática de la UPICCSA-IPN y
maestro en Tecnologías de Información y Administración por el Instituto Tecnológico Autónomo de México (ITAM). Es catedrático a nivel posgrado en el ITAM y la UVM.
www.arturotellezmejia.com
030 SG.47
CÓDIGO INNOVARE C
Alineando la Estrategia
de Marketing a Redes Sociales
OPTIMIZACIÓN Y DEFINICIÓN DE OBJETIVOS SON PIEZAS FUNDAMENTALES
—
Por Gabriela Campos
Para los responsables del departamento de marketing, • Usar las redes sociales como un mero canal publicitario, que Gabriela Campos Torres
la optimización del retorno de inversión en comunicación di- se acaba convirtiendo en basura para los usuarios. es Community Manager
gital y medios sociales es crítica. Hoy en día, el mercado es • Falta de escucha y de personalización, sin proporcionar de SemanticWebBuilder
dinámico y todo cambia en un minuto. a los clientes potenciales la información que quieren y en la Gerencia de
buscan. Desarrollo de Nuevos
Cambios en los medios sociales • No fomentar las relaciones con la comunidad, sin man- Productos y Servicios de
Los medios sociales han pasado de ser un elemento estra- tener ningún tipo de conversación con ellos, sin respon- INFOTEC. Es Licenciada
tégico para cualquier empresa y por lo tanto deben ser pla- der a sus comentarios o sin darles las gracias por sus en Ciencias de la
neados de la misma forma. En toda organización debe existir aportaciones. Comunicación por el Tec
una estrategia de redes sociales y un plan general para poder • No desarrollar un plan de crisis, alineado con el plan gene- de Monterrey. Cuenta
cumplir con los objetivos. ral de crisis de la empresa. con amplia experiencia
• No analizar qué están haciendo las empresas de la compe- en la ejecución de pro-
Medir el impacto ayuda a clarificar en qué porcentaje se ha tencia en redes sociales. yectos relacionados con
incrementado el valor de la marca gracias a la actividad so- • No monitorear y escuchar lo que se dice de la marca y del la adopción de implan-
cial. Por tanto cuando se plantea una estrategia de marketing sector al que pertenece. taciones tecnológicas y
que incluye redes sociales, se dará un paso hacia la planifi- • No actualizar la estrategia de redes sociales, de acuerdo a cambios culturales.
cación promocional multicanal, que además permitirá reali- las necesidades existentes.
zar una segmentación mucho más delimitada por intereses,
edades, estudios, etcétera. Conclusión
En definitiva, las redes sociales se han convertido en un me-
La aspiración principal de las empresas es asegurarse de que dio muy útil para la redefinición y crecimiento de negocios
sus redes sociales no sólo funcionen a nivel local, sino en todos siempre y cuando se tome en cuenta la inversión y los resul-
los mercados en los que tienen presencia. El objetivo es usar tados que se obtendrán. Y en este sentido los dispositivos
los medios sociales para mejorar la percepción de la marca. móviles son cada vez más importantes entre los consumi-
dores, pues se han convertido en una parte fundamental del
Errores en la estrategia de redes sociales día a día de los usuarios y por tanto las organizaciones están
Lo importante no es estar, sino saber estar. Aquí algunos invirtiendo cada vez más en su estrategia móvil.
errores comunes que debemos evitar:
• Carecer de una estrategia. INFOTEC desarrolló una herramienta en esquema de Open
• No alinear la estrategia de redes sociales con la estrategia Source que tiene como propósito principal obtener elemen-
y la visión de la empresa. tos de análisis que proporcionen datos de utilidad para la
• No integrar marketing online y offline, que constituyen las toma estratégica de decisiones en cuestión del social media.
dos caras de una misma moneda. De esta manera, INFOTEC incursiona en la investigación y
• No ofrecer una experiencia de marca. Olvidar la identidad, desarrollo tecnológico de herramientas de software en el
la filosofía y la razón de ser de la empresa. mercado internacional.
• No involucrar a todos los departamentos en la definición de
la estrategia de redes sociales. La investigación y los prototipos realizados para el desa-
• No informar a todos los empleados de la estrategia de re- rrollo del SWB Social pueden ser retomados y extendidos
des sociales. para aplicarse en diversos ámbitos a nivel nacional, como
• No tener una presencia activa en las redes sociales en las puede ser la obtención de información estadística subje-
que la empresa está presente. tiva para la generación de métricas e indicadores especia-
• No invertir lo suficiente para tener personal con el perfil lizados de cualquier industria. Este conjunto de atribucio-
apropiado para encargarse de la gestión de redes sociales. nes se realiza bajo el esquema de código libre y ya se está
• Creer que todas las redes sociales son iguales, sin conside- trabajando en la versión para dispositivos móviles con la
rar las particularidades y usos de cada una de ellas, así como intención de seguir aportando al crecimiento de la indus-
el potencial diferente que ofrecen. tria TIC en México.
SG.COM.MX 031
P SOURCING
Contratación
de Software Basada en
Resultados —
Por Guilherme Siqueira Simões
El sector de Tecnologías de la Información se ha visto muy afec- El aspecto más crítico de este tipo de contratación, es que el clien-
tado por el movimiento de externalización de las empresas. Gran te es responsable por la gestión del equipo de servicio, incluyendo la
parte del desarrollo y mantenimiento de los sistemas ya no se hace productividad del proveedor. Esto requiere un nivel de competencia
más internamente. que puede no estar disponible internamente. Además, la remunera-
ción del proveedor no está vinculada a los resultados producidos, sólo
Sin embargo, esta medida trajo efectos secundarios inesperados (y no al número de horas realizado. No hay incentivo para que el proveedor
deseados) para muchas organizaciones que han adoptado esta iniciativa. mantenga o aumente los niveles de productividad y calidad, lo que
Uno de los problemas se refiere a las prácticas de contratación de estos debería ser parte de su responsabilidad. El incentivo es negativo: en
servicios de terceros. En las secciones siguientes se comentan las formas cuanto más esfuerzo se demande por parte del proveedor, mayor será
más comunes de la contratación de servicios de desarrollo de software. la remuneración. Y esta es la antítesis de la productividad.
La contratación por hora-hombre Otro obstáculo está relacionado con las garantías de servicio. Si la
En esta forma de contratación, también conocida como body shopping, el asignación implica más de una empresa, es muy difícil aislar las res-
cliente contrata a profesionales para la asignación en el desarrollo de soft- ponsabilidades de cada empresa y exigir la garantía. El cliente paga
ware, generalmente en conjunto con su propio equipo, algunas veces con por un servicio y también por cualquier mantenimiento posterior co-
varios proveedores de mano de obra, y utiliza su infraestructura logística rrectivo asociado a éste.
interna. La remuneración del proveedor se calcula basándose en el nivel
de cualificación y experiencia de los profesionales en las horas trabajadas Contratar a un precio fijo
y otros gastos posibles. Este tipo de contratación, también conocido como fixed price, favorece
el enfoque de proyecto con un comienzo y un final bien definidos (y por
En este tipo de contrato, la remuneración del proveedor está orientada supuesto, del alcance). Además, este modelo requiere un mayor nivel de
a los procesos “internos” de la producción de software. El precio final de organización del cliente y del proveedor. Si los requisitos están mejor defi-
un proyecto se determina a partir de consideraciones tales como: la can- nidos hay menos posibilidades de fricción entre las partes.
tidad de trabajo que requiere, el perfil y la cantidad de profesionales mo-
vilizados para su aplicación, y la complejidad de la gestión. El control de Sin embargo, es probable que el proveedor no tenga mucha información,
precios está en manos del proveedor, que en teoría, tiene más experiencia no domine el problema o no dedique tiempo para un análisis detallado
en estos aspectos técnicos del proyecto que el cliente, cuya actividad eco- de los requisitos para la preparación de su propuesta de negocio. Como
nómica tiende a ser diferente al desarrollo o mantenimiento de software. resultado, habrá un subdimensionamiento o sobredimensionamiento del
presupuesto presentado. Cuando la competencia es intensa, es probable
Este modelo es fácil de administrar y proporciona una gran flexibilidad que el primer caso se produzca.
tanto para el cliente y como para el proveedor. Una vez que se hayan es-
tablecido las relaciones comerciales, el cliente es capaz de ser más ágil en Ambos casos son indeseables. En el primero, el proveedor tendrá difi-
el cumplimiento de los picos de demanda del servicio. En el caso de que cultades para atender al cliente. Si los requisitos no están bien definidos,
exista cambio de las necesidades, no es necesario renegociar el contrato es probable que se cree un callejón sin salida y una nueva negociación
con el proveedor. Sin embargo, aumentar el alcance provoca un incremen- comercial tendrá que ser considerada. Aunque los requisitos hayan sido
to del trabajo (horas), así como del costo del proyecto. Es justo que haya bien definidos, el presupuesto por el proveedor puede haber sido insufi-
remuneración al proveedor por este esfuerzo adicional, ya que la gestión ciente y la calidad del producto se vea seriamente afectada o incluso el
del alcance es responsabilidad directa del cliente. proyecto no se pueda completar.
032 SG.47
SOURCING P
En este modelo hay una transferencia del riesgo del cliente al proveedor, Por lo tanto, un modelo de contratación óptimo sería la remuneración
y surgen los cuestionamientos con respecto al riesgo del alcance (¿los de acuerdo con las unidades de resultado del servicio realizado. Esto
cambios serán alojados sin coste adicional?) y de la productividad (¿cuál promueve el balance de riesgos y responsabilidades entre cliente y
es el nivel de control sobre los vectores que afectan el trabajo?). El precio proveedor. En este caso, la productividad es responsabilidad del pro-
propuesto por los proveedores debe tener en cuenta estos riesgos. veedor, ya que existe un riesgo de lesiones si hay retraso en las unida-
des de producción. Además, en el caso de que exista un aumento en el
El uso de este enfoque se complica cuando se asume que los requisitos alcance, se debe construir más unidades para el servicio y el proveedor
no cambiarán (o habrá poco cambio) después del inicio del proyecto. El es remunerado por ello.
entorno de una organización se es dinámico, los requisitos también lo son.
En cuanto más larga sea la duración del proyecto, es más probable que El gran desafío de este enfoque es encontrar una unidad que sea recono-
hayan cambios en los requisitos. Aparte es difícil de estimar cómo estos cida de manera inequívoca, uniforme y consistente tanto para el cliente
cambios afectan el presupuesto original del proveedor. De acuerdo con C. como para el proveedor. Ejemplos de unidades podrían ser: pantallas,
Jones [7] más de 2% de los requisitos cambian mensualmente después informes, tablas, casos de uso, líneas de código, stored procedures, we-
de la fase de requisitos. En este caso, es probable que sea necesaria una bservices, puntos de función, entre otros. Pero no todas estas unidades
renegociación. Si esto ocurre, el cliente no tendrá la misma condición ori- cumplen con los criterios para ser reconocidos por el cliente y el provee-
ginal, ya que dependiendo en qué fased el proyecto esté, no hay compe- dor de forma consistente.
tencia, ni una unidad para comparar el precio originalmente acordado con
los precios cobrados de acuerdo a las nuevas características solicitadas. Al analizar las unidades de carácter más técnico, no se tiene en cuenta la vi-
sibilidad de estas por parte del cliente. La relación (si existe) entre las líneas
En este modelo de contratación, el control sobre la cantidad a pagar lo de código, por ejemplo, y algo de valor tangible al cliente es muy débil. El
tiene el proveedor. Es muy común que la formación de precios se efectúe cliente no siempre tiene toda la experiencia para atribuir valor a un servicio
en términos de la estructura de descomposición del proyecto de traba- que involucró a escribir un cierto número de líneas de código. A menudo,
jo, la cantidad de las horas y el perfil de profesionales asignados a esa una de las razones para la externalización es precisamente la búsqueda de
actividad. Esto también ocurre con la contratación por hora-hombre, el un proveedor con más conocimientos especializados en un tema, que no es
control está bajo quienes poseen los conocimientos técnicos de ingeniería de interés para el cliente y no le generará interés de tener dominio.
de software y la aplicación de sus disciplinas.
Por otra parte, al analizar algunas unidades menos técnicas, tales como
Un modelo alternativo de contratación pantallas, tablas, informes, casos de uso o los puntos de función, estos tie-
Con el tiempo, algunas organizaciones comenzaron a experimentar con for- nen unidades que son fácilmente reconocidas y comprendidas por ambas
mas alternativas de contratación de servicios de software que promovían una partes. La cuestión ahora es encontrar una definición consistente para esta
mejor distribución de los riesgos y resultados. En el modelo hora-hombre, la unidad. En el caso de las pantallas, tablas, informes y casos de uso, no hay
productividad del trabajo es un problema de gestión del cliente, cuando de- definición normalizada. A pesar de que hay buenas prácticas, y hacen uso
bería ser preocupación del proveedor. La administración del alcance también del sentido común para definir lo que debería ser o no un caso de uso o una
es responsabilidad del cliente, ya que el proveedor no tiene control sobre los pantalla, estas unidades no son suficientes para utilizarse como una unidad
requisitos. En el modelo de precio fijo, la productividad es responsabilidad del de medida de contratos. En un extremo el cliente puede manejar el servicio
proveedor, lo que es justo, ya que este es responsable del proceso de trabajo. de todo el sistema si se especializa en solo un caso de uso para minimizar
Sin embargo, cualquier cambio o incertidumbre de los requisitos, que es res- el costo; en caso contrario, el proveedor puede dividir la especificación del
ponsabilidad del cliente, impacta este modelo de contrato. sistema en casos de uso para aumentar su remuneración.
SG.COM.MX 033
P SOURCING
El tamaño funcional puede ser considerado una unidad viable de medida en costos, como en el precio unitario es definido (o debería ser definido)
en los contratos, precisamente porque son una medida de carácter no según la productividad esperada para el contrato.
técnico, con una definición estándar, y consistente.
Al igual que las características de los servicios que se exigen en el con-
Por otra parte, la contratación de los servicios basado en los resultados trato, el modelo puede ser refinado (y por lo general esto se hace) con el
entregados, permite al cliente tener más control sobre los costos. uso de diferentes indicadores de la tasa de entrega (H/PF) o el precio de
la unidad ($/PF), calibrado para especificidades de cada tipo de servicio.
La medición funcional del software
La medición funcional mide el software mediante la cuantificación de sus Para organizaciones grandes, los procesos de contratación son a menudo
tareas y servicios, es decir, las características que el software proporciona largos y costosos. Por lo tanto, el modelo descrito anteriormente se aplica
al usuario. En resumen, mide los requisitos funcionales del software. generalmente no en un proyecto individual, sino a un volumen de puntos
de función predefinidos para ser utilizados en varios proyectos durante un
La idea es que la medición funcional sea: período por lo general de doce o más meses. Este volumen se determina
• Lo suficientemente simple para reducir al mínimo el costo adicional del normalmente basado en los proyectos previstos por el área de sistemas
proceso de medición. en la planificación estratégica.
• Una medida consistente entre los diversos proyectos y organizaciones.
A medida que el tamaño funcional se realice con base a la vista externa del
El resultado de la medición es llamado tamaño funcional y a menudo ex- usuario, en contraste con una vista interna de la ingeniería de software, el clien-
presado en una unidad llamada punto de función (PF). te ejerce el control efectivo y la gestión de contratación. El perfil de los profe-
sionales movilizados o la cantidad de horas trabajadas dejan de ser factores
Hay cinco métodos de medición funcional estándares: IFPUG (ISO/IEC definitivos para el análisis. Se trata de un modelo en el que el tamaño funcional
20926), NESMA (ISO / IEC 24570), Mark II (ISO / IEC 20968), COSMIC no cumple el papel de la estimación de esfuerzo o costo, sino de prescribir la
(ISO/IEC 19761) y FISMA (ISO/ IEC 29881). cantidad que se pagará independientemente de su costo o esfuerzo real.
Modelo de costos Al igual que los contratos de precio fijo, este modelo tiene riesgos. Sin
Un modelo para la prestación de servicios de software basado en el tama- embargo, con una mejor distribución. Las consideraciones acerca de la
ño funcional puede ser representado por las fórmulas siguientes, que en complejidad del trabajo en sus diversas dimensiones (excepto alcance de
la práctica son similares. las funciones solicitadas y entregadas al usuario), y el perfil y la cantidad
de profesionales asignados serán consideradas cuando se defina el precio
Esfuerzo = Tamaño x Tasa de entrega (1) por unidad ($/PF) o la tasa de entrega (H/PF).
En esta primera fórmula, el esfuerzo del proyecto que se ejecutará es es- El precio unitario, junto al tamaño funcional, prescribe la forma en la que
timado (en horas) teniendo en cuenta el tamaño (en puntos de función) y el proveedor será recompensado por cada servicio prestado.
una tasa de entrega pre-definida (horas por puntos de función). Esta tasa
es definida, de acuerdo con el proveedor y un estudio de productividad En un análisis específico de cada proyecto entregado, la recompensa (o
del cliente basado en una muestra histórica de proyectos ya implemen- esfuerzo) aumenta o disminuye en comparación con lo realmente realiza-
tados. El costo del proyecto se deriva simplemente de la multiplicación do. Este modelo utiliza como base el precio medio (o promedio de produc-
del esfuerzo calculado por un valor de horas acordado entre el cliente y tividad) para la derivación del costo. Dado que hay una buena definición
el proveedor. de los parámetros de precios, estas variaciones entre los proyectos tien-
den a anularse entre sí cuando se considera el conjunto de proyectos en
Costo = Tamaño x Precio por Unidad (2) un horizonte de tiempo más largo (por ejemplo, un año).
En esta segunda fórmula el costo del proyecto se calcula directamente con Beneficios del modelo propuesto
el tamaño funcional multiplicado por el precio unitario de éste. Para esta- Una de las razones para usar el modelo propuesto es que el vocabulario
blecer el precio que se ofrece, los proveedores deben tener en cuenta todo de la medición funcional utiliza la terminología y define elementos de aná-
el proceso de trabajo definido por el cliente en el Request for Proposal. lisis que son independientes de la tecnología utilizada para desarrollar el
Ambas fórmulas son equivalentes, ya que el esfuerzo se puede convertir software. El proceso de medición sólo tiene en cuenta la perspectiva de
034 SG.47
SOURCING P
negocio como se entiende y es válida para el cliente. La eliminación de gran impacto para promover este cambio. La contratación por el tama-
estos tecnicismos facilita la comprensión entre las partes y es un motor ño funcional consiste en trabajar enfocado en proyectos, lo que implica
importante para la comunicación entre cliente y proveedor. una buena planificación y evaluación del alcance. Sin embargo, la falta de
planificación, documentación y visibilidad de los resultados producidos es
Otra de las ventajas de este método, especialmente para el sector público, común en contratos por hora-hombre.
es que contratos remunerados por el tamaño funcional permiten auditoría
externa de todos los pagos hechos. Algo que no puede ser hecho en un Otro punto en el que se debe tener cuidado es no copiar modelos de cos-
contrato por hora-hombre. Verificar horas trabajadas después del pago tos de otras organizaciones, sin la calibración necesaria de sus paráme-
es muy difícil. tros con datos históricos propios. Cuando se utilizan parámetros de otras
organizaciones (o precio unitario), los costos de la contratación pueden
Para los contratos basados en los puntos de función, el fraude es fácilmente elevarse o los proveedores serán oprimidos hasta llegar al punto de res-
detectado por la auditoría. A medida que la medición funcional refleje funcio- cindir el contrato.
nalidades entregadas por los proyectos, no hay manera de que sean falsificados.
Una dificultad más está relacionada con las mediciones, que deben cen-
Service Level Agreements (SLAs) trarse exclusivamente en las necesidades del negocio. Para aquellos que
En este modelo hay interés directo de los proveedores para maximizar el están involucrados en la implementación, es común que haya una dificul-
flujo de las demandas entregadas, ya que implica un aumento de los ingre- tad en la abstracción de la implementación y esto se refleja en una medi-
sos. Para el cliente esto también es beneficioso, ya que proporciona más ción a menudo incorrecta (y por lo general, más grande).
capacidad de respuesta a las necesidades de software de la organización.
Conclusión
Como también hay interés por parte del proveedor para entregar un ser- El modelo de contratación de servicio de software por resultados ha sido
vicio de calidad, ya que las correcciones implican repetición del trabajo, madurado principalmente en Brasil y Corea del Sur durante los últimos
sin los ingresos asociados, el costo impacta a la rentabilidad del contrato. quince años. En varios casos fueron percibidos mejora de productividad,
mejora de la calidad de la documentación de requisitos y resultados entre-
Pronto podremos ver una convergencia de intereses en ambos lados para gados con nivel de satisfacción más alto.
una rápida entrega y una mejor calidad del servicio entregado. Sin embar-
go, no se puede prescindir de los Acuerdos de Nivel de Servicio (Service
Level Agreements), específicamente en plazo y calidad.
Guilherme Siquiera Simões es socio y director de FATTO Consultoría y Sistemas, donde actúa como consultor e instructor en servicios de consultoría y capacitación de medición, esti-
mación y requisitos de proyectos de software. Es autor del libro “Análise de Pontos de Função: Medição, Estimativas e Gerenciamento de Projetos de Software”, el más vendido en Brasil
sobre este tema.
SG.COM.MX 035
P ARQUITECTURA
Seguridad
y uso de
Frameworks —
Por Humberto Cervantes, Rick Kazman y Jungwoo Ryoo
Desarrollar código enfocado a la seguridad es una tarea compleja y, por • Sistema 3. Una aplicación interna programada en Java por una empre-
ello, frecuentemente se recurre a la adopción y uso de frameworks que se sa mexicana. Este sistema representa el enfoque de adopción completa.
enfocan en atender distintas áreas de la seguridad como pueden ser el Utiliza Spring security [2] como framework primario de seguridad pero
control de acceso, el cifrado y la validación de entradas entre otras. también utiliza el framework ZK [3] en la capa de presentación, que
también brinda protección de ataques comunes en esta capa.
Podemos identificar tres enfoques relativos a la adopción de frameworks
como parte del diseño de la arquitectura para resolver la seguridad: Estos sistemas fueron analizados utilizando la herramienta IBM AppScan
que analiza alrededor de 33 tipos distintos de vulnerabilidades tales como
• No adopción: La seguridad no es considerada dentro del diseño de la inyección de SQL, negación de servicio o indexado de directorios. La he-
arquitectura y solamente se codifican soluciones ad-hoc para tratar as- rramienta genera un reporte de resultados indicando la cantidad de vul-
pectos de seguridad. nerabilidades identificadas, agrupadas por severidad. El análisis se enfocó
• Adopción parcial: Se introducen frameworks de seguridad después del únicamente en los aspectos de software, por lo que se deshabilitó hard-
diseño inicial de la arquitectura. ware de seguridad tal como firewalls.
• Adopción completa: La seguridad es considerada dentro del diseño ini-
cial de la arquitectura y parte de las decisiones del diseño incluyen el uso Adicionalmente se realizó una entrevista a los arquitectos de los distintos
de frameworks enfocados a la seguridad. sistemas para entender los enfoques de seguridad que siguieron. Estas en-
trevistas se basaron en la lista de 17 tácticas de seguridad que se muestra en
Caso de estudio la figura 1. Para cada una de las tácticas se le preguntó al arquitecto si la había
Con el fin de comprender las consecuencias de los tres enfoques des- considerado y, en caso afirmativo, qué medidas había tomado al respecto.
critos anteriormente, realizamos un estudio sobre tres distintos sistemas
empresariales accesibles vía web: Resultados
La tabla 1 presenta un resumen del resultado del análisis sobre los distin-
• Sistema 1. Un sistema de administración de registros médicos de fuente tos sistemas.
abierta llamado OpenEMR [1]. Desarrollado en PHP y representa el enfo-
que de no adopción. Como se puede observar de la tabla, los enfoques de adopción parcial y
• Sistema 2. Un portal web desarrollado usando HTML y JSP. En un prin- completa tienen los mejores resultados ya que ninguno de estos sistemas
cipio utilizaba un enfoque de no adopción y posteriormente se decidió exhibió vulnerabilidades de severidad alta. En el caso del sistema 2, llama
agregar una solución comercial para mitigar riesgos de seguridad en el la atención que al introducir un framework de seguridad se eliminaron
código, aplicando así un enfoque de adopción parcial. Nos referiremos a por completo las vulnerabilidades de severidad alta, y las medianas se
éste como “Sistema 2 Antes” y “Sistema 2 después”. recortaron a la mitad.
036 SG.47
ARQUITECTURA P
Por otro lado podemos apreciar que, a excepción del sistema 3, en los Es conveniente, además, atender la seguridad usando una combinación
demás casos una parte de las tácticas fueron implementadas mediante de software y hardware como, por ejemplo, cortafuegos.
programación ad-hoc, y no usando frameworks u otros mecanismos ex-
ternos. Podemos observar una relación entre el esfuerzo que estimaron Una recomendación adicional es que al diseñar la arquitectura de un sis-
los arquitectos para satisfacer aspectos de seguridad y el número de tác- tema, conviene tomar el catálogo de tácticas mostrado en la figura 1 a
ticas implementadas de manera ad-hoc. manera de checklist para asegurarnos que estamos cubriendo las distin-
tas tácticas de seguridad.
Como era de esperarse, el enfoque de adopción completa resultó ser el
mejor ya que el sistema en que se usó, es decir el sistema 3, no tuvo vulne- Conclusión
rabilidades de severidad alta, y el esfuerzo que el arquitecto estimó haber La seguridad es un aspecto de gran importancia en la mayoría de las
dedicado a atender aspectos de seguridad fue bajo en comparación con aplicaciones y es por ello que se le debe dar una consideración primor-
los demás sistemas, además de que este fue el sistema en el cual se im- dial como parte del diseño de la arquitectura. El considerar la seguri-
plementó la mayor cantidad de tácticas. dad desde el principio y usar frameworks para soportarla puede dar
excelentes resultados.
Consideraciones
La muestra de sistemas que se usó para este estudio es muy pequeña y Aprovecho este espacio para comentarles que estamos buscando más
esto impide llegar a conclusiones definitivas. Sin embargo, y a pesar del casos de estudio por lo cual si están interesados en que alguna de sus
tamaño de la muestra, los resultados obtenidos permiten emitir la reco- aplicaciones empresariales forme parte de este estudio no duden en con-
mendación siguiente: la seguridad es un atributo de calidad que no se tactarme en hcm@xanum.uam.mx. Los resultados del análisis y los datos
debe dejar “para después” y es conveniente elegir frameworks como parte de su organización serán confidenciales.
de las decisiones de diseño de la arquitectura.
En http://goo.gl/cZUIi5 pueden encontrar un video de la presentación de
El uso de frameworks tiene sentido pues quien desarrolla una aplicación este trabajo realizada en SATURN 2014.
para un dominio particular generalmente no es un especialista en temas
de seguridad. Por otro lado, intentar desarrollar código ad-hoc para satis- En http://goo.gl/plbwrJ pueden encontrar una lista de frameworks de segu-
facer aspectos de seguridad consume recursos valiosos del proyecto que ridad (en constante evolución).
podrían más bien estar enfocados en resolver la problemática de negocio.
El Dr. Humberto Cervantes es profesor-investigador en la UAM-Iztapalapa y consultor independiente especializado en arquitectura de software. Está certificado como ATAM Evaluator y
Software Architecture Professional por parte del Software Engineering Institute.
SG.COM.MX 037
P UX
A La Defensa
De Los Usuarios
SIETE TÉCNICAS UX PARA CAMBIAR EL MUNDO
—
Por Misael León
Algo nos sucedió en el camino. Siempre vamos de prisa buscando métodos de diseño es muy flexible, haciendo la adopción de UX Research
resultados rápidos. La cultura moderna es aquella de la gratificación in- en un ambiente Agile bastante factible.
mediata. Dedicamos poco tiempo a entender lo que necesitamos para
lograr nuestros objetivos. La lógica nos dice que si actuamos rápido ob- Incorporar prácticas de UX no es solamente responsabilidad del UX de-
tendremos resultados rápidos. Este apresurado tren de pensamiento se signer, sino de todos los involucrados en el ciclo de desarrollo del produc-
ha generalizado a tal grado que incluso ha contagiado hasta el proceso to. Todos los involucrados deben reconocer que el usuario es el centro
de desarrollar y crear productos de software. ¡Genial! Pero, los resultados de nuestro trabajo, es la única manera de asegurar que nuestro producto
casi nunca son óptimos porque son… pues, apresurados. se incorporará fácilmente a la vida de las personas. No olvidemos que
diseñamos para humanos, y vaya que los humanos somos seres inmensa-
Diseñadores y desarrolladores por igual hemos vivido las consecuencias de mente complejos. Suena como chiste, pero lo olvidamos muy a menudo.
un proyecto no planeado adecuadamente, o aún peor, un proyecto basado Suponer comportamientos es cómodo, pero es altamente riesgoso desde
en meras intuiciones sobre los que usuarios desean y necesitan. Todos los una perspectiva de negocios.
involucrados opinan sobre lo que el producto debe hacer y qué caracterís-
ticas debe contener. Nos enamoramos de la idea y comenzamos a trabajar. Comienza hoy: siete metodologías UX
No tenemos tiempo de investigar. Rápido, rápido, rápido. Una verdadera El objetivo del UX Design es producir una experiencia memorable y positiva
receta para el desastre. en los usuarios. UX Design no es una ciencia exacta, es resultado de una
serie de técnicas que ayudan a identificar e influir en la percepción que las
Sin embargo nosotros no somos los usuarios y nuestras suposiciones personas tienen sobre un producto o servicio. A continuación presento sie-
como expertos son solamente eso, suposiciones educadas. Es una con- te técnicas populares de UX que permiten explorar los modelos mentales
tradicción tan obvia que a menudo la pasamos por alto, queremos ser de tu audiencia, descubrir oportunidades, y generar ideas efectivas:
proveedor y cliente al mismo tiempo. Es casi como trabajar con los ojos
cerrados. Factores como la falta de retención de usuarios nos abren los Evaluación Heurística. Esta es una manera poco costosa de evaluar la
ojos y nos obligan a corregir, deshacer y rehacer. ¡Y vaya que el re-trabajo usabilidad de una interfaz. Es realizada por un grupo de expertos en User
es costoso en nuestra industria! Experience, quienes analizan la interfaz de acuerdo a una serie de princi-
pios de usabilidad, como prevención de errores, uso de lenguaje común,
Suponer vs entender retroalimentación usuario-sistema, minimizar la carga de memoria, etcé-
Afortunadamente no todo es caos y desesperación, este tipo de re-traba- tera. El objetivo es limpiar la interfaz de errores obvios de usabilidad y
jo se puede evitar si entendemos lo que los usuarios realmente necesitan, realizar las correcciones pertinentes.
si apreciamos cómo piensan y viven. Actuando de esta manera podre-
mos sentir verdadera empatía por ellos, y como consecuencia resolver de Rapid Contextual Design. Con este método puedes observar usuarios
manera efectiva los problemas que enfrentan diariamente a través de la en su propio ambiente. El objetivo es entender cómo las personas inte-
tecnología que desarrollemos. ractúan con tu producto en un contexto real. Haciendo las anotaciones
necesarias puedes tener una idea más clara del problema a resolver. Para
Destinar tiempo para realizar investigación de usuario utilizando un mar- generar ideas de diseño las observaciones se interpretan mediante el uso
co metodológico, nos provee un punto de referencia más realista. Nos de herramientas de análisis tales como diagramas de afinidad. De esta
permite ejecutar de una manera más certera esa idea genial que tenemos, manera compruebas si tu producto está acorde al comportamiento de tus
pero esta vez, acorde al modelo mental y estilo de vida de nuestros usua- usuarios [2].
rios. La investigación de usuarios es el fundamento principal del diseño de
experiencia del usuario (UX Design). Rapid Paper Prototyping + Usability Testing. Existen requisitos mínimos
que un producto de software debe contemplar para que los usuarios pue-
Como bien dice Hoa Loranger: “UX sin User Research no es UX” [1]. Sin dan completar la tarea que tienen en mente. Si deseas aprender sobre el
conocer para quiénes estamos diseñando, y sus particularidades de com- desempeño real de tu producto necesitas realizar pruebas de usabilidad
portamiento, no podremos llegar a una solución efectiva. La investigación regularmente. Puedes probar tus ideas tan pronto como tengas el primer
disuelve la contradicción. boceto en papel. Esta es una manera eficaz para:
1. Descubrir qué tan difícil es para tus usuarios aprender a usar tu producto.
La investigación de usuario se puede incluir en el desarrollo de productos 2. Conocer qué obstáculos enfrentan al momento de completar tareas.
de software en cualquier ambiente, incluyendo Agile. UX Research no es 3. Identificar problemas de usabilidad a un bajo costo y a tiempo.
enemigo de Agile. Incluso son compatibles ya que ambos enfoques bus- 4. Evitar desperdiciar recursos de desarrollo o diseño en features que
can prototipar, descartar y/o validar ideas. La variedad y formato de los no funcionarán.
038 SG.47
UX P
Misael León (@misaello) es UX Design Researcher en Nearsoft, Inc. una empresa de cultura democrática que desarrolla software y produce clientes felices. Es colaborador del UX Clinic,
una iniciativa dedicada a difundir las mejores prácticas de UX. Es fanático de los libros, el cine, los chocolates. Promotor de la filosofía del asombro.
SG.COM.MX 039
P TESTING
Sobre
Nuestra Misión
como Testers —
Por Pilar Barrio
Seguramente lo primero que nos han transmitido o se nos ocurre es El “no pensé que iban a probar a este nivel de detalle” o “no pensé que
que nuestra misión es encontrar defectos y/o lograr entregar aplicaciones iban a probar esto” o frases similares, son objeciones que típicamente
libres de defectos. aparecen cuando algunos miembros del equipo de proyecto no entienden
por qué estamos ahí, pero también reflejan que los primeros que tene-
Pero esto es sólo una pequeña parte y es una visión muy acotada del apor- mos que tener clara nuestra misión somos nosotros, para aplicar nuestras
te de valor que nuestro trabajo puede brindar a una organización si es bien mejores técnicas, prácticas, herramientas, imaginación, conocimientos,
entendido y encarado (y recordemos que no existen aplicaciones libres de ética, para lograr cumplir esa misión.
defectos, a lo sumo, si hacemos bien nuestro trabajo, estarán libres de los
defectos importantes y relevantes para los interesados). El testing es un servicio. Dada esa definición, para poder brindarlo “con
calidad” (o sea cumpliendo las expectativas del cliente) necesitamos:
Por otra parte, fuera de considerar únicamente lo que nosotros pensamos • Entender expectativas y objetivos del cliente y otros interesados (pue-
que es testear, debemos tener en cuenta qué esperan de nuestro servicio o den ser diferentes).
actividad quienes nos contratan o convocan, qué expectativas tienen: • Cuestionar y evaluar el producto.
• ¿Por qué una organización cree que es valioso tener un área de testing o • Focalizar los riesgos, entender y gestionar los cambios que afecten al
contratar ese servicio en un proyecto? servicio (en el proyecto, el producto, el contexto).
• ¿Qué espera obtener como retorno de su inversión en el área o el servicio? • Investigar, explorar, brindar y facilitar la retroalimentación.
- Mejor calidad en sus productos, • Confirmar, comunicar.
- Clientes o usuarios satisfechos, • Proveer información relevante para la toma de decisiones, a distintos
- Software “cero defectos”, niveles de interesados.
-… • Aprender, seguir capacitándonos.
- Todas las respuestas anteriores…
• ¿Qué espera que hagamos? Así ayudaremos a completar el proyecto entregando un producto útil y
- Prueba durante el ciclo de vida de desarrollo de un producto, exitoso para todas las partes. Para lograrlo es fundamental una buena co-
- Prueba de homologación de un producto adquirido, municación y relación con todos los interesados por parte del equipo de
- Pruebas de atributos de calidad específicos, seguridad, perfor- proyecto, así como lo es entender el beneficio que brindará al negocio.
mance, otros,
-… La buena comunicación ayudará a lograr que los interesados transmitan
- Todas o algunas de las respuestas anteriores… mejor sus expectativas y necesidades, se involucren más en el día a día
del servicio y reciban finalmente un producto que perciban como de cali-
Difícilmente podemos cumplir los objetivos de quienes nos convocan o dad, sin tantos tropiezos.
contratan, sean clientes internos o externos a nuestra organización, si no
identificamos claramente nuestra misión: En relación a estos puntos, habría seguramente mucho más que decir y
cada uno puede tener su propia visión.
Qué tipo de testing tenemos que ejecutar, en qué contexto, en qué mo-
mento del proyecto / ciclo de vida del producto, con qué restricciones y A quienes les interese reflexionar más sobre este tema, les recomiendo la
recursos, con qué objetivos. discusión “Question: Tester’s Freedom of Thought” [1] en el blog de James
Bach, que aunque es de 2006, sigue siendo muy valiosa.
En otras palabras, si no entendemos para qué nos llaman, no podremos
cumplir las expectativas. Las expectativas y las percepciones del cliente
y otros interesados podrían entonces diferir mucho, con lo que podrían
concluir que hacer testing no aporta valor, o que nuestros servicios no
aportan valor.
—
Y esto es a mi criterio uno de los orígenes de la “resistencia” que encon- Referencias
tramos en algunos proyectos y una posible fuente de malentendidos o [1] J. Bach. “Question: Tester’s Freedom of Thought”.
conflictos entre los integrantes de un equipo de proyecto. http://www.satisfice.com/blog/archives/61
Pilar Barrio la Iglesia es socia fundadora de RMyA S.R.L., especializada en consultoría sobre aseguramiento de calidad y testing.
pbarrio@rmya.com.ar
040 SG.47
VOCES V
En números anteriores de SG, Sandra Berenice Ruíz com- técnicas rudimentarias que están poco dispuestos a dejar, Carlos González cuen-
partió un interesante artículo sobre las retrospectivas y ten- mientras que los integrantes jóvenes tienen una forma- ta con experiencia en la
dencias sobre testing y nos hacía la invitación a dar pasos ción poco robusta (consecuencia de lo que comento en implementación de pro-
firmes hacia los nuevos retos que ya se están presentando el punto anterior). Básicamente, el grueso de nuestros cesos y metodologías de
en la industria. Sin embargo, nuestro día a día nos hace for- testers aprendió a trabajar en base a sentido común y sus prueba, certificado por el
mularnos la pregunta: ¿realmente estamos impulsando un necesidades específicas, es decir que solamente cuentan ISTQB y conferencista en
testing de calidad? con una formación empírica. Entre otras cosas, esto pro- SGCE 2014. Creador de la
voca discrepancia en la forma de trabajar entre distintos iniciativa Latin American
No se trata solamente de hacer presencia, certificar gente testers. Un ejemplo de ello es la gran diferencia que suele Software Testing (http://
o abrirnos camino. Se trata, incluso, de ser ejemplo a otras existir al diseñar casos de prueba, lo que provoca proble- testingla.com) la cual
áreas en la empresa de que nuestro trabajo es de calidad, y mas de entendimiento; genera retrabajo, falsas estimacio- busca establecer crite-
que genera un verdadero valor. nes, y retrasos en la ejecución. rios sólidos para el de-
sarrollo y madurez del
México ha hecho un muy buen esfuerzo al ser el segundo Matando a la hormiga, no al hormiguero testing en Latinoamérica.
país en Latinoamérica con mayor número de certificados por Los perfiles formados en testing “a prueba y error”, la rea- Actualmente se desem-
el ISTQB en el nivel de fundamentos, lo que nos deja ver el lización de tareas rutinarias y una cultura de corregir en peña como Tester en
crecimiento y especialización de nuestra área. En este creci- lugar de prevenir repercuten en nuestros procesos actuales MTP México.
miento se vuelve fundamental que los que estamos involu- de calidad. Seguimos con la idea de que el testing consiste
crados seamos evangelistas y no sólo creyentes. El reto ya no principalmente en detectar defectos de software, creando
es poder aterrizar al testing, es ser autocríticos y perfeccio- así una mentalidad de que la detección de defectos es el fin,
nar lo que ahora realizamos para lograr mejores resultados. cuando en realidad sólo es el medio para llegar a la preven-
Sobre todo, sabiendo que nuestro país ha dado pasos impor- ción de defectos.
tantes en materia de competitividad TI en el mundo.
Organizaciones y procesos no diseñados
Es con este afán que expongo a continuación cuatro rasgos para testing
negativos que en general he detectado en organizaciones de En organizaciones poco maduras, los procesos y estructura
software en nuestro país y que considero que debemos co- no tienen considerados a los equipos y actividades de tes-
rregir para poder mejorar el nivel e impacto del testing. ting, por lo que se terminan incorporando “con calzador” y
con resultados de poco impacto. Toda organización debe
No se reconoce la especialización preguntarse qué es lo que se pretende al incorporar a un in-
del perfil de tester geniero de pruebas o a todo un equipo, y cómo van a sopor-
Desafortunadamente, en México todavía predomina la per- tar los esfuerzos de dicho equipo.
cepción de que para dedicarse al testing no se requieren co-
nocimientos y aptitudes específicas y por lo tanto cualquie- Algunas de las preguntas que pueden surgir como resultado
ra puede dedicarse a el testing. Muestra de ello es que se de este ejercicio son:
siguen solicitando testers sin conocimientos en estándares, • ¿Mi proceso de desarrollo tiene la flexibilidad para integrar
mejores prácticas, aptitudes específicas, e incluso sin tener un equipo de pruebas?
una formación en TI. Esto es señal de una baja madurez de • ¿Cuánto presupuesto vamos a disponer para herramientas
esta práctica en nuestra región. de testing?
• ¿Qué actividades harán los testers? ¿Aporta calidad que
Formación empírica los testers también modifiquen código, realicen análisis, de-
Al trabajar con distintos equipos de testing a través de finan requerimientos, etc.?
los años, con frecuencia me he encontrado con que los • ¿Qué aspectos probaremos y qué prioridad daremos a cada
profesionistas con mayor experiencia siguen procesos y uno? ¿funcionalidad?, ¿desempeño?, ¿seguridad?
SG.COM.MX 041
P MAKER ZONE
Generación de
Mapas de Alta Resolución
con Drones —
Por Quauhtli Martínez
Componentes de un dron
Antes de entrar en detalle, es importante dar a conocer cómo está cons-
truido un dron comercial. A grandes rasgos, consta de los siguientes
componentes:
• Motores. Figura 1. Dron con montaje de cámara.
• Carcaza (frame).
• Hélices (propellers).
• Distribuidores de corriente eléctrica (Power Board).
• Controladores de velocidad (Electronic Speed Controls). 3. Ejecución del vuelo y captura de imágenes aérea.
• Radio transmisores/receptores por radiofrecuencia. 4. Procesamiento de imágenes y validación de la calidad.
• Controlador de vuelo (Flight Controller) con puertos de entrada y salida 5. Generación del modelo tridimensional y análisis.
para conectar los diferentes dispositivos.
• Baterías y sus respectivos cargadores. Inspección física del espacio a volar
En la primera etapa se realizó la inspección física del espacio a volar con
Adicionalmente, existe una gran cantidad de componentes y opciones el objetivo de identificar elementos físicos que pudieran causar una in-
para tareas específicas, tales como sensores de diversos tipos (posicio- terrupción no deseada al vuelo del dron, por ejemplo, árboles muy altos,
namiento, temperatura, presión, etcétera), cámaras, pinzas electromecá- antenas, fuentes de electromagnetismo, edificios, etcétera.
nicas, sistemas de telemetría, por mencionar algunos.
Con esta inspección fue posible detectar una antena cuya altura llegaba
Caso de estudio hasta los 30 metros de altura, parámetro que se utilizó como base para
En el presente caso de estudio se utilizó un dron tipo “cuadricóptero”, con programar posteriormente el vuelo del dron a una altura de 40 metros
un controlador de vuelo (“Pixhawk”) con capacidad de ejecutar vuelos au- para estar siempre por encima de la antena.
tónomos a través de coordenadas geo-referenciadas vía GPS. Las imáge-
nes se capturaron con una cámara Canon S100 modificada (vía software) Planeación y diseño de vuelo
que guarda la latitud, longitud y altura del punto geográfico donde fue Una vez realizada la inspección física, se llevó a cabo la planeación y el di-
tomada cada fotografía. La cámara se instaló en el cuadricóptero utili- seño del vuelo, así como la configuración de los parámetros de fotografía,
zando un soporte especial diseñado e impreso a la medida mediante una los cuales son adaptados a las distintas condiciones del plan de vuelo, por
impresora 3D. La figura 1 muestra el dron utilizado, el objeto azul en la ejemplo: la superficie a cubrir (que afecta a la rapidez con la que se deben
parte inferior del dron es el montaje con la cámara, cuyo detalle se mues- tomar las fotografías), la velocidad de vuelo, la luz del día del vuelo (que
tra en el recuadro. afecta a los parámetros del obturador de la cámara), entre otros.
El área de vuelo corresponde a un parque público en construcción en la Para esta fase, se utilizó una aplicación compatible con el controlador de
ciudad de Navojoa, Sonora. vuelo del dron, esta aplicación se conoce como “Mission Planner”, es de
código abierto y está disponible para la comunidad interesada. Dadas las
El procedimiento utilizado para la obtención de la ortoimagen y del mo- restricciones del tiempo de vuelo por batería del dron (10-15 a quince mi-
delo tridimensional del parque en construcción contó con cinco etapas: nutos por cada carga), la zona de vuelo que consta de un perímetro aproxi-
1. Inspección física del espacio a volar. mado de 313 metros x 190 metros se dividió en dos partes para poder hacer
2. Planeación y diseño de vuelo y parámetros de fotografía. un intercambio de baterías una vez terminada la primera parte del vuelo.
042 SG.47
MAKER ZONE P
Una vez que el plan se envió al dron, se ejecutó el vuelo de manera autó- Figura 4. Puntos donde se tomaron las fotografías.
noma, con el intervalómetro de la cámara accionado para tomar las imá-
genes cada 3 segundos. Esto significaba que, una vez despegado, el dron
alcanzó cada punto geo-posicionado sin necesidad de ser controlado por
el piloto a través de un control remoto con radio-frecuencia, A partir de estas fotografías, la aplicación realizó un intenso procesa-
miento en el que analizó cada pixel de cada una de las imágenes captu-
Se utilizó el Mission Planner para supervisar en tiempo real las condicio- radas en el cual encuentra similitudes y continuidades; con ello, la apli-
nes del UAV durante el vuelo, así como para validar la trayectoria que cación, crea un mosaico en el que queden unidas todas las fotografías
seguía, entre otros datos. En la figura 3 se muestra un ejemplo de cómo se en una única imagen, manteniendo la coherencia y la resolución en la
obtiene la información en vivo del dron en un vuelo autónomo. imagen final (ortoimagen).
SG.COM.MX 043
P MAKER ZONE
Para verificar la calidad de la imagen final, además de revisar ocularmente conservación de sitios arqueológicos, de hecho, ya hay empresas que se
la ortoimagen generada, es posible verificar vía la herramienta el traslape dedican exclusivamente a ofrecer servicios para la arqueología utilizando
de imágenes (el cual se buscó que fuera de un 80%). En la figura 5 se drones y fotografía aérea geo-referenciada [3].
puede observar el nivel de traslape obtenido con las imágenes captura-
das. Las áreas rojas muestran los puntos donde sólo se utilizó una imagen; Por otro lado, para tener una mayor precisión en la generación de un mo-
y las áreas azules oscuro, más de 9 imágenes. Al tomar una muestra de delo tridimensional y en una ortoimagen, es importante recalcar la im-
cada una de las zonas se pude observar el porqué de las variaciones en el portancia de la fase de captura de imágenes. En el caso estudiado en este
traslape: en la parte coloreada con verde intenso, se observa que el dron artículo, el modelo tridimensional generado no fue lo suficientemente
capturó más imágenes que en la parte de color amarillo. rico como para ser utilizado en una aplicación profesional, debido a que
no hubo suficientes imágenes para generar los volúmenes de los objetos
De manera general, el porcentaje de traslape obtenido fue lo suficientemen- contenidos en la imagen con una mayor precisión, para ello es necesario
te bueno para generar una ortoimagen coherente y con calidad suficiente fotografiar el sitio a diferentes alturas y perspectivas.
para realizar este estudio. Para trabajos que requieren una mayor calidad,
este porcentaje de traslape probablemente no hubiese sido suficiente. Finalmente, el uso de drones para la construcción de ortoimágenes y mo-
delos tridimensionales a escala, ya es algo al alcance de cualquier usuario
Generación de modelo tridimensional y análisis que pueda adquirir equipo como los que se utilizaron en este estudio (2
Una vez construida la ortoimagen, se generó a través de la misma he- mil dólares aproximadamente, incluyendo la cámara), siendo esto algo muy
rramienta el modelo tridimensional, el cual, añade volumen a los obje- novedoso, con múltiples aplicaciones y con el potencial para generar nue-
tos de la ortoimagen. Este modelo puede ser exportado y utilizado en vos negocios en estos momentos.
cualquier otra herramienta para manipulación de imágenes tridimen-
sionales. En este caso, se utilizó el servicio en la nube Sketchfab para —
que el modelo pudiera ser consultado vía web a través del siguiente Referencias
sitio web http://goo.gl/3oCgta. [1] Orto-imagen del parque.
https://mangomap.com/maps/34662/Mapa-Parque-Navojoa
Conclusiones [2] Modelo tridimensional del parque. http://goo.gl/3oCgta
Al tener una imagen geo-referenciada y un modelo tridimensional a esca- [3] Aerial Digital Archeology & Preservation. http://dronearchaeology.com
la, es posible utilizar estos modelos para diferentes propósitos. Por ejem- [4] Mission Planner. http://planner.ardupilot.com
plo, en la construcción y arquitectura, estas imágenes pueden ser impor- [5] Agisoft PhotoScan. http://www.agisoft.com
tadas en aplicaciones tipo CAD o GIS para realizar diferentes mediciones [6] Protocolo MavLink. http://qgroundcontrol.org/mavlink/start
como superficies, distancias y volúmenes, además de la posibilidad de [7] Controlador de vuelo PixHawk. https://pixhawk.org/
inspeccionar visualmente el avance de la obra y detectar anomalías que, a [8] Canon Hack Development Kit. http://chdk.wikia.com/wiki/CHDK
simple vista, no podrían ser detectadas debido a la perspectiva a nivel de [9] KAP UAV Exposure Control Script.
suelo que comúnmente se tiene. Otro ejemplo de caso de uso, sería en la http://chdk.wikia.com/wiki/KAP_UAV_Exposure_Control_Script
Quauhtli Martínez (@quauhtlimtzz) es director en SOA Software Factory y cofundador de Droneware, empresa especializada en la creación de soluciones usando drones.
http://droneware.mx
044 SG.47
ALGORITMIA P
Cinco
Problemas
para Menos de 1 Hora —
Por Pedro Galván
Como parte de la revisión editorial que estamos haciendo en Software 5. Usando los números del 1 al 9 en orden consecutivo, podemos realizar
Guru, hemos decidido abrir una nueva sección dedicada a algoritmia y 3 operaciones entre cada dígito: suma, resta o concatenación, para que el
programación. Conforme buscaba contenido para esta sección, me reco- resultado de las operaciones conjuntas de como resultado 100. Por ejem-
mendaron un artículo del blog de Santiago L. Valderrama [1] donde co- plo: 1+2+34-5+67-8+9=100. Entonces, escribe un programa que encuen-
menta que le sorprende que una gran cantidad de personas que hoy en tre todas las posibilidades de realizar esto.
día aplican para posiciones de ingeniero de software, en realidad no saben
programar. En sus palabras: Los primeros 3 problemas son muy sencillos, el cuarto tiene un poco de
jiribilla y el quinto sí es más complicado. Personalmente, creo que quien
“Imagino que es aceptable aplicar para una posición de desarrollador web pueda resolver el quinto problema en menos de 1 hora, merece “puntos
si sólo sabes JQuery, pero ¿desde cuándo “ingeniero de software” significa extra”, pero no descartaría a quienes no puedan hacerlo.
que basta con saber HTML, Javascript y CSS?
En las referencias de este artículo encontrarás enlaces a ejemplos de solu-
Espero que quienes aplican a mi vacante de ingeniero de software, puedan ción que Santiago sugiere para los problema 4 y 5. Antes de consultarlas,
realmente programar. Es decir, que reciban un problema y programen una te invito a que intentes resolver los problemas por tí mismo y solo consul-
solución utilizando cualquier lenguaje de programación que quieran”. tes la solución hasta que hayas terminado o te hayas rendido.
Concuerdo con Santiago, y justamente es el espíritu de esta nueva sec- En futuras entregas de esta sección encontrarás artículos donde revisare-
ción en SG. mos problemas de programación y estrategias para resolverlos.
Para poder evaluar si alguien sabe programar o no, Santiago plantea un Te invito a que compartas tus soluciones como comentarios en la versión
reto con 5 problemas, indicando que un verdadero “ingeniero de soft- online de este artículo, publicada en http://sg.com.mx/revista/47/
ware” debería ser capaz de resolverlos en 1 hora. cinco-problemas-para-menos-1-hora
Comparto a continuación los problemas que plantea Santiago, y los Spoiler alert: En el caso del problema 4 verifica que tu solución sea capaz
invito a que los resuelvan utilizando el lenguaje de programación de de soportar el escenario en el que recibe una lista como [5, 50, 56]. El
su preferencia. resultado correcto en este caso no es 56505 sino 56550. Así que vas a
tener que hacer algo más que una simple comparación de strings.
1. Escribe 3 funciones que calculen la suma de los números en una lista.
En la primer función utiliza un ciclo for, en la segunda un while, y en la
tercera recursividad.
2. Escribe una función que combine dos listas alternando los elementos
de cada una. Por ejemplo, si tenemos las listas [a, b, c] y [1, 2, 3] la función
debería regresar [a, 1, b, 2, c, 3].
3. Escribe una función que calcule la lista de los primeros 100 números
Fibonacci. Por definición, los primeros números de la secuencia son 0 y 1, y —
cada número subsecuente es la suma de los dos anteriores. Referencias
[1] S. Valderrama. “Five Programming problems every Software Engineer should be able
4. Escribe una función, que dada una lista de enteros no negativos, los or- to solve in less than 1 hour”. http://swgu.ru/pu
ganice de manera que forman el número más grande posible. Por ejemplo, [2] S. Valderrama. “Solution to problem 4”. http://swgu.ru/pv
dada la lista [ 50, 2, 1, 9] el resultado sería 95021. [3] S. Valderrama. “Solution to problem 5”. http://swgu.ru/pw
SG.COM.MX 045
V VOCES
Victor Jesús Hernández En el artículo anterior “Cuestionamientos y servicios”, opción que deberá desecharse y pasar a la siguiente. Puede
Salinas es Coordinador tratamos las consideraciones para lanzarse a la aventura de sonar complicado de lograr considerando que las condiciones
de Servicios de desarrollar un producto (desarrollo software más los servi- de mercado, tecnológicas, legales, entre otras; no son cons-
Productos en INFOTEC. cios que lo respaldan), y ahora continuaremos con algunos tantes y cambian frecuentemente. Lo que hoy funciona, puede
Desde 2003 colabo- otros puntos que se deben considerar para el financiamiento no hacerlo mañana. Pero lo importante es asegurar que todas
ra en INFOTEC en el y el desarrollo del modelo de negocio. las acciones a realizar antes, durante y después del desarrollo,
equipo de Desarrollo contribuyan a lograr las condiciones mencionadas.
de Nuevos Productos y Comencemos con la parte del financiamiento, pues es aquí
Servicios. Fue creador y donde la mayoría de las grandes ideas terminan. Por supuesto, Algunas sugerencias de condiciones del modelo de negocio
Coordinador del área de conoces los métodos de financiamiento tradicionales con pla- que propongo deben incluir:
servicios a producto y su zos y tasas de interés considerables, por lo que muchas per- • Desarrollar poniéndose en los zapatos del cliente (cómo
normatividad. Es además sonas y empresas optan por no entrar en ellos y si lo hacen es nos gustaría que nos sirviera el producto si nosotros lo tuvié-
coordinador del progra- con mucha cautela. Sin embargo, en México existen distintos ramos que comprar).
ma de certificaciones programas federales o estatales (Según INADEM más de 100) • Planear la trayectoria completa de satisfacción del cliente
para SWB. destinados al apoyo de la innovación y desarrollo tecnológico (expectativas vs experiencias). Desde el “coqueteo” con el
por medio de subsidios, créditos, asesorías, capacitaciones o cliente, hasta que nos compra y cómo nos recomendará con
becas, los cuales (lamentablemente) no reciben la difusión sus amigos.
adecuada. Estos programas, podrían ser un buen mecanismo • Al pensar en el precio, debemos recordar que valor y costo no
de financiar tu proyecto, pues aunque deben cumplir diversos son lo mismo, y que el mismo producto tendrá percepciones de
requisitos y en algunos casos contar con la colaboración de valor distintas para cada cliente, por lo que diferenciar y segmen-
instituciones educativas o de investigación, el concursar por tar mercados puede ser una buena opción.
dichos recursos puede ser una excelente opción para buscar • Disponer canales de comunicación directa y bidireccio-
fuentes, no sólo de financiamiento, sino de recursos técnicos nal con los clientes, permite crear comunidades, mejora la
que quizás no podrías disponer de manera regular. atención y el servicio al cliente y principalmente, fomenta la
creación de “fans” de la marca, que al final se convertirán
Tan solo algunas de las dependencias que ofrecen este tipo en evangelistas, que son aún más valiosos que los clientes,
de programas son: INADEM, CONACYT (en colaboración con pues ayudarán a vender el producto por convicción y gusto
distintas entidades), PROSOFT, MexicoFIRST, o dependencias (y gratis).
estatales equivalentes. Sugiero entonces, acercarse a la cabe-
za del sector del área de aplicación de tu producto e investigar Otro aspecto a considerar al planear el modelo de negocio para el
sobre dichos programas, así como las fechas de publicación producto implica el tipo de servicios que se ofrecerán para respal-
y registro a los mismos (pero no te quedes en recepción, ve dar al mismo, y es importante considerar que aunque no se libe-
directo a las áreas de comunicación o de programas sociales). ren todos al mismo tiempo o en la magnitud deseada al momen-
to del lanzamiento, sí deben incluirse los más representativos y
Ahora bien, supongamos que ya se resolvió el financiamien- en consecuencia, se deberá contar con el suficiente personal ca-
to y estás listo para arremangarte la camisa y comenzar a pacitado y recursos técnicos y financieros necesarios para poder
trabajar. Uno de los primeros requisitos a resolver tanto para otorgarlos debidamente. Debe haber también, una proyección de
la parte financiera, como para la sustentabilidad del proyec- tiempo de cuándo y cómo se lanzarán los servicios adicionales
to, es el modelo de negocio que decidas adoptar. En lo per- que apoyen al posicionamiento del producto.
sonal me gusta pensar que un modelo válido y funcional es
el propuesto por la “Teoría de Restricciones” donde sostiene Conclusión
que deben cumplirse tres condiciones básicas: Recuerda que las marcas no son razón suficiente de compra
1. Asegurar la satisfacción presente y futura de los clientes. mientras no estén respaldadas por un valor real para el clien-
2. Asegurar la satisfacción y estabilidad presente y futura de te y que por tanto, el entender debidamente las actividades
los trabajadores y colaboradores. que éste realiza, así como su experiencia con nuestro pro-
3. Asegurar la satisfacción presente y futura de ducto (software y servicios) debe ser la guía para determinar
los inversionistas. muchas de las características básicas a incluir en el modelo
de negocio. Sin olvidar, que el producto debe enfocarse en
El postulado es, que si tu modelo de negocio no cumple con resolver las necesidades no sólo del cliente directo, sino del
alguna de estas condiciones en cualquier momento, es una cliente del cliente.
046 SG.47
C PROGRAMAR ES UN MODO DE VIDA
Sí, no hay ni cómo esconderlo. Tiene ya varias décadas Pero bueno, acortando la historia … de desarrollar mis apli-
que me apasionó comprender lo que pasa dentro de una caciones completas con el lenguaje Perl, cabalgando a pelo
computadora, cómo opera su aparente magia. Y cuando sobre el API de Apache, me subí al tren de Ruby on Rails. Y
aprendí, cuando muchos de nosotros aprendimos, incluso un disfruté muchísimo de las posibilidades que me brindó esta
niño de diez años podía comprender cómo operaban ciertos experiencia: una programación más limpia, orientada a ob-
procesos, si bien tal vez no a nivel electrónico, sí a partir de jetos. Configuración por convención. Muchas muy buenas
una visión muy cercana. Piensen, por ejemplo, en qué tan prácticas de desarrollo, y un marco de desarrollo con opinio-
Gunnar Wolf es a profundidad podía un niño de los ochenta conocer a una nes propias que me marcó cómo estructurar mi desarrollo. Y
administrador de sis- magnífica Commodore 64, e incluso cuánto puede haber sí, las aplicaciones resultantes eran comprensiblemente más
temas para el Instituto aprendido con una PC. Recuerdo largas horas de leer docu- rápidas de desarrollar, y al tener el comportamiento base
de Investigaciones mentación, modificar binarios a mano con un editor hexade- resuelto, me topé con muchos menos errores lógicos en las
Económicas de la cimal para cambiar las cadenas que presentaban al usuario, capas más bajas.
UNAM y desarrollador buscando comprender todo lo que veía —simplemente, por-
en el proyecto Debian que era posible hacerlo. Pero la vida sobre un framework también trae sus desen-
GNU/Linux. cantos. En mi caso, me topé con los primeros al encontrar
http://gwolf.org Con el tiempo, el mundo ha ido cambiando. Y yo también. la cantidad de código que había que reescribir cuando Rails
Al volverme un miembro útil a la sociedad, como les ha- pasó de su versión 1 a 2, de 2 a 3. Como es de esperarse, los
brá pasado a ustedes también, fui eligiendo mi nicho eco- cambios que introducen las versiones mayores no son com-
lógico: desarrollo de aplicaciones web y administración patibles hacia atrás, y buena parte de mi código histórico iba
de sistemas. Primero, exprimiendo los detallitos que me emitiendo advertencias por usos desaconsejados — O rom-
ofrecía cada pedacito del protocolo… Aunque recuerdo piéndose por completo. Y entre más sistemas desarrollaba,
muy bien una discusión con un colega: yo era bastante menos tiempo tenía para mantenerlos a todos al día.
reacio a emplear frameworks de desarrollo precisamen-
te porque, al automatizar las tareas repetitivas, esconden La respuesta de la comunidad Rails a mis cuitas es relativa-
del programador su funcionamiento real, y dificultan tener mente simple. Un sistema que ya está en producción no re-
verdadero control de lo que hacen, pero él me mostró las quiere ser actualizado. El programador puede congelar el sis-
ventajas que conllevan. tema base y las gemas (bibliotecas) que emplea, y convivir
048 SG.47
PROGRAMAR ES UN MODO DE VIDA C
fácilmente en el mismo sistema con otras aplicaciones Rails de lo que estamos haciendo, nuestros programas van a re-
— Incluso si estas usan otras versiones de prácticamente sultar de muy baja calidad.
todo en el sistema.
Si nos olvidamos que a fin de cuentas todo nuestro código se
En ese momento, comenzó una lucha interior, entre mi Dr. traduce a instrucciones de muy bajo nivel, si nos olvidamos de
Jekyll, un administrador de sistemas que prepara las cosas y, cuidar la eficiencia de los cachés y de reducir accesos a disco,
con la cabeza fría, mantiene una visión consistente y coheren- si no tenemos en cuenta el costo de cada llamada al sistema,
te del conjunto, y mi Mr. Hyde, un programador que quiere vivir si no consideramos la necesaria sincronización en problemas
al límite probando las últimas versiones del último grito de la que enfrentan concurrencia… Vamos a terminar creando código
moda, cambiando de arquitectura subyacente, abandonando lento y frágil. Vamos a terminar siendo malos desarrolladores.
a FCGI por Mongrel, a Mongrel por Thin, a Thin por Passenger,
incorporando a Rack… Y claro, encarnando a esa aberración Entonces bien, el motivo de esta columna no es llamar a que
de la que hablaremos en otra ocasión que hoy deambula libre- abandonemos las herramientas que facilitan nuestra tarea.
mente: el temido DevOps, criatura que encarna lo más obscu- Los frameworks no únicamente son cómodos, sino que son
ro tanto de desarrolladores como de administradores. necesarios para la realidad del desarrollo de software hoy en
día. Pero debemos mantener en mente, siempre, la impor-
Y ojo, me centro en este aspecto porque mi Dr. Jekyll es ad- tancia de comprender qué pasa. Si hay un comportamiento
ministrador de sistemas. Pueden imaginar lo que diría uno con dado que parece mágico, ese es el punto donde debemos
formación de DBA al ver el caos resultante del ORM: ¿Cómo revisar el código fuente del framework y averiguar cómo está
se crea mi esquema de datos? ¿Dónde están las verificaciones haciéndolo. Porque sólo de esa forma podremos sacar el pro-
de integridad? ¿Cómo se generan las consultas para cada una vecho correcto del sistema — y escribir mejor código, que a
de las operaciones que el buen ActiveRecord realiza? fin de cuentas, por eso nos hacemos llamar profesionales.
En fin, podemos recordar esa máxima de la ciencia de la Entonces, vestidos de investigadores privados y lupa en mano,
computación, que he visto atribuída tanto a David Wheeler ¡vamos a investigar implementaciones! ¡Disfruten el viaje!
como a Butler Lampson: Todos los problemas en la ciencia
de la computación pueden resolverse con un nivel adicional
de indirección — a excepción del de tener demasiados nive-
les de indirección. Si alguno de ustedes se siente identificado con este disfrute
histórico, no puedo dejar de invitarlos a una de las lecturas
Mientras esa pelea ocurría en mi yo desarrollador, muchos que más he disfrutado en los últimos meses. Un libro titula-
otros importantes cambios se presentaron en mi vida. Uno do sencillamente «10 PRINT CHR$(205.5+RND(1)); : GOTO
de ellos, me convertí en profesor en la Facultad de Ingeniería 10», y que pueden descargar gratuitamente de http://10print.
de la UNAM. Imparto una materia que siempre me emocio- org. Este libro aborda muy distintos aspectos que se des-
nó: Sistemas Operativos. He disfrutado muchísimo con la prenden de la línea de BASIC que lleva por título; un análisis
preparación del material y con el dictado de las clases. En técnico, social, cultural, incluso artístico de esa era que a tan-
esta materia estudiamos las funciones básicas de todo siste- tos nos atrapó convirtió en lo que hoy somos.
ma operativo — Comunicación entre procesos, multiplexión
de recursos, organización de sistemas de archivos, gestión Como segunda nota recomendación literaria, el libro «Lauren
de memoria, etc. Ipsum: A story about computer science and other impro-
bable things» de Carlos Bueno (http://laurenipsum.org).
Conforme estudio y repito mi material, y conforme comento Aprender los fundamentos del cómputo siendo aún niño
al respecto con mis colegas, vuelvo a uno de los plantea- definió mi vida. Este libro presenta, a través de un cuento
mientos de origen que siempre hago a mis alumnos: no es- inspirado en Alicia en el país de las maravillas, conceptos
pero que de mi clase salgan autores de sistemas operativos; fundamentales de la ciencia de la computación: Problemas
sería un gran orgullo que así fuera, pero no es lo que la ma- clásicos, estructuras de datos, conceptos fundamentales,
teria persigue. Una de las principales razones para estudiar presentados con el cuento de una niña perdida en el bosque
esta materia es que, si no se comprenden los fundamentos de los árboles rojo-negros, buscando volver a casa.
SG.COM.MX 049
V VOCES
Carlos Perea es ¿Cuál es el resultado de que el hardware ceda el control la multiplicidad de funciones que exigen las nuevas redes, au-
Vicepresidente de los procesos a los componentes que se encuentran en ni- tomatizándolas tanto como sea posible.
de Ventas para veles superiores de sofisticación?, ¿cómo puede el software
Latinoamérica de tomar un papel más estratégico en la redes sin comprometer ¿Por qué los CIOs se sienten tan atraídos por el SDN?, se debe
Extreme Networks la seguridad e integridad de la misma? a que esta arquitectura ofrece tres aspectos fundamentales
que agregan valor a la red y la convierte en un activo estraté-
El Software Defined everything (SDx) se divide en varias ramas gico para la red:
clave para entender a dónde va este concepto: Software Defined
Storage, Software Defined Infrastrucure hasta el Software 1. Una administración mejorada que permita que las redes de
Defined Security y por supuesto, Software Defined Networks. las organizaciones evolucionen a la par de los nuevos modelos
Hablamos de una evolución tecnológica natural frente a un nue- intensivos de cómputo, tráfico y densidad; en adición a están-
vo paradigma en la industria: capacidad de adaptabilidad de la dares abiertos que no atan a los clientes a un solo fabricante.
infraestructura de red que genere valor al negocio, democratice el
uso de la red y se tenga una administración descentralizada pero 2. Un esquema ágil en el cual es posible que la red se modifi-
con una gran seguridad y estándares abiertos que no aten a los que de manera automática para cumplir con las exigencias de
CIOs a un fabricante, tal y como había venido dándose. Debemos los cambios, ya que las redes basadas en SDN son por mucho,
ser capaces de resolver los complejos retos a los que las empre- más flexibles que las administradas de forma tradicional.
sas y organizaciones se están enfrentando y hacer de sus redes
un activo estratégico de su negocio, no un gasto. 3. Una disminución sustancial en los costos operativos.
Automatizar funciones de la red permite esta disminución al mis-
Desde la concepción y nacimiento de las redes informáticas, su mo tiempo que mejora y aumenta la productividad del área de TI.
evolución ha estado marcada tanto por la respuesta a una de-
manda en innovación y síntesis en los procesos, como a la de pro- SDN con estándares abiertos
veer una multiplicidad de prestaciones y valores a los procesos de Desplegar una nueva aplicación SDN en una red existente,
negocio. Dada la complejidad pero alcance que han ido sumando regularmente es una tarea algo compleja. Las soluciones de
generación tras generación, las redes informáticas forman parte SDN con estándares abiertos permiten a los clientes contar
de la funcionalidad crítica de casi cualquier industria de todos los con estos servicios sin importar quien los provea. Un ejemplo
sectores productivos existentes. El surgimiento de tendencias es el ecosistema abierto que Extreme Networks propone, al no
tecnológicas como la virtualización y la migración a ambientes sólo estar probado en diferentes condiciones, sino que abre la
virtuales, Cloud Computing, patrones de tráfico en la red, BYOD puerta a nuevas aplicaciones que estén siendo desarrolladas
y Wi-Fi de alta densidad para un número cada vez más sólo de con estándares OpenDaylight.
dispositivos dentro y fuera de las organizaciones, son solo algu-
nos indicadores de que el paradigma de las redes informáticas tal Una plataforma de SDN debe ser simple, rápida e inteligente; que
cual lo conocemos hoy, necesita un cambio. pueda integrarse fácilmente a diferentes equipos y software de
otros fabricantes y no debe intentar amarrar al cliente con están-
Para satisfacer este cambio de paradigma en las redes in- dares cerrados que con el tiempo, serán caros y poco escalables.
formáticas, han surgido diferentes propuestas, entre las que
destacan las Redes Definidas por Software, o SDN. SDN es Plataformas basadas en estos conceptos, buscan hacer más
el resultado de más de seis años de trabajo de investigación, ágil la compatibilidad en infraestructuras multi-fabricante con
y en este tiempo se ha consolidado como una arquitectura lo estándares OpenFlow standard y otras API abiertas. El resulta-
suficientemente flexible y funcional como para permitir a los do es simple: una plataforma sin las limitaciones que común-
administradores de red gestionar y monitorear la infraestruc- mente se encuentran en otros modelos SDN en el mercado,
tura con una inversión de tiempo y recursos mínimos. muchos de ellos, no son aplicables y obligan a las organizacio-
nes a atarse a un mismo fabricante.
Sin embargo, a pesar de que SDN es capaz de resolver la ma-
yoría de los problemas que plantean las redes actuales en su Implementar una arquitectura de SDN de código abierto, per-
complejidad, el reto más grande que encaran hoy las empre- mite a cada cliente evolucionar su red conforme a sus propias
sas consiste en tener un acercamiento realista a esta arquitec- necesidades de seguridad, al ritmo que la complejidad y el
tura de forma rentable, sin tener que renovar totalmente su tamaño de la organización lo permitan y desde luego, siendo
infraestructura y obteniendo un mayor control posible sobre congruentes y realistas con los presupuestos asignados.
050 SG.47
F FUNDAMENTOS
Fig. 1. Funcionamiento
de PKI.
Certificados Digitales
—
Por Héctor Uriel Pérez Rojas
Seguramente en alguna ocasión has escu- mensaje enviado. Este es el principio en el cual framework, consiste en un conjunto de hardware,
chado acerca de los certificados digitales, por se basa la firma electrónica. software, gente, procesos y políticas que juntos,
ejemplo al navegar en internet, o al autentificar- permiten crear, administrar, distribuir, usar, alma-
te dentro del portal del SAT para realizar dife- Certificados digitales cenar y revocar certificados digitales.
rentes movimientos. En este artículo veremos Para entender de una forma práctica los certi-
qué son y cómo funcionan a grandes rasgos. ficados digitales, comparémoslos con los certi- La figura 1 ilustra el funcionamiento de dicha
ficados que se obtienen al concluir algún curso infraestructura. El proceso para obtener un cer-
Antecedentes o entrenamiento. Dichos certificados, gene- tificado digital, inicia con una petición hacia la
Hoy en día, como parte de la rama de la cripto- ralmente constan de un emisor (la institución Autoridad Registradora (RA), que es la encargada
grafía, existen dos tipos de algoritmos populares que emite el certificado), la persona a quien se de recibir todas las solicitudes. De igual forma, se
para cifrar información: simétricos y asimétricos. le reconoce, un sello, y en ocasiones, una fecha ocupa de validar la información real de la entidad.
de expiración. Lo mismo ocurre con los certifi- Si se tomara como ejemplo el caso del SAT, se va-
En los algoritmos simétricos se utiliza una mis- cados digitales, los cuales contienen los datos lidaría que la persona física o moral sea realmente
ma llave para cifrar y descifrar mensajes (por de quién ha emitido el certificado, los datos de quien acude a solicitar su par de llaves.
ejemplo cuando se comprime un fichero con la persona a quien validan para hacer uso del
una contraseña en WinRAR). Esto quiere decir certificado, una fecha de expiración, la llave pú- Una vez que se ha validado que el solicitante es
que tanto emisor como receptor, deben tener blica del propietario del certificado, una huella confiable, se procede a enviar la información de
la misma llave (contraseña) para cifrar/des- digital equivalente al sello oficial de la institu- éste a la Autoridad Certificadora (CA), la cual
cifrar los mensajes. El riesgo en este tipo de ción, entre otros datos opcionales. generará un nuevo certificado digital con la in-
cifrado reside en el hecho de que ambas partes formación del solicitante, así como información
deben compartirse la clave a través de algún Validación de un certificado digital sobre el uso del certificado, periodo de validez,
canal de comunicación, siendo éste la mayoría Se puede tener la certeza de que un certificado la huella digital, entre otros. Otro componente
de las veces inseguro. digital permanece íntegro, a través de la hue- clave es la Autoridad Validadora (VA), también
lla digital. Esta se obtiene generando un valor conocida como OSCP (Online Certificate Status
En cambio, en los algoritmos asimétricos cada hash tomando como base el propio certificado Protocol), un servidor cuyo principal objetivo es
uno de los participantes cuenta con una llave digital. Posteriormente, se aplica otra función mantener una base de datos con todos los cer-
pública y una llave privada. La llave pública matemática que usa la llave privada del emisor tificados emitidos por la CA, con su respectivo
puede ser compartida con aquellos remiten- para generar la huella digital. Esto ayudará a estatus (válido, revocado o desconocido). Esto
tes que requieran enviar un mensaje cifrado al que se pueda comprobar que el certificado digi- le permitirá a un tercero validar el estatus de
destinatario, mismo que sólo podrá ser desci- tal no haya sido alterado o dañado, dando como un certificado digital, y con esto determinar si
frado a través de la llave privada del destinata- resultado una comprobación de identidad. debe aceptarlo o no.
rio. Dicha clave, debe ser únicamente conoci-
da por el propietario. Infraestructura de Llave Pública (PKI) Conclusión
Los certificados digitales más conocidos, se basan Continuamente compartimos información sen-
Si por otra parte, el propietario de las llaves en el estándar denominado X.509, y que se en- sible a través de internet apoyándonos en cer-
desea publicar un mensaje, deberá cifrarlo con cuentra en la versión 3. El estándar X.509, es parte tificados digitales. Es importante que entenda-
su clave privada, para que aquellos que cuen- de un framework denominado Infraestructura de mos cómo funcionan y el papel que juegan en
ten con su llave pública, puedan descifrar el Llave Pública (PKI por sus siglas en inglés). Dicho los esquemas de seguridad.
Héctor Uriel Pérez Rojas es maestro en Ciencias de la Computación con especialidad en Ingeniería de Software por parte del CENIDET. Es socio fundador de Grupo Empresarial
Multidisciplinario IASEC. www.iasec.com.mx
052 SG.47
CARRERA H
Dentro de las certificaciones que se manejan condiciones para dar por buenas cada una de Para apoyar a la organización a formar un
en el mercado para desarrollo de software, ellas. Adicionalmente se revisan las responsa- equipo de pruebas con parámetros de conoci-
se encuentra la del área de pruebas o testing bilidades de todo aquel involucrado en el pro- miento homogéneo es recomendable que sus
con el ISTQB (International Software Testing ceso de pruebas. equipos lo formalicen a través de la certifica-
Qualifications Board). ción. El equipo de pruebas crecerá y generará
Técnicas de diseño de pruebas. Se revisa el más valor para el área de tecnología, lo cual
Esta certificación permite validar que el susten- proceso de pruebas y se delimita el alcance de será importante para mostrar a la comunidad
tante tiene los conocimientos necesarios para las pruebas que se van a realizar. Éstas inclu- que la profesión de tester es clave para la ob-
calificar como Tester de Software y cubrir todos yen tanto pruebas basadas en especificación tención de productos de software con calidad
los posibles ángulos sobre los escenarios que (caja negra) como basadas en estructura (caja y con menos fallas, porque así como es impor-
el software debe considerar para darlo como blanca). Dependiendo el escenario se aprende tante generar el código para una aplicación, es
completo y con la funcionalidad correcta. La in- a seleccionar el tipo de prueba a utilizar. más importante revisar que ésta haga lo que
tención de este artículo es desglosar los diver- se supone.
sos temas que se requieren para poder presen- Administración de pruebas. En esta sección se
tar el examen de certificación para ser tester. revisan temas con respecto a la organización de Se recomienda la revisión del ISTQB Syllabus y
pruebas, desde las estrategias a utilizar, pasando el Glosario como parte de un autoestudio para
Fundamentos de pruebas. En esta sección se por la planeación y estimación de las pruebas a homologar términos.
introduce a la persona a los conceptos básicos aplicar. La administración básica con un control y
de pruebas de software, los cuales consideran monitoreo de incidentes se cubre también en este El nivel Foundation que es el básico de los tres
la importancia de las pruebas y el cómo éstas apartado. La administración de la configuración es que se ofrecen, no mide la habilidad sino el co-
permiten generar software con calidad. Se plan- un tema recurrente para controlar las pruebas y nocimiento de los conceptos de las pruebas de
tean reglas y un proceso general para la aplica- todos los artefactos generados en ellas. software; y es necesario para poder presentar
ción de las pruebas. Se hace hincapié en el có- los siguientes. El nivel avanzado maneja el co-
digo de ética que el tester debe de cubrir tanto Herramientas de soporte para pruebas. Se des- nocimiento necesario para la administración
con sus clientes como en su equipo de trabajo, criben las herramientas de pruebas automáticas de equipos de pruebas y de pruebas técnicas
para el buen desempeño de sus funciones. y el uso que se les da a éstas. La automatización y avanzadas; el nivel experto provee el conoci-
seguimiento de los resultados para pruebas com- miento para la mejora de pruebas, automati-
Ciclos de vida. Como tester es importante co- plejas o de volumen son algunos de los ejemplos zación y seguridad.
nocer los ciclos de vida de desarrollo del soft- que se realizan en este apartado.
ware, ya que son una parte importante de la El examen es electrónico y se realiza en un
certificación. Una vez que se comprenden los Conclusión centro autorizado para su aplicación. No se
ciclos de vida, se estudian los niveles de prue- El área de pruebas durante los últimos años ha permite el acceso con materiales al examen y
bas dentro del ciclo de vida y que incluyen las cobrado interés e importancia dentro de las or- el desarrollo del examen es monitoreado para
etapas de pruebas. Se revisan los diferentes ti- ganizaciones de tecnología, por ello es vital que garantizar la correcta aplicación del mismo.
pos de prueba que existen y se entiende cómo el Tester busque la formalización de su labor Consta de 40 preguntas de opción múltiple
aplicarlos dentro del software. con una certificación que avale su capacidad y con un requerido de 70 por ciento de aproba-
conocimiento. Esta certificación es vigente en ción. Si todo es exitoso, el certificado llega por
Pruebas estáticas. Se revisan los pasos reque- cualquier parte del mundo y permite crear un correo al domicilio.
ridos para realizar un conjunto de pruebas. Lo plan de carrera con la profesionalización y es-
que significa que se definen las etapas y las pecialización de las pruebas de software. http://www.istqb.org
Ismael Villegas Ochoa PMP, CSM, CTFL; y Armando Márquez Espinoza, ambos son Maestros en Tecnologías de la Información con más de 20 años de experiencia en el área de Desarrollo
de Sistemas en el sector financiero. Cuentan con amplia experiencia en la administración y desarrollo de proyectos de software. Actualmente desempeñan roles de arquitectos empresa-
riales y administradores de proyectos tecnológicos.
SG.COM.MX 053
O HARDWARE
2
1
Visto en @geek_mx
Lumos es una empresa con raíces mexicanas que diseña y produce wearables enfocados La nueva generación de los audífonos Cloud de
a la conservación de la energía. Entre sus productos están las mochilas Thrillseeker y HyperX viene acompañada de control de audio con
Unplug, que cuentan con páneles solares. Cuando la mochila está expuesta al sol, los retro-iluminación LED y surround sound virtual 7.1
paneles con capacidad de 3W generan electricidad que se almacena en una batería den- basado en hardware (no necesita controladores)
tro de la mochila con capacidad de 4,000 mAh. Con esto puedes cargar o dar energía a con audio independiente y control de volumen del
tus electrónicos. Las mochilas están diseñadas principalmente para las necesidades de micrófono. Diseñados específicamente para gaming,
personas que se transportan en bicicleta, por lo que cuentan con reflectores y son im- los jugadores pueden cambiar fácilmente el surround
permeables. Pero aunque la bicicleta no sea lo tuyo, bien puedes aprovechar tu mochila sound virtual 7.1 con solo pulsar un botón para emular
Lumos para cargar tus gadgets mientras caminas y cuidas el planeta. La Unplug tiene siete altavoces posicionales y mejorar la experiencia
un compartimento para laptops de hasta 15 pulgadas. La Thrillseeker es más pequeña y de juego. Están disponibles en colores rojo, metálico
diseñada para quienes andan más ligeros. y la limitada edición color rosa (próximamente).
054 SG.47
5
RELOJ FIBONACCI
http://swgu.ru/px
Teach Your Kids to Code es el libro más reciente de No Starch Press, la editorial enfo-
cada en libros técnicos para niños (y niñas, por supuesto).
A diferencia de otros libros diseñados para autoestudio, Teach Your Kids to Code está
pensado para leerse y usarse en colaboración entre un adulto y uno o más niños. El
libro está lleno de ejemplos visuales y coloridos que ayudan a mantener la atención
de los jóvenes programadores. Utiliza como referencia el lenguaje de programación
Python, que es una buena elección como primer lenguaje.
Teach Your Kids to Code parece ser el libro perfecto para sentarte este verano con tu
hijo(a) y convivir un rato mientras aprende a programar.
Consúltalo en http://swgu.ru/q1
¿Qué tan bien responde tu organización a los cambios en las condiciones del mercado,
las necesidades de tus clientes o tecnologías emergentes conforme desarrolla soluciones
de software? Esta guía práctica presenta principios y patrones orientados a llevar a una
organización entera a ser ágil. A través de casos de estudio se muestra cómo es que organi-
zaciones exitosas han rediseñado todas sus áreas y procesos, desde finanzas hasta cultura
organizacional y arquitectura de sistemas para poder mejorar su agilidad y desempeño.
Lean Enterprise es el libro más reciente de la “Lean Series” curada por Eric Ries y que
incluye obras como “Running Lean” de Ash Maurya y “Lean UX” de Jeff Gothelf.
Expertos en la materia tienen muy buenos comentarios sobre esta obra. Por ejemplo,
Mary Poppendieck comenta que “es un compendio de el mejor pensamiento moder-
no sobre cómo construir productos y servicios intensivos en software” y Gene Kim
agrega que es “la versión moderna de ‘Rengineering The Corporation’ ... está desti-
nado a ser la obra de autoridad sobre cómo las organizaciones planean, organizan e
implementan su trabajo en la era digital.” Con ese tipo de porras, vale la pena agregar
a Lean Enterprise a la lista de libros para leer próximamente.
Consúltalo en http://swgu.ru/q2
056 SG.47