Вы находитесь на странице: 1из 60

Inversin para Startups

pag. 10

Casos de Uso
pag. 42

Desarrollo Dirigido por Ontologas


pag. 48

NO.

39

Tutorial
Notiicaciones

Push en
WP8

CONOCIMIENTO EN PRCTICA

Project Management
Moderno

CERTIFICACIONES
Y NORMAS
Mxico, $65.00

www.sg.com.mx |

Especial

Software Guru

Febrero-Abril 2013
www.sg.com.mx

www.sg.com.mx |

Software Guru

39

CONOCIMIENTO EN PRCTICA

PG.

22

.CONTENIDO

Febrero-Abril 2013 | www.sg.com.mx

En Portada
Certiicaciones, Normas y Modelos de TI

22

Gracias a las normas y modelos de TI, podemos ser capaces de identificar los
puntos fuertes que debemos explotar como individuos y como empresas para
desarrollar proyectos de gran alcance, as como tambin detectar las debilidades que nos pueden frenar la adaptacin de los cambios del mercado, reducir
la calidad. Conoce las tendencias y recomendaciones de este importante tema.

Especial
Project Management Moderno
Ideologas renovadas en el horizonte

16

Por Vanessa Amaya


Estimacin Emprica de Proyectos con Planning Poker 17
Por Hector Cuesta-Arvizu y Sergio Ruiz-Castilla

Gestin de Equipos con el Uso de agilidad

18

Por Pablo Cceres Ferreira

Columnas
Tejiendo nuestra red

06

Por Hanna Oktaba

Tendencias en Software

09

Por Luis Daniel Soto

Columna Invitada

33

Por Aarn Moreno

Cdigo Innovare

48

Por Karen Mariel Njera Hernndez

Programar es un modo de vida


Por Gunnar Wolf

02

50

.CONTENIDO

PG.

Herramientas y
Novedades

10

Lo que viene

08

Tutorial
Windows Phone

12

Por Amin Espinoza

Fundamentos
Como distinguir entre un riesgo
y un problema

52

Por Ivn Rivera Gonzlez

Carrera
Escala para determinar el nivel de
un profesionista de TI

54

Por Pedro Galvn

En Cada Nmero

Software Guru

Por Humberto Cervantes

42

Por Efran Cordero

Prueba de Software
Hablando de pruebas de software, debo certiicar procesos,
personas o productos?

44

Por Berenice Ruiz Eguino

Procesos
Aceptando o refutando? nuestras creencias
-- experimentacin en ingeniera del software
Por Omar Snchez

03

05

www.sg.com.mx |

Prcticas

Calidad
Casos y Cosas de Casos de Uso

Noticias

40

Por Celeste North

Arquitectura
Certiicaciones en arquitectura de software

04

10

Emprendiendo
Opciones de inversin para Startups en Mxico

Editorial

46

.EDITORIAL
BIENVENIDA

.
Ya somos vistos
como parte del
negocio en lugar
de vernos como
un rea de apoyo
al negocio.

El Ineludible Protagonismo

as tecnologas de informacin se han convertido en parte fundamental de cualquier empresa. Ya somos


vistos como parte del negocio en lugar de vernos como un rea de apoyo al negocio. Y es precisamente
esta condicin de protagonistas la que nos exige cada vez ms garantas, ya que el hecho de tener los relectores
encima todo el tiempo nos lleva a tener que ser ms cuidadosos, comprometidos y responsables con nuestro trabajo. Entre los elementos que dan mayor sustento a estas garantas estn las certiicaciones, normas y modelos de
calidad, es por ello que constituyen el enfoque principal de este nmero de SG. Adicionalmente, consideramos
que la disciplina de Project Management est evolucionando para ajustarse al contexto del desarrollo de software
moderno: gil, iterativo y con equipos distribuidos. Es por ello que hemos incluido una seccin especial sobre
prcticas modernas de Project Management.
Te pedimos una gran disculpa por el retraso de este nmero de SG. Entre SG Virtual y el relanzamiento de
SG Talento, saturamos la capacidad de ejecucin de nuestro pequeo equipo. Fue as que decidimos congelar el
desarrollo de este nmero hasta que pudieramos prestarle la atencin que merece. Quedamos bastante satisfechos
con el resultado y esperamos que t tambin. Gracias por seguir siendo parte de nuestra comunidad.

Equipo Editorial
SOFTWARE GURU

DIRECTORIO SG
Direccin Editorial Pedro Galvn / Direccin de Operaciones Mara Ruvalcaba
Coordinacin Editorial Vanessa Amaya / Arte y Diseo Oscar Smano / Suscripciones Karina Saad
Consejo Editorial Jorge Valds - PMI / Luis Cullar - Softtek / Luis D. Soto - Microsoft / Hanna Oktaba - UNAM / Emilio Osorio - Sistemas Humanos /
Luis Vinicio Len - e-Quallity / Gloria Quintanilla

Colaboradores
Aarn Moreno, Amin Espinoza, Berenice Ruiz Eguino, Carlos Gutirrez, Celeste North, Efran Cordero, Elsa Ramrez Hernndez, Fernando Rueda Tllez,
Gabriel Almeida, Gunnar Wolf, Hctor Cuesta-Arvizu, Hctor Santa Mara, Humberto Cervantes, Ivn Rivera Gonzlez, Karen Mariel Njera , Masa K Maeda,
Rodrigo Torres Garibay y Sergio Ruiz-Castilla

Ventas Claudia Perea / Alianzas Daniel Velazquez / Webmaster Karen Rodrguez / Luis Snchez /
SGCampus Ana Karen Rosales
Contacto info@sg.com.mx
SG Software Guru es una publicacin trimestral editada por Brainworx, S.A. de C.V., San Francisco 238 Altos. Col. Del Valle. Los contenidos de esta publicacin son propiedad intelectual de los autores
y estn licenciados bajo Creative Commons Atribucin-No comercial 2.5 Mxico. Todos los artculos son responsabilidad de sus propios autores y no necesariamente reflejan el punto de vista de la
editorial. Reserva de Derechos al Uso Exclusivo: En trmite. ISSN: 1870-0888. Registro Postal: PP15-5106. Distribuido por Sepomex. Se imprimi en marzo de 2013 en EDAMSA Impresiones S.A. de C.V.

04

.NOTICIAS

.Hackathon:
Desarrollando
Amrica Latina
(DAL 2012)

.SAP Forum: Acelerando la Innovacin en Mxico


El pasado 6 y 7 de Febrero se llev a cabo el SAP Forum en Ciudad
de Mxico. Bill McDermott , CO-CEO de SAP motiv a la audiencia
hablando sobre las ventajas que tiene nuestro pas, entre las que destac: la energa, la pasin y el crecimiento de profesionistas de TI, incluso superando a Alemania en graduados de ingeniera. El ejecutivo
destac que Mxico es la mejor subsidiaria de SAP en el mundo y que
la empresa de origen alemn est apostando fuertemente al cmputo
mvil empresarial para el 2013.
Foto cortesa de SAP Mxico.

El 3 y 4 de diciembre del 2012 en la


Ciudad de Mxico
se realiz el primer Hackathon
de OpenData de Amrica Latina cuyo objetivo fue generar
soluciones para problemas como salud, educacin, seguridad
entre otros. El evento se realiz simultneamente en Argentina,
Brasil, Chile, Mxico, Per y Uruguay. En Mxico fue coordinado por Fundar, Centro de Anlisis e Investigacin, y Citivox,
con el apoyo del CIDE y del IFAI. Esfuerzos como este logran
comprobar que los datos de los gobiernos pueden ser accesibles
y aprovechables para todos los ciudadanos.
Fotografa cortesa de fundar.org.mx

. BugCON Security

.Demo Day 500 Mexico City

La aceleradora de startups 500 Mexico City present el pasado


31 de Enero a las 10 compaas que formaron parte de su programa de aceleracin. En esta ocasin encontramos compaas como
Rubberit la cual ofrece un servicio de suscripcin de condones o
Yaxi que con solo apretar un botn de su app te mandan un taxi
seguro a donde te encuentres. 500 Mexico City es el nuevo nombre
con que se le conoce a la irma de inversin Mexican.VC, al da de
hoy han realizado inversin en 21 compaas mexicanas.

.CANISOFT
El pasado 24 de enero se realiz la primera reunin de la Camara Nacional de la Industria del Software (CANISOFT) la cual reuni presencialmente alrededor de 100 representantes de empresas desarrolladoras de software a las cuales se sumaron ms empresarios que asistieron
a la reunin de manera virtual. La reunin tuvo como objetivo convocar al registro y envo de la carta de intencin para poder tramitar la
creacin de este Organismo Promotor. Este esfuerzo no comenz en la reunin, para sensibilizar a la audiencia, se habl de todos los esfuerzos tanto de difusin, alianzas y trmites que han realizado los emprendedores detrs de la iniciativa. Jaime Jurez del ngel, Presidente
de CANISOFT invit a todos los fabricantes de software a unirse para poder llegar a la meta y poder hacer este Organismo una realidad.
http://canisoft.org/
Para mayor informacin, noticias al da y actualizaciones de la industria visita: www.sg.com.mx

05

www.sg.com.mx |

Los pasados 13, 14 y 15 de febrero se


llev a cabo la 5 edicin de BugCON
Security Conference: Safety is just a
myth!. Un evento altamente tcnico,
que en un ambiente sin censura se ha posicionado como uno de los foros ms relevantes para los profesionales e investigadores en seguridad informtica. En esta
edicin BugCON reuni a ms de treinta ponentes e instructores de Mxico,
Colombia, Argentina y Luxemburgo, los cuales durante tres das compartieron
sus conocimientos yexperiencias con ms de 600 asistentes de todo el pas. BugCON nuevamente hizo hincapi en el alto nivel tcnico de los contenidos, no
es nada extrao asistir y mirar a los ponentes con diapositivas llenas de cdigo
ensamblador, algunos mostrando herramientas que ellos mismos han desarrollado o estructurando complejos modelos matemticos que pueden ser aplicados a la gestin de los riesgos de TI.
www.bugcon.org

Software Guru

Conference: Safety is just


a myth!

.COLUMNA
TEJIENDO
NUESTRA RED

MoProSoft, ISO/IEC 29110 y KUALI-BEH


REFLEXIONES Y NOTICIAS
MoProSoft. Reflexin de aniversario

La Dra. Hanna
Oktaba es profesora de la UNAM,
miembro del IPRC,
y directora tcnica
del proyecto
COMPATISOFT.
hanna.oktaba@
ciencias.unam.mx

06

caban de cumplirse 10 aos de la entrega del modelo


de procesos MoProSoft a la Secretara de Economa
como resultado de uno de los primeros proyectos del programa PROSOFT. Todava no comprendo como 11 personas, de los cuales 9 solo pudieron dedicar al proyecto su
tiempo libre, logramos en 4 meses generar un modelo de
procesos completamente original e innovador. Estructurado
en tres capas, la de Alta Direccin con el proceso de Gestin
de Negocio, la de Gerencia con los procesos de Gestin
de Procesos, Recursos y Proyectos y la capa de Operacin
con Administracin de Proyectos Especicos y Desarrollo
y Mantenimiento de Software. Cada proceso tuvo a su editor responsable y, como curiosidad, les puedo comentar que
Mara Ruvalcaba, la Directora de Operaciones de SG, fue
responsable por el proceso de Gestin de Negocio, uno de
los ms apreciados por los directivos de las empresas. Les
recuerdo que los documentos originales de MoProSoft se
pueden descargar de www.comunidadmoprosoft.org.mx
Qu le cambiara despus de 10 aos al modelo? en
la estructura no mucho, tal vez separara mantenimiento
del desarrollo. Sin embargo, en los detalles hay muchas
cosas que se podran simpliicar y, sobre todo, cambiar la
redaccin para que se pueda interpretar fcilmente con las
prcticas de los mtodos giles.
Curiosamente el valor de MoProSoft en Mxico no fue muy
comprendido y reconocido a pesar del apoyo que el mismo programa de PROSOFT otorg a las empresas para adoptarlo. El
excelente relato de la historia tpica de la adopcin fracasada se
public en el artculo de Alfredo Lozada en el nmero anterior
de SG. A nivel internacional MoProSoft fue reconocido como
una propuesta muy valiosa, sobre todo para las PyMEs.
Ultrasist es el ejemplo de una empresa que adopt
MoProSoft de manera muy exitosa. Desde 2003 empezaron a incorporarlo, iniciando por el plan estratgico de
Gestin de Negocios, y hoy en da son una empresa slida. Han quintuplicado su operacin y fueron evaluados
por segunda ocasin nivel 5 de CMMI. Sospecho que una
de las razones del xito de Ultrasist es que en la empresa
trabajan dos de las creadoras de MoProSoft: Mara Julia
Orozco y Claudia Alquicira, que llevan en la sangre la
correcta interpretacin del modelo. Pero creo que la otra
razn, igual de importante, es la constancia del esfuerzo
de toda la organizacin y la verdadera (medible) mejora
continua, basada en la Gestin de Procesos.

ISO/IEC 29110. Reflexin y noticia


Ha pasado ao y medio de la publicacin como estndar
internacional del ISO/IEC 29110 5-1-2 Peril bsico, que
contiene los procesos de la capa de Operacin de MoPro-

Soft ligeramente modiicados. En Mxico hay muy poco


conocimiento de esto, ya que las instituciones correspondientes tales como la Direccin General de Normas, CANIETI o NYCE no han difundido dicho estndar.
En contraste, les puedo comentar que Brasil desde
hace un ao tiene un proyecto muy intenso para la adopcin del Peril bsico, que incluye la capacitacin de los
consultores y la deinicin de la certiicacin reconocida
internacionalmente. Tailandia, Per, Espaa y Canad
tambin estn avanzando en la materia.
El ao pasado hicimos un anlisis de la brecha entre
los procesos de Operacin de MoProSoft nivel 2 y Peril
bsico (ver la referencia 1), que realmente es muy pequea. Esto podra utilizarse para que las empresas mexicanas
obtengan fcilmente reconocimiento internacional del
cumplimiento con el Peril bsico. Pero para darles esta
ventaja competitiva a las empresas, que han hecho esfuerzos adoptando MoProSoft nivel 2, se necesita una estrategia y un plan de accin, los cuales al da de hoy no existen.
El grupo WG24 (donde se acuerda el estndar 29110)
tuvo reunin de trabajo en Buenos Aires, Argentina en
noviembre del ao pasado. La delegacin mexicana present el Peril Intermedio (una versin mejorada de los
procesos de la capa de Gerencia de MoProSoft) para su
ltima revisin interna antes de ser enviado a las revisiones
y votaciones formales por los pases. Estbamos a punto
de presentar la propuesta del Peril Avanzado (basado en
Gestin de Negocio), cuando durante una foto del grupo,
nos robaron 13 laptops y 4 mochilas (incluida la ma).
Con eso el trabajo del WG24 qued suspendido, porque
nos quedamos sin herramientas y pasmados.

KUALI-BEH y ESSENCE. Noticia


La boda ya entre KUALI-BEH y ESENCE se consum.
El 12 de noviembre fue enviada la propuesta de ESSENCE
con KUALI-BEH integrado como su extensin a OMG.
Ahora faltaba la aprobacin de su parte para convertirlo en
el estndar. El 12 de diciembre se hizo la votacin en la reunin de San Francisco. Yo no pude asistir a esta reunin,
pero el que estuvo fue mi alumno de doctorado Miguel
Ehcatl Morales Trujillo. A continuacin est su relato,
narrado en forma inversa (de lo ms reciente hacia atrs):
Lo que pareca un viaje de trmite a California, en donde ESSENCE-BEH sera votada para ser adoptada como especiicacin de OMG, result en algo ms complejo; aunque
nadie haba dicho que sera fcil. El trayecto del centro de
San Francisco al aeropuerto sirvi para asimilar lo sucedido.
A bordo del transporte subterraneo (BART), ca en cuenta
que la batalla era ms amplia y con ms obstculos de los
ya conocidos. Mientras caminbamos hacia el comedor del
hotel donde se realiz la reunin Ivar Jacobson se acerc y me

CURIOSAMENTE EL VALOR
DE

MOPROSOFT EN MXICO

>> Por Hanna Oktaba

Referencias
[1] Miguel Morales Trujillo, Teresa Ventura, Hanna
Oktaba and Rodrigo Torres, From MoProSoft Level 2
to ISO/IEC 29110 Basic Proile: Bridging the Gap, el
artculo fue aceptado para ser publicado en el CLEI
Electronic Journal en abril de 2013.

www.sg.com.mx |

dijo: Miguel, the important thing is that there


were only two votes against. Esos dos votos en
contra fueron emitidos por Armstrong Process
Group empresa que hizo su aparicin hasta
el da de la votacin y de la que previamente
no tenamos noticia, pero curiosamente fue la
primera en votar y por IBM, representado
por una persona muy cercana al desarrollo de
FACESEM, que abandon la sesin inmediatamente despus de votar.
El proceso de la OMG realiza la votacin en dos etapas: V2V y Voting for Adoption. El V2V en palabras simples es una votacin para decidir si se vota, aunque suene
absurdo as est establecido en el protocolo
de OMG. Es necesario que en el V2V se obtenga por lo menos 75% de los votos a favor,
para dar paso al Voting for Adoption.
De las 23 compaas con derecho a voto
estuvimos presentes 15 en la reunin. De stas, once votamos a favor, dos en contra, y dos
abstenciones. El resultado fue una aprobacin
de 73%, insuiciente para realizar el Voting for
Adoption. El acuerdo al que se lleg es que el
Voting for Adoption se realizar en la prxima
reunin en Reston, VA el 20 de Marzo de 2013.
Previo al comienzo de la sesin, Ivar me
dijo Miguel, this is exciting because it is not
for sure, soon we will know.
Y as fue, no era seguro y tendremos que
esperar tres meses para concretar este gran
paso. Al salir de Mxico tena la impresin
de que el camino an tendra algunos escollos que sortear, no esperaba uno tan contundente, pero el nimo no decae, lo aprendido hasta ahora es suiciente motivacin
para seguir por la misma ruta.
Tres meses entonces para la luna de
miel entre KUALI-BEH y ESSENCE.
Ahora todo depende de la habilidad negociadora de Ivar Jacobson con los que no asistieron a la votacin.

Software Guru

NO FUE MUY COMPRENDIDO.

.HERRAMIENTAS Y TECNOLOGAS
LO QUE
VIENE

Amazon Redshift
Data warehouse
as-a-service

Amazon web services anunci la disponibilidad de Redshift, un servicio de data warehouse en la


nube diseado para manejar grandes cantidades de datos (estamos hablando de cientos de gigabytes
a incluso varios petabytes). Dado que Redshift se basa en tecnologa de RDBMS y utiliza SQL como
lenguaje de sentencias, es compatible con herramientas existentes de analtica y BI. Adicionalmente,
varios proveedores como Microstrategy, SAP, Pentaho y Tableau conirmaron alianzas con Redshift
para ayudar a las empresas a integrar Redshift con su infraestructura de TI existente. De acuerdo con
Amazon, un terabyte de datos en Redshift tendr un costo aproximado de $1,000 dlares, lo cual es
un precio bastante atractivo comparado con soluciones tradicionales de data warehouse.
http://aws.amazon.com/redshift

Windows Azure Mobile Services es un servicio de backend en la nube diseado para aplicaciones
de nueva generacin. Su objetivo es facilitar el manejo de datos estructurados en la nube que
puedan ser accedidos desde aplicaciones que puedan estar corriendo ya sea en computadoras personales, smartphones, smart TVs u otro tipo de dispositivos de cmputo. Entre las ventajas de usar
un servicio como Azure Mobile Services est el poder apoyarse en servicios como autenticacin
o notiicaciones. En el momento de su lanzamiento en agosto del 2012, Azure Mobile Services
solamente soportaba aplicaciones Windows 8, lo cual era un gran limitante. Sin embargo, desde
entonces ha ido agregando soporte a ms plataformas y actualmente ya se puede utilizar tambin
para aplicaciones iOS y Android, lo cual le da una perspectiva mucho ms atractiva.
http://www.windowsazure.com/en-us/develop/mobile

Hudson
Se grada de la
incubacin

Agrega soporte para


Android

El servidor de integracin continua Hudson inalmente se gradu de su estatus de incubacin en


la Fundacin Eclipse y liber su versin 3.0, la primer versin para produccin que libera despus
de haber sido adoptado por la Fundacin Eclipse. Hudson administra la generacin automatizada de builds de un software. Para ello, peridicamente ejecuta tareas como: obtener el cdigo
de un proyecto, compilarlo, aplicar pruebas unitarias, integrarlo, aplicar pruebas de integracin,
y reportar los resultados. La integracin continua es una prctica originalmente propuesta en Extreme Programming que muchos equipos ya han adoptado, independientemente de si usan XP
o no. Hudson soporta una variedad de herramientas de control de versiones, entre ellas CVS,
Subversion, Git y Clearcase. Adems puede manejar proyectos de Ant y Maven, as como shell
scripts y comandos batch en Windows. Hudson est hecho en Java y se ejecuta en un contenedor
de Servlets, como por ejemplo Tomcat.
http://www.eclipse.org/hudson

Xamarin liber la versin 2.0 de su plataforma que permite desarrollar aplicaciones nativas para
iOS, Android y Mac utilizando el lenguaje de programacin C#. Esta versin introduce el IDE
Xamarin Studio, as como un add-in para Visual Studio y el Xamarin Component Store. El add-in
para Visual Studio permite que los desarrolladores de .NET pueden crear aplicaciones nativas iOS
y Android desde Visual Studio. El Component Store, es una tienda en lnea donde los desarrolladores pueden comprar y vender elementos como libreras, temas de diseo o controles visuales que
incorporen en sus aplicaciones.
http://xamarin.com
08

Azure Mobile
Services

Xamarin
Nuevo IDE y tienda de
componentes

.COLUMNA

TENDENCIAS EN
SOFTWARE

La Reinvencin de la Industria de T.I.


LA MUERTE DEL SERVIDOR

SE HA HECHO

ara una empresa mediana o grande, la nocin de un


servidor nico es cosa del pasado. La imperativa es
mantener decenas o cientos de servidores, pensar en granjas
de servidores y tratar a la infraestructura de forma uniicada.

ridad que han logrado los juegos casuales


en dispositivos mviles, se prevee que los
volmenes de ventas de consolas del pasado
probablemente no regresen nunca.

Mini PC

Hardware dedicado

La Raspberry Pi es una computadora de $35 dlares.


En el rango $40 a $70 dlares la mini-PC en USB
ha estado disponible desde hace meses en el mercado, Dell empujar un concepto similar denominado
Ophelia a un costo menor de $100 dlares en Estados Unidos. Se ha hecho realidad la era de la PC
desechable, de bolsillo. Se est utilizando para llevar el
cmputo a todos los lugares: es posible adquirir teclados que incluyen a la Raspberry Pi y similares. Los aficionados a la fotografa extienden sus cmaras DSLR
con una pequea computadora, accionando remotamente y transmitiendo datos al instante. Prcticamente cualquier televisin puede tener su propia PC.

La transformacin de hardware es ms amplia, sucede en autos, dispositivos


del hogar, en infraestructura de redes, etctera. En stos ltimos los vendedores
tradicionales como Freescale, Texas Intruments y Xilinx empujan por hardware
dedicado. Pero Intel con Crystal Forest planea resolver todos los problemas de
procesamiento de datos. Era inevitable la comoditizacin de la tecnologa.

REALIDAD LA ERA DE
LA

PC DESECHABLE.

M2M
La salud mvil (mHealth) se reiere a dispositivos que miden una serie de variables
biolgicas, las almacenan y las transmiten. Estamos en un proceso de estandarizacin
de las comunicaciones (Bluetooth Smart Ready). El nmero de dispositivos y parmetros de medicin crecer dramticamente, en 5 aos la coleccin de datos ser
enorme. Se mover del dispositivo, al telfono, a redes ms amplias, se combinar
con videocmaras y sensores en la ciudad. La comunicacin mquina a mquina
superar el trico de interacciones humanas en internet (Internet of hings).

Post-PC
Hacia el futuro cercano, el software empresarial continuar en su forma existente. Pero antes de 10 a 15 aos ser inminente la migracin de soluciones a
la nube, aunque hoy contine la resistencia y lucha de mantener el poder. En
el escritorio, las apps han aniquilado al software como modelo de negocio.
El futuro del modelo de negocio son los servicios y dispositivos por medio
de suscripciones.

Microsoft se reinventa
TV
Hoy existe una gran fragmentacin entre el contenido
en vivo y el contenido bajo demanda, acceso en web de
temporadas pasadas vs. nuevas, derechos que varan mucho por cada dispositivo. Estn surgiendo servicios que
llevan la experiencia social a la TV, tales como Matcha,
Fanhattan o Zeebox. DLNA permite la integracin de
contenido entre dispositivos conectados. La PC de teatro
en casa ha evolucionado a nueva funcionalidad como Video Gateways (HomeBase) y amplio acceso remoto (Plex
Media Center). La convergencia avanza.

9a Generacin de consolas y Multi-pantallas


Las gafas de Oculus Rift, as como Google Glass, sensores
como Kinect o aquellos que permiten convertir cualquier
supericie en interactiva, incluyendo el proyecto Immersive
Display Experience de Microsoft son buenos ejemplos de
soluciones tempranas de Cmputo ubiquo que facilitan
aplicaciones de realidad aumentada. La consola se integra con
otros dispositivos en el videojuego. Aun as, dada la popula09

La automatizacin total de los servidores y el acceso a la informacin por cualquier persona en cualquier lugar contina siendo una ambicin. En una reciente entrevista, Steve
Ballmer (CEO de Microsoft) enumer sus apuestas tecnolgicas: nuevos dispositivos
con interfaces naturales, la nube y el aprendizaje automatizado (machine learning). La
reinvencin est en proceso.

Personas
En general, la forma de trabajar y aprender ha cambiado. Las
herramientas sociales permiten que ahora ms que educacin
a distancia, se pueda localizar al talento que resuelva problemas especicos. El acceso a la tecnologa es generalizado, he
escuchado la frase: la gente de negocios es el siguiente departamento de sistemas. Conforme los servicios de software
sean verdaderamente inteligentes, esto podra suceder.
En el pasado mi columna ha tratado sobre posibles rumbos
de la tecnologa, cambios graduales. En ocasiones, al abrir los
ojos, no es evidente que el mundo ha cambiado tanto.

Por Luis Daniel Soto

Luis Daniel Soto


Maldonado (@
luisdans) labora en
la divisin de negocio de servidores
y herramientas de
Microsoft Corp.

Software Guru

Software

www.sg.com.mx |

En el espacio cmputo personal, la atencin ha gravitado


hacia las tabletas y telfonos inteligentes. Se estima que estos
dos segmentos combinados lograron ventas por 83 millones
de dlares en el 2013, mucho mayor a lo anticipado. La PC
de escritorio ha evolucionado al todo en uno. Por su parte,
la laptop se ha hecho ultraporttil pero no se han transformado radicalmente todava, posiblemente pronto veamos
una verdadera reinvencin.

.EMPRESAS
EMPRENDIENDO

Opciones de Inversin para Startups

Por Celeste North

na de las preguntas ms comunes que se hace un nuevo emprendedor en nuestra regin es: dnde puedo encontrar opciones de
inversin y cmo elegir la mejor opcin? (ok, son dos preguntas pero
entienden a qu me reiero). Aunque hay diversas opciones para fondear
un startup (inanciamiento, fondos gubernamentales, etc.), en este artculo
me enfocar en las opciones de inversin en modalidad de capital de riesgo.
La inversin de capital de riesgo bsicamente consiste en que un
inversionista adquiere una parte de tu empresa con miras a que el valor
de sta aumente, y obtener una ganancia en un futuro al vender su
parte (ya sea que la empresa sea comprada por un tercero, reciba una
nueva ronda de inversin, o comience a cotizar en la bolsa de valores).
Dependiendo de la etapa en la que te encuentres, puedes acceder
a distintos inversionistas independientes o fondos dedicados especicamente a esto. En el caso de capital semilla (inversiones que van desde $50
hasta $500 mil dlares) en Mxico hemos visto un lorecimiento de opciones en los ltimos dos aos, muchos en modalidad de aceleradoras de
negocios. Comparto a continuacin una breve resea de los principales:

500 Startups Mx (antes Mexican VC)


http://500.vc/mexicocity
La subsidiaria en Mxico de la aceleradora internacional 500 Startups.
Manejan el mismo esquema con todos los startups: $25 mil dlares en
capital + un programa de mentora por 4 meses, a cambio de un 10%
de participacin. Cuentan con oicinas en la Ciudad de Mxico y una
red de mentores nacionales e internacionales. Inicia con una semana de
inmersin en Silicon Valley para arrancar el programa y concluyen con
un Demo Day para conectarte con inversionistas para tu siguiente etapa.

Wayra - http://mx.wayra.org
La aceleradora de Telefnica. Invierten entre $30 y $70 mil dlares de
acuerdo a la valoracin que se haga de tu empresa, en relacin a esto se
determina el porcentaje que adquieren. Ofrecen un espacio de trabajo,
soporte tecnolgico, mentores y acercamiento a una red de inversionistas. Opera en diversas ciudades tales como Cd. de Mxico, Bogot, Lima,
Buenos Aires, Santiago, Sao Paulo, Barcelona y Madrid entre otras.

interesante es que cuentan con dos modalidades para entrar al programa:


cesin del 10% de participacin o bien una cuota nica de inscripcin
de $6 mil pesos y una cuota mensual de $28 mil pesos.

Fondo de Coinversin de Capital Semilla Startup Mxico


http://nafin.com
Impulsado por NAFIN, este fondo invierte en empresas de tecnologa de alto potencial en un rango de los 100 mil a los 5 millones
de pesos. Los requisitos son sencillos: debes tener menos de un ao
operando, todava no estar en punto de equilibrio y contar con un
inversionista o los recursos propios para la coinversin. Ellos igualan
la cantidad por el mismo porcentaje que el otro inversionista.

Angel Ventures Mxico - http://angelventuresmexico.com


Para proyectos en una etapa ms madura, una buena opcin es Angel
Ventures. Ellos invierten entre 2 y 20 millones de pesos y el porcentaje de participacin depende de cada caso. Aunque no cuentan con
un programa de aceleracin, apoyan con asesoras en distintas reas.
Estas son solo algunas de las opciones a las que te puedes acercar
en bsqueda de inversin. De acuerdo a la etapa en la que te encuentres, es muy importante que consideres el nivel de acompaamiento
que necesitas. Para muchos startups, esto puede ser incluso ms valioso que el capital en s. Evala todas tus opciones y considera fechas
de inicio para programas de aceleracin.
Si quieres conocer ms opciones, te recomiendo te acerques directamente a NAFIN o a la AMEXCAP (Asociacin Mexicana de
Capital Privado), estas organizaciones cuentan con ms informacin
sobre los fondos de inversin a los que puedes acceder.
Sea cul sea la decisin que tomes, un consejo bsico para todo
emprendedor es postergar lo ms posible la inclusin de un inversionista a tu empresa. Entre ms logres entender de tu mercado antes
de recibir inversin, mejor ser el aprovechamiento que le des a estos
recursos cuando sea momento de crecer tu producto o servicio.
.BIO

Venture Institute - http://institute.vc


Cuenta con una detonadora de negocios que se enfoca en startups tecnolgicos y est respaldado por Venture Partners. Su programa incluye
espacio de trabajo, metodologa de detonacin y mentores. El programa
dura 15 semanas y el rango de inversin depende de cada caso. Algo
10

Celeste North (@celestenorth) es fundadora de NuFlick, plataforma


de distribucin de cine independiente y festivales de cine on demand
enfocado en el mercado Latinoamericano. Organiza Founder Friday, un
evento para fomentar el emprendimiento entre mujeres en la Ciudad
de Mxico. Es colaboradora editorial sobre temas de innovacin y
emprendimiento en Opinno, Emprendela y Software Guru.

www.sg.com.mx |

Software Guru

.TUTORIAL

Notificaciones y Mosaicos en

Windows Phone
Por Amn Espinoza

in temor a equivocarme puedo decir que el principal distintivo de la plataforma Windows Phone son sus mosaicos; esos recuadros que no solo son accesos directos a aplicaciones sino que muestran informacin sin tener que acceder a
la aplicacin.
En este artculo mostrar cmo implementar notiicaciones en
Windows Phone. Adems de considerar las notiicaciones de mosaico (tile), tambin mostrar como implementar notiicaciones
Toast (como por ejemplo las que se muestran al recibir un mensaje
SMS) y notiicaciones Raw (mensajes de texto simple).

El listado 3 muestra el cdigo que usaremos para enviar notiicaciones


Raw, que simplemente son una cadena de texto. Las notiicaciones deben
enviarse como arreglos de bytes codiicados en UTF8, as que utilizaremos
la clase UTF8Encoding. Ms adelante detallaremos el mtodo InsertarInformacionURLSuscritas(), que utilizaremos en los 3 tipos de push.
public void InsertarInformacionRaw(string mensajeRaw) {
UTF8Encoding encoding = new UTF8Encoding();
InsertarInformacionURLSuscritas(encoding.GetBytes(mensajeRaw), raw);
}
Listado 3. Envo de notificaciones Raw

El servicio de notificaciones
Lo primero que haremos ser crear un servicio WCF que enve las
notiicaciones. Para ello creamos un proyecto en Visual Studio de tipo
Aplicacin de servicios WCF, bautizando nuestro proyecto como
Servicio Notiicacin. Veremos el archivo Service1.svc.cs, podemos
abrirlo y eliminar los mtodos GetData() y GetDataUsingDataContract() que esencialmente funcionan slo como ejemplos.
El listado 1 muestra nuestro cdigo inicial. Como coment,
hay tres tipos de notiicaciones: Tile, Toast y Raw. Utilizaremos un
enumerador pblico IntervalosDeValores para identiicar el tipo
de notiicacin. Tambin creamos un diccionario esttico URISucripcin para registrar a los telfonos suscritos a nuestro servicio.
Como llave usamos un Guid (identiicador global nico) y como
valor un Uri que establece un canal de comunicacin entre el servicio web y el dispositivo.

El listado 4 muestra el cdigo para insertar notiicaciones toast. Estos


mensajes manejan un ttulo y un cuerpo. Para que el mensaje tenga la estructura requerida, lo formamos como XML usando la clase XMLWriter.
public void InsertaToast(string tituloToast, string mensajeToast) {
MemoryStream miStream = new MemoryStream();
XmlWriter escritorXML = XmlWriter.Create(miStream);
escritorXML.WriteStartDocument();
escritorXML.WriteStartElement(wp, Notiication, WPNotiication);
escritorXML.WriteStartElement(wp, Toast, WPNotiication);
escritorXML.WriteStartElement(wp, Text1, WPNotiication);
escritorXML.WriteValue(tituloToast);
escritorXML.WriteEndElement();
escritorXML.WriteStartElement(wp, Text2, WPNotiication);
escritorXML.WriteValue(mensajeToast);

public enum IntervalosDeValores {

escritorXML.WriteEndElement();

TileInmediato = 1,

escritorXML.WriteEndElement();

ToastInmediato = 2,

escritorXML.WriteEndDocument();

RawInmediato = 3,

escritorXML.Flush();

InsertarInformacionURLSuscritas(miStream.ToArray(), toast);
}

private static Dictionary<Guid, Uri> URISuscripcion = new Dictionary<Guid, Uri>();

Listado 4. Envo de notificaciones Toast.

Listado 1. Enumerador y diccionario

El listado 2 muestra el mtodo para suscribir telfonos al diccionario.


public void SuscribirMiTelefono(Guid IdTelefono, string canalURI) {
Uri direccionLocal = new Uri(canalURI);

El listado 5 muestra el cdigo para enviar notiicaciones tipo Tile,


es decir las que actualizan la informacin que se muestra en un mosaico.
Hay tres diferentes elementos que se pueden enviar en una notiicacin
tile: ttulo, imagen y contador. El procedimiento es similar al que utilizamos en nuestro mtodo para insertar mensajes Toast.

if (URISuscripcion.ContainsKey(IdTelefono)) {
URISuscripcion[IdTelefono] = direccionLocal;
} else {

public void InsertaInformacionTile(string tituloTile, int contadorTile, string direccionImagenTile) {


MemoryStream miStream = new MemoryStream();

URISuscripcion.Add(IdTelefono, direccionLocal);
}

XmlWriter escritorXML = XmlWriter.Create(miStream);


escritorXML.WriteStartDocument();

escritorXML.WriteStartElement(wp, Notiication, WPNotiication);

Listado 2. Suscribir telfono

escritorXML.WriteStartElement(wp, Tile, WPNotiication);

12

.TUTORIAL

escritorXML.WriteStartElement(wp, BackgroundImage, WPNotiication);


escritorXML.WriteValue(direccionImagenTile);
escritorXML.WriteEndElement();
escritorXML.WriteStartElement(wp, Count, WPNotiication);

Habiendo implementado la lgica de nuestro web service, vamos a deinir los contratos necesarios para que los mtodos puedan ser accesibles
por clientes externos. El listado 7 muestra el cdigo que debe tener la
clase IService.cs para deinir los contratos de servicio correspondientes.

escritorXML.WriteValue(contadorTile);
escritorXML.WriteEndElement();

using System;

escritorXML.WriteStartElement(wp, Title, WPNotiication);

using System.ServiceModel;

escritorXML.WriteValue(tituloTile);

namespace Servicio_Notiicacion {

escritorXML.WriteEndElement();

[ServiceContract]

escritorXML.WriteEndElement();

public interface IService1 {

escritorXML.WriteEndDocument();

[OperationContract]

escritorXML.Flush();

void SuscribirMiTelefono(Guid phoneID, string channelURI);

InsertarInformacionURLSuscritas(miStream.ToArray(), tile);

[OperationContract]

void InsertarInformacionRaw(string message);

Listado 5. Enviar informacin a un mosaico

[OperationContract]
void InsertaInformacionTile(string tileTitle, int tileCount, string tileImageURI);

Como ya notamos anteriormente, todos los mtodos terminan invocando InsertarInformacionURLSuscritas(). Este mtodo se encarga
de distribuir la informacin deseada hacia los dispositivos suscritos. El
listado 6 muestra el cdigo de este mtodo. A grandes rasgos, lo que
hace este mtodo es 1) crear una solicitud de tipo HttpWebRequest, 2)
agregarle el header correspondiente al tipo de notiicacin, 3) escribir
la informacin deseada y enviarla, 4) Recibir la respuesta. Esto se repite
dentro de un ciclo por cada dispositivo suscrito.
private static void InsertarInformacionURLSuscritas(byte[] informacionRecibida, string
tipoNotiicacion) {
foreach (var direccion in URISuscripcion.Values) {

[OperationContract]
void InsertaToast(string ToastTitle, string ToastMessage);
}
}
Listado 7. Contrato de servicios

Una vez hecho esto, podemos compilar nuestro proyecto y publicarlo. Luego podemos veriicar que est accesible utilizando el cliente
de pruebas WcfTestClient (C:\Program Files (x86)\Microsoft Visual
Studio 11.0\Common7\IDE\WcfTestClient.exe). Seleccionamos la
opcin Agregar servicio del men Archivo y alimentamos la referencia a nuestro servicio WCF.

var solicitud = (HttpWebRequest)WebRequest.Create(direccion);

solicitud.ContentLength = informacionRecibida.Length;
solicitud.Headers.Add(X-MessageID, Guid.NewGuid().ToString());
switch (tipoNotiicacion) {
case toast:
solicitud.Headers[X-WindowsPhone-Target] = toast;
solicitud.Headers.Add(X-NotiicationClass,

La aplicacin Windows Phone


Habiendo creado nuestro servicio, ahora crearemos la app para Windows Phone. Para ello creamos una nueva solucin Windows Phone en
Visual Studio y agregamos la referencia al servicio WCF. Para ello damos
un clic derecho sobre el proyecto y seleccionamos la opcin Agregar
referencia de servicio. En la direccin, usamos la direccin IP local de
nuestra mquina y el nombre del servicio que creamos en la seccin anterior. La igura 1 muestra el ejemplo de cmo se debe ver esta ventana.

((int)IntervalosDeValores.ToastInmediato).ToString());
break;
case tile:
solicitud.Headers[X-WindowsPhone-Target] = token;
solicitud.Headers.Add(X-NotiicationClass,
((int)IntervalosDeValores.TileInmediato).ToString());
break;
case raw:
solicitud.Headers.Add(X-NotiicationClass,
((int)IntervalosDeValores.RawInmediato).ToString());
break;
}
using (var streamSolicitud = solicitud.GetRequestStream()) {
streamSolicitud.Write( informacionRecibida, 0,
informacionRecibida.Length);
Figura 1. Agregar referencia de servicio

}
var respuesta = (HttpWebResponse)solicitud.GetResponse();
}
}
Listado 6. Envo de solicitud

13

Para desplegar la informacin en nuestra app, en la pgina principal de sta colocaremos tres cajas de texto que desplieguen la informacin recibida. El cdigo para esto se ve en el listado 8.

Software Guru

solicitud.ContentType = text/xml;

www.sg.com.mx |

solicitud.Method = WebRequestMethods.Http.Post;

.TUTORIAL

<Grid x:Name=ContentPanel Grid.Row=1 Margin=12,0,12,0>


<TextBlock x:Name=txtEstadoSuscripcion Margin=0,0,0,569 Text=Veriicando estado
de la suscripcin/>
<TextBlock x:Name=txtMensajeRaw Margin=0,70,0,499 Text=Esperando a recibir una
notiicacin Raw TextWrapping=Wrap/>
<TextBlock x:Name=txtCanalUri Margin=0,140,0,0 Text=Esta es la direccin del canal:
TextWrapping=Wrap/>

la comunicacin por medio del canal; SuscribirMiTelefonoCompleted que se dispara cuando la suscripcin del telfono al servicio de
notiicaciones haya sido exitosa, el ChannelUriUpdated que se dispara cuando la direccin del canal haya sido obtenida (o actualizada);
yHttpNotiicationReceived que se dispara cuando la aplicacin reciba
informacin pero sin ser formateada. El listado 10 muestra el cdigo
de este mtodo.

</Grid>
Listado 8. Cajas de texto para desplegar informacin

void adjuntarFuncionesManejadores() {
miCanalPush.ErrorOccurred += myPushChannel_ErrorOccurred;

Pasemos ahora al cdigo C#. Por simplicidad, pondremos en nuestro constructor el cdigo para disparar los eventos. El listado 9 muestra
el cdigo para el constructor. Estas acciones tambin se podran disparar desde el mtodo OnNavigatedTo().

miCliente.SuscribirMiTelefonoCompleted += miCliente_SuscribirMiTelefonoCompleted;
miCanalPush.ChannelUriUpdated += myPushChannel_ChannelUriUpdated;
miCanalPush.HttpNotiicationReceived += myPushChannel_HttpNotiicationReceived;
}
Listado 10. Definicin de manejadores

Guid phoneID;
ServicioNotiicaciones.Service1Client miCliente = new ServicioNotiicaciones.Service1Client();

El listado 11 tiene el manejador para el evento miCanalPush.ErrorOcurred. Este simplemente muestra en pantalla el mensaje de error.

HttpNotiicationChannel miCanalPush;
public MainPage() {

void myPushChannel_ErrorOccurred(object sender, NotiicationChannelErrorEventArgs e) {

InitializeComponent();

txtEstadoSuscripcion.Text = e.Message;

if(IsolatedStorageSettings.ApplicationSettings.Contains(IdDispositivo)) {

}
Listado 11. Manejo de error

phoneID =
(Guid)IsolatedStorageSettings.ApplicationSettings[IdDispositivo];
} else {
phoneID = Guid.NewGuid();
IsolatedStorageSettings.ApplicationSettings[IdDispositivo] = phoneID;

El listado 12 tiene el manejador del evento miClient.SuscribirMiTelefonoCompleted. Consiste en desplegar un mensaje de error o xito segn
sea el caso, as como el contenido del canal de comunicacin utilizado.

}
miCanalPush = HttpNotiicationChannel.Find(miCanal);

void miCliente_SuscribirMiTelefonoCompleted(object sender, System.ComponentModel.

if (miCanalPush == null) {

AsyncCompletedEventArgs e) {

txtMensajeRaw.Text += Canal nulo;

if (e.Error == null) {

miCanalPush = new HttpNotiicationChannel(miCanal);

txtEstadoSuscripcion.Text = Suscrito!;

adjuntarFuncionesManejadores();

} else {

miCanalPush.Open();

txtEstadoSuscripcion.Text = e.Error.Message;

} else {

txtMensajeRaw.Text += Canal encontrado!;

txtCanalUri.Text = miCanalPush.ChannelUri.ToString();

adjuntarFuncionesManejadores();

miCliente.SuscribirMiTelefonoAsync(phoneID,

Listado 12. Manejo de suscripcin

miCanalPush.ChannelUri.ToString());
}
}
Listado 9. Constructor de la aplicacin Windows Phone

Analicemos el cdigo del listado 9. Primero creamos unos objetos


de tipo Service1Client (esta clase viene del servicio web que creamos) y
HttpNotiicationChannel. Veriicamos que nuestra aplicacin contenga un identiicador nico guardado en el almacenamiento aislado y
si no, lo creamos. Luego obtenemos el valor del canal que utilizaremos
si es nulo creamos una nueva instancia del canal y lo abrimos e
invocamos la operacin SuscribirMiTelefono() del servicio web.
En el listado 9 habrn notado llamadas a adjuntarFuncionesManejadores(). Este mtodo deine cuatro manejadores de eventos: ErrorOcurred que se dispara en caso de que algn error haya ocurrido con
14

El listado 13 tiene el cdigo para el manejador miCanalPush.


ChannelUriUpdated. Lo primero que hacemos es usar la propiedad
IsShellTileBound para veriicar si el canal de suscripcin se encuentra
enlazado a alguna notiicacin de mosaico. Si no se encuentra enlazado, enlazamos por medio del mtodo BindToShellTile() de miCanalPush enviando una lista de dominios o IPs permitidos para el consumo
de datos. De manera similar, veriicamos si el canal de suscripcin se
encuentra enlazado a una notiicacin tipo Toast, y si no es as lo enlazamos. Finalmente, desplegamos un mensaje de estatus (uri actualizada) y ejecutamos el mtodo SuscribirMiTelefonoAsync() del cliente.
void myPushChannel_ChannelUriUpdated(object sender, NotificationChannelUriEventArgs e) {
if (miCanalPush.IsShellTileBound == false) {
var ListOfAllowedDomains = new Collection<Uri> {

.TUTORIAL

new Uri(@http://192.168.0.46)
};
miCanalPush.BindToShellTile(ListOfAllowedDomains);
}
if (miCanalPush.IsShellToastBound == false) {

Para probar las notiicaciones de mosaico vamos a colocar el mosaico


de la aplicacin que creamos en la pantalla de aplicaciones principales.
Despus de hacerlo, ejecutamos la operacin InsertarInformacionTile(). La igura 3 muestra un ejemplo de qu informacin incluir en los parmetros.

miCanalPush.BindToShellToast();
}
txtMensajeRaw.Text = uri actualizada;
miCliente.SuscribirMiTelefonoAsync(phoneID,
miCanalPush.ChannelUri.ToString());
}

Figura 3. Parmetros

Listado 13. Manejo de actualizacin de canal

al invocar Insertar

void myPushChannel_HttpNotiicationReceived(object sender, HttpNotiicationEventArgs e) {


Deployment.Current.Dispatcher.BeginInvoke(() => {
StreamReader miLector = new StreamReader(e.Notiication.Body);
txtMensajeRaw.Text =
Notiicacin RAW recibida: + miLector.ReadToEnd();
});
}
Listado 14. Manejo de HttpNotificationReceived

Juntando ambas partes


Una vez que tenemos el servicio web y la app de Windows Phone podemos veriicar su funcionamiento.
Al desplegar la pantalla de inicio de nuestra aplicacin, la
aplicacin marcar una excepcin que explica un acceso no
autorizado. Para solucionar este problema vamos a la pestaa de capacidades del archivo WMAppManifest y seleccionamos la opcin ID_CAP_PUSH_NOTIFICATIONS. Con esto
debe quedar resuelto el acceso. Ahora regresamos al cliente de
pruebas del servicio WCF y ejecutamos la operacin InsertarInformacionRaw(). Esto debe mostrarnos una pantalla en
el telfono indicando la recepcin del mensaje, as como el
contenido de este.
Como pueden ver, en el segundo rengln despus de la leyenda
Notiicacin RAW recibida se despliega el mensaje enviado.
Si ahora intentamos ejecutar la operacin InsertaToast() enviando
el ttulo notiicacion y el cuerpo mensaje de prueba, el dispositivo
mostrar algo similar a la igura 2.

Figura 4. Notificacin de mosaico

Conclusin
Con esto terminamos este tutorial donde mostramos como crear
notificaciones y desplegar notificaciones en Windows Phone.
Este es un recurso muy til y que le da gran interactividad a
nuestras aplicaciones. Por otro lado, tambin debemos tener
cuidado de no abusar de las notificaciones, ya que podemos terminar agobiando a nuestros usuarios.

Referencias
[1] Push notiications for Windows Phone. MSDN. http://swgu.ru/r6
[2] Sending push notiications for Windows Phone. MSDN. http://swgu.ru/sg39r7

.BIO
Amn Espinoza (@aminespinoza) es un desarrollador de software
especializado en las plataformas Windows Phone, Windows 8 y Silverlight. Es un apasionado de la historia, y fan de las luchas, los comics, el
caf y la msica. http://aminespinoza.com
Figura 2. Despliegue de notificacin toast

15

www.sg.com.mx |

La imagen debe ser de


173x173 pixeles. La direccin de
la imagen debe ser absoluta. En
este caso yo la coloqu en el servidor web local de mi computadora. Para ahorrarse el trabajo de
crear la imagen podemos recurrir
al servicio de imgenes de lorem pixel. Simplemente usamos
la direccin http://lorempixel.
com/173/173
La igura 4 muestra un ejemplo de cmo se vera en el dispositivo una notiicacin de mosaico
(imagen del ciclista con el ttulo
Ejemplo Tile y el contador 9).

Software Guru

InformacionTile

El listado 14 muestra el manejador de eventos para HttpNotiicationReceived. Consiste en recibir el cuerpo del mensaje en un objeto
de tipo StreamReader y desplegarlo en pantalla.

.ESPECIAL
PROJECT MANAGEMENT

MODERNO

Project Management Moderno


Ideologas renovadas en el horizonte

Por Vanessa Amaya

omo sabemos, construir o implantar software no es una


actividad trivial: involucra la colaboracin de personas con
distintos periles, administrar los riesgos, costos, tiempos,
materiales, etctera. En pocas palabras, un proyecto de software es un proyecto digno de administrarse.
Mencionamos esto, que para muchos puede parecer obvio, porque pareciera ser que ante los factores que estn moldeando nuestra
industria tales como reduccin en los tiempos de construccin de
software, adopcin de lujos continuos tipo Kanban, automatizacin
de actividades en el ciclo de vida de software, posibilidad de ensamblar
apps a partir de elementos existentes, la administracin de proyectos est perdiendo relevancia. Nosotros consideramos que no es as, el
project management sigue siendo tan importante y necesario como
siempre, pero est evolucionando (y debe hacerlo) para satisfacer las
necesidades y contexto de los proyectos de software modernos.
A continuacin listo algunas de las caractersticas que considero
ms relevantes sobre este project management moderno.

yectos consiste principalmente en cambiar mentes, ms que cambiar


mtodos. Si se quiere adoptar solamente las prcticas sin cambiar la
mentalidad y costumbres, no se lograrn los beneicios esperados.

LIDERAZGO COMPARTIDO

La inversin que se ha hecho en las PMOs es gigantesca, ya que no


solo se trata de la operacin interna sino de los recursos que directa o
indirectamente consumen en las organizaciones como herramientas,
infraestructura, tiempo de otras reas, consultoras, y capacitaciones.
Como toda gran inversin es necesario que sea cuestionada y de ser necesario reinventarla para alinearla a los nuevos objetivos de la empresa.

Conforme la tendencia es hacia establecer equipos auto-dirigidos, una de


las principales responsabilidades de un lder moderno es la de establecer un
ambiente bajo el que pueda haber un liderazgo compartido. Este punto
implica no tener un nico responsable del xito o fracaso de un proyecto.
Un indicador importante de que el liderazgo comienza a lorecer,
es cuando la comunicacin luye mejor, cuando en las reuniones de
trabajo no solo es una persona la que habla, pide y opina sino que se
presentan escenarios donde la sana retroalimentacin es parte de la
dinmica de los proyectos. La comunicacin da paso a la iniciativa y la
iniciativa a la creatividad: estos elementos alimentan al liderazgo.

NFASIS EN LA MOTIVACIN
La administracin de proyectos de software moderna reconoce la importancia de las personas. El xito de un proyecto est ligado a la motivacin de sus miembros. Esta motivacin no solo radica en echar
porras, sino en mantener una buena comunicacin, lograr que realmente haya un objetivo comn, que es ms importante que el desempeo individual de cada integrante.
.BIO

INCORPORACIN DE
PRCTICAS GILES

Vanessa Amaya (@vanessa_amaya)


es Coordinadora Editorial de SG. Es
Ing. en Sistemas Computacionales
por la Universidad Autnoma de
Guadalajara y tiene ms de 10 aos
de experiencia en proyectos de
desarrollo de software en distintas
industrias. Ha capacitado a ms de
2,000 profesionistas de software
en temas de Ingeniera de Software,
administracin de proyectos y
comunicacin efectiva.

Los mtodos giles han afectado signiicativamente la forma en que construimos software, desde la adopcin
de modelos iterativos e incrementales, hasta la forma en que programamos o probamos (ej. test driven development). Sin embargo, debemos
recordar que la gestin gil de pro16

TODA EMPRESA DESEA Y REQUIERE


SER UN SEMILLERO DE LDERES
ANLISIS DE NEGOCIO
No importa que un software se haya hecho en tiempo, costo y de
acuerdo a las especiicaciones, si no contribuye a resolver el problema
de negocio deseado. Un software funcional, pero que no est alineado
al negocio, no sirve de mucho. Es por ello que en los ltimos aos ha
cobrado gran popularidad la disciplina de anlisis de negocio. El anlisis de negocio provee tambin la visin para poder descubrir oportunidades bajo una perspectiva ms global y a largo plazo.

Y LAS OFICINAS DE PROYECTOS?

Algunos aspectos importantes a cuestionar son:


Credibilidad de sus indicadores. Son utilizados para tomar decisiones de
peso en los proyectos? Por qu? Las respuestas a estas preguntas desencadenan un anlisis muy profundo y acciones que traern mejoras sustanciales.
Cooperacin. Qu tanto se involucran las PMOs con los equipos de
trabajo y viceversa? Es recomendable crear comunidades de apoyo para
restablecer los vnculos perdidos. Mesas redondas o Mesas de anlisis
donde se hablen de las problemticas frecuentes en los proyectos y a
travs de expertos se identiiquen las causas raz.
Esquemas de comunicacin. Tambin es importante analizar si es necesario aligerar y adaptar los esquemas de comunicacin que se tienen de la
PMO hacia los proyectos (por tipo de proyecto, por tipo de plataforma,
por duracin, por tipo de cliente, etc). Es importante que estos esquemas sean adaptables y lexibles. La informacin e indicadores podrn ser
buenos, pero no todos los proyectos requieren los mismos indicadores
en todo momento. Cada fase debera de tener indicadores particulares.
Un proyecto siempre ser un reto a resolver de manera coordinada
por lo que toda disciplina y prctica que se incorpore en el mbito de
los proyectos facilitar el control de todas las variables a vigilar.

.ESPECIAL

PROJECT MANAGEMENT MODERNO

Estimacin Emprica de Proyectos con

Planning Poker
Por Hctor Cuesta-Arvizu y Sergio Ruiz-Castilla

Consiste en crear una reunin de trabajo con el


grupo de expertos. Se requiere de un moderador
que dirigir la actividad. Primero se expone el
proyecto que se va a desarrollar. Luego se determinan las actividades requeridas para ejecutar el
proyecto, y entonces para cada una de las actividades los distintos miembros del equipo realizan
una estimacin emprica y se conjuntan y discuten los resultados con el in de cerrar la brecha y
converger en un valor estimado para cada tarea.
La informacin obtenida con la estimacin de
cada tarea se utiliza para realizar el plan general
del proyecto y conocer el esfuerzo total.

EL PROCESO

III. Verificacin y Validacin


Es recomendable que al terminar el proyecto y
realizar el post-mortem de ste se compare la estimacin contra el esfuerzo real, de manera que
esto se tome en cuenta para futuras estimaciones.
Para esto podemos recurrir al clculo del
balance relativo de error (BRE) con la siguiente ecuacin:

Figura 1. Interface web para realizar estimaciones en


planningpoker.com

ciones. Tambin hay que tener cuidado


cuando uno de los integrantes tiene demasiada autoridad, ya que puede sesgar la
estimacin. No es posible estimar un proyecto entero de esta forma, sino que se
recomienda estimar por historia o sprint
si se trabaja con SCRUM.
Uno de los beneficios de esta tcnica
es que permite considerar distintos puntos de vista. Adicionalmente, ayuda a hacer amenizar una tarea que puede ser tediosa. Resulta ser una tcnica mejor que
Delphi y que grupos no estructurados, tal
vez por la discusin cara a cara entre los
participantes. A medida que se practica
Planner poker se podrn hacer mejores
estimaciones.

Referencias
[1] N. Haugen. An empirical Study Planning for user
story estimation. Proceedings of AGILE 2006 Confe-

X+Y
BRE =
Min(x,y)
Donde X = real y Y = estimado

rence. IEEE, 2006.


[2] N. Haugen & K. Molokken-Ostovoldl. Combining
Estimates with planning poker: An empirical study.
Proceedings of the 2007 Australian Software Engi-

CONSIDERACIONES
Esta tcnica requiere de un moderador
con gran pericia para lograr que rpidamente haya convergencia en las estima-

neering Conference. IEEE, 2007.


[3] T. Stober & U. Hansmann. Agile Software Development: Best Practices for Large Software Development
Projects. Springer, 2010.

.BIO

A continuacin mostramos el proceso en mayor detalle que se realiza para cada historia de
usuario a estimar.
1. El moderador lee y explica una historia o
requerimiento ante los miembros del equipo.
Se podrn hacer preguntas para dejar claro
qu se desea alcanzar.
17

Hctor Cuesta-Arvizu (@hmcuesta) es Lic. en Informtica y actualmente cursa la maestra en ciencias de la computacin en la UAEM Texcoco. Cuenta con seis aos de experiencia desarrollando y
administrando proyectos de software. Adicionalmente se desempea como instructor para Nyce en
el rea de base de datos e ingeniera de software.
Jos Sergio Ruz Castilla es Profesor Investigador de la Universidad Autnoma del Estado de
Mxico, estudia el Doctorado en Ingeniera de Software y trabaja en proyectos de Ingeniera de
Software y Sistemas de Gestin del Conocimiento.

Software Guru

LA TCNICA

2. Los participantes anotan en una tarjeta su


estimacin para dicha tarea y la entregan al moderador de manera annima, es decir que no se
sepa qu tarjeta corresponde a qu persona.
3. El moderador captura los resultados en un
pizarrn o en alguna herramienta de software
tal como la de http://www.planningpoker.com
4. Una vez que se conoce los integrantes debern discutirlas, haciendo nfasis en el razonamiento detrs de los valores extremos (el
ms bajo y el ms alto).
5. Tomando en cuenta el conocimiento obtenido por esta discusin, cada participante
hace una nueva estimacin para la historia y
la anota en una tarjeta.
6. El moderador captura las estimaciones
ajustadas y en caso de no haber consenso se
vuelven a discutir.

www.sg.com.mx |

ara planear el desarrollo de un


software es necesario estimar de
una u otra forma su tamao y
por supuesto su costo. Existen
diversas mecanismos para estimar el tamao de un software y el esfuerzo
requerido para construirlo, en las pginas de
SG anteriormente se han publicado artculos
sobre mtodos como la estimacin por puntos
de funcin, as como el recurrir a informacin
histrica de proyectos anteriores.
En este artculo se muestra una tcnica de
estimacin emprica conocida como Planning Poker, donde un grupo de expertos
discuten y evalan el esfuerzo requerido para
cada tarea del proyecto. Se utiliza la opinin de
expertos como referencia ya que su experiencia
les permite adaptarse a nuevas tareas en base a
su similitud. Esta tcnica se utiliza en metodologas giles como XP (Programacin extrema)
para estimar cada historia de usuario [1].

.ESPECIAL
PROJECT MANAGEMENT

MODERNO

Gestin
gil de Equipos
Por Pablo Cceres Ferreira

radicionalmente, los equipos de desarrollo de software tienen una estructura jerrquica, con la fuerte presencia del
jefe de proyecto y alto nfasis en la asignacin de roles y
especializaciones a personas, que solo se dedican a efectuar
el trabajo de su rol o especializacin. Este tipo de estructura restringe la interaccin entre los miembros del equipo.
La utilizacin de Kanban & Lean se orienta a generar equipos auto-organizados, en donde se alinea el alto empoderamiento con el alineamiento de objetivos comunes: alta flexibilidad,
sin tendencia al caos.
La gestin tradicional de los equipos visualizados como recursos
intercambiables y renovables, puede lograr resultados a cierto grado,
pero tiene un alto costo humano, la motivacin y autovaloracin del
desarrollador van mermando, generando un alto riesgo de abandono
laboral y la incapacidad de generar equipos fuertemente de alto rendimiento, debido a que nunca se genera un equipo fuerte y permanente,
slo personas que vienen y van.

UN INTENTO FALLIDO
Alguna vez colabor en un proyecto con una empresa dedicada
a las microinanzas. El proyecto era de gran relevancia, y mi jefe
directo tena una fuerte intencin de utilizar metodologas giles.
Al ingresar detect en los miembros del equipo un alto inters
en aprender y trabajar de forma diferente. Les expliqu que utilizaramos Kanban, que con sus principios bsicos era suiciente
para partir e iniciar el proceso de
.BIO
mejora continua (Kaizen).
Aprovechamos cuando el jefe
Pablo Cceres Ferreira es Project
Manager en Rhiscom S.A Chile. Se
de proyectos se fue de vacaciones
especializa en el desarrollo y gespara hacer un tablero Kanban.
tin de proyectos tecnolgicos y de
innovacin utilizando metodologas
Nuestro tablero contaba con cogiles. Su prximo objetivo es por
lumnas para agrupar los elementos
medio de BPM lograr la alineacin
estratgica de la tecnologa al servien Pila, Seleccionado, En curso,
cio de los negocios y los procesos.
Listo para revisin, Revisin y Terminado. Iniciamos las Stand-Up
18

Meeting diarias. Si bien exista una Gantt como gua de actividades y tiempos, debido a los altos cambios que sufra el proyecto,
la stand-up meeting nos permitan organizarnos da a da balanceando las cargas de trabajo, aumentando el rendimiento de
equipo y lo ms importante, el nimo y cohesin generado al ser
los nicos trabajando en forma distinta al resto de los equipos.
Al regresar nuestro jefe, en un inicio se interes bastante en la forma de trabajar. Sin embargo, conforme pas el tiempo el inters fue
mermando, haciendo ms hincapi en el seguimiento y re-planiicacin de la Gantt que posea. El equipo no se juntaba si nuestro jefe
no participaba o no invocaba, el tablero se dej de actualizar y dej de
tener sentido utilizarlo.

UNA NUEVA SITUACIN


En mi nuevo trabajo me comentaron inmediatamente la urgencia de
estructurar y gestionar las actividades de cada desarrollador del equipo.
El problema observado en primera instancia era la sobrecarga de tareas
a cada desarrollador, sin tener una priorizacin clara o planiicacin.
Adicionalmente tenamos los siguientes impedimentos:
Bajo nivel tcnico del equipo.
Restriccin inicial de contratacin de analista QA.
Restriccin inicial de contratacin de nuevo desarrollador.
Cuando el desarrollador estimaba e iniciaba una tarea, se le
asignaban 2 o 3 tareas ms (adems de retrabajos), generando retrasos y grandes problemas de calidad ya que no estaba controlado
el trabajo que tena en curso. Esto generaba una gran frustracin,
sobrecarga emocional y estrs, adems de existir un mal ambiente
interno, generando diferencias tcnicas y de calidad en el trabajo.
Esto generaba una divisin y un quiebre interno (entre los que trabajaban bien, y los que no).
Exista una fuerte desconfianza de parte del cliente sobre
nuestros desarrollos, por carecer de calidad e innovacin tecnolgica. Si bien los desarrollos eran entregados en un corto tiem-

.ESPECIAL
PROJECT MANAGEMENT MODERNO

LOS RECURSOS NO TIENEN CAPACIDAD DE


AUTO-ORGANIZACIN, LAS PERSONAS S.

VISUALIZACIN DEL TRABAJO

TIMEBOXING

Lo primero que se realiz fue la creacin del tablero Kanban (ver igura
1) para el equipo completo, con las siguientes columnas: Pila, Seleccionado, Anlisis, Desarrollo (restriccin de WIP, que puede tener el
estado de en progreso o listo), Revisin y Terminado.

De un universo limitado de funcionalidades, se pueden escoger


un subconjunto de estas que sean inmediatamente prioritarias
y determinar una fecha de entrega fija. Se negocian las funcionalidades que podemos asegurar entregar para esa fecha. Esto
elimina los retrasos de entrega, logrando entregar lo prioritario primero, ganando tiempo y permitiendo limitar y enfocar
nuestro trabajo en curso.
En nuestro caso, cada requerimiento recibido de parte del
cliente contena varios sub-requerimientos que eran especficamente las funcionalidades que el cliente requera, por lo tanto,
lo que efectuamos es definir conjuntamente con el cliente las
funcionalidades ms prioritarias e indicar una fecha de entrega
de ese subconjunto de funcionalidades priorizadas y una segunda fecha para entregar el resto de funcionalidades. Claramente,
una vez entregado el primer subconjunto de funcionalidades
exista una re-priorizacin, lo que nos permita nuevamente
re-planificar y adecuarnos a las necesidades y prioridades del

Para abarcar y solucionar esta problemtica, se deinieron las siguientes metas:


1. Mejorar motivacin y compromiso del equipo.
2. Optimizar el trabajo en curso (WIP).
3. Mejorar la calidad de los desarrollos.
4. Recuperar la conianza del cliente.

La visualizacin del trabajo nos permiti inmediatamente


detectar y visualizar en conjunto la carga de trabajo que tena el
equipo, y los tipos de tareas que existiran (mantenimientos, requerimiento nuevo, soporte, error, urgencia o documentacin.). Fue
el inicio del cambio. Adicionalmente, cuando creamos el tablero
Kanban acordamos limitar el trabajo en curso y cumplirlo con total
rigidez, no superando nunca el lmite establecido.

HITOS Y DOCUMENTACIN
Se deinieron ciertos criterios e hitos a cumplir en la transicin de cada
tarea en el tablero, que incluan la generacin de documentacin simple. A continuacin la documentacin que acordamos generar:
19

www.sg.com.mx |

A continuacin describo las acciones realizadas para lograr estas metas.

Identiicacin de necesidades: Descripcin de las necesidades de los


clientes, validadas por un representante del cliente.
Documento de evidencia de pruebas: Generacin de pruebas unitarias y revisin completa del desarrollo, permitiendo detectar el mximo de problemas antes de pasar a produccin.
Documento de entrega: documento en donde el desarrollador enumera todos los fuentes creados o modiicados y su descripcin, permitiendo detectar posibles alteraciones al sistema por un desarrollo nuevo
(impacto a la funcionalidad en produccin).
Setup: El documento de Setup est orientado a generar un instalable
de uno o ms desarrollos que se solicitan instalar en produccin. Eso
se debe a que cada desarrollador puede generar uno o ms entregables,
pero estos se pueden efectuar en una sola instalacin.
La utilizacin de estos documentos permiti al desarrollador y al
equipo dedicar tiempo a la comprensin de los requerimientos y a la
revisin ms exhaustiva de los desarrollos terminados.

po, el tiempo destinado a hacer retrabajos era aproximadamente


un 30% de tiempo involucrado en desarrollar, tiempo que era
tomado de estimaciones de otros desarrollos, por lo cual el desarrollador deba efectuar esta correccin y adems continuar con
los desarrollos asignados y en el tiempo comprometido. En el
equipo esto generaba una frustracin, ya que se sentan malos
desarrolladores.

Software Guru

Tabla 1. Tablero Kanban

.ESPECIAL
PROJECT MANAGEMENT

MODERNO

ALTA FLEXIBILIDAD, SIN TENDENCIA AL CAOS.

cliente, permitindonos entregar las funcionalidades de mayor


importancia a su negocio.
Esto nos permiti directamente establecer un marco de mayor conianza con el cliente y priorizar nuestro trabajo, limitando
nuestro trabajo en curso a lo priorizado, eliminando la sobrecarga
laboral y canalizndola de una manera ms estratgica.

Con el tiempo las reuniones diarias se alargaban, planiicando y


analizando nuevos requerimientos recepcionados, por lo cual empezamos a efectuar planiicaciones semanales de mximo 2 horas
los lunes. Estas reuniones nos permitan generar metas concretas,
especicas y priorizadas, lo que permitira al equipo cuantiicar sus
avances y sentir que han logrado nuevas y mejores cosas. Esto nos
permita elegir e iniciar aquellas tareas ms prioritarias segn los
objetivos deinidos al iniciar la semana.

tambin tiene un efecto dramtico. Esto an no ha sido 100%


implementado, ya que trabajar con TDD es duro y requiere un
cambio mental fuerte.
Realizar inspecciones de Cdigo. Establecimos una prctica
de revisin por terceros, lo cual nos ayud a mejorar la calidad
del cdigo que generamos. Esto nos ha permitido detectar deficiencias de cdigo, corregirlas y que todo el equipo aprenda
para no replicarlas.
Hacer anlisis y diseo en colaboracin. La calidad se incrementa cuando se les pide a los equipos que trabajen juntos para
analizar problemas y soluciones de diseo. Decidimos analizar todos los requerimientos en conjunto (todo el equipo) identiicando
riesgos, dependencias y dudas, para luego deinir tems de trabajos
(subconjunto de funcionalidades), que pueden ser priorizadas y paralelizadas. Esto permiti distribuir el trabajo en el equipo completo, balanceando la carga de trabajo, aumentando la comunicacin
en el equipo y disminuyendo la especializacin, adems de permitirnos compartir conocimiento y estrategias de implementacin.
Apoyarse en patrones de diseo. Aplicar patrones de diseo facilita
y acelera el diseo, adems de que ayuda a reducir errores.
Utilizar herramientas modernas de desarrollo. Muchas de las herramientas modernas incluyen funciones para realizar un anlisis esttico
y dinmico de cdigo. No poseemos herramientas modernas de desarrollo, pero esta dentro de nuestro prximo objetivo.

ENTREGA CONTINUA

CONCLUSIONES

La entrega continua de los desarrollos permiti inmediatamente alinearlos con las necesidades del cliente y recuperar su conianza. Deinimos dos tipos de entregas:
Entrega parcial: Nos permite informar al cliente de un avance en
ambiente de revisin interna, pero con riesgos de mal funcionamiento
o problemas de escritura en los desarrollos. El objetivo de una entrega parcial es montar un ambiente de integracin, rectiicacin de un
requerimiento completo o netamente para disminuir la angustia del
cliente ante cortos tiempos de desarrollo.
Entrega total: Es la entrega de una funcionalidad completa en los
tiempos planiicados, con documento de evidencia de funcionamiento
y entrega. Esto quiere decir que con el visto bueno del cliente, se proceda a la instalacin de esa funcionalidad o de otras.

El uso de Kanban, sumado con conceptos de gestin gil, nos ha permitido aumentar la calidad de nuestros desarrollos, permitiendo el retorno de conianza de nuestros clientes. Gracias a esto, uno de nuestros
clientes recientemente nos evalu como una de las empresas proveedoras Top Ten en conianza, calidad y responsabilidad.
Por otra parte, el trabajar con una metodologa gil, limitar
el trabajo en curso, deinir hitos o explicitar el proceso, y llevar
a cabo las reuniones deinidas (stand-Up meeting, planiicacin
semanal y anlisis en conjunto) ha permitido al equipo conformar una identidad nica en la empresa, mejorando su nimo,
motivacin y empoderamiento, ya que se ha logrado con una
simple gua y polticas puntuales, una auto-organizacin fuerte,
entendida y compartida por todo el equipo. Los miembros del
equipo no nos sentimos como recursos genricos, sino como una
fuente de mejora, innovacin y orgullo por las metas conseguidas
en conjunto: calidad de los desarrollos, optimizacin de nuestro
trabajo, retorno de la conianza del cliente, y lo mejor, motivacin
y compromiso por parte del equipo.

STAND UP MEETING
Se iniciaron las reuniones diarias, en donde se presentaba la tarea asignada y el progreso que se tena de esta, adems de los impedimentos
(qu estoy haciendo, qu har y qu problemas he tenido) poco a poco
se va barriendo el tablero de derecha a izquierda, iniciando por las
tareas inconclusas, hasta las que se planean efectuar (para de iniciar,
empieza a terminar).

PLANIFICACIONES SEMANALES

ENSEANZA PARA MEJORAR LA CALIDAD.


Basndonos en el Libro de Kanban de David J. Anderson, rescatamos la siguiente receta para permitir aumentar la calidad de
nuestros desarrollos:
Aplicar desarrollo dirigido por pruebas (TDD). Pedirle a
los desarrolladores que escriban pruebas unitarias y las automaticen para proporcionar pruebas de regresin automatizadas
20

Los recursos no tienen capacidad de auto-organizacin, las


personas s.

www.sg.com.mx |

Software Guru

Certificaciones,
Normas y Modelos de TI
La voz de la industria
Trabajar regidos por un modelo o norma es una red de seguridad que debe ayudarnos a controlar y mejorar los resultados
de nuestros proyectos de software. Pero el control y garantas no slo son requeridas hacia el interior sino tambin hacia el
exterior, y es aqu cuando las certiicaciones adquieren un valor ms all del control. En el afn de conseguir reconocimiento
como un jugador destacado en la industria internacional de TI, en Mxico en los ltimos aos se le ha dado gran importancia
y apoyo a las certiicaciones, tanto a nivel de profesionistas como de organizaciones y productos. Gracias a ello hoy en da
contamos con una masa crtica de profesionistas certiicados en las tecnologas ms utilizadas a nivel internacional, as como
un nmero signiicativo de empresas acreditadas en modelos de calidad como CMMI y MoProSoft.
Aunque mucho se puede discutir sobre si una certiicacin realmente garantiza la calidad del trabajo de una persona o empresa, lo que s debemos reconocer es que la masa crtica de personas y empresas certiicadas es uno de los elementos que ms
puede contribuir a mejorar el posicionamiento de un pas en la industria global de TI. Es as que hemos dedicado el reportaje
principal de esta edicin de SG para platicar sobre certiicaciones profesionales y modelos de calidad organizacionales. A lo
largo de los siguientes artculos conocers tendencias, modelos y recomendaciones para conseguir las certiicaciones de mayor
demanda en la industria de TI actualmente.

22

Estudio SOBRE

CERTIFICACIONES
1. Obtener mejores resultados en sus proyectos.
2. Incrementar competencias y habilidades.
3. Mejorar la calidad de los productos de trabajo.
Un tema que va de la mano con los programas de adopcin de modelos y certiicacin
organizacional es la consultora de procesos.
As que preguntamos a los encuestados sobre
el rol que debe de asumir el consultor dentro
de este tipo de programas. Dentro de los tres
primeros lugares se encuentra:

Certificaciones
personales
La tabla 1 muestra los la lista de certiicaciones personales ms buscadas entre los encuestados. Las de mayor inters fueron las de
PMP, ITIL y SCRUM Master. Un porcentaje
considerable tambin indic inters en certiicaciones en lenguajes o plataformas tecnolgicas especicas, sin embargo no se obtuvo el
detalle de stas ya que el enfoque del estudio
fue hacia normas y modelos de TI.

1. Aumento de la productividad.
2. Cooperacin entre individuos, equipos y reas.
3. Mejora de la calidad y satisfaccin de
los clientes.
4. Cuando toda la organizacin conoce los procesos definidos y se entiende su razn de existir.
5. Cuando hay cambio positivo en la cultura
organizacional.

Acreditaciones
organizacionales

Prximamente publicaremos en el sitio web de


SG la versin completa del estudio referido aqu.

Objetivos
En cuanto a las principales razones para
adoptar estos modelos, se encuentran:

Beneficios
Para conocer los beneiciones econmicos que
obtienen los profesionistas al certiicarse recurrimos a un estudio realizado recientemente
por Select para Mexico FIRST. De acuerdo
con dicho estudio, los profesionistas de TI en
promedio obtienen un aumento de 36% en su
compensacin econmica en un periodo de 18
meses despus de conseguir una certiicacin.

23

Tabla 2. Adopcin de modelos y normas en


las empresas

Las certiicaciones profesionales tpicamente requieren una inversin signiicativa tanto


en tiempo, esfuerzo y dinero. Es as que algunas organizaciones dudan de apoyar a su
personal para conseguir certiicaciones, ante
el riesgo de que despus de invertir en la certiicacin de un empleado, ste consiga su
certiicacin y se vaya a otra empresa. Sobre
este punto, Ral Gonzlez, director de Mexico FIRST, nos coment que Es cierto que
un pequeo porcentaje de los empleadores no
invierte en certiicar a su personal por el tema
de la rotacin. Sin embargo, el estudio arroj
que la satisfaccin de los empleadores fue del
96%, ya que no solo aumentan las habilidades
y se mejoran los resultados en los proyectos,
sino que hay ms idelidad de los empleados y
por ende disminuye la rotacin.
Ms informacin
Prximamente publicaremos en nuestro sitio
web una versin completa del estudio de SG sobre certiicaciones. Mantente al pendiente.

Software Guru

1. Facilitador
2. Coach
3. Agente de cambio
Obtener una certiicacin es un logro,
mas no es un indicador de una implantacin
exitosa a largo plazo, para asegurar que un
modelo o norma ha permeado en una organizacin, nuestros encuestados sealan como
indicadores principales los siguientes:

En el caso de las organizaciones, la tabla 2


lista algunos de los modelos, normas de procesos o metodologas (algunos especicos a
TI) ms populares. Se indica el porcentaje
de personas que indicaron que se utilizaba
dicho modelo en su organizacin.

Tabla 1. Certificaciones de inters a nivel personal.

www.sg.com.mx |

n SG recientemente realizamos un
estudio para conocer los objetivos de
certiicacin de nuestra audiencia.
Para ello aplicamos una encuesta entre cerca
de 300 profesionistas de TI. En el siguiente
artculo compartimos un breve resumen sobre los aspectos ms relevantes.
El objetivo del estudio fue brindar un panorama actual de los intereses que mueven a
profesionistas y empresas para buscar una certiicacin o para alinearse a la implantacin de
procesos basados en normas y modelos (aunque
no busquen una acreditacin o certiicacin).
Dentro de la muestra se contemplaron todos
los periles que intervienen en un desarrollo de
software: Directivos, Gerentes, Lderes de Proyecto, Desarrolladores, Arquitectos, Auditores,
Consultores, Ing. De Procesos, Testers, Ejecutivos de venta, seguridad e Infraestructura.

Certificaciones
sobre
Anlisis de Negocio
Una tendencia necesaria
Por Gabriel Almeida

l anlisis de negocio (business analysis) es un conjunto de prcticas orientadas a entender, documentar y


gestionar los requerimientos que genera una organizacin con el in de implementar los proyectos que
satisfarn las necesidades de negocio.
La mayora de los lectores de SG estar familiarizado con los estudios de la industria como el Chaos Report que indican que tan solo
el 25% de los proyectos de desarrollo de software son exitosos. Estas
fallas afectan drsticamente el valor accionario de las organizaciones
adems que la complejidad e incertidumbre de los proyectos se ha
incrementado derivado de las nuevas tendencias de la industria.
Entre las principales razones de fallas en los proyectos, estn la inadecuada administracin de proyectos y administracin de requerimientos.
El objetivo central del anlisis de negocio es entender con mayor
precisin la necesidad de negocio con el in de especiicarlo de la
manera ms apropiada para que los diferentes grupos de participantes del proyecto puedan ejecutar las tareas del mismo de forma ms
completa y alineada a la necesidad de negocio. Por otro lado, adems
de asegurarse de que la necesidad de negocio es satisfecha, se asegura
de medir el desempeo de la solucin con el in de evaluar si esta
cumple con los objetivos por los que el proyecto fue iniciado.

Evolucin del anlisis de negocio


En 2010 una encuesta de Forrester Research realizada con 128 CIOs
de empresas prestigiosas de la industria determin que el anlisis de
negocio era el rol ms importante de TI dentro de los 13 roles principales de la industria. Lo anterior demuestra cmo esta nueva profesin ha ido evolucionando desde que en 2003 fue creado el International Institute of Business Analysis (IIBA), quien cre el cuerpo
de conocimientos de la prctica conocido como el BABoK (Business
Analysis Body of Knowledge) que rige los estndares de la prctica.
La versin ms reciente del BABoK es la 2, publicada en 2005, aunque se espera que a inales del 2013 se publique la versin 3.
El nmero de miembros del instituto a nivel mundial ha tenido un
crecimiento exponencial, en 8 aos lleg de 181 miembros a ms de
26,000 al inal de 2012.

Tendencias de la industria
Actualmente existen ms de 2 millones de posiciones de analistas
de negocio en el mundo. Estudios realizados por el IIBA en 2010,
dieron como resultado que la composicin de analistas de negocio

24

dentro la industria est principalmente constituida por las empresas


de TI con un 26.1%; empresas inancieras, de seguros y casas de
bolsa con un 24.8%; empresas sin ines de lucro 11.0%; industria
aeroespacial y de defensa 9% y el resto distribuida en otras industrias.
En Mxico se ha notado un incremento en la demanda de este rol
principalmente en las empresas inancieras, de TI y de retail.
Con relacin a las tendencias del entorno que han cambiado el rol
del analista de negocio, hoy encontramos una economa dinmica e
interdependiente, un mercado global de clientes y proveedores con
competidores nuevos ms agresivos; un panorama econmico sombro afectado por profundas recesiones y quiebras de corporativos
y pases; clientes ms astutos que utilizan redes sociales con acceso
a informacin libre, rica e interconectada; empresas extendidas que
utilizan soluciones basadas en SaaS (Software as a Service), recursos
globales y en outsourcing; encontramos tambin un incremento en
automatizacin inteligente a travs del uso de motores de decisin
para mercados inancieros, reconocimiento de voz y herramientas
generadoras de cdigo y por ltimo un importante cambio en los
modelos de negocio (Apple, Amazon, Google, Facebook).
El reto es tener los resultados correctos a la primera. Los resultados de los
proyectos son mediocres, ha habido un incremento importante del gasto
en TI ($3.7 Trillones USD en 2011 segn Gartner) lo que hace que el
costo de tener fallas en los proyectos puede representar unos $250 billones
de dlares de prdida por mala especiicacin de los requerimientos.
Respecto a las tendencias tecnolgicas que ms han impactado el
rol del analista de negocio se encuentran: el desarrollo de proyectos
bajo metodologa gil; el anlisis de la informacin requerida para
proyectos de Business Intelligence; los procesos de negocio afectados por implementaciones de Business Process Management; la tendencia de independizar las reglas de negocio (Business Rules) de los
procesos y sistemas; el creciente uso de frameworks de Arquitectura
Empresarial y los constantes cambios organizacionales as como el
uso de soluciones basadas en cmputo en la nube.
Todo lo anterior obliga de alguna forma a tener analistas de negocio especializados en algunas de estas tendencias para entender mejor el negocio
y poder proponer soluciones ms adecuadas a las necesidades del mismo.

Las certificaciones profesionales


del IIBA
Una certiicacin profesional es una designacin ganada por un individuo identiicando que ha demostrado un nivel estndar de habilida-

En Mxico se ha notado un
incremento en la demanda de este
rol principalmente en las empresas
financieras, de TI y de retail.

Hacia el futuro, podemos ver que seguir el acelerado crecimiento de


conciencia y conocimiento del rol del analista de negocio y su valor.
Hay una necesidad del uso de prcticas y un lenguaje comn de negocios y tecnologa consistente a lo largo de las organizaciones. Se est
dando una integracin de disciplinas de proyectos alineados hacia los
objetivos de la organizacin. Y por ltimo pero no por ello menos importante, est aumentando el enfoque hacia las relaciones personales.
Todos estos factores provocarn que la demanda por analistas de
negocio continue creciendo. Adicionalmente, el rol est sufriendo
una transicin a una posicin de liderazgo.

Por qu elegir certificaciones del IIBA?


Siendo una organizacin global profesional sin ines de lucro para
el Business Analysis, el IIBA est interesado en el reconocimiento y
apoyo a individuos y a la gran comunidad de analistas de negocio.
Esto te da la conianza de que tu certiicacin profesional del IIBA
ser reconocida a donde quiera que vayas no slo donde un proveedor de capacitacin particular es conocido.
La igura 1 muestra los requisitos de certiicacin para cada nivel
de certiicacin.

Figura 1. Requisitos de
certificacin

[BIO]
Gabriel Almeida, CBAP es Socio Fundador, Primer Presidente y VP de Desarrollo Profesional IIBA Mexico City Chapter. Estudi
Licenciatura en Informtica en UPIICSA y tiene 35 aos de experiencia en la industria de TI. Ha ocupado puestos directivos como
Subdirector de Ingeniera Sistemas; Subdirector de Ingeniera Procesos; Director de Innovacin y Tecnologa en distintas empresas. Actualmente imparte cursos, conferencias y talleres sobre Business Analysis. galmeida@seanmexico.com

25

Software Guru

Escenario futuro

www.sg.com.mx |

des, experiencia y conocimiento dentro de su campo. Las certiicaciones


son generalmente ganadas a travs de una asociacin profesional con un
cuerpo de certiicacin y son otorgadas basadas en una combinacin de
formacin, experiencia y conocimiento, ms que solo por haber pasado
un examen. El proceso de desarrollo, administracin y mantenimiento
de la certiicacin es realizado con base en estndares internacionales.
Muchas certiicaciones profesionales se utilizan indicando las siglas de la
certiicacin despus del nombre (ejemplo: Juan Prez, CBAP)
Las dos designaciones del IIBA, CBAP Certiied Business Analysis Professional y la CCBA Certiication of Competency in Business Analysis son certiicaciones profesionales.
El IIBA tiene un Cuerpo de Certiicacin cuya responsabilidad es el
desarrollo y vigilancia de las certiicaciones profesionales de las organizaciones. El Cuerpo de Certiicacin es independiente del IIBA con el in
de eliminar conlictos de inters entre el cuerpo de certiicacin y el IIBA.
Las designaciones CBAP y CCBA son nicamente otorgadas una
vez que los individuos han logrado los requerimientos de formacin,
experiencia y conocimientos en lugar de ser estrictamente evaluados
por sus conocimientos (ejemplo: pasar un examen).
El programa de certiicacin del IIBA ha sido desarrollado alineado a los requerimientos ISO 17024. El ISO 17024 es el estndar
internacional para cuerpos de certiicacin para individuos. Alinendose a este estndar el IIBA demuestra su compromiso de dirigir un
programa de certiicacin equitativo.

Las
Certificaciones
que Todo Tester
debe Conocer
Por Gerson Garca y David Aguilar

eguramente como Ingeniero de Pruebas te has preguntado algo como qu certiicaciones existen en el
mercado?, cul tiene mayor validez?, por qu me debera de certiicar con un ente extranjero y no con un
representante nacional? o si vivo en Mxico por qu el
ASTQB y no el HASTQB?, si al inal del da existe un representante
en Mxico por qu hacerlo con un extranjero?
En este artculo analizaremos algunas de las opciones ms populares para certiicacin en testing.

La evolucin de las pruebas de


software como disciplina
El funcionamiento de los sistemas modernos de TI depende de nuestra habilidad de producir software en una forma costeable. El trmino ingeniera de software se us por primera vez en el taller de la
OTAN en 1968 en Alemania Oriental. Este taller se enfoc en la
crisis del software! Desde ese momento se observaba una crisis en la
calidad, coniabilidad, altos costos, etctera., de los proyectos de sistemas de software, es decir, comenz mucho antes de que la mayora
de nuestros testers del da de hoy hubieran nacido.
La actitud respecto a las pruebas de software ha tenido una evolucin positiva e importante en los ltimos aos. En los 50s las pruebas
no eran otra cosa que debuggear o depurar, en los 60s al usar compiladores, las pruebas se separaron de la actividad del debugging
o depuracin. En los 70s al introducir los conceptos de ingeniera
de software, las pruebas evolucionaron como una disciplina tcnica.
Al tener una mayor relevancia los sistemas de software, ha crecido el
inters en la proteccin, seguridad y aceptacin, hasta desarrollar la
disciplina como una profesin formal.

El perfil del tester


Si bien sabemos que un probador de software deber de ser: curioso, perceptivo, inquisitivo, crtico, analtico, persistente, buen comunicador y negociador, estas caractersticas y habilidades son parte del
peril de un buen ingeniero, pero son en su mayora implcitas a la

26

profesin y difciles de medir de forma concreta. Es por eso que se requiere de una formacin estructurada y especializada que pueda ser
validada para garantizar los conocimientos bsicos y la experiencia.
Al da de hoy, la mayora de los ingenieros de pruebas han aprendido a desarrollar su profesin de forma emprica. Si bien algunos
cuentan con mayor o menor formacin formal en trminos de sistemas de software y una carrera universitaria afn al rea de TI, pocos
han sido los que han tenido entrenamiento formal y han logrado
acreditar certiicaciones en la disciplina. Esta disciplina ha tomado
una gran relevancia en las ltimas 3 dcadas y al da de hoy ya se
considera una profesin madura que cuenta con diferentes ofertas
para validar los conocimientos de sus practicantes. A continuacin
describiremos las principales certiicaciones disponibles y comentaremos sus principales diferencias y puntos clave.

Principales organizaciones
certificadoras y su oferta
El International Software Testing Qualiications Board es una organizacin basada en Alemania pero con representacin en distintas regiones del mundo. En el caso de Amrica est el ASTQB (American
Software Testing Qualiications Board) para Estados Unidos, CSTB
(Canadian Software Testing Board) para Canada y HASTQB (Hispanic America Software Testing Qualiications Board) para pases
de habla hispana. Estos son los niveles y opciones de especializacin
para las certiicaciones que ofrece ISTQB:
Nivel de fundamentos (Foundation).
Nivel avanzado (Advanced) con 3 opciones de especializacin: Test
Manager, Test Analyst, Technical Test Analyst.
Nivel experto con 4 opciones de especializacin: Improving Test Process, Test Management, Test Automation, Security Testing.
Asmismo, el IIST (International Institute for Software Testing) de
Estados Unidos ofrece los programas:
Certiied Software Test Professional (Associate, Practitioner,
Master Levels).
Certiied Agile Software Test Professional.
Certiied Test Manager.
Certiied Software Quality Manager.
Certiied Software Test Automation Specialist.
La American Society for Quality (ASQ) es un organismo bastante
importante en Estados Unidos, que ofrece programas de formacin y
certiicacin para roles de gestin de calidad en distintos dominios. En
el caso especico del software, ofrece el programa CSQE (Certiied
Software Quality Engineer).

Algunos puntos a considerar:


Todas las certiicaciones mencionadas en la
tabla, se acreditan por medio de examen, a
excepcin de IIST que se acredita simplemente por entrenamiento.
Solamente ISTQB cuenta con representacin regional en Mxico (HASTQB).
ISTQB contempla dos especializaciones
tcnicas: Technical Analyst, Test Automation.
IIST tiene la especializacin tcnica de:
Test Automation Specialist.

Por ltimo, el Instituto de Examinacin para


Ciencias Informticas en Holanda ofrece programas de certiicacin orientados a la metodologa TMap (Test Management Approach):
TMAP NEXT Test Engineer
TMAP NEXT Test Manager

las pruebas de software


ha tenido una evolucin
positiva e importante.

adems del examen es forzoso haber tomado el


curso oicial asociado a la certiicacin.
Vigencia. El tiempo que acredita la certiicacin, algunas no expiran y otras deben renovarse cada cierto tiempo (3 a 5 aos).
Niveles de Certiicacin. Normalmente las organizaciones con mayor madurez ofrecen ms
de un nivel y esto permite una ruta de desarrollo ms robusta.
Ramas de especializacin. Tambin hay
algunas organizaciones que ofrecen ms de un
esquema de crecimiento, ya que uno puede especializarse en una rama de la disciplina de pruebas
como es la Administrativa, Mejora de Procesos,
Pruebas No Funcionales, Automatizacin, etc.

Conclusin

Tabla 1. Detalles de las Certificaciones

En general podemos observar que la mayora de las ofertas de pruebas se orientan a un


nivel bsico y permiten la especializacin como
administradores o lderes de pruebas. Son pocas las organizaciones que validan diferentes
niveles de dominio de la disciplina (niveles intermedios, avanzados o expertos) y slo un par
ofrecen certiicaciones relacionadas a pruebas
tcnicas y automatizacin de pruebas.
Seguramente en los siguientes aos veremos una mayor especializacin en trminos
de automatizacin de pruebas y pruebas no
funcionales. Adems, se puede ver claramente que la profesionalizacin de la disciplina
se ha adoptado tanto en EUA y Europa.
Tambin se debe considerar que adems de
la oferta de estas organizaciones, diferentes
compaas locales y regionales estn comen-

La actitud respecto a

Puntos importantes
al decidir sobre una
certificacin
Presencia a nivel mundial y reconocimiento. Es recomendable contar una certiicacin por parte de una organizacin con
presencia mundial a travs de captulos o coordinaciones regionales. Aqu vale la pena revisar
las organizaciones que tienen ms tiempo en la
industria y que han logrado formar vnculos
con entidades gubernamentales u otras asociaciones similares.
Tipo de Acreditacin. Bsicamente hay
dos tipos, las que son basadas en exmenes y
las que son basadas en entrenamientos. Para
las primeras, nicamente se requiere acreditar
un examen y pagar su costo. Para las segundas,

Hoy en da es difcil imaginar alguna empresa u


organizacin que no dependa de la tecnologa,
es por ello que los sistemas cada da deben de
aportar mayor calidad y iabilidad a los usuarios inales. Con lo anterior es evidente que en
el da a da se necesitan Ingenieros de Prueba
con mayor preparacin y experiencia para garantizar la funcionalidad de los requerimientos
solicitados, pero tambin para robustecer los
sistemas; es decir, que sean resistentes-coniables para el pblico en general.
En Mxico el HASTQB es uno de los
organismos acreditados ms importantes y
cada da a nivel mundial mediante el ISTQB
cobra mayor fuerza. Actualmente cuenta con
ms de 250,000 personas certiicadas en diferentes niveles en ms de 70 pases. Claramente vemos el desarrollo y madurez de la
profesin del ingeniero de pruebas y es por
ello que la preparacin y acreditacin formal
cobran mayor importancia.

[BIO]
Gerson Garca es Gerente de Tecnologa en Testing IT y David Aguilar es Gerente de Operaciones en la misma empresa. Han participado en proyectos de pruebas de software para empresas de diversos sectores y cuentan con certificaciones del ISTQB (Foundation & Advanced Level) y en IREB (Ingeniera de Requisistos). www.testingit.com.mx

27

Software Guru

El British Computer Society / Information Systems Examinations Board (BCS/


ISEB) en el Reino Unido ofrece los siguientes programas de certiicacin:
Foundation, Advanced, Expert (en alianza
con ISTQB)
Intermediate Certiicate in Software Testing. Este certiicado se considera como un
nivel intermedio entre los niveles Foundation
y Advanced del ISQTB.
Certiied Agile Tester (en alianza ISQI)

zando a deinir sus propios esquemas de certiicacin y rutas de entrenamiento.


La tabla 1 muestra un comparativo de las opciones ofrecidas por las distintas organizaciones.

www.sg.com.mx |

Tambin tenemos al iSQI (International


Software Quality Institute) en Alemania,
que destaca por un lado por ofrecer un programa de certiicacin para testing gil y por
otro por ofrecer un programa especico para
el modelo V. Estos son sus programas:
CAT Certiied Agile Tester (Foundation
Level y Advanced Level)
QAMP Quality Assurance Management
Professional
TTCN-3 Testing and Test Control Notation
Certiied V-Model XT Project and QA Manager

Uso de
Tcnicas giles
en Modelos de
Calidad
Mejorando Resultados de Negocio
Por Elsa Ramrez Hernndez y Fernando Rueda Tllez

os modelos de procesos para desarrollo de software tales


como ISO/IEC 15504 de la Organizacin Internacional
para la Estandarizacin (ISO) o CMMI del CMMI Institute proporcionan un marco de trabajo que las organizaciones pueden adoptar para mejorar el desempeo de
sus procesos. Ambos modelos cubren un amplio rango de actividades
a travs de una clasiicacin de procesos que, para muchas empresas,
es difcil de implementar, debido al cruce de acciones y responsabilidades entre diferentes roles cubriendo varias disciplinas. Y este tipo
de operacin, tpicamente resulta en un sistema documental complejo basado en prcticas muy robustas tipo RUP, PMI, estndares ISO
o IEEE, que generan lujos de trabajo complicados y dependientes,
as como la generacin de muchos artefactos (documentacin) que
implican tiempo y esfuerzo a pesar de la adecuacin (tailoring) que
puedan hacer para cada tipo de proyecto.
En este artculo platicaremos sobre cmo podemos combinar este
tipo de modelos formales con tcnicas de las metodologas giles para
mejorar y agilizar los resultados.

Principales caractersticas de las


metodologas giles
Antes de continuar, demos un pequeo repaso acerca de mtodos
giles. Dichas metodologas surgieron como alternativa a los procesos
tradicionales de desarrollo, retomando aspectos esenciales de los modelos de proceso formales, pero proporcionando una dimensin al
proyecto. Entre las metodologas ms comnmente usadas tenemos:
SCRUM: Deine un conjunto de prcticas y roles que pueden ser
28

consideradas como punto de partida para el proceso de desarrollo


a usar. Indicado para proyectos con alto ndice de volatilidad de los
requerimientos. Se caracteriza por deinir Sprints (iteraciones) de
corta duracin. Permite mostrar al cliente un producto que va incrementando funcionalidad con cada sprint ejecutado, permitiendo la
validacin continua del producto en construccin.
Programacin Extrema (XP): Deine un proceso iterativo e incremental con pruebas unitarias continuas y entregas frecuentes. El
cliente o un representante se integran activamente al equipo de desarrollo. Promueve el desarrollo de las funciones del producto con dos
personas en el mismo puesto: programacin por pares. Considera
la correccin de todos los defectos encontrados antes de incorporar
nueva funcionalidad y realizar pruebas de regresin constantes para
detectar los posibles errores.
Feature-Driven Development (FDD): Deine un proceso iterativo,
con iteraciones cortas de dos semanas como mximo. Consta de cinco pasos: 1. Desarrollo de un modelo global, 2. Construccin de una
lista de funcionalidades, 3. Planeacin por funcionalidad, 4. Diseo
por funcionalidad y 5. Construccin por funcionalidad.
Test-Driven Development (TDD): Minimiza el nmero de defectos del cdigo maximizando su calidad (cdigo limpio). Su funcionamiento se basa en la escritura de una prueba, en la cual se
veriican fallas. Posteriormente, se implementa el cdigo que hace
que la prueba pase satisfactoriamente, inalizando con la refactorizacin del cdigo escrito.

Beneficios y resultados de negocio


Dentro de los beneicios que se pueden obtener al implementar
CMMI con tcnicas giles podemos encontrar:
Cumplir con las expectativas de los proyectos.
Conservar la visibilidad de los proyectos hacia la Alta Gerencia
pero con datos actualizados diariamente permitiendo una mejor
toma de decisiones.
Mejor comunicacin entre todos los involucrados.
Mejora de la planeacin y mejor entendimiento del producto a
construir.
Reduccin del re-trabajo (al menos un 50% en nuestro caso).
Aumento de la productividad (al menos un 60% en nuestro caso).
Reduccin de defectos (al menos un 60% en nuestro caso).
Disminucin de los costos.
Incremento del nivel de satisfaccin del cliente.

Figura 1. Procesos de CMMI afectados por mtodos giles.

En el caso de la administracin de proyectos, Scrum es posible


el mtodo gil que mayor inluencia puede tener en esta categora,
ya que deine prcticas relacionadas a Requirements Management
(REQM), Project Planning (PP) y Project Monitoring and Control
(PMC). Algunas actividades del proceso Product and Process Quality Assurance (PPQA) son cubiertas de forma natural por el Scrum
Master al asegurar que el proceso Scrum es ejecutado por el equipo,
sin embargo para obtener evaluaciones objetivas se debe deinir desde
el principio estndares y procedimientos que, luego a travs de listas
de veriicacin, puedan evaluarse. Para realizar la implementacin
robusta del proceso Measurement and Analysis (MA) se recomienda usar GQIM. Para el proceso Supplier Agreement Management
(SAM) Scrum no considera prcticas relacionadas con el tema.
En cuanto a los procesos de ingeniera, Scrum recomienda
prcticas que se pueden utilizar para Requirements Development

Conclusiones y retos futuros


La implementacin de CMMI usando tcnicas giles trae consigo lo
mejor de dos mundos: contar con procesos deinidos y un buen nivel
de control pero ahora sobre tcnicas sencillas y eicientes enfocadas
al cliente y al producto.
La implementacin de las prcticas giles en un entorno de procesos riguroso, como el establecido a travs del uso de CMMI, permite:
Contar con una combinacin poderosa para adaptarse rpidamente a los cambios as como la predictibilidad de los resultados y
toma de decisiones oportuna.
Considerar el time to market como factor de ventaja competitiva.
Elevar los ndices de satisfaccin del cliente.
Hay que aprovechar ahora el enfoque de diversos grupos como
PMI con administracin gil, RUP con su versin para desarrollo
gil y diversos modelos giles, para obtener mejores resultados en la
produccin de software. Es cuestin de agilizar!

[BIO]
Elsa Ramrez Hernndez es Directora de Innovacin en Praxis. Es experta en implantacin de CMMI habiendo dirigido esfuerzos
para la acreditacin en CMM 3, CMMI 4, CMMI 5 y CMMI 5 con giles para una empresa de desarrollo.
Fernando Rueda Tllez es consultor CMMI en Praxis. Es experto en procesos de administracin, desarrollo y soporte. SEPG Manager y particip en SCAMPIs para CMM 3, CMMI 4, CMMI 5 y CMMI 5 con giles para una empresa de desarrollo.

29

Software Guru

Buscando en Internet podemos encontrar diversas propuestas de mapeos de correspondencia entre modelos de procesos y metodologas
de software. Lo interesante no es esta descripcin, sino la adaptacin
que cada organizacin hace de su proceso estndar para la adopcin de
nuevas tcnicas o procesos. En el caso de mtodos giles, considerando
que se ha contado con experiencia en la implementacin de un modelo
como CMMI, se pueden aprovechar las actividades relacionadas con la
eiciencia de los recursos y la estrecha colaboracin con el cliente simplemente ajustando el ciclo de vida tradicional para incorporar prcticas giles en aquellas actividades donde tenga sentido. Generalmente
los procesos ms afectados son los de las categora de administracin
de proyectos, ingeniera y soporte. La igura 1 muestra un panorama
de esta arquitectura de procesos modiicada.

(RD) y Requirements Management (RM). A su vez, tanto XP


como FDD y TDD cubren varias actividades del resto de los procesos de ingeniera.
Los procesos de soporte como Process and Product Quality Assurance (PPQA) y Coniguration Management (CM) sufren modiicaciones, sin dejar de obtener las ventajas de su implementacin.
La velocidad de desarrollo implica implementar tcnicas de integracin continua que permitan ser ms veloces en la realizacin
de liberaciones parciales y formales diariamente. Uno de los retos
principales es acoplar el proceso de auditoras al dinamismo y practicidad para documentar los aspectos tcnicos que usa el equipo,
ya que se ejecuta siempre de forma muy estricta a los artefactos
documentados en detalle y generalmente en versiones que cubren
al menos el 90% del alcance deinido.

www.sg.com.mx |

Mapeo de procesos
CMMI vs. mtodos giles

Qu Tan
gil Puede Ser
Mi Modelo de
Procesos?
Por Rodrigo Torres Garibay

Nosotros somos giles por eso no documentamos


Eso va a hacer ms lento el proceso
Por qu siempre me pides evidencia con una
minuta irmada?

stos y muchos otros cuestionamientos similares solemos encontrar quienes nos dedicamos a mejorar procesos de software; por
un lado la nocin de que los modelos de procesos clsicos (CMMi, MoProSoft, PMBOK, ITIL, etc) van a entorpecer o hacer
ms lentas las actividades del da a da y por otro lado esta percepcin de que los modelos de procesos giles (SCRUM, Lean,
Kanban, etc.) signiican no documentar. Pero son realmente los modelos clsicos unos modelos lentos? O es ms bien una
inadecuada interpretacin de un consultor con poco conocimiento o un evaluador o Lead Appraiser con poco criterio para
enfocarse a las necesidades de la organizacin y no solamente a que cubran el modelo/norma o estndar.
Todos los modelos de procesos se pueden convertir en la peor pesadilla para cualquier organizacin sino se saben interpretar o si se quiere seguir
al pie de la letra lo que dicen. Ningn modelo es lo suicientemente completo para cualquier organizacin, por lo tanto se debe de revisar qu es lo
que nos ofrece cada modelo y enfocarlo principalmente a las necesidades de la organizacin en la que se quiera implementar. Recordemos que los
modelos de procesos nos marcan el Qu y la organizacin decide el Cmo. Por ejemplo, un modelo nunca te pide que generes tres minutas
y que stas sean irmadas con sangre por todos los involucrados, lo que el modelo pide es que notiiques los planes de trabajo a tus involucrados.
Queda a criterio de cada organizacin decidir la mejor forma de implementar esto de acuerdo a su contexto y necesidades.

30

Queda a criterio de cada organizacin


decidir la mejor forma de implementar.

De la misma manera, el Project Management Body Of Knowlege


(PMBOK) del Project Management Institute (PMI) deja muy claro
desde su primer captulo cuando nos dice que una buena prctica
no signiica que todo el conocimiento ah descrito deba de ser aplicado de la misma forma en todos los proyectos de la organizacin, sino
que es la organizacin o el lder de proyecto quien debe decidir sobre
qu prcticas tomar para cada proyecto.
Por su parte, en el Capability Maturity Model Integration (CMMi)
del Software Engineer Institute (SEI) nos marca en su representacin
escalonada para el nivel 2 la implementacin de 7 reas de procesos y
para el nivel 3 la implementacin de 11 reas de procesos. Si contabilizamos sus sub-prcticas en la constelacin de desarrollo, para nivel
3 estamos hablando de 138 sub-prcticas a lo largo de las 18 reas
de proceso. Adems de sumarle las 12 prcticas genricas las cuales
tendran que estar implementadas en las 18 reas de proceso, lo cual
nos da 216 evidencias que se tendran que mostrar. Como vemos,
si nos ponemos a contar cada una de las prcticas e intentamos lograr
generar una evidencia diferente para cada prctica o prctica genrica
terminaremos con un montn de documentos en un servidor de la
empresa que lo ms probable es que al inal del proyecto terminemos
tirando a la papelera de reciclaje.

Lo esencial es estudiar el modelo para saber qu reas de proceso y


prcticas se relacionan entre s. Con esto lograremos que por medio
de una sola actividad varias prcticas del modelo al mismo tiempo.
Recordemos que CMMi nos dar el qu y la organizacin propondr
el cmo. Adems de que CMMi nunca nos solicita que tengamos
minutas irmadas o documentos muy extensos, recordemos que tenemos tambin las prcticas de Guas de adaptacin. CMMi nos
solicita que llevemos las prcticas pero no necesariamente de la misma forma en todos proyectos (si previamente as lo documentamos).
Se puede considerar que todos los procesos tienen caducidad, por
lo tanto entre ms se automaticen o se utilicen herramientas para su
gestin ser mejor la forma para que no se echen a perder en la organizacin, ya que de forma automatizada se podra estar renovando.
En conclusin, todo modelo de procesos se puede volver tan gil o
lento como uno quiera, todo depender de la adaptacin, adecuacin
e interpretacin del modelo que se le quiera dar.
Cuntas veces hemos escuchado que se dice que los modelos giles no pueden convivir con los modelos clsicos, ms bien considero que aquellos que aseveran eso, es porque no han logrado interpretar adecuadamente los modelos clsicos.

[BIO]
Rodrigo Torres Garibay (@garicorp) es Consultor de Calidad en la firma Innevo, donde ha logrado llevar a varias empresas a niveles
1, 2 y 3 de MoProSoft; niveles 2, 3, 4 y 5 de CMMI en las constelaciones de DEV ySVC, as como en proyectos de mejora con el marco
de referencia de ITIL. rtorres@innevo.com

31

Software Guru

Cul es la clave?

www.sg.com.mx |

Cuando se comience un proyecto de mejora no importando el


modelo, norma o buena prctica que se quiera implementar como
marco de referencia, se debe de hacer la pregunta: Qu es lo que
se quiere mejorar? Con esto se lograr deinir el objetivo para el
proyecto de mejora. Si comenzamos el proyecto sin hacernos esta
pregunta y en lugar de eso colocamos en el objetivo alcanzar el nivel
x del modelo x vamos a provocar que toda la implementacin est
orientada a obtener el papel y nunca la mejora. Es cuando se comienza a volver los modelos lentos, tortuosos y requeridos porque el
jefe lo pidi. Todo modelo debe de ajustarse a la organizacin y no
la organizacin al modelo.
Al embarcarse en un esfuerzo de mejora de procesos, el objetivo siempre debe de ser la mejora, nunca el papel. Si se orienta desde un principio
el proyecto a mejorar los resultados de la organizacin, se estar cubriendo las necesidades de sta y de paso obteniendo el nivel deseado.
Comnmente me encuentro con implementaciones de modelos
que parten de plantillas, productos base o formatos que son provistos
por una irma consultora para apoyar a la empresa con la deinicin
de sus procesos. Creo que esta prctica es un arma de doble de ilo.
Si estas plantillas se utilizan como un ejemplo para partir de una
idea para comenzar a deinir los procesos creo que est correctamente
utilizado, pero si por otra parte se utilizan estas herramientas sin una
explicacin previa, capacitacin y revisin de las prcticas existentes
en la organizacin podramos estar privando a la organizacin de la
creatividad, innovacin y libertad para la deinicin de procesos lo
cual ser clave para la buena adecuacin del modelo. Imaginemos el
caso de un lder de proyecto que aprovechando el esfuerzo de mejora
quiere modernizar los planes de proyecto usando una herramienta de
gestin de proyectos en la nube, con reportes automatizados, actualizacin en tiempo real y de pronto se le aparece un documento
de texto plano con una portada, ndice, captulo de introduccin,
alcance, glosario, aprobaciones, etc. que en su conjunto la pura plantilla sin contenido son siete hojas (de las cuales realmente funcionan
dos), que requiere de irmas de todos los involucrados del proyecto y
para rematar se le dice solamente con este producto puedes alcanzar
el nivel deseado de madurez. Estoy seguro que en este tipo de situaciones cualquier modelo con el nombre que se le quiera dar se puede
volver en una pesadilla para el lder de proyecto y todo el equipo.
Por ejemplo, el Modelo de Procesos para la Industria del Software
(MoProSoft) nos seala que en su nivel 2 y a lo largo de sus 9 procesos, existen 77 productos de trabajo. Si lo vemos framente adems
estos productos de trabajo se podran incrementar debido a las evidencias solicitadas de la gestin de los proyectos si consideramos que
cualquier acuerdo se puede ver relejado solamente con una minuta
irmada por los involucrados. En este caso en particular MoProSoft
en ninguna parte de la norma nos seala que estos productos tienen
que ser documentos en texto plano, hojas de clculo, minutas, etctera; uno podr deinir cmo llevar estos productos de trabajo y
documentar los procesos utilizando las guas de ajuste.

Lo que Pocos
Saben sobre CMMI 5
En la definicin est la clave
Por Carlos Augusto Gutirrez

ctualmente existen 8 empresas en Mxico reconocidas por el SEI con nivel 5 de CMMI implementado
satisfactoriamente y 2 empresas con nivel 4 (slo
el 10% de las organizaciones evaluadas en todo el
pas). Este resultado se debe a que la mayora de las
compaas ven complicada la implementacin de estos niveles debido al poco entendimiento e interpretacin de lo que se requiere para
deinirlos, lo que se releja en el nmero de empresas acreditadas.
Entre los principales factores que auspician la creencia de la diicultad en la implementacin de los niveles de alta madurez de
CMMI, se encuentran los modelos predictivos. Sin embargo, con
una gua adecuada, es posible adoptarlos de forma satisfactoria.
Los niveles de alta madurez de CMMI consideran la implementacin de cuatro reas de proceso que corresponden a la administracin cuantitativa y a la optimizacin de los procesos. Para llegar
a estos niveles, es importante que las empresas cuenten con una
base bien deinida de los niveles 2 y 3.
En el nivel 3 de CMMI se deinen los procesos y la organizacin cuenta con un conjunto estndar de procesos que
establecen la forma en que opera y que pueden ser ejecutados
bajo determinadas condiciones. Por su parte, en el nivel 4, se
administra cuantitativamente la organizacin y controla los
procesos mediante estadsticas y otras tcnicas cuantitativas
con dos reas de proceso fundamentales: Organizational Process Performance (OPP) y Quantitative Project Management
(QPM). Ya en el nivel 5 se optimizan los procesos y la organizacin mejora continuamente, considerando las causas comunes de variacin con las siguientes reas de proceso: Organizational Performance Management (OPM) y Causal Analysis
and Resolution (CAR).

Estrategia organizacional
Los niveles de alta madurez buscan alinear las actividades estratgicas
de la organizacin con las actividades y mediciones de proceso de los
proyectos, para lograr una sinergia entre las diferentes reas y proyectos de una organizacin. Con base en esa alineacin con la estrategia
de negocio, la organizacin aplica esfuerzos de medicin estadsticos
a los elementos crticos (los denominados subprocesos).
Uno de los principales retos para las organizaciones que buscan niveles altos de madurez es el tema de la adecuacin o reestructuracin de parte o todo su sistema de medicin debido a

que en la mayora de los casos el sistema actual no soporta adecuadamente los requerimientos de administracin cuantitativa
de subprocesos crticos de la organizacin.

Beneficios
Algunas de las empresas mexicanas que han alcanzado los niveles
altos de madurez han demostrado:
Un mejor control sobre los proyectos que ejecutan, al igual que
los gerentes y directores cuentan con ms elementos para la toma
de decisiones informada.
Un mayor sentido a las estrategias de negocio de la organizacin y con ello, se ha mejorado la participacin en las
diferentes iniciativas.
Mejoras cuantitativas que representan para la organizacin
ahorros substanciales tanto en tiempo, esfuerzo y/o costo. Apoyando de esa manera al logro de los objetivos de negocio y estratgicos de la organizacin.
Otro de los beneicios que se obtienen de una implementacin
de procesos de alta madurez es la generacin de un lenguaje comn
en trminos numricos (cuantitativos) ms que en trminos cualitativos. Esto permite un mayor entendimiento entre las reas de la
organizacin.
Es importante considerar tambin los beneficios a nivel
individual respecto a la madurez que adquieren los administradores de proyectos es importante, ya que muchas de
las actividades ejecutadas en nivel 4 son enfocadas a ese rol,
pues la experiencia y el uso de datos cuantificables para la
administracin integrada del proyecto brinda las herramientas a los administradores para controlar y evitar problemas
de manera objetiva.
Finalmente, el resultado de implementar procesos de alta madurez ha ayudado a las empresas a ser puntos de referencia en
la industria, y por lo mismo tener mayor participacin en el
mercado debido a la madurez alcanzada.
Recomiendo que las empresas evaluadas en CMMI Nivel 2 y
3 continen su camino hacia la mejora continua, hasta llegar a la
institucionalizacin de los procesos. Contar con una masa crtica
de empresas en estos niveles releja una industria fuerte, lo que
puede ser una plataforma para posicionarnos mejor como pas en
el mercado global.

[BIO]
Carlos Augusto Gutirrez Prez actualmente trabaja en Avantare Consultores en donde se especializa en la implementacin de procesos de CMMI en niveles de alta madurez (4 y 5). Tambin ha participado en la implementacin de marcos de
medicin basado en el Acuerdo de Niveles de Servicio (SLA). http://www.avantare.com

32

.COLUMNA

COLUMNA
INVITADA

Laboratorio Nacional de Prueba de Software


UNA FUENTE DE MTRICAS PARA LA INDUSTRIA

CON
ACTUALMENTE EN MXICO NO SE CUENTA
UNA BASE DE DATOS COMPLETA Y CONace ya algunos meses se constituy en Mxico el Laboratorio Nacional de Prueba de Software (LNPS). La misin
del LNPS es proveer a la industria mexicana servicios de clase
mundial que por un lado permitan otorgar objetivamente reconocimientos a productos, a probadores de software y a organizaciones de prueba por su alta calidad; y que por otro generen
informacin objetiva y confiable en forma de mtricas, estadsticas y registros que faciliten elevar la confianza en los productos
de software en Mxico.
Actualmente en Mxico no se cuenta con una base de datos
completa y confiable de empresas y personas con alguna certificacin en prueba de software. En el LNPS estamos desarrollando un sistema que estar a disposicin de la comunidad, que
permitir por un lado que las empresas que cuenten con una
certificacin o con un producto certificado, puedan enviar la
informacin y evidencia de la certificacin para que pueda ser
accesible para algn interesado; y por otro tambin ser posible
que personas enven evidencia de alguna certificacin en prueba
de software otorgada por algn organismo nacional o internacional, lo cual permitir generar estadsticas sobre las capacidades actuales de prueba de software en nuestro pas y facilitar
acciones que puedan incrementarlas.
El LNPS tiene tambin entre sus objetivos generar y compartir
mtricas de calidad. Conforme se vayan obteniendo estas mtricas
se darn a conocer. Entre las mtricas que planeamos recolectar y
compartir con la comunidad estn:
Efectividad de pruebas unitarias. Como los lectores de SG saben, las pruebas unitarias ayudan a identiicar defectos conforme el
software se va implementando. En el LNPS realizaremos una clasiicacin que identiique claramente los defectos unitarios (o que
debieran ser detectados en pruebas unitarias). Con esto podremos
medir la efectividad de dicha prueba, y basados en esto implementar
acciones encaminadas a mejorarla.
Densidad de defectos. Esta mtrica bsicamente trata de la
cantidad de defectos que un sistema tiene por unidad de tamao. El reto es encontrar la unidad de tamao que pueda ser
estandarizada. Existen varios esquemas para realizar estas mediciones: lneas de cdigo y puntos de funcin son algunos de
los ms conocidos. En nuestra experiencia ambos tiene grados
importantes de imprecisin, por esto es altamente probable que
dos organizaciones diferentes obtengan un tamao distinto del
mismo producto. Debido a esto, la densidad de defectos la calcularemos basados en una medicin estndar de tamao, con la
que ya contamos en la actualidad y que permitir realizar comparaciones entre productos que hayan sido probado en el LNPS

(para realizar la comparacin con otros productos habra que


buscar un nuevo punto de referencia).
Defectos por severidad. Cuando hablamos de cantidad de
defectos (involucrada en la mtrica de densidad de defectos) tenemos una buena idea de la madurez del producto; sin embargo
no tenemos la radiografa completa de su calidad. La mtrica de
cantidad de defectos por severidad es muy importante ya que la
severidad indica el impacto del defecto en la aplicacin. Si combinamos esta mtrica con el tamao, podramos obtener adicionalmente una mtrica de densidad de defectos por severidad. Esta
mtrica podra completar la radiografa de los productos dndonos una mejor idea de la calidad del mismo.
Defectos inyectados por fase y retrabajo. Los defectos detectados en las fases de pruebas de integracin y sistema, que sern
los que tendremos registrados en el LNPS, sern analizados para
identificar la fase de pruebas en que se deberan haber detectado
y removido en el respectivo retrabajo de desarrollo. Esta mtrica
nos dar informacin acerca de la calidad que estamos teniendo
como industria en cada una de las fases de desarrollo y cuando
los usuarios del Laboratorio nos hagan llegar el tiempo invertido en la correccin de dichos defectos tendremos un mapa
completo del costo de la calidad para analizar posteriormente su
retorno de la inversin.

Conclusin
Las mtricas que mencion aqu son las que considero ms relevantes, sin embargo en el laboratorio recolectaremos muchas otras que
tambin estaremos publicando. Estas mtricas, adems de aquellas
que se obtengan de las evaluaciones de empresas y de personas, nos
permitirn tener una buena radiografa de la calidad en la industria
del software en Mxico.
Tenemos altas expectativas de que esta informacin contribuya a la mejora de nuestro sector. Para mayor informacin visita www.lnps.mx

Por Aarn Moreno


Aarn Moreno Monroy es actualmente Presidente del Laboratorio
Nacional de prueba de Software (LNPS). Tiene una vasta experiencia en
prueba de software en muchos proyectos en los cules a actuado como
Ingeniero de Pruebas, Lder de Proyectos y Administrador de Proyectos
de prueba y de desarrollo. Ha sido instructor y consultor en prueba de
software. Tiene una certificacin en prueba de software por el ASTQB y
es desarrollador PSP certificado por el SEI. Curs sus crditos de maestra en el CINVESTAV campus Guadalajara.

33

www.sg.com.mx |

Software Guru

FIABLE DE EMPRESAS Y PERSONAS CON ALGUNA


CERTIFICACIN EN PRUEBA DE SOFTWARE.

.SECCIN PATROCINADA

UNA HISTORIA DE XITO


INNOVADORA, CMMI 5 CON
METODOLOGAS GILES.

Lo ms relevante:
PRAXIS innova su servicio de desarrollo de software combinando lo mejor del
modelo CMMI con lo mejor de las metodologas giles.
En nuestros das se habla mucho sobre certiicaciones de calidad para empresas y personal; ambas son referencia de ventajas competitivas que
logren marcar la diferencia ante la competencia.
Dentro del mundo de las TI, las organizaciones
cada da buscan que sus productos o desarrollos
tengan esa calidad que los lleve a contar con un
gran diferenciador en los mercados globales,
donde la certiicacin de los procesos de fabricacin es garanta y aval de calidad.
El modelo CMMI es aceptado a nivel internacional como sinnimo de calidad, con
adopcin en los cinco continentes, ayuda
a integrar funciones, establecer objetivos y
prioridades de procesos, proveer guas de calidad, brindar puntos de referencia y mejores
prcticas probadas en la industria que brindan efectividad a los procesos, y por lo tanto,
a los productos resultantes. Tpicamente el
modelo para desarrollo aplica sobre metodologas tradicionales probadas y que cumplen
con cada uno de los procesos deinidos.

Las metodologas existentes para desarrollos tradicionales involucran varios roles,


muchos artefactos y por ende tiempo, las
metodologas giles prometen una mayor rapidez en la implementacin, enfocndose en
su mayora al producto inal, dando mayor
valor a la colaboracin con el cliente. Este
enfoque est mostrando su efectividad en
proyectos con requisitos muy cambiantes y
cuando se exige reducir los tiempos de desarrollo; las metodologas agiles, estn revolucionando la manera de producir software.
Diversas corrientes mencionan que
CMMI es un modelo muy complejo que
solicita documentacin excesiva de procesos,
provocando costos elevados para garantizar
la calidad del software. Hoy en da se puede
demostrar que el contar con procesos de calidad no signiica que no puedan ser giles.
Casar lo mejor del CMMI que representa un
estricto control y seguimiento para lo toma
de decisiones con gil que constituye un
ciclo de vida con tcnicas sencillas que permiten una mejor interaccin con resultados
rpidos, sern un reto y una necesidad actual
en la produccin de software.
PRAXIS, al elegir CMMI como un modelo
de mejora de procesos, ha logrado optimizar
tanto el desempeo de los proyectos, la previsibilidad de sus costos, cronogramas, calidad del
producto, dando como resultado la satisfaccin del cliente. Al operar en cumplimiento a
CMMI se ha logrado el uso eicaz de otros modelos, tales como PMBok, BPM, Six Sigma,
ISO, RUP, y los mtodos giles (XP, TDD,
FDD, Kanban, SCRUM), con el propsito de
enfocar los recursos hacia el logro de los objetivos de negocio. La innovacin y mejora basada
en informacin estadstica ha permito pronosticar el resultado conociendo la productividad

a nivel individual, la calidad de los productos e


ndices de desempeo
mejorando el nivel de
satisfaccin de todos
los stakeholders.
En PRAXIS hemos innovado nuestro servicio de
desarrollo que combina lo
mejor del modelo CMMI
con lo mejor de las metoElsa Ramrez
dologas giles (este proceso
fue evaluado nivel 5 de CMMI en diciembre de
2012). Con este servicio se tendr la certeza que ser
un desarrollo avalado por un organismo internacional como lo es el CMMI Institute* y ventajas como:
la documentacin suiciente del proceso, aseguramiento de calidad y control de la coniguracin, y lo
mejor de todo es que el tiempo de entrega y los costos se
puede reducir hasta en un 50% sin sacriicar el resultado. Contar con informacin estadstica es til tanto
para el desarrollador como para la direccin en la
toma de decisiones. coment Elsa Ramrez Hernndez, directora de Innovacin y Calidad de PRAXIS.
Mediante este esquema PRAXIS demuestra que la inversin que realiza en innovacin
de sus procesos y servicios es un compromiso
ilimitado para con sus clientes.
*Organismo de reciente creacin tambin de
Carnegie Mellon como el SEI, anterior responsable del modelo.
Recursos Adicionales:
Sguenos en Twitter @Praxis_IT
nete a nuestra comunidad en Facebook
https://www.facebook.com/pages/
Praxis-M%C3%A9xico/117986241636766

ACERCA DE PRAXIS
PRAXIS, empresa 100% mexicana, lder en proyectos con metodologas y herramientas
especializadas, con un enfoque estratgico en consultora, integracin, Solution Center
y desarrollo de sistemas, busca fortalecer el desarrollo de las empresas a travs del uso
adecuado de las tecnologas de informacin. Con ms de 15 aos en el mercado, PRAXIS
garantiza soluciones en Tecnologa de Informacin con compromiso ilimitado para sus
clientes, con altos estndares de calidad y asesora en tecnologa de punta.
Cuenta con oicinas en Monterrey, Quertaro, D.F., Miami, Dallas, Madrid, Argentina, Puerto Rico y Panam, adems forma parte del cluster de Tecnologa InteQsoft en
Quertaro; del cluster Prosoftware del DF; y tambin forma parte del cluster AETI en
Monterrey Nuevo Len.

34

.SECCIN PATROCINADA

PMP, PMIT, 7 Certiicaciones en TI,


Capacitacin, Asesoramiento, Consultora en
Estrategias, Proyectos, Programas, Beneicios,
Portafolios, Estructuras de Gobierno y PMO.
raymundo@stratominds.com
www.stratominds.com

Concluyendo: Es un excelente momento para voltear a ver la certiicacin PMP, hay ms demanda que oferta, esta posicionada la necesidad, y
en TI representa crecimiento a la persona de manera inmediata, as como
beneicios incalculables a las empresas en tiempos, costos y satisfaccin al
cliente. Si te interesa la certiicacin PMP y te interesa en que te asesore a
disear tu plan de estudio sin costo, contctame y te ayudo a que t equipo
y t se certiiquen. xito!

35

www.sg.com.mx |

Ing. Raymundo Snchez Tic


Socio Director Consultora Stratominds

ace un par de aos en un proyecto de implementacin de PMO en


Mxico me pedan 15 personas certiicadas como PMP, el negocio
para Stratominds, la irma consultora, fue que el cliente pagaba por cada
recurso una iguala mensual de $190,000 MN mientras que el sueldo estndar de alguien con esta credencial es de $40,000 MN. En la industria,
las personas con esta certiicacin tienen posiciones de trabajo solventes, lo
cual diiculta involucrarlos en este tipo de proyectos. Ahora bien, imagina
que te certiicas como PMP, que te invito a participar en este proyecto,
te ofrezco $40,000 MN y t me pides $100,000 MN Crees que no te los
pagara sabiendo que tengo que conseguir 15 personas?
IBM cuenta con 300,000 empleados de los cuales 25,000 son administradores de proyectos y 14,000 cuentan con la credencial PMP, Steve
DelGrosso, Director del Centro de Excelencia de Administracin de Proyectos indica que el nmero de certiicados crece porque los clientes as lo
estn pidiendo.
Es cierto que una certiicacin no hace un mejor profesionista, pero
tambin es cierto que mientras los profesionistas estudien ms certiicaciones, tienen mayores armas para enfrentar los retos de TI hoy en da. PMP
contiene el primer marco de referencia que se debe conocer en gestin de
proyectos antes que cualquier otro, es el punto de partida, no es suiciente conocer la certiicacin PMP para obtener proyectos exitosos, pero se
vuelve ms complicado tener xito sin estudiarla de manera inicial.
Muchas certiicaciones de TI son de carcter lgico, por ejemplo, 1 + 1
siempre ser 2. Las certiicaciones de proyectos evalan de manera combinada conocimiento, experiencia y criterio en diversos escenarios, lo que
implica crecimiento profesional en las personas, mayores ingresos, que
puedas aplicar a posiciones con menor trabajo tcnico y claro, nada es
perfecto, mayor presin y responsabilidad.
Tambin es cierto que un MBA tiene un marco de estudio ms completo que PMP, pero Cul es ms barata? Cul obtienes ms rpido? Cul
est pidiendo la industria? Nunca me ha pedido un cliente personas con
MBA, los requerimientos siempre me han llegado de PMP.
No es fcil certiicarse en PMP, no basta leer el PMBoK, memorizar
o estudiar las mejores guas del mundo, lo ms importante para lograr la
meta es el mtodo de estudio, el cual debe ser diseado diferente para cada
persona, de acuerdo a su experiencia, peril, habilidades, costumbres de
estudio, tiempo disponible, fecha lmite, etc.

Software Guru

.SECCIN PATROCINADA

Por qu obtener una certiicacin


organizacional?
En la actualidad, la mejora de procesos es
un tema de inters para las PyMEs y organizaciones de TI.
Porque estas pretenden asegurar la calidad
de sus productos y servicios a travs de la
evaluacin y mejora de sus procesos, y por
consiguiente su acreditacin en modelos o
estndares de calidad nacionales e internacionales reconocidos por la industria.
Todo esto, como parte de su estrategia para
aumentar su ventaja competitiva con respecto a sus competidores y as garantizar su supervivencia en el mercado.
Comnmente, algunas de estas organizaciones pretenden asegurar la calidad de sus
productos y servicios a travs de la mejora
de la capacidad de sus procesos, debido a dos
razones fundamentales:
1.Imagen, ya que este es un factor clave para
mantenerse en el mercado local y establecer un
posicionamiento en el mercado internacional.
2.Necesidad, para asegurar que sus proyectos terminen en tiempo y costos esperados.

Algunas de las interrogantes que comnmente se plantean las empresas de TI


Cules son los estndares disponibles en
el mercado? Por qu adoptarlos y cules son
los beneicios de implementar y certiicar a la
organizacin de TI en alguno de ellos?
Muchas PyMEs pueden plantearse asegurar
la calidad de sus productos y servicios a travs
de la mejora de sus procesos y la acreditacin
en estndares internacionales creados por:
International Software Organization (ISO)
Software Engineering Institute (SEI)
IEEE, ESI, Softex, ANSI, BSI, etc., entre
los cuales se destacan las normas ISO/IEC
15504, ISO/IEC 12207, ISO/IEC 20000,
ISO/IEC 29110, ISO 9001, CMMI-DEV y
CMMI-SVC, MPS.BR, entre otros.

Sin embargo, la implementacin de estos


estndares comnmente es larga y costosa,
porque los modelos de procesos y su evaluacin, propuestos por estos organismos, estn
estructurados para ser aplicables a grandes
empresas u organizaciones de TI.

Por qu certificarse bajo un


estndar de calidad organizacional?
La mejor razn para querer adoptar e implementar un estndar de calidad es para mejorar la eiciencia y eicacia de las operaciones
de la organizacin.
Una organizacin puede decidir buscar la
certiicacin por muchas razones, ya sea por
un requisito contractual o reglamentario,
para satisfacer las preferencias de los clientes
o incluso para demostrar que tiene capacidad
para ofrecer productos y servicios que satisfagan los requisitos de los clientes.

Ventajas de una certificacin


organizacional
Por lo regular una certiicacin bajo un modelo o estndar de calidad proporciona un
marco de trabajo y un enfoque sistemtico
que permite gestionar los procesos de manera que el producto software o servicio de TI
resultante satisfaga las expectativas del cliente. Adems, la implantacin de este tipo de
estndares ahorra dinero y aumenta la eicacia y eiciencia de los procesos de negocio.
La mayor parte de las empresas que han obtenido la certiicacin consiguen tambin procesos ms eicientes, clientes ms satisfechos,
as como productos y servicios de ms calidad.
Para los clientes, la certiicacin de los
proveedores bajo alguno de los estndares
anteriormente mencionados signiica la seguridad de que el desarrollo y la provisin de
los productos y servicios se realiza siguiendo
documentos de referencia globalmente acep36

tados. Por supuesto, esto quiere decir que


clientes y proveedores estn capacitados para
competir en los mercados de todo el mundo.
Obtener una certiicacin organizacional
conlleva numerosas ventajas, aunque las empresas deben asegurarse de perseguir la certiicacin por los motivos correctos:
Para llegar a nuevos clientes, puesto que
cada vez son ms las empresas que consideran la certiicacin en un modelo o estndar de calidad como un requisito esencial
para establecer una relacin comercial con
un nuevo proveedor.
Para acceder a mercados globales gracias
al amplio reconocimiento de los estndares
internacionales.
Para disponer de mejor documentacin
para diversos ines.
Para dar a la empresa una ventaja competitiva y demostrar su compromiso con la
calidad de sus productos y servicios.
Para evidenciar al cliente la calidad del
producto y servicio que se le ofrece.
Dentro de las empresas que ofrecen dicho
servicio est:
JPE Consultores cuyo objetivo es ayudar
y acompaar a las PyMEs y organizaciones
de TI en sus esfuerzos para obtener una certiicacin organizacional a travs del desarrollo de su metodologa llamada Modelo
Simpliicadoque ayuda a las organizaciones
a implementar ms rpido, con consultores
certiicados y a un menor costo, comparado
con mtodos tradicionales.

JPE Consultores
Ofrece
Experiencia a travs de su trayectoria obtenida
en la ejecucin de una gran cantidad de proyectos exitosos, seguridad y conianza a la hora
de iniciar un esfuerzo de certiicacin organizacional bajo un estndar de calidad.

.SECCIN PATROCINADA

n el campo de la tecnologa, la certiicacin es el conjunto de pruebas que


permiten la obtencin de una constancia que
asegura a un profesional que posee determinados niveles de conocimiento y de habilidades, y que le facilitan ejercer su profesin en
las mejores condiciones.
Una certiicacin implica la posibilidad de
mejores oportunidades de desarrollo profesional y laboral, pues permite demostrar el conocimiento y especializacin que se posea, ya sea
sobre un modelo o producto tecnolgico, idioma o cualquier otra rea del quehacer humano.
SemanticWebBuilder (SWB) es una plataforma de productos web, desarrollada por INFOTEC, Centro de Investigacin dependiente
del CONACYT, la cual durante ms de una
dcada ha sido utilizada en distintas instituciones y dependencias de Gobierno Federal principalmente, as como por grandes empresas y
organizaciones privadas para la construccin de
diversos portales y aplicaciones web, y que en su
constante evolucin ha implementado los modelos tecnolgicos de integracin y relacin de
informacin denominados semnticos como
son RDF, OWL, Linked Data, entre otros.
Dichos modelos, segn los objetivos establecidos por la W3C (Organismo internacional encargado de deinir y establecer los
estndares de desarrollo para tecnologas de
internet), estn encaminados a construir una
Web ms inteligente, que permita relacionar informacin de distintos tipos y fuentes
en un contexto coherente y acorde a la naturaleza de las necesidades de informacin
del usuario, y que adems pretende ser tan
abierta que pueda ser analizada y clasiicada
no slo por personas como ocurre hoy da,
sino por las propias mquinas al momento
de publicar y consultar la informacin.
Con el propsito de brindar a los profesionales un respaldo ms slido respecto de
esta tecnologa, se ha buscado desarrollar
un programa de certiicaciones en este producto, que adems le permita a quien as la
ostente, no slo acreditar la experiencia en
la operacin, tambin como respaldo para
la generacin de modelos de negocio tanto
a profesionales independientes como PyMEs

que deseen ofrecer sus servicios a empresas y


dependencias que ya cuentan con el producto instalado, y a nuevos nichos de mercado.

Cules son los niveles de


Certiicacin?
a.SWB Certiied Manager. Respaldar a los
usuarios en sus habilidades de uso, operacin
y administracin del producto SWB Portal
para la creacin de portales y soluciones diversas. Con la capacidad de brindar servicios
alrededor de los productos de la suite.
b.SWB Certiied Developer. En este peril, la
imaginacin y los requerimientos de desarrollo
de sus proyectos sern el lmite. Esta certiicacin formar desarrolladores expertos en SWB,
de forma que sean capaces de elaborar componentes, aplicaciones y soluciones completas
basadas tanto en el API de SWB como en los
modelos de desarrollo semntico de la suite.
Sin embargo, estas son slo las primeras lneas de certiicacin abiertas, pues se plantea
liberar una para Diseadores Web y otra
para Arquitectos de Ontologas, as como
algunas variantes para empresas en un programa tipo Partners, o proveedores certiicados
de servicios, a partir de ciertas condiciones
que se publicarn posteriormente en el sitio
del producto: www.semantiwebbuilder.org.mx
y en el de INFOTEC: www.infotec.gob.mx

Quin puede certiicarse?


Aun cuando se trata de un producto tecnolgico para el desarrollo de aplicaciones, y que
la certiicacin fue pensada principalmente en
profesionales de la informtica, en realidad
puede realizarla cualquier persona que demuestre y acredite la experiencia en la administracin y coniguracin de ambientes web
mediante la plataforma SWB para el caso de
ser SWB Certiied Manager. Y si son amantes del cdigo y la programacin, pueden aspirar a ser SWB Certiied Developer.
Los interesados slo tienen que tomar el curso de capacitacin respectivo al programa que
desean conquistar y presentar el examen correspondiente. Actualmente quienes ya conocen y
operan el producto, pueden optar por la opcin
37

directa y solicitar la presentacin de su examen


con el personal en INFOTEC asignado a este
programa. Interesados contactar por medio del
siguiente correo: soportewb@infotec.com.mx
Cabe mencionar que el examen se presenta en lnea ante la empresa americana Prometric, la cual es lder internacional en el mercado de las certiicaciones, lo que garantiza
que no se trata de un examen simple, ni que
se podrn realizar arreglos especiales en la
acreditacin del mismo. De esta manera se
sostiene la idea de que el proceso es completamente transparente y slido.
Y para aquellos que no conocen la plataforma SWB o an no son expertos en la
misma, pueden optar por adherirse a un
programa de capacitacin especicamente
constituido con el propsito de formar profesionistas capaces de certiicarse. Este programa se imparte ya sea en INFOTEC o en
distintas universidades pblicas del interior
de la repblica, donde se estn formando
grupos de entrenamiento.

Quin avala la certiicacin?


Quienes obtengan este reconocimiento debern
saber que est avalado por INFOTEC, CONACYT y PROMETRIC, con la intencin de que
tenga un respaldo nacional e internacional de
prestigio, y puedan acceder a proyectos en Gobiernos Municipal, Estatal o Federal donde ya
existen instalaciones de SWB.
Lo que se ha buscado es garantizar de la manera ms efectiva la verdadera calidad de los
conocimientos de quienes acrediten el examen,
y que adems puedan hacer valer su mrito no
slo a nivel nacional sino internacional, pues
SWB ha comenzado en los ltimos aos a
romper las fronteras y darse a conocer en otros
pases de Amrica Latina principalmente.
Durante 2012 se busc reconocer y crecer
los mritos de los miembros de la comunidad
SWB, y para el 2013 se ha planteado como
meta, la consolidacin de esquemas de colaboracin entre profesionales y el mbito comercial para diversas PyMEs TIC en Mxico, de
forma que puedan contar con ms herramientas para desarrollar nuevas lneas de negocio y
ofrecer a sus clientes a travs de SWB.

www.sg.com.mx |

Software Guru

Programa de certiicaciones en

.SECCIN PATROCINADA

Las certiicaciones en Mxico en


materia de Tecnologas de Informacin

a certiicacin, segn la deinicin contenida en la Ley Federal


sobre Metrologa y Normalizacin (LFMN), es el procedimiento mediante el cual se asegura que un producto, proceso, sistema o
servicio, cumple o bien est conforme con las especiicaciones contenidas en las normas. Es decir, la certiicacin es el procedimiento
mediante el cual se evala la conformidad de un producto o proceso
acorde con la normativa aplicable.
Para evaluar la conformidad de dicho producto, proceso, sistema,
servicio o persona, en principio deben existir los estndares que contengan las especiicaciones de dichos productos o procesos, por tanto,
no puede existir certiicacin si no existe una normativa para ello.
Por lo anterior desde hace 18 aos, Normalizacin y Certiicacin Electrnica S.C., (NYCE) contribuye a la creacin de estndares para la industria de Electrnica, Telecomunicaciones y Tecnologas de Informacin, y es en este rubro de las TIs donde ha tenido
mayor crecimiento en los ltimos aos.
Asimismo, NYCE proporciona el servicio de capacitacin en dichos estndares, as como el de la evaluacin de la conformidad de
los mismos (certiicacin y/o veriicacin), segn sea el caso. La gran
mayora de las normas mexicanas que NYCE elabora estn armonizadas (son idnticas) a las normas internacionales correspondientes,
de organismos internacionales reconocidos como la ISO o la IEC.
El primer estndar que NYCE evalu en Mxico, con actividades de veriicacin en sitio, fue la norma MoProSoft (NMXI-059-NYCE-2006, actualizada en el 2011), creada para proveer
un modelo de madurez de procesos para la industria del software,
con el objetivo de hacerla ms competitiva, y de que con el tiempo pueda incrementar sus capacidades organizacionales -ya que
cuenta con 5 niveles de madurez- para desarrollar software que se
entregue a tiempo, que cumpla las especiicaciones del cliente y
que se apegue al presupuesto.
NYCE como organismo de Certiicacin para evaluar la conformidad
de Sistemas de Gestin de TI, est acreditado en las siguientes Normas:
NMX-I-20001-NYCE-2010 Gestin del Servicio, cuyo objetivo es
promover la adopcin de un enfoque de procesos integrados para proveer servicios (de TI) que satisfagan los requisitos del negocio y de los
clientes, dicha norma est armonizada con la norma ISO/IEC 20001.
NMX-I-27001-NYCE-2010 (ISO/IEC 27001), orientada a im-

plementar un Sistema de Gestin de Seguridad de la Informacin, que


es aplicable a cualquier tipo de institucin preocupada por minimizar
los riesgos inherentes al manejo, almacenamiento y uso de informacin, lo cual normalmente se realiza mediante tecnologas de vanguardia. ltimamente esta norma ha sido el marco idneo para utilizarla
como el Sistema de Gestin que le permita a las organizaciones cumplir con diferentes regulaciones como la Ley Federal de Proteccin de
Datos Personales en Posesin de los Particulares, entre otras.
Otros estndares que NYCE evala en materia de Tecnologas de la
Informacin son la norma NMX-I-NYCE-38500 (ISO/IEC 38500)
para el Gobierno Corporativo de TI; la ISO/IEC 22301 sobre Sistemas de Gestin de Continuidad del Negocio; la NMX-I-25000-NYCE que marca las especiicaciones para la Calidad de Productos de
Software y 9 normas ms que regulan las actividades de la industria
del juego electrnico en Mxico.
Asimismo, NYCE cuenta con el servicio de certiicacin de personas para Evaluadores de Procesos de Software y de Consultor Integral
en TI, abarcando este ltimo las 4 disciplinas que mencionamos anteriormente: NMX-I-38500, NMX-I-059, NMX-I-20001 y NMXI-27001 en 3 niveles: Fundamentos, Consultor Jr. y Consultor Sr.
Cabe mencionar que en aos pasados la Organizacin Internacional de Estndares (ISO por sus siglas en Ingls) tom como base la
norma mexicana MoProSoft, para crear un nuevo estndar internacional, bautizado bajo la serie ISO/IEC 29110 Lifecycle Proiles for
VSE (Periles del ciclo de vida del software para empresas muy
pequeas). De los tres periles que conformarn esta norma -bsico,
intermedio y avanzado- en Mxico ya existen empresas que estn implementando el peril bsico y NYCE estar ofreciendo en breve el
servicio de certiicacin.
A la fecha NYCE ha veriicado a ms de 400 empresas en diferentes niveles y continuamos incrementando ese nmero para hacer
que la industria del desarrollo de software, contribuya cada vez ms
a aumentar las exportaciones para lograr ser uno de los 3 primeros
pases exportadores de servicios de TI.
Para mayor informacin:
J. Salvador SNCHEZ ABARCA
Director de Operaciones de TI
ssanchez@nyce.org.mx
38

CAPACTESE EN
RED HAT ENTERPRISE
LINUX Y GANE MS

Grandes empresas y entidades de gobierno en Mxico, como el Instituto Federal Electoral, han apostado por la tecnologa de Cdigo Abierto
Red Hat y han decidido seguir invirtiendo en aos futuros.

No est seguro de por dnde


empezar? Tome sin costo la
evaluacin de habilidades** para
determinar cul es el camino
adecuado para usted y obtenga
un 20% de descuento**
*Reporte Dice.com http://www.linuxfoundation.org/publications/
linux-foundation/2012-linux-jobs-report
**Red Hat ofrece 20% de descuento en Carrera de Red Hat Certiied Engineer (RHCE) que incluye los cursos RH124, RH134 RH135
y RH255. Para hacer valida la promocin usted deber presentar una
copia del resultado de su evaluacin de habilidades que puede obtener
en este link: http://mx.redhat.com/resourcelibrary/articles/training-skills-assessment-latam y enviarla a training-mx@redhat.com . La oferta es vlida
durante todo 2013, el participante es responsable de evaluar su formacin en Linux e inscribirse en el curso adecuado, la promocin no es
transferible, el descuento no es aplicable en otros cursos impartidos por
Red Hat, el descuento no se puede combinar con otros programas de
descuentos, paquetes, promociones o cupones, los trminos y condiciones estn sujetos a cambios sin previo aviso.
Para mayor informacin del principal proveedor de Linux y de Software de Cdigo Abierto, con soluciones de: Plataforma, Middleware,
Virtualizacin, Storage, Cloud Computing, Servicios Profesionales y
Entrenamiento, contacte:

Correo: training-mx@redhat.com
Tel en Mxico: +52 (55) 8851-6400
Visite: mx.redhat.com
39

Software Guru

Sea nuevo en Linux o busque desarrollar habilidades ms avanzadas, Red


Hat ofrece cursos y certiicaciones que impulsan su carrera.

www.sg.com.mx |

n 1991, Linus Trovald, sin imaginar el alcance


que tendra aos ms tarde, comenz a programar lo que hoy conocemos como sistema
operativo Linux.
Tuvo la visin de robustecer su creacin,
compartindolo con el mundo y convirtindolo en un software de cdigo abierto.
Hoy en da, la superioridad de este sistema operativo, multitarea,
multiusuario, multiplataforma y multiprocesador, ha acaparado la
mirada de grandes y medianas empresas, ya que les permite contar
con soluciones robustas y lexibles, de acuerdo al giro y crecimiento
de su negocio y a un costo muy bajo.
Red Hat, comprometido con sus clientes y con la comunidad de
cdigo abierto, se ha dado a la tarea de crear profesionales, capaces
de seguir aportando a este ecosistema, pero sobre todo, dndole la
oportunidad a cualquier empresa de contar con tecnologa de ltima
generacin a un bajo costo.
De acuerdo a un reporte publicado por dice.com* y la Fundacin Linux, las compaas estn buscando profesionales entrenados en Linux, y
estn dispuestos a pagar bien por ellos, ya que, an a pesar de la creciente
adopcin en Latinoamrica de Linux, existe la percepcin de que el talento Linux es escaso. El reporte predice que las contrataciones irn en
aumento en comparacin con otras reas dentro de TI.
Con base a lo anterior, y con la demanda a la alza, las compaas estn ofreciendo a aquellos con entrenamientos recientes y experiencia en
cdigo abierto:
Mejores salarios, bonos y beneicios, como horarios lexibles.
Mayores aumentos salariales cada ao, comparados con otros profesionales de la tecnologa.
Entrenamiento adicional y programas de certiicacin.

Evale sus conocimientos en Linux

.PRCTICAS
ARQUITECTURA

Certificacionesen Arquitectura de Software


Por Humberto Cervantes e Ivn Gonzlez

provechando el tema principal de esta edicin de SG, en


esta ocasin dedicaremos esta seccin a hablar sobre certificaciones en arquitectura de software.
En un artculo dedicado especficamente a las certificaciones en arquitectura de software [1], Paul Clements menciona
que existen distintas categoras de certificaciones. Primeramente, las certificaciones pueden ser internas o bien pblicas. Las
certificaciones internas existen en grandes empresas tales como
Boeing o Raytheon y estn orientadas a sus empleados, mientras
que las certificaciones pblicas son otorgadas por organismos
tales como el Software Engineering Institute (SEI) y pueden ser
obtenidas por el pblico en general. Por otro lado, Clements
hace tambin una distincin entre los certificados (certificate) y
las certificaciones (certification). Los certificados pueden ser obtenidos mediante el seguimiento de cursos y pueden requerir o
no que se realice un examen. Las certificaciones, por otro lado,
hacen referencia al otorgamiento
de credenciales en base a la ob.BIO
servacin de la aplicacin exitosa
El Dr. Humberto Cervantes es
profesor-investigador en la UAMdel conocimiento adquirido. AlIztapalapa. Adems de realizar
docencia e investigacin dentro
gunos otros aspectos que diferende la academia en temas relaciocian a las certificaciones son los
nados con arquitectura de software, realiza consultora y tiene
pre-requisitos y tambin si estas
experiencia en la implantacin de
mtodos de arquitectura dentro
certificaciones estn asociadas o
de la industria de desarrollo nacional. Ha recibido diversos curno a alguna plataforma.
sos de especializacin en el tema
A continuacin comentarede arquitectura de software en el
Software Engineering Institute,
mos
sobre algunas opciones disy est certificado como ATAM
Evaluator y Software Architecture
ponibles en la industria. Cabe
Professional por parte del mismo.
sealar que los autores hemos tewww.humbertocervantes.net
nido experiencia con las dos priIvn Gonzlez Aguilar es ingeniero en Telemtica, graduado de
meras que se discuten.
la UPIITA del IPN. Actualmente
trabaja en la industria del desarrollo de software y busca de forma
continua su formacin integral.
Entre algunos de sus intereses
afines en estos das se encuentran:
temas relacionados con estilos de
arquitecturas, el diseo de aplicaciones, y la programacin con los
lenguajes Clojure y Ruby. Adems
est certificado como Oracle Certified Master, Java EE Enterprise
Architect. http://mx.linkedin.com/
in/ivangonzalezaguilar

Software
Engineering
Institute
El SEI cuenta con varios programas
de educacin que permiten obtener
certiicados en el tema de arquitectura de software. Estos incluyen:
Software Architecture Profes-

sional: Proporciona una base terica slida en el tema de la


Arquitectura de Software. Consta de cuatro cursos: Principios
y Prcticas de la Arquitectura de Software; Documentando
Arquitecturas de Software; Anlisis y Diseo de Arquitecturas
de Software; y Lneas de Productos de Software. Adems es
necesario realizar un examen.
ATAM Evaluator: Capacita al participante como miembro
de equipo de evaluacin de arquitectura siguiendo el mtodo
ATAM [2]. Consta de los cursos: Principios y Prcticas de
la Arquitectura de Software; y Entrenamiento del Evaluador
ATAM. Tambin se debe tomar el mismo examen que en el
programa Software Architecture Professional.
SOA Architect Professional: Proporciona una base terica
slida en el tema de Arquitecturas Orientadas a Servicios. Involucra los cursos: Principios y Prcticas de la Arquitectura de
Software; Mejores Prcticas para la Adopcin de SOA y temas
avanzados de SOA, adems de haber realizado el examen previamente mencionado.
La ventaja de los programas del SEI es que los cursos son
impartidos por los autores mismos de los mtodos y libros de
referencia. Salvo raras excepciones, los cursos se imparten en
las instalaciones del SEI en Pittsburgh. Esto es una experiencia
muy interesante y enriquecedora, sobre todo porque se tiene
la oportunidad de conocer a profesionales de empresas y organizaciones muy reconocidas a nivel mundial. Uno de nosotros recuerda, por ejemplo, en una ocasin haber tenido como
compaero de curso a un ingeniero que trabaj en los sistemas
de avinica del transbordador espacial. Los programas del SEI
gozan de cierto reconocimiento, en particular en empresas que
estn familiarizadas con otras propuestas del SEI como pueden
CMMI o PSP/TSP. Entre las principales desventajas estn el
alto costo, ya que no solo involucra el costo directo del curso
sino los gastos de viaje.

Oracle Certified Master, Java EE


Enterprise Architect
Tiene un enfoque muy claro y marcado hacia a la plataforma
Java en su edicin Empresarial. Se enfoca bsicamente en el
40

.PRCTICAS

ARQUITECTURA

ES IMPORTANTE EVALUAR QU ES LO QUE

UNO BUSCA OBTENER DE UNA CERTIFICACIN.

entendimiento de temas de arquitectura a nivel aplicativo, y en


el cmo resolver problemas de diseo e implementacin de un
aplicativo con el apoyo del modelo de programacin, stack de
componentes, especificaciones, estndares definidos y soluciones probadas que presenta la edicin empresarial de java.
En los tiempos de la extinta Sun Microsystems, esta certificacin (Sun Certified Enterprise Architect) constaba de los
siguientes requisitos:

mente ampli su alcance para incluir otros tipos de arquitectura


de TI. Ofrece programas de certificacin en 4 reas de especializacin: Arquitectura de negocios, Arquitectura de infraestructura, Arquitectura de informacin y Arquitectura de software.
Los cursos de IASA se imparten en distintas ciudades del
mundo e incluso algunos se pueden tomar en modalidad online,
lo cual es una ventaja para quienes estamos en pases donde no
hay captulo local de IASA.

1. Un examen de opcin mltiple sobre los tpicos que marca el temario.


2. Una asignacin de diseo de solucin de un aplicativo
para ser resuelto y enviado de vuelta para su calificacin por
personal de Oracle.
3. Un examen de preguntas abiertas sobre las decisiones tomadas en la solucin de la asignacin entregada en el paso anterior.

Otros

IASA
IASA es la asociacin global de arquitectos de TI. Originalmente solo se enfocaba en arquitectura de software pero posterior-

Microsoft Certified Architect


http://www.microsoft.com/learning/mcp/architect
Open Group Certified Architect
http://www.opengroup.org/openca/cert
IBM Certified Solution Designer Rational Software Architect
http://www-03.ibm.com/certify/certs/38003001.shtml

Existe una gran variedad de programas de certiicacin relacionados con la arquitectura de software. A pesar de que las certiicaciones no son una garanta de que quien las posea es un arquitecto
competente, al menos implican que sta persona tuvo contacto
con una capacitacin y tuvo que estudiar los conceptos que ah se
impartieron con el in de aprobar el examen asociado (si lo hay).
Las certificaciones asociadas a una plataforma especfica tienen la ventaja de que tienden a ser ms valoradas en la industria,
pero tienen la desventaja de que el conocimiento asociado puede
volverse obsoleto ms rpidamente. Las certificaciones que no
estn asociadas a una plataforma especfica tienden a ser menos
valoradas en la industria, pero tienen la ventaja de que pueden
aplicarse a distintas plataformas y el conocimiento asociado tiene menos riesgo de volverse obsoleto. Por lo anterior, es importante evaluar qu es lo que uno busca obtener de una certificacin, y elegir la que sea ms adecuada a nuestras necesidades.
En nuestra experiencia consideramos que la obtencin de
certificaciones relacionadas con arquitectura de software es una
inversin que vale la pena realizar.

Referencias
[1] Clements, P., Certified Software Architects, IEEE Software, Vol. 27, Issue 6,
pp 6-8, Noviembre / Diciembre 2010
[2] H. Cervantes. El Valor de la Arquitectura de Software. Revista Software
Guru # 31, Marzo-Abril 2011.

41

Software Guru

Conclusin

www.sg.com.mx |

Bajo Oracle esto se ajust y ahora adicionalmente se requiere


tomar un curso previo a presentar el primer examen y contestar
un cuestionario final. Con esto la certificacin, ahora, se obtiene en 5 pasos.
Tanto el paquete de solucin como el examen de preguntas
abiertas deben ser contestados en ingls, as que hay que tenerlo en consideracin. Si planean obtener esta certificacin,
recomiendo que al presentar la solucin esperada sean concisos
y delimitados, ya que finalmente lo revisar alguien con quin
no se podr defender las ambigedades presentes. Apyense en
la utilizacin de conceptos, modelos y patrones que condensan
largas explicaciones.
Cada paso tiene un costo por separado. El tiempo para librar
con xito cada paso es bastante razonable, lo que da pie a realizar
una planeacin en la inversin en esta certificacin.
Las fortalezas de esta certificacin son: el plan de auto-estudio que proporciona el temario, la inmersin durante y posterior a la preparacin de la certificacin en la bibliografa que
seala como recomendada, y por supuesto la elaboracin de la
tercera y ltima parte del examen.
Una debilidad de la certificacin es el estar un tanto rezagada en la inclusin de las tendencias y necesidades actuales
dentro del desarrollo de aplicaciones empresariales. La certificacin, por ejemplo, no aborda actualmente tpicos de diseo
de aplicaciones preparadas para la nube, arquitecturas REST,
procesamiento batch, entre otros. Seguramente en un futuro las
incluir, pero en su momento dejar atrs otras, hasta que exista
un API o JSR en la plataforma que adopte el estndar y mejores
prcticas de la industria.

Algunos otros programas de certificacin relacionados con la


arquitectura incluyen:

.PRCTICAS
REQUERIMIENTOS

Casos y Cosas de los


Por Efran Cordero

Casos de Uso

Reordenando racimos de uvas


Es comn encontrar sistemas con varias decenas o incluso cientos
de casos de uso. Intentar representar todos estos casos en unos
pocos diagramas no es muy til ya que debido al exceso de elementos se complica el entendimiento del alcance. Los diagramas
dan la apariencia de contener racimos de uvas que amenazan con
derramarse de tanto peso.
Para solventar esta situacin, una estrategia es establecer un criterio de subdivisin del modelo y fragmentar los diagramas saturados.
El criterio normalmente proviene del negocio, y pueden ser roles,
reas de la empresa, reas de proceso, prioridades, etc. Por ejemplo, si
el criterio fuera Roles y como tales hubiera Cajero, Contador,
etc., por cada uno de ellos se crea un paquete y en l se colocan los
elementos que le correspondan. Este mecanismo facilita la comprensin del alcance, enfoca las revisiones con usuarios, permite establecer prioridades y simpliica las bsquedas de elementos.

Un hermoso martillo dorado


Un martillo dorado se reiere a abusar del uso de cierto recurso o
herramienta, queriendo aplicarla incluso en problemas para los que
no est diseada. Veamos el siguiente caso de uso:
Caso de Uso: Generar Reporte X.
Objetivo: Generar y desplegar el reporte X.
Actores: Actor X.
Flujo Bsico:
1. El actor X indica al sistema que desea consultar el reporte X.
2. El sistema permite al actor X indicar los valores para iltrar el
reporte.
3. El actor X proporciona los valores a usar para iltrar el reporte.
4. El actor X solicita al sistema que genere el reporte.
5. El sistema genera el reporte y lo muestra al actor X.
Flujo Alterno: Informacin no
.BIO
existente
5.1 El sistema determina que no hay
Efran Cordero Lpez es responsable tcnico y lder de proyecto
informacin
y lo notiica al actor X.
en grupo CARSO. Es licenciado en
computacin por la Universidad
5.2 Regresa al paso 3 del lujo bsico.
Autnoma Metropolitana y cuenta
con acreditaciones como SCJP,
SCWCD y Oracle SOA Implementation Champion. Es autor de cursos de diseo, pruebas unitarias
y mejores prcticas de ingeniera
de software.

Qu tiene de malo el caso de


uso anterior? Describe la interaccin completa de un usuario con
el sistema, el objetivo es claro, y

la secuencia de pasos parece lgica. El problema es que en casos


como este, lo ms importante es la informacin que debe contener el reporte, cmo se obtiene y se despliega, y el caso de uso no
dice nada sobre esto.
El siguiente ejemplo muestra un extremo de esta situacin:
Caso de Uso: Ejecutar Proceso Z
Objetivo: Que el proceso Z sea ejecutado.
Actores: Actor X
Flujo Bsico:
1. El actor X indica al sistema que ejecute el proceso Z.
2. El sistema ejecuta el proceso Z.
En situaciones como estas agrega algn valor tener casos
de uso? Los casos de uso son tiles cuando hay gran interaccin
entre el actor y el sistema, pero cuando no es as o la cantidad
de reglas es abrumadora (ej. procesos batch, interfaces B2B), es
mejor considerar otras alternativas. Gottesdiener proporciona
una lista de opciones para documentar diferentes tipos de requerimientos tales como diagramas de estado, mapas de procesos, prototipos y modelos de datos. Para situaciones donde hay
una gran cantidad de reglas, la opcin es extraerlas de la narrativa y colocarlas en anexos o documentos separados, dejando en
la narrativa las correspondientes referencias.

A ritmo de copy-paste
Imaginemos un caso de uso de registro de elementos en un catlogo,
que tendra un lujo bsico similar al siguiente:
1. El actor X indica al sistema que desea registrar un elemento X.
2. El sistema despliega la forma de registro para un elemento X.
3. El actor X llena la forma de registro e indica al sistema que desea
proceder con el registro.
4. El sistema revisa que la informacin proporcionada sea vlida.
5. El sistema registra el elemento X.
Es muy posible que para todos los catlogos simples el proceso de insercin sea muy similar al descrito, por lo que el equipo
seguramente tomar la decisin de usarlo como plantilla base.
Por tanto, si el sistema comprende 50 catlogos, se generarn 49
clones donde lo nico que diiere es el nombre del elemento X.
42

.PRCTICAS

REQUERIMIENTOS

REALMENTE SER TIL LIDIAR CON VARIOS


DOCUMENTOS QUE DICEN LO MISMO?

En un proyecto en el que particip algunos aos, nos encontramos con que a pesar de que los desarrolladores eran buenos,
estaban teniendo problemas para implementar correctamente el
sistema. El problema era que los desarrolladores desconocan
la operacin del negocio, as que no entendan cmo los casos
de uso soportaban el proceso de negocio y por lo tanto no les
era obvio el orden en el que se deban realizar las interacciones
indicadas en los casos de uso. A pesar de que los casos de uso
manejan relaciones de inclusin y extensin, as como el manejo de precondiciones en las narrativas, stas no son suficientes
para establecer el orden de ejecucin de escenarios para la consecucin de flujos completos. Por ende, cuando un desarrollador
trabajaba con un caso de uso, tena que descubrir como funcionaba el proceso completo haciendo ingeniera inversa. Esto,
adems de ser propenso a errores, consuma demasiado tiempo.
Para corregir esta situacin realizamos las siguientes acciones:
Brindar induccin a los nuevos integrantes del equipo en aspectos
de negocio.
Documentar los lujos a travs de diagramas de proceso de negocio, y registrar la rastreabilidad procesos - casos de uso.
Asignar a recursos experimentados como coaches de negocio.
Manejar matrices de rastreabilidad que documenten qu partes
del cdigo corresponden a qu caso de uso, para detectar elementos
compartidos.
Disear bateras reutilizables de datos de prueba para consumo
de todo el equipo.
Implementar esquemas de integracin continua para detectar impactos laterales lo ms rpido posible.

Rompiendo el principio de impenetrabilidad


Extrapolando el principio de impenetrabilidad de fsica a los
casos de uso, se tendra que un caso de uso no puede establecer
al mismo tiempo la funcionalidad establecida por otro. Aunque

Reemplazo total: Se bosqueja la funcionalidad actual y solo se


describe de manera detallada lo que cambia.
Reemplazo parcial: El caso de uso solo trata de los cambios a la
funcionalidad actual.
En el primer caso, los desarrolladores pueden terminar creando
duplicados de funcionalidades en lugar de actualizar las existentes.
En el segundo caso, el resultado es un Frankenstein de modelo donde para conocer la funcionalidad del sistema es necesario realizar un
tour entre entre los casos de originales y los n casos de uso complementarios. Adicionalmente, se pueden dar situaciones de choque
entre fragmentos de funcionalidad. Esto se vuelve verdaderamente
inmanejable.
Las razones ms comunes por lo que sucede lo anterior son: partir de un modelo desactualizado, desconocimiento del modelo, o
simplemente pereza. Es necesario promover la actualizacin del modelo, capacitar a los levantadores de requerimientos en el mismo, y
establecer un responsable que supervise que las actualizaciones sean
congruentes y no rompan la estructura.

Conclusiones
Los casos de uso son y seguirn siendo una muy buena herramienta
para documentar y comunicar requerimientos. Sin embargo, es fcil
dejarse llevar por la idea de que su uso es trivial y que son adecuados
para capturar todo tipo de requerimientos. Una adecuada comprensin de sus limitaciones junto al conocimiento de otras herramientas
de levantamiento de requerimientos, aunado a la aplicacin de estrategias simples de organizacin y distribucin, traer como consecuencia requerimientos mejor plasmados, ms completos y ms
sencillos, en beneicio tanto de los equipos de desarrollo como de los
usuarios inales y el resto de las reas involucradas.
Referencias
[1] S. Ferg. Whats Wrong with Use Cases? http://swgu.ru/sg39r2
[2] E. Gottesdiener. Top Ten Ways Project Teams Misuse Use Cases - and How
to Correct Them. http://swgu.ru/sg39r3
[3] I. Jacobson et al, Object-Oriented Software Engineering - A Use Case Driven Approach. Addison-Wesley, 1992.

Este artculo es una versin resumida del Whitepaper con el mismo


nombre publicado en el sitio web de SG
http://sg.com.mx/whitepapers

43

Software Guru

Perdidos en el espacio

suena lgico, en mantenimiento evolutivo una situacin comn


es que, en lugar de modificar los casos de uso preexistentes, los
levantadores de requerimientos prefieren crear nuevos sin avisar
que reemplazan o complementan otros. Esto tpicamente sucede bajo dos modalidades:

www.sg.com.mx |

Esto se repetir para consulta, modiicacin y eliminacin, por lo


que se tendrn 196 narrativas creadas a partir de las 4 base, para
un total de 200 elementos.
Ms que cuestionar la validez del tratamiento anterior, la pregunta es realmente ser til para el equipo lidiar con 200 documentos
que dicen prcticamente lo mismo? Y para el cliente? Ese tipo de
documentacin realmente le sirve?
Aunque para los diagramas basta con manejar relaciones de
generalizacin, para las narrativas la estrategia es crear un documento base y aislar en un anexo o documento separado las
peculiaridades de cada elemento. De esta manera terminar tenindose una sola narrativa.

.PRCTICAS
PRUEBA DE
SOFTWARE

Debo Certificar Procesos,


Personas o Productos?
Algunas recomendaciones convenientes
Por Berenice Ruiz Eguino

uando de probar software se trata, resulta til preguntarnos


qu estrategia es la que mejor conviene aplicar al negocio. Si
ya estamos convencidos de la ventaja competitiva que por s misma
las certiicaciones pueden tener, el siguiente paso es decidir el orden
prioritario de los criterios sobre los cuales nos basaremos para orientar nuestros esfuerzos y recursos al momento de invertir en ellas.
Seguramente hay quienes piensan que las certiicaciones slo sirven
para vender mejor, y si bien hay algo de verdad en dicha aseveracin,
tambin la hay en el hecho de que comenzamos a vendernos desde muy
temprano (y nos seguiremos vendiendo siempre, en muchos mbitos);
muestra de ello, por ejemplo, es que para obtener mejores oportunidades
laborales, estudiamos una carrera profesional y pretendemos demostrar
nuestros conocimientos por medio de un ttulo que avala que concluimos
exitosamente nuestros estudios universitarios. Contar con dicho ttulo,
ciertamente no asegura que seremos los mejores profesionistas, sin embargo s eleva las probabilidades de que eso ocurra, generando mayor conianza en aquellas personas interesadas en contratarnos. Igualmente habr
quienes sin tener el papel logren tener dichos conocimientos, es solo
que ellos tienen que buscar otros caminos para avalar sus conocimientos
y capacidad. An as, como bien decamos la certiicacin pudo haber
ayudado en primer instancia a vendernos mejor, sin embargo para mantener la reputacin tambin hay que demostrar una y otra vez la efectividad
de los resultados logrados como consecuencia de estar mejor preparados.
Normalmente quien vende algo malo, no vende ms, independientemente de si est certiicado o no.
En base a esto, considero que certiicarse no debiera ser pecado, tampoco mera presuncin. Debemos usar la certiicacin como un medio para
allegarnos de ms conocimientos especializados (asumiendo que ello implica
un perodo de preparacin), asimilar mejores tcnicas y herramientas para
aplicarlas de manera focalizada en el rea de inters seleccionada, demostrando a otros la pericia que nos ayudar a
.BIO
mejorar, no slo a vender.
Partiendo de esta premisa, evalueBerenice Ruiz Eguino es Directora
de Operaciones de e-Quallity,
mos
ahora respecto a la prueba de softadems ha participado como
Consultora Senior en proyectos
ware qu puede resultarnos ms conde mejora de organizaciones de
veniente certiicar cuando deseamos
Prueba de Software. Cuenta con
certificacin internacional en Prueefectivamente mejorar la calidad del
bas por el ASTQB. A lo largo de su
trayectoria profesional ha actuado
software que creamos y/o utilizamos.
tambin como Ingeniero de Pruebas Senior, Lder de Proyectos,
Administradora de Proyectos nacionales e internacionales, analista
y desarrolladora. Ha sido profesora
de la Universidad Autnoma de
Guadalajara (UAG), donde realiz
sus estudios de Maestra en Ciencias Computacionales.

Diagnstico
Para tomar una decisin acertada
sobre la mejor estrategia para nuestra organizacin, un buen comienzo
es contestar las siguientes preguntas:

1. Tenemos una necesidad recurrente de desarrollar o evaluar diversos productos de software?


2. La mayora de esos productos son estratgicos para la organizacin?
3. Gran parte de ellos nos brindarn importantes ventajas competitivas?
4. La demostrada alta calidad de todos esos productos nos generar diferenciadores medibles en trminos econmicos?
5. Desarrollar o evaluar diversos productos de software es parte de
nuestro core business?
6. Pesa directamente sobre nosotros la calidad de todos esos productos de software?
7. El demostrar la buena calidad de todos esos desarrollos, engrosar nuestra cartera de clientes?
8. Institucionalizar la forma de evaluar varios sistemas adems de
motivante ser nos har ms productivos?
9. Requiero demostrar a otros la pericia individual de quienes evalan nuestros productos de software? (siendo elementos internos)
10. El reconocimiento oicial e individual de las habilidades tcnicas de los probadores de software, se traducir en beneicios medibles para la organizacin?
11. El conocimiento demostrado por nuestros probadores de software facilitar el posicionar mejor nuestros productos/servicios?
12. Es uno de nuestros servicios clave el sourcing de personal de
pruebas de software?
13. La especializacin en pruebas de software es el foco del plan
de carrera de nuestro personal o de una parte de ellos?
14. Considera la organizacin el valor de una certiicacin como
elemento clave de retencin de su personal de pruebas?
15. Requiere su organizacin promover mejor (Mercadotecnia)
un producto de software estrella, dentro de su mercado?
16. La mala calidad de dicho producto derivara no slo en inconformidades de clientes, sino incluso en problemas legales por
excesivos defectos crticos en produccin?
17. La operacin de su negocio est basada en la efectividad de un
sistema de informacin clave?
18. Requiere su organizacin, por estatutos o normatividad oicial,
demostrar la alta calidad de cierto sistema de informacin.
19. El mayor porcentaje de sus ganancias (o prdidas) est directamente ligado al buen (o mal) funcionamiento de uno de sus sistemas (por ejemplo, punto de venta).
20. Requiere diferenciar notablemente alguna de sus aplicaciones,
respecto a otras similares en su mercado?
Si respondi airmativamente a ms del 50% del bloque de preguntas
de la 1 a la 8: a su organizacin podra resultarle til buscar una certiica44

.PRCTICAS

PRUEBA DE
SOFTWARE
CERTIFICARSE NO DEBIERA SER PECADO,
TAMPOCO MERA PRESUNCIN.

Atributos a considerar al
certiicar software
En el caso de querer evaluar la calidad de uno o ms productos de
software, qu aspectos son los que debemos tomar en cuenta?
En el artculo previamente publicado en SG titulado Priorizacin
de Atributos de Calidad en Sistemas Modulares Integrados [5], se
explican los atributos de calidad interna y externa del software que
considera el estndar internacional ISO-IEC-9126 (NMX-I-9126-1NYCE en Mxico). Dichos atributos son agrupados en seis caractersticas bsicas de calidad que debieran estar presentes en un producto de
software. A continuacin listo dichas caractersticas y atributos.
Funcionalidad: Adaptabilidad, exactitud, interoperabilidad, seguridad de acceso.
Coniabilidad: Madurez, tolerancia a fallas, recuperacin, conformidad de funcionalidad.
Usabilidad: Facilidad de comprensin, facilidad para aprender,
operatividad, atractivo.
Eiciencia: Tiempo de respuesta, utilizacin de los recursos.

Mantenibilidad: Facilidad de anlisis, facilidad para introducir


cambios, facilidad de prueba.
Portabilidad: Adaptabilidad, facilidad de instalacin, coexistencia, facilidad de reemplazo.

Para evaluar dichos atributos de calidad, se contempla la aplicacin de una gran cantidad y variedad de mtricas, que ayudarn
a conocer el nivel de cumplimiento y con ello, el nivel de calidad
alcanzado por dicho sistema.
En deinitiva, para conocer el nivel general de calidad logrado en los
productos de software evaluados, la organizacin que provea un servicio
tal de Certiicacin de Productos de Software deber tener desarrollado,
implantado y sistematizado un modelo para aplicar dichos criterios y
mtricas, de modo que con bases fundamentadas pueda emitir un juicio
de valor respecto a las evaluaciones que realice, y por cuyos resultados
estar en condiciones o no, de emitir una certiicacin o sello.

Conclusin
La decisin sobre apostarle a una certiicacin de Proceso de Pruebas, o a
una de Personas (Testers) o a una de Producto, deinitivamente est en sus
manos. Ante limitaciones en presupuesto, tal vez resulte conveniente concentrar gradualmente los esfuerzos en alcanzar primero alguna de ellas y
posteriormente ir buscando alguna otra, solo si realmente es relevante para
el negocio invertir en ms de una de ellas. Y por supuesto, dicha decisin
tambin debiera sustentarse en un inminente retorno de la inversin.

Referencias
[1] Len Carrillo, Luis Vinicio y Ruiz Eguino, Sandra Berenice. Modelos de
Calidad para Prueba de Software, Software Gur, Dic 2008.
[2] Ruiz Eguino, Sandra Berenice y Silva, Armando. TMMi: Un modelo especializado en pruebas,

Software Gur, Marzo 2011.

[3] Ruiz Eguino, Sandra Berenice. El Modelo de Calidad Europeo TPI. Software Gur, Mayo 2009.
[4] Len Carrillo, Luis Vinicio y Ruiz Eguino, Sandra Berenice. Certificaciones
Internacionales para Testers I y II, Software Gur, Sep 2009 y Nov 2009.
[5] Gonzlez lvarez, Larisa, Martn Cruaes, Roberkys y Rivero lvarez, Tahir.
Priorizacin de Atributos de Calidad en Sistemas Modulares Integrados,
Software Gur, Oct 2012.

45

Software Guru

Adicionalmente se pueden considerar caractersticas de calidad


asociadas especicamente al uso de un software. Estas son:
Productividad. Que usar un software aumente nuestra productividad.
Efectividad. Que usar un software nos permita realizar tareas
correctamente y sin errores.
Satisfaccin. Que usar un software sea una experiencia satisfactoria.
Seguridad. Que podamos coniar en la seguridad de nuestra informacin cuando usamos un software.

www.sg.com.mx |

cin de su proceso de pruebas de software, si es que ya lo tiene deinido e


implantado; de no ser as, habr una ardua labor enfrente para comenzar a
desarrollarlo, requiriendo inversin ya sea de recursos existentes, o adems
los de una consultora especializada. Una vez deinido el proceso de pruebas, implantado y documentado algn proyecto piloto, su organizacin
podra estar en condiciones de buscar alguna de las certiicaciones conocidas en modelos de Pruebas de Software (TPI, TMM, TMMi, etc.), como
los que ya hemos explicado en ediciones anteriores de SG [1, 2, 3].
Si respondi airmativamente a las preguntas de la 9 a la 14: valdra la pena considerar la opcin de apoyar a obtener una certiicacin al personal de su organizacin dedicado a probar software.
Tambin en nmeros anteriores de SG hemos aportado algunas consideraciones y recomendaciones acerca de las certiicaciones internacionales para testers [4]. Por ejemplo: certiicaciones en diferentes
niveles, avaladas por organismos internacionales de testing como el
ISTQB (International Software Testing Qualiications Board), o el
QAI (Quality Assurance Institute), las cuales incluso son apoyadas
en Mxico con subsidios por medio del programa Mxico FIRST.
Finalmente, si sus respuestas al bloque de preguntas de la 15 a la
20 han sido airmativas: muy probablemente en su organizacin se
tenga la necesidad de certiicar algn o algunos productos de software. Para ello, una alternativa sera encomendar dicha labor a algn
tercero independiente e imparcial especializado en servicios de pruebas de software, y no slo eso, sino muy particularmente en servicios
de Certiicacin de Software (o algn sello de calidad), de preferencia con reconocimiento internacional. De esta forma su organizacin podr coniadamente demostrar a otros (clientes, prospectos,
inversionistas, etc.) que su(s) producto(s) cuenta(n) con un sello de
conianza por cumplir con atributos y caractersticas de calidad del
software en apego a normas y estndares internacionales.

.PRCTICAS
PROCESOS

Aplicando

Experimentacin
Cientfica

a la Ingeniera del Software


Por Omar S. Gmez

a ingeniera de software (IS) es una disciplina joven donde, a


diferencia de otras ingenieras, solemos construir sistemas no en
base a leyes inmutables, sino en base a ideas o creencias, a las que llamamos mejores prcticas, pero ... qu sustenta a dichas prcticas?
En este artculo presentamos de manera general un enfoque experimental que podemos usar para sustentar con evidencia cientica nuestras decisiones al construir sistemas de software. El experimento examina
la duracin y esfuerzo que conlleva la programacin por pares.

Proceso de experimentacin
As como en nuestra disciplina contamos con un proceso para construir software, en la experimentacin se cuenta con un proceso para
hacer experimentos. Este proceso consta bsicamente de las siguientes fases: Idea, Deinicin, Diseo, Ejecucin y Anlisis.
Una de las doce prcticas de la programacin extrema (XP) [1]
consiste en programar por pares. Bsicamente, esto consiste en que
dos programadores trabajan juntos en una misma tarea usando una
computadora. Uno de los programadores quien toma el rol de controlador escribe el cdigo mientras que el otro programador identiicado como observador revisa de
.BIO
manera activa el trabajo realizado por
el controlador con el in de detectar
Omar S. Gmez es Ingeniero en
Computacin por la Universidad de
posibles defectos. El observador
Guadalajara, Maestro en Ingeniera de Software por el Centro de
puede hacer anotaciones o deinir
Investigacin en Matemticas y
estrategias para llevar a cabo la tarea
Doctor en Software y Sistemas por
la Universidad Politcnica de Madrid.
a realizar, tambin puede buscar refeActualmente es profesor en la Licenciatura en Ingeniera de Software
rencias para ayudar a resolver alguna
de la Universidad Autnoma de
Yucatn. omar.gomez@uady.mx
cuestin que se presente durante la
realizacin de la tarea.

Se dice que el uso de esta prctica ayuda a producir programas


ms pequeos, implementar mejores diseos y que los programas
contienen menos defectos que aquellos escritos de manera individual. Se dice tambin que la productividad al trabajar de este manera
es mayor que si las personas trabajaran de manera individual.

Idea
Dada la informacin que acabamos de leer sobre programacin por
pares, nos viene a la mente contrastar con hechos esta prctica para
conocer de manera ms coniable en qu medida se cumplen las bondades que de ella se mencionan.

Deinicin
El objetivo del experimento es evaluar la productividad al programar
por pares, comparado con la programacin individual. El estudio se
realiza en el contexto de un aula con computadoras donde alumnos
de la carrera en Ingeniera de Software de la Universidad Autnoma
de Yucatn (UADY) realizarn dos programas ya sea por pares o de
manera individual.

Diseo
Bsicamente se especiica cmo se asignan los tratamientos a los sujetos, el tipo de sujetos a emplear as como la preparacin de instrumentos o materiales para ejecutar el experimento.
En este experimento participaron 21 sujeto-estudiantes: 14 de
ellos trabajaron en pares (siete pares) y 7 de manera individual. El
experimento se dividi en dos sesiones, en cada sesin los sujetos
codiicaron un programa diferente (variable de bloque). En la primera sesin los sujetos que trabajaron individualmente utilizaron el
46

.PRCTICAS
PROCESOS

EL OBJETIVO ES HACER DEL DESARROLLO DE SOFTWARE UNA ACTIVIDAD PREDECIBLE

NetBeans IDE para codiicar el primer programa mientras que los


sujetos que trabajaron en pares usaron como herramienta un editor de texto. En la segunda sesin se intercambi la herramienta de
soporte (variable de bloque), los sujetos que antes trabajaron individualmente con NetBeans IDE ahora trabajaron con un editor de
texto, mientras que los sujetos que trabajaron en pares codiicaron
el segundo programa con NetBeans IDE. Para las sesiones del experimento se eligieron programas pequeos que los sujetos pudieran
codiicar en cada sesin.

Anlisis
En esta fase se emplean diferentes tcnicas estadsticas para analizar
e interpretar las mtricas generadas. Usualmente en el diseo de experimentos se emplea el anlisis de la varianza (en ingls ANOVA).
Bsicamente el ANOVA se basa en examinar la variabilidad de las
mtricas recabadas y la variabilidad de otros elementos como pueden
ser otras variables as como el error experimental. La Tabla 1 muestra
de manera resumida los resultados tras aplicar dos ANOVAS, una
por cada mtrica.

La Tabla 2 muestra las diferencias obtenidas (pares y solos) en minutos con respecto a la duracin y esfuerzo. Como se observa en esta
tabla, se obtuvo una diferencia de 36 minutos a favor de la programacin por pares, lo cual signiica un ahorro del 28%. Con un nivel
de conianza del 95%, esta diferencia puede variar de 6 a 66 minutos
(ahorro del 4% al 51%). A pesar del ahorro en tiempo obtenido en
la programacin por pares, al tomar en cuenta el esfuerzo medido en
minutos-persona, la programacin individual tiene una ventaja de
56 minutos (30% menor) sobre la programacin en pares. Este valor
puede variar de 8 a 104 minutos (decremento de 4% a 55%).

Tabla 2. Diferencias entre pares y solos respecto a duracin y esfuerzo

Conclusiones

Tabla 1. Valores p obtenidos tras el anlisis de la varianza

El ANOVA usa un tipo de prueba conocido como prueba F de


Fisher que ayuda al investigador a determinar si hay o no una diferencia signiicativa entre los tratamientos examinados en el experimento. El valor p es la probabilidad de obtener un resultado (en
este caso F) al menos tan extremo como el observado. Usualmente el
investigador deine un valor crtico llamado alfa () para contrastarlo
con el valor p observado. Si un valor p es menor o igual al valor alfa
entonces la hiptesis nula es rechazada.
La Figura 1 muestra los histogramas con las medias de los tratamientos respecto a la duracin y esfuerzo.

En este artculo mostramos un ejemplo de cmo aplicar experimentacin cientfica para evaluar prcticas de ingeniera de software. Las organizaciones desarrolladoras de software podran
aplicar experimentos como este para sustentar decisiones sobre
prcticas que quieran institucionalizar o tecnologas que deseen
evaluar antes de institucionalizarlas. Para concluir, en palabras
de Pfleeger, llevar a cabo experimentos en IS nos permitir aumentar la comprensin de qu hace ser a un software bueno y
cmo construir software bien.

Referencias
[1] K. Beck. Extreme Programming Explained: Embrace Change. Addison Wesley
Professional, 1999.
[2] G.E.P. Box et al. Statistics for Experimenters: An Introduction to Design, Data
Analysis, and Model Building. John Wiley & Sons, 1978.

47

Software Guru

Los sujetos registraron el tiempo de inicio y inal que les llev codiicar el programa. La diferencia de estos tiempos (calculada en minutos) se us como mtrica para obtener la duracin y el esfuerzo.
Respecto a la mtrica de esfuerzo, que mide la cantidad de trabajo
gastado para realizar una tarea (en este caso persona-minuto), se duplic el tiempo usado por los pares.

Figura 1. Resultados

www.sg.com.mx |

Ejecucin

.COLUMNA
CDIGO
INNOVARE

El

Desarrollo Dirigido

por Modelos y Ontologas

l surgimiento y evolucin de plataformas y tecnologas


de desarrollo de software, la evolucin del hardware, las
nuevas formas de interaccin humano-computadora, los avances en
el cmputo mvil, el incremento de los usuarios de los sistemas y de
los datos que deben gestionar y el surgimiento de la Web de datos,
son algunas de las razones por las cuales los sistemas de software son
cada vez ms complejos.
Un medio para manejar esta complejidad y continuar proporcionando sistemas que soporten las nuevas y crecientes necesidades
del mercado, es el llevar a cabo el desarrollo de software utilizando
mtodos apropiados de abstraccin [1].
En este contexto, un paradigma de desarrollo de
software que se ha vuelto popular en la academia y
M.C. Karen Mariel
Njera Hernndez
la industria en los ltimos aos es el Desarrollo Dies egresada de la
rigido por Modelos (Model Driven Development
Universidad Autnoma de Puebla
MDD). MDD basa el desarrollo de software en
de la carrera Ingeniera en Ciencias
la construccin de modelos conceptuales que desde la Computacin. Obtuvo el
criben el sistema a desarrollar (estructura del sistegrado de Maestra
ma, comportamiento, estructura de datos, aspectos
en Ciencias en en
la especialidad de
de presentacin, etc.). Es parte de un modelo que
Tecnologas Web
por el Centro de
conceptualiza el dominio del problema, y de maneInvestigacin y
ra sistemtica este modelo se va transformando en
Desarrollo Tecnolgico (CENIDET)
otros modelos de niveles de abstraccin ms bajos,
en donde en
conjunto con la
hasta generar implementaciones concretas.
Fundacin Bruno
Kessler (Italia)
Mientras ms completa y precisa sea la especidesarroll trabajos
icacin de las funcionalidades de un sistema en los
de investigacin enfocados
modelos, mayor ser el porcentaje del cdigo fuente
al modelado
organizacional y
del sistema que se podr generar automticamente.
ontologas. Actualmente colabora
en proyectos para
la web semntica
en la Gerencia
de Desarrollo de
Nuevos Productos
en INFOTEC.
karen.najera@
infotec.com.mx

Para la construccin de modelos se cuenta con:


Lenguajes de modelado de propsito general
(GPLs), que soportan el modelado de cualquier
dominio. Un ejemplo de GPL sera UML (Uniied
Modeling Language).
Lenguajes de modelado de dominio especico

(DSLs), los cuales se deinen especicamente para un dominio,


como el proporcionado por EAGLE (Easily Applicable Graphical
Layout Editor), un software de modelado, creacin y simulacin
de circuitos electrnicos.
Para llevar a cabo las transformaciones entre modelos se deinen
conjuntos de reglas de transformacin que describen cmo es que
los elementos de un modelo pueden ser transformados en elementos
de otro modelo de menor nivel de abstraccin. Las reglas pueden
ser reusadas para transformar nuevos o distintos modelos y adems
pueden ser implementadas para realizar el proceso de transformacin
de manera automtica.
El lujo comn de transformaciones se presenta en la igura 1. Se
inicia con el modelo de ms alto nivel de abstraccin que generalmente corresponde a la conceptualizacin del dominio del problema,
el cual es transformado a modelos de ms bajo nivel de abstraccin
mediante transformaciones Modelo a Modelo (M2M) y inaliza con
una transformacin de Modelo a Texto (M2T) que como resultado
arroja el cdigo fuente del sistema.

Figura 1. Flujo de transformacin de modelos.

Dentro de las ventajas de MDD se encuentra la generacin automtica de cdigo, mayor calidad en implementacin (menos defectos), desarrollo gil: aplicacin de cambios rpido y fcil, permitiendo la evolucin y el mantenimiento del sistema de una forma ms
simple; reso de cdigo y/o modelos.
El proyecto de modelado de Eclipse [2] se enfoca en la evolucin y promocin de tecnologas de desarrollo basadas en modelos dentro de la comunidad de Eclipse. Utiliza como base la
48

.COLUMNA
CDIGO
INNOVARE

LAS ONTOLOGAS PROPORCIONAN


UN ENTENDIMIENTO COMPARTIDO DEL
DOMINIO DEL PROBLEMA.

Una de las tendencias actuales en la ingeniera de software es el uso de


ontologas como parte del proceso del desarrollo dirigido por modelos, es decir, como medio para representar los modelos conceptuales
que deinen al sistema a desarrollar en el paradigma MDD. Una ontologa representa un modelo abstracto que identiica los componentes ms relevantes de cierto fenmeno del mundo real, y los describe
en un lenguaje formal, es decir, que puede ser entendido por una
computadora, a travs de conceptos, propiedades, relaciones, funciones, restricciones y axiomas.
La ventaja principal del uso de ontologas como modelo en
MDD es que en una sola ontologa es posible representar la estructura del sistema, su comportamiento y el modelo de datos, adems de
describir la lgica de negocio y restricciones de software en el mismo
modelo.
Entre otras ventajas del uso de las ontologas, adems de las que
por defecto se heredan de MDD, se encuentra que proporcionan un
entendimiento compartido del dominio del problema y una especiicacin formal de los requisitos de un sistema, lo que permite el reso de deiniciones existentes de conocimiento del dominio; adems
proporcionan mayor soporte para inferencias lgicas, y la integracin
e interoperabilidad con otros componentes o aplicaciones.
SemanticWebBuilder (SWB) [4] es una plataforma para el desarrollo de software implementada en INFOTEC. SWB parte de
una ontologa (deinida en el lenguaje estndar de la Web Semntica
OWL - Web Ontology Language) y a partir del conocimiento modelado en la ontologa se genera automticamente cdigo en lenguaje
Java que representa la arquitectura base del sistema a desarrollar. Los
datos del sistema resultante son representados en el formato de la
Web semntica (RDF) por lo que pueden ser procesados por computadoras y consumidos a travs de la Web.

Estos sistemas, adems de ser generados bajo el paradigma de


MDD, tambin proporcionan el mecanismo bajo el mismo paradigma, para ser extendidos con funcionalidades especicas a partir de
requisitos especiicados en una ontologa.

Conclusin
En conclusin, el desarrollo dirigido por modelos es un paradigma
visto, por muchos, como la mejor opcin para incrementar el nivel
de abstraccin en el cual construimos, mantenemos y razonamos sobre el software. Su aplicacin se encuentra en constante crecimiento
debido a las ventajas que ofrece al ciclo de vida del software principalmente la automatizacin del desarrollo de sistemas y la reutilizacin
de componentes desde los niveles de abstraccin ms altos hasta la
codiicacin de la solucin.
El uso de ontologas como punto de partida para el desarrollo
de software permite la representacin de la informacin contenida
en el sistema en un formato deinido por un lenguaje formal que
puede ser interpretado y procesado por personas y/o sistemas. Por
lo tanto, es posible aplicar tcnicas de inferencia a los datos para por
ejemplo, generar nuevo conocimiento y obtener predicciones, tiles para toma de decisiones. Adems, se pueden aplicar mecanismos
Web para exponer la informacin del sistema en la Web Semntica,
y explotar los datos con los nuevos paradigmas de la Web Semntica
como Linked Data.

>> Por Karen Mariel Njera Hernndez

Referencias
[1] B. Anda, et al. Experiences from Introducing UML-based Development in a Large
Safety-Critical Project. Emprical Software Engineering, vol. 11, pp. 555-581, 2006.
[2] Eclipse Modeling Project. http://www.eclipse.org/modeling
[3] OMG MDA. http://www.omg.org/mda
[5] SemanticWebBuilder. http://www.webbuilder.com.mx

49

Software Guru

Las ontologas como modelos en el proceso de


desarrollo

La plataforma SWB ha servido de base para la construccin de sistemas de diferentes dominios. Entre los productos creados con SWB
estn:
SWBPortal, un sistema de gestin de contenidos con licencia de
cdigo abierto para desarrollar y administrar portales de internet
con tecnologa semntica.
SWBProcess, un sistema de gestin de procesos de negocio semntico que parte de modelos de procesos descritos con el estndar BPMN 2.0 y a travs de transformaciones de BPMN 2.0 a
ontologas y de ontologas a cdigo en lenguaje Java proporciona la
implementacin necesaria para la ejecucin de los procesos.

www.sg.com.mx |

Arquitectura Dirigida por Modelos (Model Driven Architecture


- MDA) [3] una iniciativa presentada por el Object Management
Group (OMG) que soporta el paradigma de MDD. MDA se enfoca en el uso de tecnologas interoperables que soportan el desarrollo dirigido por modelos con transformaciones automticas y
para ello deine un conjunto de estndares (UML, MOF, OCL,
QVT, XMI). El proyecto de modelado de Eclipse proporciona:
frameworks de modelado y de generacin de cdigo automtico
para desarrollar aplicaciones basadas en modelos de datos estructurados, componentes e infraestructura en tiempo real para el
desarrollo de editores gricos, un lenguaje para deinir reglas de
transformacin (ATL), etctera.

.COLUMNA
PROGRAMAR ES UN
ESTILO DE VIDA

Aaron Swartz, el Acceso Abierto y los Estndares

aron Swartz fue un joven entusiasta de la programacin, irme creyente


de la necesidad de la libre circulacin de la informacin. Su vida tiene
muchos momentos dignos de nota, los puntos ms relevantes incluyen:
Particip en la creacin de la especiicacin RSS 1.0 (W3C RFC
3870) a los 14 aos de edad.
Fue co-autor del lenguaje de marcado Markdown, diseado para
hacer ms natural a un usuario no tcnico preparar pginas Web que
lo que hasta entonces permita el HTML.
Es uno de los creadores de la iniciativa Creative Commons, un
conjunto de licencias orientadas a facilitar a los creadores elegir un
marco que permita la libre circulacin de los bienes culturales, sin
renunciar a sus derechos autorales.
Particip en la creacin del sitio sindicador de noticias sociales Reddit,
uno de los primeros sitios en aprovechar la interaccin viral y en deinir
lo que hoy conocemos como temas tendencia (trending topic).
Estuvo involucrado en diversas campaas oponindose a las propuestas legislativas encaminadas a la restriccin de las libertades individuales en lnea, entre las cuales destaca SOPA
Cre la Open Library, populndola con la informacin bibliogrica completa de la Biblioteca del Congreso de los Estados Unidos.
Previamente, a pesar de que dicha informacin era legalmente del
dominio pblico, se cobraba por su acceso.
Descarg en 2008 la base de datos completa de registros judiciales
pblicos (PACER), otro caso de informacin legalmente del dominio pblico pero restringida por un cargo por acceso. Don los archivos resultantes a http://public.resource.org, siendo este el primer
caso que le mereci ser abiertamente investigado por el FBI, aunque
el caso fue cerrado sin presentarle cargos despus de dos meses.

Dentro de su lucha por la puesta a disposicin irrestricta de la informacin pblica, entre 2010 y 2011 descarg cerca de cuatro millones de
artculos acadmicos del repositorio JSTOR, aprovechando la poltica de
campus abierto[1] que sostena el MIT. Los artculos en cuestin provenan mayormente de investigaciones realizadas con fondos pblicos, por lo
que deberan ser para beneicio de la sociedad entera, pero por las diversas
distorsiones que sufre la publicacin cientica formal, para tener un factor
de impacto deseable para sus autores, tienen que ser publicadas en revistas
especializadas que (cada vez menos, pero an por regla general) ejercen
una poltica intransigente de control de derechos de autor. En julio de
2011 fue acusado formalmente por esta descarga de actividad criminal.
Si bien JSTOR retir su demanda, las autoridades
judiciales continuaron persiguindolo de oicio
La iscal Carmen Ortiz busc repetidamente incarle una sentencia de hasta 35 aos de crcel y una
multa de hasta un milln de dlares, equiparando
sus acciones con actos terroristas. Ante esta presin
(y con antecedentes de depresin severa), el pasado
11 de enero Aaron Swartz se suicid.
Gunnar Wolf es
administrador de
sistemas para el
Instituto de Investigaciones Econmicas de la UNAM
y desarrollador del
proyecto Debian
GNU/Linux.
http://gwolf.org

Las ideas sobreviven


Aaron, del mismo modo que muchos de los activistas del movimiento del software libre, fue encontrando la necesidad tica de actuar para fomentar
la libre circulacin y correcta preservacin a largo

plazo del conocimiento. Para muchos de nosotros, el movimiento del conocimiento libre es sencillamente la consecuencia lgica del movimiento
del software libre, y surge naturalmente (y con las mismas premisas) una
vez que el acceso a Internet llega a toda la sociedad. A in de cuentas,
el cdigo es slo una herramienta de expresin y comunicacin humana
(aunque tenga la restriccin de un lenguaje formal, de ser interpretable
por una computadora). El ideario completo de la Fundacin del Software
Libre puede aplicarse a cualquier otra rea del conocimiento y tenemos
hoy las herramientas para que la circulacin del conocimiento no slo resulte irrestricta, sino que a un costo de reproduccin prcticamente nulo.
En sus 26 aos de vida, Swartz contribuy con buena parte de la
implementacin tcnica y activismo social necesarios para impulsar al
movimiento del Acceso Abierto (Open Access) [2]. Los diversos protocolos y sitios con los cuales l contribuy quedan no slo como legado,
sino como indicador de cmo y hacia dnde un joven brillante vio que
podramos, y deberamos, avanzar.

El acceso abierto y estructurado


Un corolario fundamental del acceso abierto es que la informacin, para
ser til, debe estar adecuadamente organizada y clasiicada. Simplemente volcar millones de artculos cienticos (o programas de computadora,
obras culturales o literarias, arte, etc.) en un espacio sin estructura no sirve de mucho. Ahogarse en un mar de informacin resulta casi tan intil
como no tener acceso a ella. Es por eso que el Open Access va casi siempre
de la mano del empleo de herramientas de clasiicacin, redistribucin y
agregacin basadas en estndares ampliamente reconocidos. Hay muchos
sitios (incluyo entre ellos, por cierto, al de nuestra revista SG) destinados a
la difusin de informacin con importantes cuerpos histricos.
Si bien aplaudo y agradezco la decisin de Software Gur de ofrecer el acervo histrico de ya ocho aos de trabajo, para que esta informacin sea verdaderamente til debera comprometerse a mantener
URLs estables a largo plazo y adherirse a un esquema de publicacin
de material bibliogrico.
Muy probablemente, el esquema ms adecuado sera el DublinCore[3]. Este estndar permite la indexacin, cosecha y agregacin de
repositorios por medio de protocolos como el OAI-PMH[4].
Qu signiica semejante verborragia de siglas? Signiica que, para
que la informacin resulte de utilidad para el avance tcnico-cientico,
no podemos solamente coniarnos al criterio de los indexadores de
los motores de bsqueda. Siguiendo un poco la retrica de Tim Berners-Lee impulsada con el ttulo de Web semntica, extiende la red de
pginas hipervinculadas legibles por humanos, insertando metadatos
legibles por computadora acerca de las pginas y sus interrelaciones,
permitiendo a los agentes Web entenderlas ms inteligentemente y
realizar tareas en nombre de los usuarios.
Si bien hay crticas bien fundadas a la propuesta de Berners-Lee, para
informacin tan estructurada como una revista de publicacin peridica
como esta, el modelo de metadatos DublinCore se ajusta perfectamente.
El Instituto de Investigaciones Econmicas de la UNAM, donde trabajo, participa del proyecto de Red de Acervos Digitales (RAD-UNAM)
[5]. Hemos ido creando un acervo interdisciplinario con diversas entidades universitarias que, por medio de OAI-PMH, ofrece una coleccin
uniicada y distribuida con miles de objetos acadmicos de gran diversidad, rescatndolos en buena medida del olvido y de la inaccesibilidad.
50

>> Por Gunnar Wolf


Nota del editor: Gracias por la recomendacin, Gunnar. Sin duda nos interesa mejorar
la organizacin, identiicacin y permanencia
de los contenidos que hemos publicado.

Referencias
[1] Poltica que permita a cualquier usuario externo
conectar una computadora de su propiedad en la red
universitaria y aprovechar los convenios que sta tena
subscritos. Podemos encontrar polticas similares en
todas las principales universidades, partiendo de la premisa de facilitar la labor acadmica y reducir trmites.
[2] Por si se van perdiendo en la sopa de letras de
movimientos libertarios, Open Access busca el libre
acceso a publicaciones acadmicas.
[3] Dublin Core Metadata Initiative. http://dublincore.org
[4] Open Access Initiative Protocol for Metadata
Harvesting. http://www.openarchives.org/OAI/
openarchivesprotocol.htm
[5] Repositorio Institucional RAD-UNAM
http://rad.unam.mx

Software Guru

www.sg.com.mx |

Software Guru va ms all de ser una revista El cuerpo de noticias del ramo, whitepapers y congresos presenciales y virtuales
podran sumarse al cuerpo de conocimiento disponible y sistematizado publicado en
nuestro pas, impulsando de este modo su
visibilidad y el impacto de lo aqu publicado.
Del mismo modo, otras revistas (sean ms
formales o menos formales, impresas o en lnea), boletines, congresos y dems actividades
de nuestra rea de conocimiento podran beneiciarse de adoptar estos estndares.
Un repositorio correctamente descrito
puede ser cosechado enfatizando en diferentes facetas. El esfuerzo para lograrlo, cierto,
no es despreciable, Pero tengo la certeza de
que Software Gur tendra mucho por ganar.
Y ms que nuestra revista: S que muchos
de quienes aqu escribimos, y quienes trabajan
con dedicacin brindndonos este espacio, ms
que por ganancia personal, lo hacemos en un
afn de contribuir con nuestro granito de arena
a la sociedad, y si bien la revista tiene su carga
tcnica, muchos de nosotros aspiramos a contribuir a la profesionalizacin de nuestro gremio, a
una introspeccin acerca del rol y la responsabilidad social que cargamos.
A los pocos das de la muerte de Aaron
Swartz, cientos de acadmicos hicieron pblicas copias de sus artculos secuestrados por las
editoriales cienticas restrictivas como un tributo al trabajo de este joven idealista y activista. En una especie de paralelo, espero poder
impulsar un poco ms a travs de este texto el
conocimiento de las herramientas (y no slo
los principios ticos) que puedan permitir
que el acceso abierto y pleno al cuerpo de conocimiento generado por los especialistas sea
puesto al servicio de la humanidad toda de
forma ms efectiva.

.FUNDAMENTOS

Cmo Distinguir entre un Riesgo


y un Problema

Por Ivn Carlos Rivera Gonzlez

odo administrador de proyectos debe enfrentar en su trabajo diario


la administracin de riesgos, y parte fundamental de esto es saber
distinguir cuando una situacin es un riesgo o un problema, y administrarlo de forma adecuada.
Como seala Madsen [1], La administracin de riesgos y problemas
es fundamental en el trabajo del administrador de proyectos. Es una actividad que debe realizarse en forma semanal y de ser necesario, diaria.
Se requiere proactividad para identiicar y controlar las situaciones de
riesgo antes de que se conviertan en problemas; por lo que es importante
distinguir estos conceptos. A continuacin comparto algunas deiniciones
extradas de la edicin ms reciente del PMBoK [2].
Incidente (Issue): Punto o asunto bajo cuestionamiento o disputa;
punto o asunto que no se ha resuelto y est bajo discusin. Tambin conocido como asunto, polmica o punto de atencin.
Riesgo (Risk) es un evento o condicin incierta que, si se produce,
tiene un efecto positivo o negativo en los objetivos de un proyecto.
Adicionalmente, el Instituto Nacional de Estndares y Tecnologa de
EU deine el riesgo como la medida en la que una entidad es amenazada
por una circunstancia o evento potencial, en funcin de (i) los impactos
adversos que se presentarn si la circunstancia o evento ocurre: y (ii) la
probabilidad de ocurrencia [3].
El riesgo inherente es el riesgo que existe en el ambiente alrededor de
un proyecto y es exclusivo de la organizacin ejecutante, de su cultura y
polticas. Por ejemplo, en un negocio fragmentado (ya sea geogrica o
funcionalmente), hay un riesgo inherente de falta de comunicacin.
Existen riesgos especicos del proyecto derivados de la naturaleza de
lo que se est haciendo. Tambin hay ciertos riesgos comunes a cualquier
proyecto, por ejemplo, la falta de familiaridad de los usuarios con la tecnologa que se va a implementar.
Por ltimo, hay riesgos asociados a la actividad particular de cualquier
fase del plan del proyecto.
Como seala Farragut [4], hay que hacer hincapi en el aspecto de
incertidumbre o probabilidad de riesgo. Otros autores consideran que la
principal diferencia entre un problema y un riesgo es el tiempo y el nivel
de impacto en el proyecto: los problemas son los acontecimientos actuales
que tienen poco efecto sobre el proyecto y su solucin general es fcil,
mientras que los riesgos son eventos futuros que pueden tener graves efectos sobre el proyecto y su solucin requiere de ingenio.
Esto quiere decir que no todos los riesgos se convertirn en problemas y es trabajo del administrador de proyectos gestionar para
mantener este control tratando de impedir la materializacin de un
riesgo o minimizar / gestionar / neutralizar el impacto de este riesgo
una vez que se ha materializado.
La tabla 1, tomada de Farragut [4] ofrece una comparacin entre riesgos y problemas:

RIESGO

PROBLEMA

Un recurso crtico podra dejar

Un miembro del equipo ha

el proyecto a la mitad de su

renunciado a la compaa. Su

ejecucin.

ltimo da de trabajo es el prximo viernes.

Los miembros del equipo de

Nadie sabe exactamente cuando

trabajo podran tomar vacacio-

los miembros del equipo toma-

nes durante las etapas crticas

rn sus vacaciones.

del proyecto.
Podran ocurrir cambios en los

Acaba de ser identificada una

requerimientos que no hayan

nueva funcionalidad que ne-

sido anticipados.

cesita agregarse al alcance del


proyecto.

El anlisis de impacto podra

El anlisis de impacto descubri

descubrir que se deben hacer

dos nuevos cambios que obligan

cambios que aceleren las fechas

a adelantar una semana la fecha

de entrega.

de entrega de proyecto.

Existe la posibilidad de que la

La organizacin ejecutante es

productividad disminuya si el

matricial, para reducir la confu-

proyecto se ejecuta en una orga-

sin sobre la autoridad y respon-

nizacin matricial.

sabilidad del Administrador del


Proyecto se deben desarrollar
documentos que describan el rol
con precisin.

Tabla 1. Comparacin entre riesgos y problemas

Otro ejemplo de un riesgo es: No se podr completar el proyecto a


tiempo si la pieza que se necesita no llega a tiempo. No estamos seguros
de que tenemos un problema todava. Pero sabemos que si la pieza que
necesitamos no est disponible cuando sea necesaria, entonces tendremos
un problema. Un riesgo del proyecto afectar el costo, el cronograma, el
alcance o la calidad del proyecto. Si el riesgo no se materializa hasta despus
de que el proyecto ha terminado, entonces no es un riesgo para el proyecto.
Puede ser un riesgo para el programa u organizacin, pero no del proyecto.
Lo mismo puede decirse de un problema. Afecta a los aspectos que son
responsabilidad de administrador del proyecto? Si no, entonces debe ser
manejado por los responsables del programa o de la organizacin.
A continuacin un ejemplo de un riesgo que no pertenece al proyecto:
El sistema que estamos construyendo est diseado para 100 usuarios
concurrentes, pero si se conectan ms puede correr lento o incluso fallar.
Si el proyecto termina cuando el sistema se ha implementado, entonces este riesgo no se producir durante el proyecto. Si los requisitos del sis52

Debido a que riesgos y problemas se tratan


de manera diferente, entender la diferencia
entre ellos ayuda a enfocar el tiempo y energa del equipo de trabajo. En la seccin de
referencias comparto enlaces a bibliografa
que ser de gran utilidad si te interesa aprender ms sobre este tema.
Referencias
[1] S. Madsen. Risk management is how adults manage
projects. http://swgu.ru/sg39r1
[2] A Guide to the Project Management Body of
Knowledge (PMBoK Guide), 4th edition. 2008.
[3] R.S. Ross. Guide for Conducting Risk Assessments.
National Institute of Standards and Technology (NIST).
Septiembre, 2012. http://swgu.ru/sg39r4
[4] Do you know the diference between an issue and
a risk?. http://swgu.ru/sg39r5

.BIO
Ivn Carlos Rivera Gonzlez tiene una Maestra en Administracin de TI por el Tecnolgico
de Monterrey, es SCPM (Stanford Certified
Project Manager), certificado como PMP. Su
experiencia incluye administracin de proyectos, planeacin estratgica, desarrollo de aplicaciones, administracin de redes y telecomunicaciones. Se dedica a dirigir proyectos para
sus clientes, comunicar y coordinar equipos de
trabajo. http://ivanrivera-pmp.com

www.sg.com.mx |

CONCLUSIN

Software Guru

tema dicen que tiene que soportar 100 usuarios


simultneos y el sistema los soporta, entonces
no es un riesgo del proyecto. El riesgo de tener
ms usuarios de los esperados y las consecuencias posteriores son del dominio de las operaciones de negocio, no del proyecto. Desde el punto
de vista del proyecto es ms bien una falla en la
deinicin del alcance.
Los riesgos se documentan cuando se descubren; es de esperar que la mayora se documenten al inicio del proyecto. Luego se evalan
la probabilidad y el impacto para agregar al plan
del proyecto las tareas de mitigacin. Se puede
crear un plan de contingencia para documentar
lo que planeamos hacer en caso de que se materialice un riesgo.
Ya que se est ejecutando el proyecto, es
importante hacer un seguimiento regular sobre
las acciones implementadas de seguimiento y
control de riesgos y validar que estas realmente
ayudan a reducir el peril de riesgo general del
proyecto. Y si eventualmente los riesgos se materializan a pesar de las acciones de prevencin,
entonces se convierten en problemas.
Sobre los problemas hay que actuar en forma
inmediata. Las acciones sugeridas pueden involucrar la adicin de tareas con el plan, la ampliacin
del calendario o el aumento del presupuesto. Se
les da seguimiento tomando acciones hasta que
son resueltos y ya no afectan al proyecto.

.PERSONAS
CARRERA

Certificaciones Profesionales

VALOR Y LIMITANTES

Por Pedro Galvn

n esta edicin de SG hemos platicado ampliamente sobre certiicaciones profesionales. Este es un tema que
tiende a generar polaridad, con algunos fuertemente a favor y otros
fuertemente en contra. Por ser del inters de la industria, la mayora
de los artculos publicados en estas pginas promueven las certiicaciones como algo positivo. Sin embargo, estamos conscientes de
que tambin hay muchas personas que ven a las certiicaciones como
algo negativo. A continuacin comparto mi anlisis personal sobre el
valor y limitaciones de las certiicaciones profesionales.

profesionistas talentosos normalmente estn construyendo software,


y no sera prctico que fueran ellos quienes se dediquen a detectar
candidatos para reclutar s est bien, y de hecho es deseable que los
desarrolladores experimentados se involucren en las etapas inales de
entrevista a candidatos, pero no que sean ellos quienes identiiquen
candidatos de entre cientos de currculums. Se requiere que los reclutadores y personal de RH puedan realizar por lo menos un primer
nivel de iltrado, y las certiicaciones los ayudan a hacer esto.

La necesidad

Habiendo dicho que las certiicaciones profesionales tienen su utilidad, tambin debemos reconocer que tienen varias limitantes. Aqu
algunas de ellas:
No todas las personas tienen acceso a certiicaciones, debido al
costo que involucran (aunque al menos en Mxico esto es mitigado
en cierto grado con programas como Mexico FIRST).
A pesar de que parezca haber una gran variedad, la realidad es que
solo existen programas de certiicacin para un conjunto reducido
de tecnologas/especialidades. Por ejemplo, a pesar de su popularidad, al dia de hoy no existe un programa oicial de certiicacin
para desarrollo en iOS.
El nivel de rigor entre programas de certiicacin vara. Por un
lado tenemos programas como el de Scrum Master (que hasta
hace poco consista en tomar un curso de 2 das y con eso estabas certiicado) y por otro programas como el de PMP que involucran comprobar experiencia previa, capacitacin, pasar un
examen y luego realizar actividades de aprendizaje de manera
continua para mantener tu estatus.

Para explicar mi percepcin sobre las certiicaciones, primero les platicar sobre cmo escojo una botella de vino. S que esto parece no
estar relacionado, pero pido su paciencia.
Personalmente, aunque disfruto tomar una copa de vino de vez
en cuando, la verdad es que conozco muy poco sobre la calidad de los
vinos; es decir, conozco algunas cosas bsicas sobre los tipos de uvas
y sus sabores, pero no sabra decir si cierta regin produce mejores
vinos que tal otra, y mucho menos si cierto ao fue bueno o no.
Adicionalmente, no me gusta estar tomando siempre el mismo vino,
me gusta experimentar. Esto presenta un reto cada que compro una
botella de vino: Cmo puedo maximizar la probabilidad de escoger
una botella que me guste? No soy un experto en el tema que pueda
identiicar un buen vino simplemente viendo de qu regin y ao
es. Tampoco es posible estar abriendo y probando todas las botellas
para ver cual me gusta. Es as que mi proceso de decisin tpicamente
consiste en: 1) Elegir el rango de precio que estoy dispuesto a pagar,
y 2) Seleccionar alguno de los vinos en ese rango que tenga algn
comentario especial de parte de un tercero, tal como Seleccin de
nuestro catador, o Vino del mes por la revista X.
Un proceso similar es el que deben realizar los reclutadores de TI:
necesitan reclutar profesionistas en temas altamente especializados,
sin ser ellos expertos en dichos temas. No pueden entrevistar a todos
los candidatos posibles porque no sera prctico. A partir de cientos,
o miles de candidatos, deben generar una lista corta de candidatos
con mayores probabilidades de cumplir las expectativas del cliente
(ya sea interno o externo). As que recurren a la validacin de un
tercero, es decir una certiicacin.
Entonces, creo que debemos reconocer que si las certiicaciones
profesionales existen y son usadas, es porque resuelven una necesidad. La necesidad es darle a los reclutadores un mecanismo para
conocer de manera rpida y comparable el nivel de conocimientos
de una persona en cierto dominio.
Es cierto que un profesionista experimentado puede reconocer a
otros profesionistas talentosos rpidamente, tan solo platicando con
ste unos minutos o simplemente leyendo algunas de las entradas
en su blog. El problema con este mecanismo de deteccin es que los

Limitaciones

Por otro lado, tambin debemos reconocer que as como habr


vinos muy buenos de los que tal vez no nos enteremos porque no
quisieron entrar al programa de recomendaciones, va a haber muy
buenos profesionistas que no estn certiicados. De hecho, los mejores desarrolladores de software raramente estn certiicados, simplemente porque no lo necesitan.

Conclusin
En esencia las certiicaciones son tan solo un mecanismo para que
las personas que carecen de reputacin o experiencia comprobable,
puedan demostrar un nivel de conocimiento bsico en cierta rea.
En s, las certiicaciones profesionales no son algo negativo, el
error ha sido pretender que sean una medida absoluta e inequvoca
sobre la capacidad de un profesionista.
.BIO
Pedro Galvn (@pedrogk) es cofundador y editor de SG Software Guru.

54

Directorio
ALPHA CONSULTORIA

55

www.alpha-consultoria.com

ATL

56

www.atl-capacitacion.com.mx

Cutter Consortium

2F

56

37

Testing IT

53

SG Buzz

3F

SG Campus

21

www.sgcampus.com.mx
07

www.innevo.com

JPE Consultores

35

sg.com.mx

www.infotec.com.mx

Innevo

Stratominds

www.testingit.com.mx

www.ithink.mx

Infotec

56

www.stratominds.com

www.cutter.com.mx/eventos

I Think Soluciones

SEAN
www.seanmexico.com

SG Eventos

11

sg.com.mx/eventos-sg
36

www.jpeconsultores.com

Mxico First

51

www.mexico-first.org

NYCE

38

www.nyce.org.mx

Pronatura

4F

www.pronatura.org.mx

RedHat

39

mx.redhat.com

TENEMOS UN ESPACIO RESERVADO PARA TI


SG se distribuye de manera impresa en la Repblica Mexicana, y de manera digital llega a ms de 25mil lectores de habla hispana. El anuncio en la revista digital
cuenta con hiperliga directa a tu sitio web, lo que te dar la oportunidad de acercarte a nuevos clientes.
Es una gran oportunidad participar con Software Guru, pues comprobamos que
es un medio efectivo.
-Novalys Latinoamrica
Contctanos en el (55) 5239.5502
o en publicidad@sg.com.mx

Software Guru

34

www.praxis.com.mx

www.sg.com.mx |

Praxis

.SG MARKET

ANNCIATE AQU

SG MARKET
Excelente oportunidad para llegar a ms
de 20mil lectores a nivel habla hispana.

No la dejes pasar!
Contctanos:

publicidad@sg.com.mx

www.sg.com.mx |

Software Guru

Вам также может понравиться