Vous êtes sur la page 1sur 68

Peer Reviews
• Documentación
de Arquitecturas
• Seguridad en
Aplicaciones Web

Software Guru CONOCIMIENTO EN PRÁCTICA


No.21 • Agosto - Octubre 2008 • www.sg.com.mx

[ ENTREVISTA ]
Christian Lemaître
Guru fundador de las
Ciencias de la Computación
en México

Industria del Software


México. $65 MXN
I SSN 1 8 7 0 - 0 8 8 8
en México
21

9 771870 088009

[ Tutorial ]
Noticias • Eventos • Fundamentos • UML • PM Corner • Tecnología • Biblioteca Silverlight
// CONTENIDO

directorio
Dirección Editorial
Pedro Galván

Dirección de Operaciones
Mara Ruvalcaba

Coordinación Editorial
Sonia Sánchez

Editorial Arte y Diseño


Grisel Otero

Fotografía
Gabriel González

Consejo Editorial
Jorge Valdés - PMI; Luis Cuellar - Softtek;
Francisco Camargo, Luis D. Soto - Microsoft;
Hanna Oktaba - UNAM; Ralf Eder, Raúl Trejo,
Guillermo Rodríguez - ITESM CEM;
Emilio Osorio - Sistemas Humanos;
Luis Vinicio León - e-Quallity.

Colaboradores
Christian Lemaître, Alejandra Herrera,
Martín Álvarez, Luis García, Carlos Ortega,
Omar Gómez, Erick Frausto, Rafael Bernal,
Gunnar Wolf, Germán Domínguez,
Marco Dorantes, Guillermo Morales,
Edith Martínez, Beatriz Velázquez,
Andrés Simón Bujaidar, Miguel Armas,
Héctor Obregón, Germán Domínguez.

Ventas
Sí, aun seguimos ¡vivos!. Después de SG, y a todos ustedes porque además de Claudia Perea, Natalia Sánchez
meses habitando la oficina, comiendo asistir, nos han hecho un elemento más en
pizza y bebiendo agua (¡somos muy salu- sus preferencias. Marketing y RP
dables!), los días 21 a 24 de junio se reali- Dafne Vidal
zó el congreso SG’08 Conferencia y Expo, Retomando nuestras actividades cotidianas,
en esta ocasión en conjunto con PMTOUR ahora toca el turno a este número 21, en el Circulación y Suscripciones
México 2008. Estamos muy contentos que encontrarán los comentarios de los ex- Daniel Velázquez, Edgar Dorantes
de que hubo personas que asistieron por pertos en el desarrollo de la Industria de
tercera ocasión, nos da mucho gusto sa- Software en nuestro país. Es interesante sa- Administración
ber que gente nueva asistió al congreso y ber cómo vamos creciendo en este aspecto y Araceli Torres
quedó muy satisfecha con lo ahí mostrado. lo que podemos hacer para mejorarlo. Ade-
Contacto
Aunque cambiaron algunas cosas (como el más encontrarán la última parte del tutorial
info@softwareguru.com.mx
tiempo de duración de los tutoriales), todo de Ruby on Rails y la continuación del artículo
+52 55 5239 5502
salió muy bien. ¿Quieren saber más?, en el sobre documentación de sistemas, así como
interior de la revista encontrarán la reseña cada una de las columnas que ya conocen.
más completa. SG Software Guru es una publicación trimestral
editada por Brainworx S.A. de C.V., Malinche no. 6,
Gracias todos por su preferencia y por Col. El Parque, C.P. 53398, Naucalpan, México. Queda
Nada de esto hubiera sido posible sin el hacer que SG’08 Conferencia y Expo haya prohibida la reproducción total o parcial del contenido
esfuerzo y trabajo del equipo que forma a sido un éxito. sin previo aviso por escrito de los editores. Todos
los artículos son responsabilidad de sus propios
autores y no necesariamente reflejan el punto de
» Equipo Editorial vista de la editorial. Reserva de Derechos al Uso
Exclusivo: 04-2004-090212091400-102. Certificado
de licitud de título: 12999. Certificado de licitud de
contenido:10572. ISSN: 1870-0888. Registro Postal:
PP15-5106. Se imprimió en julio de 2008 en Roma
Color, S.A. de C.V. Distribuido por Sepomex.

02 AGO-OCT 2008 www.sg.com.mx


contenido
ago-oct 2008

20 EN PORTADA
Industria del Software en México
Presentamos un compendio de diferen-
tes perspectivas sobre nuestra industria.

Especial 16
Reseña de SG’08.

Productos
LO QUE VIENE 10
JBoss en EC2, Probe 8.0,
ADO.NET Entity Framework y TBB 2.1.

TUTORIAL 12
Silverligth.

Herramientas 14
Control de acceso basado en roles.

Prácticas
Columnas
ASEGURAMIENTO DE CALIDAD 38
Tejiendo Nuestra Red 06 Prueba de Software 54 Revisiones entre colegas
por Hanna Oktaba por Luis Vinicio León Un vistazo a los roles, tipos y fases de las revisiones
entre colegas, así como sus beneficios.
Mejora Continua 08
por Luis Cuellar Tendencias en Software 56 PROGRAMACIÓN 40
por Luis Daniel Soto Ruby y Rails
Columna Invitada 34 Última parte de este tutorial introductorio al lenguaje
por Héctor Obregón de Programación Ruby y el framework Rails.

ARQUITECTURA 44
En Cada Número Más allá del manual de usuario
Segunda parte sobre la documentación que
Noticias y Eventos 04 GADGETS 60 debe considerar el arquitecto de software.

FUNDAMENTOS 52 COMUNIDADES 62 SEGURIDAD 46


Aplicaciones Web seguras ¿mito
INFRAESTRUCTURA 58 o realidad?
Conozcamos los diferentes tipos de vulnerabilidades
exstentes en este rubro de las TI.

UML 48

18
Reconociendo los Diagramas
Mostramos las reglas básicas para reconocer
un buen diagrama de secuencia.

Entrevista PM CORNER 50
Christian Lemaître Mejores estimaciones para el
desarrollo de software
Conozcamos la técnica llamada Poker de Planeación.

www.sg.com.mx AGO-OCT 2008 03


// NOTICIAS

Sun Tech Days México 2008


Del 21 al 23 de mayo el tour Sun Tech Days se hizo presente en
la ciudad de México festejando su décimo anversario. El even-
to de 3 días reunió a más de mil entusiastas de las tecnologías
de Sun, tales como Java, Solaris y Net Beans.

Este año se hizo notar el empuje que Sun le está dando a


NetBeans, de hecho en palabras de algunos asistentes el evento
consistió en “NetBeans, NetBeans y más NetBeans”, y es que
en la gran mayoría de las sesiones se demostraba cómo utilizar
esta herramienta en diferentes ámbitos, desde el desarrollo y
depuración de aplicaciones para dispositivos móviles hasta el
modelado y orquestación de web services.

Congreso Internacional ANADIC 2008


La Asociación Nacional de Distribuidores de Información y Co-
municaciones (ANADIC) realizó su octavo Congreso Internacional
2008, el cual se celebró en la ciudad de México del 12 al 16 de ju-
lio. El congreso contó con la participación de más de mil socios, y
una agenda conformada por talleres, conferencias, paneles, expo
y actividades recreativas. Durante la inauguración, Francisco
Wilson presidente de la asociación, habló sobre el papel funda-
mental que el canal desempeña en el mejoramiento de la indus-
tria. Durante el congreso se presentaron diferentes logros como:
Ciudades Inteligentes, Centros Autorizados de Servicio (CAS), y
ANADICSoft, proyecto que a través de la iniciativa “México va por
TI”, colocará las aplicaciones desarrolladas por los asociados en
las microempresas del país, con el apoyo de los gobiernos federal
y local, y con el compromiso y aportación de los asociados.

Encuentro Nacional PROSOFT 2.0


Bajo el lema “Consolidando la calidad de nuestra industria de TI”,
apoyando la misión de convertir a México en una potencia desarro-
lladora de software, se llevó a cabo el Encuentro Nacional Prosoft
2.0, del 27 al 28 de mayo, en la ciudad de México. Eduardo Sojo,
Secretario de Economía, aseguró que el gobierno es un gran impul-
sor de la industria de TI, y comentó que para consolidar este apoyo
se requiere de un trabajo conjunto entre todos los sectores del país:
público, privado, gobierno federal, estatal, e instituciones educati-
vas. De acuerdo a Rocío Ruiz, Subsecretaria de Industria y Comercio
de la SE, el encuentro permitió reflexionar sobre las acciones que
todos los sectores hemos emprendido en pro de nuestra industria
de TI, la cual hemos observado se ha ido convirtiendo en un motor
de nuestra economía.

04 AGO-OCT 2008 www.sg.com.mx


// EVENTOs

14 al 15 de Agosto 2008 1 al 3 de Octubre 2008


5ª Reunión Regional CIAPEM ANIEI XXI Congreso Nacional y VII Congreso
Pachuca, Hidalgo Internacional de Informática y Computación
Info: www. ciapem.hidalgo.gob.mx ITESM Monterrey, Nuevo León
Info: www.aniei.org.mx

3 al 5 de Septiembre 2008
CIISA 2008 1 al 3 de Octubre 2008
Hotel Hilton, Guadalajara, Jalisco Cutter Summit América Latina
Info: www.ciisa.gda.itesm.mx Hotel JW Marriott, Cd. de México
Info: www.cutter.com.mx

8 de Septiembre 2008
IDC 4ª Cumbre de Gobierno y Tecnología 9 al 11 de Octubre 2008
Centro Banamex, Cd. de México Creanimax 2008
Info: www.idc-eventos.com/cumbregobierno08.html Expo Guadalajara, Guadalajara, Jalisco
Info: www.creanimax.com

23 al 26 de Septiembre 2008
XXXII Reunión Nacional del CIAPEM 29 al 31 de Octubre 2008
Mundo Imperial, Acapulco, Guerrero Gartner Future of IT
Info: www.guerrero.gob.mx/ciapem2008 Centro Banamex, Cd. de México
Info: www.gartner.com/it/summits/mex30ls

50 Años de la Directores TI 2008 Concurso e-Quallity 2008


Computación en México Enfocados en la problemática de Por segundo año consecutivo este con-
Con el objetivo de conmemorar el ani- ¿cómo cerrar la brecha entre el perfil curso convocó a la comunidad nacional
versario de los 50 años de la computa- de los egresados y las necesidades en desarrolladora de software a enviar
ción en México, se están realizando di- el sector productivo?, se reunieron Di- productos pequeños terminados, para
ferentes eventos de carácter nacional e rectores de Informática y Computación encontrar los de menor densidad de de-
institucional, con la misión de integrar y en la XVII Reunión Nacional organizada fectos. Aplicando pruebas exploratorias
lograr una celebración que promueva el por la ANIEI, los días 11 al 13 de junio se detectó una primera capa de errores;
conocimiento actual y las perspectivas en Cancún, Quintana Roo. utilizando esa información y su Modelo
tecnológicas, reconociendo el esfuerzo Por medio de mesas de discusión inte- Predictivo, e-Quallity generó una esti-
y trayectoria de todos los actores de la ractivas se analizó la situación actual mación de las fallas todavía presentes;
historia durante estas cinco décadas. Se de las instituciones, se identificaron el costo de detectarlos, y su compara-
invita a participar a todos los universita- las necesidades de la sociedad, se ge- ción contra la media de calidad de los
rios, la industria, asociaciones, cámaras, neraron propuestas de cómo mejorar la productos probados. La premiación se
gobierno, instituciones educativas y en calidad de los egresados, y finalmente realizó durante el congreso SG’08. Los
general a la comunidad de interesados se acordaron actividades que permiti- ganadores: 1o SAB- Sistema de Adminis-
en las tecnologías de información y co- rán definir el rumbo de la educación y tración de Bóveda versión 1.0 (Tbanc);
municaciones. Mayor información en: formación de profesionales en el área 2o TEP- Teclado en Pantalla ver 2008.3
computo50.unam.mx de TI en México. (Compucaja); 3o DSM versión 3 (Proeza TI)

Empresas recientemente evaluadas en CMMI:


Empresa Evaluación Fecha Lead Appraiser Apoyado por
Hildebrado Software Factory CMMI Nivel 5 septiembre 2007 Giuseppe Magnani Avantare
Vision Software Factory CMMI Nivel 2 diciembre 2007 Miguel Serrano Avantare
T-Systems CMMI Nivel 2 marzo 2008 Mariana Pérez-Vargas Avantare
Imagen Soft CMMI Nivel 3 abril 2008 Cecilia Scauso Innevo
Telepro CMMI Nivel 3 mayo 2008 Mariana Pérez-Vargas Avantare
Coppel CMMI Nivel 2 julio 2008 Cecilia Scauso Innevo

www.sg.com.mx AGO-OCT 2008 05


// COLUMNA /*TEJIENDO NUESTRA RED*/

Entre Lima y Berlín


Noticias de COMPETISOFT y de ISO/IEC WG24

La Dra. Hanna Oktaba es profesora de la UNAM a nivel licenciatura y posgrado. Sus áreas de interés son Ingeniería de Software, Tec-
nología Orientada a Objetos, Modelos de Procesos de Software y Mejora de Procesos. Actualmente es miembro de International Process
Research Group (IPRC). También es Directora Técnica del proyecto COMPETISOFT.

A finales de abril de 2008 tuvimos la reu-


nión del proyecto COMPETISOFT en Lima,
del proceso de Desarrollo para poder atender
principalmente los mantenimientos rápidos
En esta ocasión teníamos que revisar los
comentarios recibidos de diversos países al
Perú. Asistieron 24 personas de diferentes no planificados. Con respecto a otros proce- primer borrador del estándar (working draft).
países como: España, Colombia, Argentina, sos se han propuesto las mejoras en algunos El trabajo duró 5 días y fue bastante intenso
Chile, Uruguay, Ecuador, República Domini- detalles y nombres pero no en la estructura. porque se tenía que decidir por cada comen-
cana, Perú y México. El objetivo era revisar Se puede decir que el modelo sobrevivió la tario si se aprobaba, si se aceptaba en princi-
resultados de pruebas controladas de im- prueba de revisión de hispano parlantes. pio o se rechazaba. En los dos últimos casos
plementación de procesos de perfil básico se tenía que definir qué se iba a hacer en con-
(Administración de Proyectos Específicos y Como efecto lateral de este proyecto se ha creto o por qué se rechaza. Revisamos los co-
Desarrollo y Mantenimiento) en empresas de publicado en octubre de 2007 un artículo mentarios a las cinco partes del documento.
estos países. Se siguió un proceso de mejo- en la popular revista IEEE Computer, titu- Afortunadamente, la parte 5.1 del estándar,
ra ágil PmCompetisoft diseñado, con base lado “Software Process Improvement: The la cual contiene la aportación mexicana, tuvo
en una propuesta colombiana, por Francisco Competisoft Project”, (H. Oktaba, F. García, solo comentarios que servirán para mejorar
Pino. Los colegas académicos y sus alumnos M. Piattini, F. Ruiz, F. J. Pino, C. Alquicira). su presentación y explicación, sin modificar
fungieron como consultores de las empresas. También, acaba de salir en abril de 2008 el contenido a fondo. Ahora nos toca generar
El diagnóstico inicial arrojó los mismos resul- el libro editado por H. Oktaba y M. Piattini, la nueva versión de las cinco partes incorpo-
tados, que en pruebas controladas en México, titulado“Software Process Improvement for rando los comentarios y presentarlos nueva-
es decir las empresas tienen prácticas muy Small and Medium Enterprises: Techniques mente a la revisión internacional en calidad
precarias. La generalización de esta situación and Case Studies”, de la editorial IGI Global. del Comeetee Draft.
ayudó a ser más sinceros en el intercambio En este libro encontrarán por supuesto un ar-
de las experiencias. A pesar de trabajar en tículo sobre MoProSoft, pero también otros Lima me sorprendió por ser una ciudad mo-
países distintos, las pequeñas empresas re- cuatro capítulos escritos por autores mexi- derna y limpia (por lo menos la parte que me
piten el mismo patrón, sacan buenos produc- canos, entre ellos está el de Luis Vinicio León tocó conocer) y que en Berlín todo mundo
tos gracias a los individuos, pero no compar- Carrillo mi colega de la columna vecina en SG. anda en bicicleta y no solo los fines de se-
ten ni transmiten el conocimiento para que se mana. De regreso aterricé en el evento de
aproveche en la organización. En mayo de 2008, Ana Vázquez y  su servidora Prosoft del 27 y 28 de mayo. Hay muchas
atendimos en Berlín la siguiente reunión del cosas que muestran los cambios favorables
Lo interesante de PmCompetisoft es que tra- grupo WG24 del ISO/IEC JTC1 SC7 (perdón que están sucediendo en nuestra industria
baja en ciclos de mejora de 4 meses lo que por tantos iniciales), en otras palabras, del de software. La bolita de nieve echada a an-
ayuda a las empresas tener un resultado visi- grupo en el cual se trata de incorporar los ele- dar hace pocos años empieza a crecer. Se-
ble a corto plazo. El denominador común de mentos del modelo de procesos MoProSoft guiremos acompañando su paso.
las pruebas fue que, a pesar de no tener nin- de la norma mexicana MX-I-059-NYCE en el
guna promesa de “certificación”, las empre- estándar internacional ISO/IEC TR 29110. » Hanna Oktaba
sas expresaron su interés de continuar con el
esfuerzo de mejora de procesos. También fue
elogiada la versión coloreada por niveles de
capacidad de procesos. En particular, lo mar-
cado de amarillo ayuda a centrarse en cosas
básicas para la adopción del modelo.

No son muy significativos los cambios pro-


puestos al modelo de procesos como re-
sultado de más de dos años de revisar y
experimentar MoProSoft en los países ibe-
roamericanos. La más interesante propuesta
es la de separar el proceso de Mantenimiento

06 AGO-OCT 2008 www.sg.com.mx


www.sg.com.mx AGO-OCT 2008 07
// COLUMNA /*MEJORA CONTINUA*/

Logrando Metas
La Importancia de Identificar los Problemas

Luis R. Cuellar es director de calidad a nivel mundial de Softtek Information Services. Luis es reconocido por la American Society for Quality
(ASQ) como Certified Quality Manager, Certified Software Engineer, y Six Sigma Black Belt. En los últimos cinco años ha estado a cargo de la
definición e implantación de la estrategia para CMMI5 y Six Sigma a través de las diferentes áreas del centro de desarrollo de Softtek.

El problema está en no ver cuál es el problema ¿Qué es primero el problema o la solución?

H ace algunos días apoyé en una reunión para mejorar el proce-


so de administración de requerimientos en un proyecto. Dentro
de la discusión participaban varias personas, una de ellas decía: “El
Otra limitante en esta definición, se debe al hecho que nuestra cultura
se enfoca principalmente a resultados y tiene fuertemente arraigada
la idea de valorar a la gente que trae a la mesa soluciones. Todos los
problema es que tenemos que generar una forma automática de ad- libros de administración y liderazgo, enfatizan la importancia de dar
ministrar los requerimientos”. Otro decía: “Lo que pasa es, que el soluciones en lugar de problemas. Esto es bastante lógico, yo mismo
cliente no sabe lo que quiere y cambia mucho los requerimientos”. espero que la gente que trabaja conmigo esté siempre buscando so-
Finalmente una persona más decía: “Yo creo que estamos bien, sólo luciones a los problemas que enfrentamos. Pero creo que en algunos
tenemos que hablar con el cliente para que administre sus requeri- casos, estamos llevando la situación más allá de lo debido, estamos
mientos”. Después de un rato de que esto siguiera adelante, empe- brincando por completo la fase de identificar el problema y estamos
cé a preguntarme si realmente alguien sabía ¿cuál era el problema saltando directamente a encontrar soluciones.   En la frase “tenemos
que se quería resolver?, ¿para qué necesitamos digitalizar?, ¿por que digitalizar el proceso de requerimientos” el objetivo es ser más
qué es un problema que se cambien los requerimientos? o ¿por qué eficientes en la recepción de estos, el digitalizar se consideraría más
es importante que se administren estos? bien una forma de resolver el problema.

Cientos de veces grupos de personas se unen a discutir la forma de so- Adicionalmente en el punto anterior existe otra complejidad, qué su-
lucionar algún problema, sólo para que la mayoría termine frustrado, cede si yo ya revisé todos los elementos para hacer más eficiente la
con la sensación de que no fue escuchado o que la decisión final no administración de los requerimientos y ya concluí que la única forma de
arreglará nada. Terminan discutiendo lo que cada quien cree que es la arreglar ese punto es a través de digitalizar el proceso. ¿No sería enton-
respuesta para lo que cada quien cree que es un problema y como es ces válido decir que el problema es digitalizar el proceso e iniciar desde
de imaginarse, los resultados no siempre son los más adecuados. ahí en lugar de volver a analizar esa parte? La respuesta es un definitivo
“Sí”. Pero las confusiones surgen cuando el grupo no concuerda con el
¿Cómo hacemos más eficiente una reunión de resolución de pro- problema o no entiende las causas que los llevaron a donde se encuen-
blemas? y ¿cómo aseguramos que aplicamos nuestros recursos al tran. Por lo tanto es imprescindible que al presentar la propuesta sea
problema adecuado? como la solución a un análisis previo y el grupo este de acuerdo con
esta premisa. De esta manera no puede haber malos entendidos.
¿Cuál es nuestro problema?  
Según Wikipedia se define como problema: “Un obstáculo el cual El problema es la mitad de la solución
hace difícil lograr una meta, objetivo deseado o propósito. Se refiere En conclusión encontrarse en una reunión donde se discute un pro-
a una situación, condición o asunto que no se ha resuelto. En un sen- blema deben de considerarse los siguientes puntos.
tido amplio un problema existe cuando un individuo se da cuenta de 1. Al inicio de toda junta de resolución de problemas debe de quedar muy
una diferencia significativa entre lo que actualmente es y lo que es claro qué es lo que se pretende resolver y por qué se pretende resolver.
deseado”. La parte clave desde mi punto de vista en esta definición 2. Cada vez que escuchemos una frase planteada como un problema
es: una meta, objetivo o propósito. nos debemos de preguntar ¿por qué? Es importante hacer esta pre-
gunta por lo menos hasta llegar al punto que realmente represente
Dependiendo del contexto de la reunión, la frase:  “el cliente no sabe una diferencia entre una situación real y una meta deseada.
lo que quiere y cambia mucho los requerimientos”, no es un problema, 3. Finalmente a la presentación de un problema siempre utiliza las
dado que normalmente no tenemos un objetivo sobre el número de palabras mágicas: ¿cuál es el problema?, ¿qué lo provoca?, ¿dón-
requerimientos máximos que puede tener un cliente, sólo lo sería si en de está?, ¿quién lo genera?, ¿cuándo surge?; estas preguntas darán
nuestro proceso establecemos un número máximo de requerimientos mucho mejor idea de lo que se quiere resolver.
que estamos dispuestos a aceptar y el cliente está de acuerdo con esa
definición o si el objetivo de la reunión es: ¿Cómo controlamos las po- Como responsable de cambiar a la organización a ser mejor, es su-
sibilidades que tiene el cliente de  atrasar el proyecto?. Esta diferencia mamente importante tener claro el problema a resolver. De tomar
entre cual es el objetivo de la reunión y algunas veces el objetivo de una acción, normalmente los recursos son limitados y el avance es
cada individuo dentro de la reunión, es uno de los elementos que ha- mayor cuando está claro hacia donde se va.
cen verdaderamente complejo el definir claramente un problema. » Luis R. Cuellar

08 AGO-OCT 2008 www.sg.com.mx


www.sg.com.mx AGO-OCT 2008
// PRODUCTOS /* LO QUE VIENE*/

ADO.NET Entity Framework


JBoss disponible en EC2 Mapeo objeto-relacional para .NET
Servidores de aplicación desde la nube

Uno de los aspectos de mayor importancia en cual-


Una de las noticias más significativas de las últimas semanas quier plataforma moderna para desarrollar aplicacio-
en el ámbito del cómputo en la nube, o cloud computing, es nes empresariales, es cómo resuelve el mapeo entre
el hecho de que Red Hat ya ofrece el servidor de aplicaciones los objetos de negocio y los datos de una base de da-
JBoss a través de Amazon Elastic Compute Cloud (EC2). tos relacional. En el caso de la plataforma .NET, a pe-
sar de que cuenta con algunos mecanismos (como el
Técnicamente, no hay nada nuevo. Después de todo, un usua- objeto DataSet) que ayudan un poco a resolver este
rio puede entrar a EC2 e instalar lo que quiera dentro de su má- problema, hasta ahora no existe una solución com-
quina virtual. Sin embargo, aquí lo notable es que ya estamos pleta de ORM (object-relational mapping).
hablando de una oferta comercial de clase empresarial.
El ADO.NET Entity Framework viene a llenar ese hue-
Este esquema le permite a Red Hat distribuir su software (y co- co, y será el primer framework ORM que Microsoft
brar por él) a través de un nuevo canal, sin necesidad de tener introduce para la plataforma .NET. El ADO.NET Entity
que atender directamente a los clientes. Por su parte, Amazon Framework forma parte del service pack 1 del .NET
agrega una oferta de clase empresarial que le anota muchos Framework 3.5, el cual ya se encuentra disponible
puntos en su búsqueda de posicionamiento como una opción como beta y cuya versión final se espera sea liberada
real para los corporativos. antes de que termine el año.

Veremos que tal responde el mercado a esto, y cómo es que


los demás proveedores de software empresarial se van su-
biendo a la nube.

Thread Building Blocks 2.1


Threads a prueba de tontos

JProbe 8.0 Intel liberó la versión 2.1 de Thread Building Blocks


Profiling de código Java (TBB), que es una librería de C++ para facilitar la im-
plementación de threads en las aplicaciones, mejo-
rando así su desempeño en procesadores multi-core.
Quest Software anunció la disponibilidad de JProbe 8.0,
la versión más reciente de su legendaria herramienta de Una de las principales fortalezas de la versión 2.1 de
“profiling” de código Java. Esta nueva versión ahora se TBB es el nuevo mecanismo de correspondencia en-
ofrece como un plug-in de Eclipse, lo cual facilita signifi- tre tareas y threads (task-to-thread affinity) que pro-
cativamente su uso. vee grandes mejoras de desempeño.

JProbe 8.0 permite a los usuarios de Eclipse rápidamente TBB 2.1 es software libre licenciado como GPLv2 y
identificar y resolver problemas de memoria y cobertura está disponible para plataformas Windows, Linux,
de código en sus aplicaciones Java, fomentando así el de- Solaris y Mac OS X. En el caso de los desarrolladores
sarrollo de aplicaciones de alta calidad. En los próximos de .NET, también pueden aprovechar el nuevo plug in
meses, Quest le agregará a este plug-in capacidades de de TBB para Visual Studio.
análisis de desempeño, para que los usuarios puedan in-
vestigar cuellos de botella en sus aplicaciones desde el
mismo ambiente de Eclipse.

10 AGO-OCT 2008 www.sg.com.mx


www.sg.com.mx AGO-OCT 2008
// PRODUCTOS /*TUTORIAL*/

Desarrollo de Aplicaciones con Silverlight


Parte 1. Introducción
Por Guillermo Morales

hostdelplugin, // Variable que apunta al DIV host.


Silverlight es la tecnología recientemente Veamos ahora el contenido inicial de cada “miHostdelPlugin”, // El ID de la etiqueta DIV host.
propuesta por Microsoft para desarrollar archivo. {
aplicaciones web de alto impacto visual. El width:’300’, // Ancho del plugin en pixeles
objetivo de esta serie de artículos es enca- Listado 1. Default.html height:’300’, // Alto del plug in en pixeles
minarlos a cómo crear su primera aplicación <html> inplaceInstallPrompt:false, // Indica si pregunta si se
con Silverlight. <head> // instala el plugin si no es la
<title>Primer Ejemplo Silverlight</title> // versión correcta
Los archivos de una aplicación <script type=”text/javascript” src=”Silverlight.js”> background:’#D6D6D6’, // Color Background del plugin
</script>
Silverlight <script type=”text/javascript” src=”crearSilverlight.js”>
isWindowless:’false’, // Determina si el plug in se
// muestra en modo sin ventana
Todo lo que podemos hacer hoy en día con </script> framerate:’24’, // Número de cuadros por segundo
Silverlight 1.0, se puede crear mediante </head> version:’1.0’ // Versión Silverlight a usar.
cualquier editor de texto. En nuestro caso, <body> },
usaremos al famoso Notepad. Pensemos <!-- Este DIV será el contenedor del Plugin de {
que tenemos una página llamada Default.html Silverlight--> onError:null, // Manejador de función cuando hay error
en donde queremos crear nuestra primera <div id=”miHostdelPlugin”> onLoad:null // Manejador de función carga del plug in
</div>
aplicación de Silverlight. });
<script type=”text/javascript”> }
// Obtener el DIV host del plug in.
Entonces, los archivos que necesitamos var hostdelplugin = document.getElementById(
crear son: “miHostdelPlugin”); Este archivo contiene la función que invo-
// Creación del plugin camos desde el html, lo que hace es indi-
• Default.html - Esta será la clásica página crearPluginSilverlight(); carle al navegador que hay que invocar al
web a donde navegaremos. Invoca al plugin //Llamada a la función del archivo de abajo método createObject del objeto Silverlight
de Silverlight. </script> para poder crear un plugin de acuerdo a
</body> ciertos parámetros.
• Silverlight.js - Un archivo con las instruccio- </html>

nes en javascript para validar que el browser Listado 3. mixaml.xaml


tenga el plugin de Silverlight. Este archi- Como se dan cuenta, esta página es muy sen- <Canvas
vo viene incluido en el SDK de Silverlight cilla. Carga un par de archivos de javascript e xmlns=”http://schemas.microsoft.com/client/2007”
y está listo para usarse, por lo que no es ne- invoca una función para cargar nuestro com- xmlns:x=”http://schemas.microsoft.com/winfx/2006/
xaml”>
cesario modificarlo. ponente de Silverlight.
</Canvas>
• Archivo *.xaml - Este archivo contiene las Como ya se indicó, el archivo Silverlight.js ya
instrucciones en lenguaje XAML (eXtensible viene incluido en el SDK de Silverlight y no se
Application Markup Language) que definen modifica, así que solo necesitamos ponerlo Como habíamos indicado, el archivo xaml
los elementos de la interfaz de usuario (UI) en un directorio de donde podamos cargarlo. define la parte visual. Por lo pronto, lo único
de nuestra aplicación. que tenemos definido es un canvas vacío,
Listado 2. crearSilverlight.js el cual vamos a utilizar para desplegar ele-
• Archivo *.js - Contendrá el código javascript function crearPluginSilverlight() mentos visuales.
necesario para invocar el plugin de Silverlight {
e indicarle el XAML que debe cargar. Silverlight.createObject( Si se echa a andar la página web, obtene-
“mixaml.xaml”, // El XAML a pintar.
mos la siguiente pantalla por el momento:

Guillermo Morales colabora actualmente en InterSoftware, empresa dedicada a la capacitación especializada en desarrollo de software. Con un perfil técnico,
se ha desenvuelto en varias áreas del proceso de desarrollo de aplicaciones, desde la implementación, hasta la administración de proyectos. Es cofundador de la
comunidad de desarrollo en México www.developersdotnet.com en donde, frecuentemente se reúne con otros expertos de desarrollo de aplicaciones para la
difusión de tecnologías nuevas.

12 AGO-OCT 2008 www.sg.com.mx


“El archivo XAML define los elementos
de la interfaz de usuario (UI) de nuestra
aplicación”.

Figura 1. Canvas en blanco Figura 2. Canvas con elementos visuales

El color del fondo del plugin debe ser el in- ¡Perfecto! Has creado tu primera aplicación
dicado de acuerdo a los parámetros que di- Silverlight. En la siguiente entrega de esta
mos en nuestra función. Ahora crearemos el serie estaremos viendo como poder res-
contenido visual de nuestra aplicación. ponder a eventos del mouse y lanzar algu-
na animación.
Modificando el archivo XAML
Como ya vimos, nuestro archivo mixaml.xml
contiene el XAML para definir el contenido Conclusión
visual. Todo se pinta dentro de un lienzo El desarrollo con Silverlight está basa-
sobre el cual se puede pintar y posicionar do en una serie de archivos que con-
elementos. De esta manera, si modificamos tienen indicaciones para:
nuestro archivo mixaml.xaml para que que-
de como el listado 4, obtendremos un des- • Creación del Plugin de Silverlight (ar-
pliegue como el de la figura 2. chivo crearSilverlight.js)

Listado 4. mixaml.xml invocando elemen- • La declaración de los elementos


tos visuales visuales a crear (mixaml.xaml)
<Canvas
xmlns=”http://schemas.microsoft.com/client/2007”
• La página web que hostea al plug in
xmlns:x=”http://schemas.microsoft.com/winfx/2006/
xaml”> (default.html)

<Rectangle • El código de validación de la exis-


Canvas.Top=”30” Canvas.Left=”30” Fill=”Blue” tencia del plug in, este archivo es
Height=”100” Width=”100” />
parte del SDK de Silverlight y general-
<Rectangle mente no deberíamos de modificarlo
Canvas.Top=”80” Canvas.Left=”80” Fill=”Red” (Silverlight.js).
Height=”100” Width=”100” />

<Ellipse
Canvas.Top=”130” Canvas.Left=”130” Fill=”Green” Referencias
Height=”100” Width=”100” /> [developersdotnet.com]
</Canvas>

www.sg.com.mx AGO-OCT 2008 13


//PRODUCTOS /*HERRAMIENTAS*/

Control de Acceso Basado en Roles


Factores a Considerar en Una Solución
Por Equipo Editorial

Prácticamente todas las aplicaciones em- roles y permisos. Debe ser sencilla de usar, • Granularidad. La forma más básica de
presariales requieren contar con capacida- de forma que gente no técnica pueda reali- control de acceso consiste en restringir el
des de control de acceso. Es decir, restringir zar estas tareas. acceso a pantallas o menús. Sin embargo,
las operaciones que puede realizar un usua- frecuentemente se requiere de una mayor
rio. Uno de los esquemas más comunes es • Documentación. Un elemento comúnmente granularidad, como podría ser tener control
el control de acceso basado en roles, tam- olvidado, que sin embargo es necesario para a nivel de cada campo de información, o que
bién conocido como RBAC por sus siglas en tener un proceso de seguridad confiable y un listado contenga datos diferentes para
inglés (Role Based Access Control). que no dependa de personas específicas. usuarios dependiendo del rol que tengan, o
que un proceso de negocio tenga diferentes
Es muy común que en nuestras aplicaciones Es altamente recomendable que los detalles pasos dependiendo del perfil del usuario.
implementemos nosotros mismos el control para el control de acceso a aplicación no es-
de acceso como parte de su desarrollo. Sin tén definidos dentro del código de la aplica- Opciones en el Mercado
embargo, también existen productos listos ción misma, sino que se realicen a través de La mayoría de las organizaciones optan por
para usarse que resuelven este problema. un componente externo que interactúe con desarrollar su propia solución para control
En este artículo explicamos las principales un repositorio de permisos, tal como se in- de acceso. Sin embargo, difícilmente toman
características que debe cumplir un buen sis- dica aquí. Esto permite tener independencia en cuenta todos los aspectos que hemos
tema de control de acceso basado en roles. entre el código de la aplicación y el control de mencionado en este artículo y por lo tanto
acceso, lo cual es deseable ya que así no ne- terminan con soluciones que no resuelven
Funcionalidad cesitamos modificar la aplicación y lanzar una todas las necesidades y que además son di-
Un sistema RBAC debe proveer como míni- nueva versión cada que tengamos que hacer fíciles de mantener.
mo tres diferentes grupos de funcionalidad: un cambio en la política de accesos. Otra ven-
autenticación, autorización y auditoria. taja es que no necesitamos a personas que En el otro extremo se encuentran las plata-
entiendan el código de la aplicación, para po- formas empresariales para manejo de iden-
• Autenticación. Capacidad de validar la der hacer ajustes en el control de acceso. tidades y acceso. Gartner identifica como lí-
identidad de un usuario. Típicamente se deres en esta categoría a proveedores como
realiza por medio de nombres de usuario y Factores a considerar al diseñar IBM, CA, Oracle y Sun. Estas plataformas
contraseña. un sistema RBAC brindan poder y flexibilidad, pero a costa
Estos son algunos de los principales fac- de complejidad y en la mayoría de los casos
• Autorización. Es la definición de qué es lo tores a considerar al diseñar o escoger un requieren in
que un usuario específico puede hacer den- sistema RBAC.
tro de una aplicación, es decir a qué infor- Como un punto medio entre las soluciones
mación y operaciones tiene acceso. • Repositorio centralizado. Considera si es desarrolladas internamente, y las platafor-
que necesitas centralizar el manejo de permi- mas empresariales, tenemos herramientas
• Auditoría. Se refiere a la capacidad de man- sos de varias aplicaciones en un solo reposi- comerciales dirigidas a asegurar aplica-
tener un registro de las transacciones sensi- torio. Incluso podrías requerir que los roles se ciones individuales, de forma sencilla y no
tivas de una aplicación. La auditoria permite puedan compartir entre varias aplicaciones. intrusiva. Entre las opciones más notables
saber quién hizo qué, cuando lo hizo, y quién de este segmento está Visual Guard, de la
le dio los permisos necesarios a ese usuario. • Single sign-on. Single sign-on se refiere a empresa francesa Novalys. Esta herramienta
la capacidad de que los usuarios se auten- ofrece un muy buen balance entre el poder
Componentes tiquen una sola vez al inicio de una sesión de sus capacidades, y su facilidad de imple-
• Repositorio. Se requiere de un lugar se- y posteriormente puedan utilizar varias apli- mentación. La limitante es que solo está dis-
guro para almacenar los usuarios, contrase- caciones sin necesidad de estarse autenti- ponible para plataformas .Net y PowerBuil-
ñas, roles y permisos. cando para cada una. der, pero si desarrollas aplicaciones sobre
estas tecnologías, bien vale la pena echarle
• Interfaz entre aplicación y repositorio. • Soporte a diversas tecnologías. La mayo- un vistazo.
Este es el componente intermedio que sirve ría de los ambientes corporativos cuentan
de interfaz entre una aplicación y el reposi- con múltiples plataformas aplicativas, así Referencias:
torio de seguridad. como tipos de cliente (desktop, web, móvil). [ Gartner Magic Quadrant for Web Access
Desarrolla o escoge un sistema RBAC que Management, 2H07 ]
• Consola de administración. La consola que funcione adecuadamente con las diferentes [ Novalys Whitepaper: Role Based Access
permite administrar las cuentas de usuario, plataformas tecnológicas que se utilizan en Control for .NET applications ]
tu organización. [ visual-guard.com ]

14 AGO-OCT 2008 www.sg.com.mx


www.sg.com.mx AGO-OCT 2008
n la
xpo e
re n c ia y E MTOUR
nf e P
’08 Co onjunto con Capítulo
g re so SG e n c P M I
el co n alizó por ntes,
v ó a cabo vento se re organizado a los asiste oft-
lle le s r s
io se ión, e oyecto or valo esarrollo de de
l 2 4 de jun n esta ocas cción de Pr rindar may d e d a m p li o
a E e b s
Del 21 de México. reso de Dir ración fue conferencia pectro más nió a más
d ng bo a es u
Ciuda 2008, el co e esta cola ron asistir vieron un congreso re otras 400
ic o o d u d ie y t u g. E l ás ed
Méx tiv p s, xpo
x ic o . El obje ismo precio e proyecto r networkin ncias, adem nte a la e n
Mé u n m c ió n d s h a c e n f e re o la m e a ra u
a q u e por o de direc on quiene n t e s en co istieron s u n id ad, p
y ware sc iste e as com tentes
.
colega de 400 as rsonas qu niones de 00 asis
pe y reu l d e 8
tota

16 AGO-OCT 2008 www.sg.com.mx


Keynotes titulada “De 0 a 300 a 0 en 6 años”, con una ca- asistentes. Finalizamos con un concurso en-
Las conferencias magistrales de software co- lificación de 4.63 en escala del 1 al 5, seguida tre bandas, y los ganadores fueron el grupo
rrieron a cargo de Jon “maddog” Hall, Terry por “CMMI para Adquisiciones” de Carlos Pérez denominado “Los Twitteros Rabiosos”, inte-
Quatrani, y John Crupi. Maddog, como de cos- (4.60) y “CMMI Ágil” de Ernesto Elizalde (4.55). grado por personas de la empresa Intellekt.
tumbre inspiró a la audiencia y les hizo ver di- Agradecemos a todos los conferencistas, que
ferentes opciones de cómo hacer dinero con son quienes hacen realidad este congreso. ¿Qué sigue?
software libre. Terry, quien fue la más laurea- SG ’08 marcó la tercera edición de este con-
da del congreso, se enfocó en compartir ideas Tutoriales greso. A lo largo de estos años hemos ex-
prácticas sobre modelado ágil de software. Posiblemente, el aspecto en el que más tra- perimentado diferentes opciones de temas,
Su plática bien pudo haberse titulado “Cómo bajamos para mejorar este año fue el de los actividades y formatos para lograr brindar
modelar sistemas de software de forma que tutoriales, ya que estábamos concientes de a los profesionistas de software de nuestro
sea útil y sin que llegue a convertirse en una que había sido el aspecto más irregular en país un congreso de clase mundial. La re-
pesadilla”. Por último, John, quien nos ha- años anteriores. Así que para este año hici- troalimentación de los asistentes nos indica
bía quedado a deber su participación desde mos varios ajustes, tales como realizar los que esta misión se ha cumplido, y que SG
SG ’06, nos dio una muestra clara de cómo se tutoriales el fin de semana previo a las con- Conferencia y Expo es el mejor congreso de
pueden aplicar mashups en las empresas, y la ferencias, e invitar exclusivamente a empre- software de Latinoamérica. Sin embargo,
audiencia no pudo hacer más que quedarse sas de servicios educativos con un record lo que no hemos logrado es ofrecer tarifas
boquiabierta ante las cosas que vio durante demostrado. El resultado fue favorable, ya accesibles para la mayoría de los profesio-
esta presentación. que logramos una muy alta satisfacción de nistas de nuestra región. Esta situación se
los asistentes. complica aun más en el contexto de la gran
Sesiones paralelas cantidad de eventos gratuitos que se reali-
Como de costumbre, las sesiones paralelas Agradecemos a todas las empresas que par- zan en la Ciudad de México.
corrieron a cargo de profesionistas locales, ticiparon impartiendo tutoriales, y hacemos
buscando así dar una muestra de lo que un reconocimiento especial a Activ, cuyo Es así que actualmente estamos estudiando
realmente sucede en las organizaciones de tutorial “Desarrollo de Rich Internet Appli- alternativas para poder seguir ofreciendo
nuestro país. En esta ocasión se llevaron a cations con Flex” fue el mejor evaluado de este congreso con un alto nivel de calidad,
cabo cinco tracks paralelos, algunos con te- los tutoriales relacionados con desarrollo de pero en un precio y formato accesible. En
mas de dirección de proyectos y otros con software. cuanto tengamos noticias al respecto, se
temas de desarrollo de software. Esto resul- las haremos llegar. Mientras tanto, agra-
tó en más de 35 sesiones paralelas en dos Evento social decemos a Secretaría de Economía por su
días, con lo que se logró cubrir una En esta ocasión el evento social consistió apoyo mediante PROSOFT, así como a todos
amplia variedad de temas. en una fiesta donde los asistentes se junta- los patrocinadores, conferencistas, volunta-
ron en grupos para jugar el videojuego rock rios y asistentes que han hecho posible este
De las sesiones paralelas, la mejor band. Esta dinámica brindó diversión y con- congreso durante tres años.
evaluada fue la de Héctor Obregón vivencia (y conbebencia también) entre los

www.sg.com.mx AGO-OCT 2008 17


// ENTREVISTA

Christian Lemaître y León nació en la ciudad de México, cursó la licenciatura en Física en la


Universidad Nacional Autónoma de México y el doctorado en Informática de la Universidad
de Paris VI. Ha realizado labores de docencia, investigación, desarrollo de innovaciones
tecnológicas y consultoría. Fundador de varias organizaciones científicas de compu-
tación  de México y del extranjero entre las que destacan la Sociedad Mexicana de
Inteligencia Artificial (SMIA), la Sociedad Mexicana de Ciencia de la Computación
(SMCC), La Organización Iberoamericana de Inteligencia Artificial, (IBERAMIA)
y la International Foundation for Multiagent Systems (IFMAS). Fue igualmen-
te miembro fundador del Laboratorio Nacional de Informática Avanzada
(LANIA A.C.), y Director Académico del mismo de 1997 a 2002.

Desde octubre 2005 se desempeña como Jefe del Departamento


de Tecnologías de la Información de la División de Ciencias de la
Comunicación y Diseño de la UAM-Cuajimalpa

ee o
îîttrr
xic

maa
en
ión
eem
tac
pu
om
nn LL
aC
el
sd
ttiiaa
cia
en
Ci
rriiss
as
el
rd
do
CChh
da
fun
ru
Gu

18 AGO-OCT 2008 www.sg.com.mx


Existen entre 50 y 70 mil responsabilidad social de la universidad es ¿Cómo es tu perspectiva de la
egresados sin empleo, sacar muchachos con una preparación sóli- industria del cómputo
¿a qué se debe esto? da en los fundamentos, y capaces de seguir actualmente en México?
Creo que uno de los problemas es la facilidad la evolución de la computación. Es decir, de- Creo que se están comenzando a hacer co-
para crear carreras y maestrías. Tengo enten- bemos generar gente que luego va a crecer. sas interesantes, como por ejemplo en Gua-
dido que alrededor del 12% de la matrícula dalajara, que desde años atrás fue un punto
universitaria son estudiantes de carreras re- El problema es que en muchos casos esa de concentración en las áreas de la electró-
lacionada con TI. Eso es muchísima gente, no es la visión del empleador. A él lo que nica. Con altas y bajas, ha habido una cierta
mucho más de la que podemos sustentar con le interesa es contar con alguien que le re- continuidad en esta zona, y esto es algo que
un alto nivel de calidad. suelva un problema en específico, y le tiene hace falta en el país; darle seguimiento a
sin cuidado el crecimiento de la persona. todo lo que se realiza para que poco a poco
Sé que la ANIEI está trabajando para mejorar Esto es un error, porque si las empresas se consoliden cosas y los proyectos.
esto, pero es un reto significativo y están lu- quieren crecer entonces necesitan gente
chando contra corriente. capaz de crecer. ¿En qué nicho(s) del mercado
interncional de TI debería
¿Qué opinas sobre las ¿Qué otros elementos, además enfocarse México?
certificaciones? de los técnicos, deben ofrecer No estoy seguro, creo que eso deberá ser
Yo entiendo el énfasis que se le está dan- las universidades para atraer a el resultado de algo previo. Creo que pri-
do en la industria a las certificaciones. Si los alumnos en este tipo de mero debemos enfocarnos en resolver pro-
estamos generando a nivel nacional tanto carreras? blemas locales. Sentarnos a resolver lo que
egresado que tiene un título pero cuyas El gran problema que tiene la computación, tenemos cerca. La India estuvo 15 años ge-
competencias no cubren los requerimientos principalmente aquí en México es su éxito nerando capacidad, y luego se abrió.
básicos, o están en duda, entonces desgra- comercial, porque lo primero que se ve es
ciadamente sí tenemos que recurrir a los la parte física de la computadora, las nove- Los problemas nacionales requieren de
proveedores o empresas terceras para que dades, las últimas aplicaciones que pueden muchísimo esfuerzo, y yo creo que eso
validen esto. Sin embargo, esto no es muy ejecutarse en ella, opacando la parte de será un detonador importantísimo. Por
eficiente a nivel nacional, ya que estamos atrás, el esfuerzo que se hace para sacar ejemplo, si requerimos sistemas para me-
multiplicando las acreditaciones y quitán- esas novedades y lo que vendrá durante los jorar la producción en los campos agríco-
dole peso al trabajo de las universidades. siguientes años. las, este puede ser un terreno interesante
y con potencial para las empresas locales,
Por dar un ejemplo, yo creo que un ingeniero Hoy en día, los alumnos pueden hacer toda que posteriormente pueden ofrecer esto a
recién egresado que tiene buenos fundamen- la carrera de computación con su computao- nivel internacional.
tos de base de datos, y tiene experiencia con ra casera sin ningún problema. Esto es bue-
una base de datos que puede ser de software no, ya que en todo caso lo centra en lo que ¿Qué tendencias de TI conside-
libre, entonces el día de mañana que en su realmente debe aprender. Es así que temas ras de mayor relevancia hacia los
trabajo necesite aprender Oracle, va a tener como los algoritmos o las estructuras de próximos años?
las bases para hacerlo. Y si la empresa donde datostoman mayor importancia que el sim- La interacción es una palabra clave, el cóm-
está necesita acelerar ese proceso y hacerlo ple uso de la máquina. puto obicuo, las redes inalámbricas. Se
un experto, entonces va a tener que capaci- están multiplicando las posibilidades de in-
tarlo y certificarlo. Eso es válido y compren- ¿En la universidad ya es muy teracción entre los sistemas y las personas,
sible, especialmente en un campo que evolu- tarde para revertir la mentalidad Descubriéndose las posibilidades de la red
ciona tanto como el nuestro. de consumo y fomentar la en términos abstractos. Tanto a nivel social
creación e investigación? (conectividad social) como individual (con
¿Hay que generar gente El problema es de base y muy serio; nues- un aparato); la interactividad es una de las
pensante o certificada? tro nivel educativo tiene mucho que ver en grandes áreas que involucran una evolución
Creo que este es un falso dilema. Quienes este aspecto.  Nos cansamos de escuchar de servicios, las comunicaciones apenas es-
pretenden tener a jóvenes que al salir de la los resultados que tienen los alumnos en tán comenzando a ver su triple play :)
escuela estén certificados en tecnologías y los examenes reflejando un problema se-
versiones específicas, no están planteando rio. No se les está inculcando “el gusani- Algunas palabras para nuestros
bien el problema. La universidad no tiene to” de buscar las cosas. Pese a eso, siem- lectores
porque estar haciendo eso, y más en un área pre existirán los jóvenes que tienen esa En particular la computación, sigue siendo
con el ritmo de cambio de la computación. curiosidad por ver más allá del caparazón una área absolutamente fascinante y que
Sí estoy de acuerdo en que debemos ense- a una computadora. vale la pena meterse de lleno, infinitamente
ñar a los jóvenes a utilizar las herramientas maleable. No necesita una infraestructura
del momento, pero no creo que debamos Debido al dinamismo del área siempre exis- de plantas sofisticadas para poder experi-
orientarnos hacia las certificaciones ni basar tirán nuevas oportunidades, pero es des- mentar con ella. Puede ser muy divertida y
cursos en el temario de una certificación. La gastante ver cómo pasan los trenes. al mismo tiempo múy útil.

www.sg.com.mx AGO-OCT 2008 19


é x i c o
iccoo
nM M
M é é x x i
d ee
e T
TTIIIeeenn cía
i a
a
uuussstttrrriia d
d u is F c o. Gar
a IInndd
d
L

e
e ttooss dddeeelllaa In
RR etos s e están
R anos
qu e
e Bas
e
l o s Mexic conomía d
n
u i d a do co a c í a una E
¡C n do H
n i z a
Orga
n o l ó gica!
Tec

20 AGO-OCT 2008 www.sg.com.mx


“Las áreas de mejora
pueden incluir las habilidades personales
Lo cierto es que si en México tenemos la oportuni- de comunicación”
dad de encontrar una fuente de ingresos robusta en
la industria de servicios TIC’s, esto requiere que nos
organicemos antes de que ésta ventana se cierre
frente a nuestros ojos.
Y sabemos que a largo plazo una sola estrategia no
En este artículo quiero hablarle del siguiente esca- es suficiente, ya que México es un país grande y so-
lón que necesitamos construir para llevar la oferta fisticado que es capaz de crear los diversos caminos
mexicana hacia un nivel favorable ante los merca- que requiere, por ejemplo el crear los mecanismos
dos globales. Se trata de ir más allá de la práctica y para lograr la incursión directa en el mercado, la bús-
de incorporar a nuestras organizaciones habilidades queda de los contratos mayores y la proveeduría ha-
competitivas que tienen que ver con aspectos de ne- cia proyectos públicos (Gobierno).
gocio, de comunicación organizacional y comercial.
» Construyendo los bloques
» Una vista al panorama actual y retos competitivos por pasos
identificados Los “bloques básicos para el triunfo” son los elemen-
Ya hemos visto que la oferta mexicana en cuanto a tos que forman una empresa, por ejemplo: adminis-
tecnología y sus atributos es suficientemente com- tración, ventas, calidad, producción, etcétera. Las em-
petitiva como para encontrar un lugar entre las me- presas, durante su evolución, los adoptan por etapas y
jores propuestas del mundo. Esta oferta de calidad y siguen hasta que llegan a la cima, una empresa como
conocimientos especializados debe complementar- Cemex cuenta con todos los bloques básicos para el
se con habilidades de negocio y de comunicación triunfo y es líder mundial en diversas prácticas, Neoris,
organizacional, los resultados a su vez sembrarán sigue sus pasos de cerca, por otro lado una nueva em-
crecimiento continúo y sostenido. presa contará con menos bloques de triunfo.

Estos resultados pueden ser por ejemplo, el lograr Ahora en términos de industria, veamos que en nues-
que alguna empresa mexicana sea considerada por tro país hay avances destacados en materia de calidad
primera vez como un proveedor para contratos ma- –definitivamente un bloque básico para el triunfo- y
yores a los mil millones de dólares, tal como los más recientemente en materia de especialización que ha
de 20 que han firmado en los últimos 3 años empresas impulsado México con programas como MoProsoft
como: Cognizant, HCL Technologies, Infosys, Patni, y ahora Mexico First, ambos parte de la heróica Se-
Satyam, Tata Consultancy Services (TCS), Wipro, cretaría de Economía.
CPM, EPAM, Luxoft, y por supuesto las empresas de
costumbre como son IBM, EDS, Perot Systems, CSC Ahora bien, además del fondo Prosoft y las diferentes
y Accenture entre otras. Un contrato de ese tamaño estrategias que ha lanzado, existen apoyos menos
es capaz de dar trabajo a 2,000 personas durante promocionados, también en Secretará de Economía
cinco años, por ello lo estratégico de los mismos. existen los fondos PyMes, recursos que quisieran mu-
chos países del mundo ya que los famosos grants o
Un paso será saltear los retos que se enfrentan en prestamos a fondo perdido son una cosa del pasado.
nuestra industria, que han impedido que las em-
presas mexicanas crezcan más allá de los 5,000 em- Después tendríamos que preguntarnos si la tarea
pleados, ya sea por dificultad de localizar suficiente esta hecha en cuanto a los medios para llegar hacia
talento o por la curva de aprendizaje ante de pro- los mercados globales, para estos también están las
moción y capitalización de las oportunidades en los bases sentadas, existen programas de promoción de
mercados globales. Una característica de nuestro la imagen, como MexicoIT, que claramente debe me-
país es también la disparidad de demanda y oferta jorar y cumplir las expectativas que se tienen del mis-
entre las regiones y estados, esto hablando del mer- mo y programas de aceleración hacia Estados Unidos
cado interno que es la principal fuente de ingresos como TechBa.
de nuestro sector.
Vale la pena mencionar las acciones orquestadas du-
Por ejemplo, ante demanda estadounidense, una rante ya más de 4 años por la Secretaría de Economía,
de las estrategias que han seguido empresas mexi- en particular por el Prosoft, donde se distingue el es-
canas es la de proveer a través de sub-contratación. fuerzo contínuo de Rocío Ruíz, Sergio Carrera, Ivette
Una estrategia razonable dados nuestros niveles de García y muchas otras personas que han dejado su
penetración a los mercados globales y de competi- huella en los esfuerzos de ese grupo como Jesús Orta
tividad en aspectos no-tecnológicos. y muchas otras personas en la República Mexicana.

www.sg.com.mx AGO-OCT 2008 21


De esta forma las empresas y los profesiona-
Si pensamos que esta necesidad de mejorar les mexicanos estamos obligados a entablar
No será una escalera de mármol o un ele- surge exclusivamente de la oportunidad, de- esta carrera de mejora continua, que como
vador capaz de hacer la tarea por nosotros, bemos recordar que el entorno global tam- vemos ahora nos llevará fuera de la fronteras
pero ahí están las bases. En pocas palabras bién esta en nuestra casa, en nuestro país de nuestra tarea diaria, seremos tecnólogos,
en México si no aprovechamos los recursos cuando llegan las empresas mundiales a es- humanistas, estrategas, vendedores y si,
y posibilidades que hoy existen estaremos tablecerse con nosotros y a obligarnos a ser mercadólogos.
desperdiciando una ventada de oportuni- mejores y más. Entonces no solo debemos
dad única, ya que en temas de calidad, fon- mejorar para exportar sino para competir con » ¿Cuál es entonces el siguiente
deo, promoción y aceleración, los profesio- las empresas de clase mundial que ya están escalón para capitalizar la
nales mexicanos si tienen opciones. tocando las puertas de nuestros clientes. oportunidad de México?
Sin duda son los de adoptar prácticas y aprove-
char oportunidades de negocio así como con-
tinuar con la promoción y cambio de imagen.

.BZPS
.nYJDP)BDJBPSHBOJ[BDJPOFT5*EFDMBTFNVOEJBM /FDFTJEBE » Los pasos para integrar las
capacidades de clase mundial
1SgDUJDBTZ $POPDFSFM "QSPWFDIBS $BQJUBMJ[BS
El primer paso es realizar un diagnóstico de
PQPSUVOJEBEFT NFSDBEP FMFHJS WFOUBKBT 'VODJPOBSFOFM SFDVSTPTZ su empresa que le permita medir sus com-
FOUPSOP
EFOFHPDJP FMDBNJOP EJTQPOJCMFT PQPSUVOJEBEFT petencias a nivel persona, departamento
ÇSFBTEFFOGPRVFEF.nYJDP

y organización. Este diagnóstico le deberá


1SPNPDJwOZ &OUSFOBNJFOUP &KFDVDJwOEF 1SgDUJDBT mostrar las áreas de trabajo específicas, por
DBNCJPEF FO NFOTBKFT DPNFSDJBMFTZ ejemplo tal vez su empresa sea muy afortu-
JNBHFO DPNVOJDBDJwO FNQSFTBSJBMFT EFTFSWJDJP nada y cuente con personal altamente capaz
en comunicación en varios idiomas, tan bási-
.FEJPTZ
co como es, tal vez no sea este el caso.
SFDVSTPTQBSB 1SPTPGU 5FDICB
FYQPSUBS Siguiendo con la idea de “escalones básicos
para el triunfo” cada empresa y cada persona
1SPEVDUPZ $PSFCVTJOFTT
seguirán un plan distinto, propio a sus creen-
4FSWJDJPEF 5FDOPMPHrBTEF cias, deseos y situación actual.
DBMJEBE *OGPSNBDJwO
Después de realizar un diagnóstico, las áreas
$PNQFUJWF-BUJO"NFSJDB .BZPS de mejora pueden incluir las habilidades per-
"WBODF
sonales de comunicación. Pocas cosas son
tan decepcionantes y vergonzosas como ver
a un ejecutivo mexicano realizar una pobre

28
22 AGO-OCT 2008 www.sg.com.mx
presentación ante ejecutivos de alto nivel y Esto en cuanto a las capacidades de co-
echar todo por la borda, más allá de la ima- municación y usos y costumbres del mer-
gen de su empresa también la de la industria cado meta, las capacidades estratégicas Conclusión orno global para
nacional, por ello debemos creer en el entre- de una empresa incluyen el saber elegir La oportunidad en el ent
s continúa presen-
namiento, la preparación y la práctica, y no los mercados de oportunidad, por ejem- las empresas mexicana
bargo difícilmente
lo hacemos. plo, abrir una oficina en Houston, en lugar te, y es enorme, sin em
s, el mu ndo se esta trans-
nos esperará má
de Silicon Valley o el precio en el que debe as de base tecno-
formando hacia economí
Nuestros ejecutivos deben aprender, y prac- colocar sus servicios. Más de una empresa ún ico país compi-
ticar sus habilidades mediáticas, desde las mexicana realiza sus primeros esfuerzos lógica y México no es el
r su pe rfil.
formas de presentarse en una reunión, hasta sin conocer cuales son los mayores merca- tiendo por cambia
la ejecución de presentaciones ejecutivas. En dos para su oferta comercial, solo porque, logías de informa-
Las empresas de tecno
estos tres años en promoción de la industria tal y como el inmigrante ilegal, conocemos de sus líderes, tal vez
ción son un reflejo
mexicana, solamente he visto cuatro presen- a alguien en tal o cual ciudad. dad es y for mación orienta-
por las capaci
tadores aptos de más de 30 presentaciones ctas, no importa,
das hacia las ciencias exa
y por otro lado he presenciado ejecutivos Un error común de la empresa mexicana es qu e la receta para
lo que es relevante
mexicanos echar por la borda esfuerzos de que incursiona hacia mercados globales es mpos no es sufi-
triunfar en los viejos tie
meses para ponerlos a ellos ante un foro de el ignorar los diferentes recursos que existen y el futuro.
ciente para el presente
clase mundial. Lo más lamentable es que tanto en México como en el caso de Estados
esto es fácil de arreglar. Unidos especialmente diseñados para ayu- egar capacidades
Los retos requieren el agr
darles a triunfar y vender más. Igual de co- ras empresas, habi-
que completarán a nuest
A continuación vienen áreas de usos y cos- mún y grave es la carencia de presupuestos y rategia de merca-
lidades de planeación, est
tumbres durante la promoción de servicios, el compromiso de permanencia necesario. organizac iones y ejecuti-
dos, comunicación
tumbres, estamos
son actitudes sencillas para los mexicanos con va, y dominio de usos y cos
evos bloques bási-
nuestra cercanía cultural y nuestra distinguida Pocas empresas diseñan un plan de entra- obligados a incorporar nu
aptitud de calidad humana pronto podemos da al mercado estadounidense coordinado, nuest ras empresas.
cos para el triunfo en
adoptarlas y dominarlas. Por ejemplo manejo fondeando, sustentado y que conozca y ca-
las empresas glo-
del tiempo durante las reuniones, tiempos de pitalice los apoyos ya mencionados. Pocas El premio, es sumarse a
wt h tigers” por ello
respuesta para regresar con una propuesta, empresas siguen los pasos para establecerse bales llamadas “fast gro
documentación de las propuestas. En lo posi- como entidades legales en el mercado meta y al - ¿Cu ál es el nivel de fie-
una pregunta fin
organización?
tivo nuestra manera de formar lazos persona- mucho menos aprovechar las bondades pro- reza competitiva de su
les y de calidez son ventajas refrescantes para pias para las nuevas empresas.
la cultura de negocios Estadounidense.

Luis García, es Director de Competive Latinoamérica. Trabajó para empresas como IDC y Softtek, y ha dirigido proyectos de estrategia a nivel nacional, ha
sido orador en eventos en México, Colombia, Brasil y en United Nations Plaza, presentando el caso de México como Nación. Exprtador de Tecnologías de
Información. Puede contactarlo en lgarcia@competive.com

www.sg.com.mx AGO-OCT 2008 29


23
r rol llo
l o
lo
D e
e a
esssaarrr oo
dd
sss dee
e D
D
i ccaaan nn a aa a Herr
era

s aass M
M
M eeexxxiic Ale ja n d r
e s s
ppprrreesa a M eeedddiid a
iddaa
LLaasssEEEm
mm aarree aaa lall a MM
Lea tww re
ddeeSSSooffttwa
o f
t i v idad
d p
ome t i
e l o d eC
od
Un M

30
24 AGO-OCT 2008 www.sg.com.mx
En las últimas décadas, la industria de desarrollo de software a la
medida en el mercado nacional y en el internacional, se ha movido
dentro de un esquema perverso de precios bajos en el que las em-
presas con menor poder de negociación tienden a ser las más casti-
gadas, hasta el grado de desaparecer. Es por ello que como parte del Programa de Doctorado en Ciencias
de la Administración de la Facultad de Contaduría de la UNAM, se
Los retos que enfrentan los empresarios mexicanos en esta industria realizó el proyecto de investigación “Las fuentes de competitividad
son variados y atienden a diferentes factores, entre otros: de las empresas mexicanas de desarrollo de software a la medida”,
con el objetivo de encontrar todos aquellos elementos que pueden
• El crecimiento de soluciones estandarizadas o empaquetadas cuyos incrementar la competitividad de estas empresas con las capacida-
principales iconos son las empresas transnacionales. des propias del entorno mexicano.

• Los altos costos que implica el desarrollo de soluciones de software Así, para estructurar el modelo de calidad, reunimos a más de 25
para industrias o negocios en los que hay poca o nula experiencia. expertos, entre empresarios, consultores de empresa, académicos,
representantes del sector gobierno y clientes. La estrategia de inves-
• La escasez de recursos humanos especializados o con un perfil mul- tigación se conformó de técnicas de entrevistas, aplicación de cues-
ticultural, para el caso de las empresas exportadoras. tionarios y grupos de discusión. Además, los resultados obtenidos se
presentaron en distintos foros nacionales e internacionales en donde
Los criterios para el acceso a créditos tanto en la banca comercial como fueron evaluados por expertos de diversos países.
en la banca de desarrollo, al no contar con activos tangibles que repre-
senten una garantía ya que su principal activo es capital intelectual Después de obtener el modelo final y como resultado de todo el
proceso de investigación, fue posible diseñar una herramienta de
Por otro lado, según el Sector Competitiveness Analysis of the diagnóstico y un índice de competitividad que permitiría visualizar
Software and Computer Services Industry realizado por el Departa- el nivel de apego de las empresas al modelo mismo. La herramienta
mento de Industria y Comercio de Gran Bretaña (2004), el 25.1% del de diagnóstico fue probada a nivel exploratorio con cinco empresas
mercado mundial se encuentra repartido entre doce grandes firmas mexicanas: una de las más exitosas del país y otras cuatro con menor
estadounidenses que han extendido sus operaciones y oficinas en nivel de desarrollo.
diversos países de manera estratégica, en donde el capital humano
es abundante y de bajo costo, la infraestructura y normativa en el uso
de telecomunicaciones se adecúa a sus procesos de servicio, existe » Empresa competidora vs. empresa competitiva
un mercado en donde la demanda es atractiva o las políticas públicas Durante el proceso de investigación identificamos que era necesario defi-
para la atracción de inversión extranjera son flexibles. nir lo que significa una empresa competitiva y los elementos que la hacen
diferente de una empresa competidora, ya que ambos conceptos son bá-
En la actualidad, Prosoft se ha ocupado de facilitar el camino para com- sicos para entender la competitividad de las empresas del estudio.
petir a partir de la intensa participación del sector empresarial. Sin em-
bargo, entre las tareas pendientes se encontraba la identificación de Entonces, después de recopilar información de otras investigaciones y
las fuentes de competitividad propias de las empresas mexicanas de artículos y contando con la colaboración del grupo de expertos que par-
desarrollo de software a la medida que permitieran visualizar las bre- ticiparon en este proyecto, obtuvimos los siguientes elementos que de-
chas que existen entre las empresas más exitosas y las que no lo son. finen a una empresa mexicana de desarrollo de software competitiva:

Estrategia de Negocios Orientación al Cliente


· Tiene liderazgo empresarial, plan estratégico, visión e indicadores · Ofrece valor agregado y efectivo a sus clientes.
de clase mundial. · Excede las expectativas del cliente.
· Crece a un ritmo mayor que el mercado. · Orienta la tecnología al negocio de sus clientes.
· Toma riesgos controlados. · Seriedad.
· Identifica y gana oportunidades de mercado. · Puntualidad.
· Tiene presencia en gremios profesionales. · Cumple compromisos y acuerdos.
· Da seguimiento a nuevas estrategias. · Altamente enfocada al cliente.
· Busca la excelencia. · Una ética de trabajo muy fuerte.
· Es permanentemente insatisfecha. · Sus clientes están muy satisfechos con sus servicios.
· Quiere ser la mejor en un nicho. · Es socio tecnológico de sus clientes a largo plazo.
· Aporta recursos para lograr ser la mejor.
· Incrementa la meta.
· Especializada.
· Se actualiza en temas de mercado.

www.sg.com.mx AGO-OCT 2008 25


31
Financiera
· Es rentable.
· Solidez financiera, debe demostrar que
no desaparecerá de un día a otro.
· Precios atractivos.
Producción
Recursos Humanos
· Proceso estable de control operativo.
· Tiene personal experimentado. · Mantiene estándares para todos sus
· Equipo humano estratégico, directivo y procesos.
gerencial de muy buen nivel. · Calidad en sus procesos.
· Personal bilingüe. · Sus productos y servicios son de muy alta
· Tiene recursos humano motivados y calidad.
capacitados.
Gestión Tecnológica
· Busca la innovación de productos y servicios.
Por otra parte, una empresa mexicana de desarrollo de software · Desarrollo a distancia.
competidora tiene diferencias significativas en comparación con una
· Certificaciones en las tecnologías y
competitiva ya que su objetivo principal se centra en el uso de estra-
tegias de sobrevivencia y tiene las siguientes características: plataformas que utiliza.

· No maneja la diferenciación
· Basa su oferta en costos y precios bajos · Es incapaz de identificar áreas de oportunidad y corregirlas
· No cuenta con las características enunciadas para una · Establece su éxito solo con el número de contratos ganados
empresa competitiva
· Compite y no crece Una vez definidos estos conceptos, entonces nos enfocamos en iden-
· Es una empresa más tificar todos los elementos que componen la competitividad de este
· No tiene plan de negocio tipo de empresas hasta llegar a conformar el modelo que presenta-
· No tiene estrategia de calidad mos a continuación.
· No tiene estrategia de crecimiento
· Su único interés es vender » El modelo
· Quizá no permanezca mucho tiempo en el mercado El modelo de competitividad se presenta en la figura 1, el cual que-
· No tiene calidad dó integrado por el sector externo que está conformado por grupos
· Sobre vende, esto es que realiza ventas de servicios que exceden de influencia en la toma de decisiones de las empresas y el sector
su capacidad instalada interno, representado por todas las fuentes de competitividad que
· Sus clientes no están satisfechos con sus servicios puede desarrollar la empresa con sus propios recursos. Los grupos
· No tiene control de sus operaciones o su administración con un de influencia tienen relación directa con la definición de la estrategia
pobre seguimiento de resultados corporativa y colaboran en el diseño de estrategias, políticas públicas

32
26 AGO-OCT 2008 www.sg.com.mx
$MJFOUFT 1SPWFFEPSFT
4FDUPSFYUFSOP
(PCJFSOP $PNQFUJEPSFT

&TUSBUFHJB$PSQPSBUJWB 1SPEVDDJwOEF
4PGUXBSF
.FSDBEPUFDOJB 7FOUBTZ4FSWJDJPB$MJFOUFT
"ENJOJTUSBDJwOZ0SHBOJ[BDJwO$PSQPSBUJWB

1SPZFDUPT
* %*OHFOJFSrBZ%JTFvP
&TUSBUFHJBEF/FHPDJPT

(FTUJwO5FDOPMwHJDB
3FDVSTPT)VNBOPT

"ERVJTJDJPOFT

'JOBO[BT

'PSUBMF[BT
$BMJEBEFOFM $PNQFUJUJWBT
TFSWJDJP

$BMJEBEEFMPT
QSPEVDUPT
Con base en el perfil de los clientes locales La estrategia corporativa comprende la es-
*OGSBFTUSVDUVSB y extranjeros se diseña el portafolio de ser- trategia de negocios, lo relacionado con los
4JTUFNBTJOUFSOPTBVUPNBUJ[BEPTZBENwOEFMBJOGPSNBDJwO vicios y los niveles de exigencia para su ne- recursos humanos, la administración y la
gociación; la satisfacción de estos clientes organización corporativa, la estrategia de
'VFOUFTEF$PNQFUJUJWJEBE
representa el reto permanente de cada una mercadotecnia, ventas y servicio a clientes,
3FMBDJwOEF*OGMVFODJB $PNQPOFOUFTEFM.PEFMP de las áreas operativas de la organización. investigación y desarrollo, ingeniería y dise-
Los competidores estimulan el ritmo de creci- ño, además de la gestión tecnológica, adqui-
Figura 1. Modelo de competitividad miento de la empresa y la renovación de nue- siciones y finanzas.
vas formas de trabajo, nuevos productos y
y la conformación de la visión empresarial, lo servicios y nuevas estrategias para sobresalir La infraestructura está definida por la arqui-
que se explica de la siguiente manera: en la competencia nacional e internacional. tectura tecnológica interna de las empresas
que permite la administración y el manejo de
El gobierno participa en el desarrollo de las Los proveedores por su parte, abren oportu- la información operativa de manera automati-
empresas a través de lineamientos de polí- nidades de financiamiento y de alianzas para zada y sistemática para la toma de decisiones.
tica industrial, fiscal, económica, comercial, complementar competencias e infraestructura;
etcétera, que determinan esquemas de apo- en este grupo participan las instituciones de La producción de software se conforma por
yo en las diferentes etapas de madurez de educación superior, la industria de la electrónica, las funciones relacionadas con la ejecución
las organizaciones o bien, si son ineficientes, telecomunicaciones, consumibles, entre otras. de proyectos y las acciones y elementos que
implican un esfuerzo mayor de la empresa permiten evaluar la calidad del servicio y el
por mantenerse en la competencia. Incluso El sector interno quedó estructurado en un producto. La producción de software basa
los gobiernos extranjeros juegan un papel primer nivel por la estrategia corporativa, la in- su operación no solo en la elaboración de
importante en la definición de barreras para fraestructura con la que cuenta para la admi- programas para computadoras, sino que su
la entrada a sus mercados o bien, en la de- nistración de su información y lo relacionado desempeño depende en gran medida de la
finición de esquemas para el intercambio directamente con la producción de software; armonía de todos los elementos del sector
tecnológico o la búsqueda de bajos costos al siguiente nivel le denominamos subestrate- interno de la empresa.
provenientes de otras naciones. gias y al tercero, fuentes de competitividad

Alejandra Herrara, es Maestra y Doctora en Administración por la Universidad Nacional Autónoma de México y cursó la Maestría en Economía Internacional por
el Instituto Politécnico Nacional. Es consultora e  investigadora en temas de gestión tecnológica y de negocios. Ha sido ponente en diversos foros nacionales
e internacionales relacionados con nuevas tecnologías. Se desempeña como académica en la Maestría en Negocios Internacionales de la misma Universidad
en el programa sobre competitividad e innovación tecnológica.

www.sg.com.mx AGO-OCT 2008 33


27
u ez
P
P P
///PPPSSSPP Beatriz
Velázq

nn ll
aaal T
TTS
SS P
N
N a
a cc
ciio
ioo n
ivvaa a
IInniicicciiaiaatttiiva N z
In adurela M
oa
El Camin competitivo que permita acelerar la incor-
poración del uso de TSP/PSP en México.

• Con el uso de TSP/PSP las empresas en Si bien, la Secretaría de Economía a través


México podrían tomar ventaja y adelantar- del Prosoft está fondeando el desarrollo de
se en la incorporación de estos procesos de la certificación para TSP organizacional en el
Es bien sabido que para desarrollar calidad en menor tiempo y obteniendo me- SEI, ésta tendrá un reconocimiento mundial.
software de calidad de manera consistente jores resultados. Así al mantener el sello del SEI México, será el
se requiere contar con una alta madurez de primer jugador (first mover) en este esfuerzo,
procesos. A nivel internacional, el modelo México ya ocupa el primer lugar mundial de obteniendo ventajas sobre quienes le sigan.
de madurez de procesos más popular es el personas certificadas en PSP, lo que nos da
modelo CMMI. Sin embargo, este modelo ventaja sobre nuestros competidores. El SEI » Relación CMMI-TSP
es complejo para implementar en empresas busca impulsar significativamente TSP/PSP Por lo regular se necesita de 18 a 24 meses
pequeñas. En México también tenemos la y está en busca de un socio que le ayude a para lograr un nivel en CMMI, lo que se tra-
Norma Mexicana basada en MoProsoft, pero cumplir este objetivo. México, como país ha duce en seis años para alcanzar un nivel 4 y
ésta se centra en los procesos de las empre- demostrado ser un aliado que permitirá con- ocho años para alcanzar un nivel 5.
sas, más no en los de las personas. tinuar con la evolución de dichos modelos.
Sin embargo, incorporar TSP/PSP acelera el
La estrategia para incrementar la madurez » Visión cumplimiento de las prácticas de CMMI de
de la industria de software en México, debe Con la implementación de este proyecto una forma más generalizada en la organiza-
de contemplar no solamente los procesos de México logrará: ción, y recorta significativamente el tiempo
las empresas sino, incluir el mejoramiento del • Posicionarse como el país con mejor cali- necesario para alcanzar cada nivel. Esto su-
elemento básico que da sustento a la indus- dad y valor agregado de manera ágil, ade- cede porque los integrantes del equipo de
tria: las personas. Precisamente en las perso- lantándonos a las capacidades de nuestros trabajo conocen y aplican PSP en sus proce-
nas se enfoca el Personal Software Process competidores. sos personales, lo cual acelera la implemen-
(PSP) y Team Software Process (TSP), crea- • Contar con un método avalado por el SEI tación de prácticas organizacionales.
dos por el Dr. Watts Humphrey del Software que permitirá demostrar ob-
Engineering Institute (SEI). jetivamente la calidad de los
proyectos desarrollados por las
Es así que la Secretaría de Economía ha dado empresas que usan el TSP.
marcha a la Iniciativa Nacional TSP/PSP, la • Que la calidad de los desarro-
Conclusión
cual se está trabajando directamente con llos con talento mexicano sean ar y rebasar a los
Si México quiere alcanz
el SEI y el Dr. Humphrey. El objetivo de esta mejores que aquellos con niveles arr ollo de software,
países líderes en des
iniciativa es crear en México la infraestruc- de alta madurez de CMMI. Esto un mé tod o que de re-
se requiere de
tura humana que permita la introducción permitirá hacer desarrollos en mejores que los
sultados inmediatos y
y expansión acelerada del uso de TSP, para menor tiempo y mejor calidad, lo los competidores.
métodos que utilizan
que la industria de desarrollo de software en que se transforma en una ventaja a es qu e TSP /PSP es ese
Nuestra apuest
momento donde
México alcance un desempeño superior al de costo. método. Estamos en un
los pioneros de
de su competencia internacional. podemos convertirnos en
» Acciones inmediatas ove cha r la corta ven-
este método y apr
»¿Por qué TSP/PSP? emos antes que
Las metas para alcanzar a corto tana de tiempo que ten
adopten. Si ha-
Los elementos que se conjuntan y que nos plazo con la Iniciativa Nacional nuestros competidores lo
o, se podrá cumplir
hacen creer en esta oportunidad son los si- TSP/PSP son: cemos bien todo est
guientes: • La definición de la primera ver- S. Hu mp hre y dijo en junio
lo que Watts
ndo volteará a
• La gran mayoría de las empresas que desa- sión del método de evaluación or- del 2006: “En 5 años el mu
le hic ieron?”
rrollan software en México son menores a 50 ganizacional del uso del TSP. México y dirá ¿Cómo
empleados. • La definición del método de
• El modelo que utilizan nuestros competi- mejora acelerada a través del
dores (CMMI) es complejo y apropiado para TSP+CMMI.
organizaciones grandes. • Los estudios de impacto del TSP, n sobre la iniciativa TSP
/PSP,
• El TSP/PSP, cuando se implementa correc- para ajustar su uso y prácticas. Para mayor informació triz Velázquez Soto
con tac tar a Bea
favor de
ia.gob.mx.
tamente, ha probado ser más eficaz que el • Desarrollar una infraestructura de bvelazquez@econom
CMMI Nivel 5. instructores y coaches a un costo

28 AGO-OCT 2008 www.sg.com.mx


Méx
M iccoF
éxic oF IR
IR ST
ST
ST
Andrés Simón Bujaidar

Méxi o F I R
no
Clasificando el talento mexica

Business Service
“Multiswitching”
Management
#10 *5

Concientes de la importancia del ta-


Automated “Distributed
Services Computing”

lento humano en el crecimiento de la Data-


mining BPML (4)
SOA (2)
TSP/PSP
“Personal
Medicine”
industria de TI, la Secretaría de Economía SOX (1)
XML (5) SAPF, SAPL
(Funcional) RFID (3)
WAP (6)
en conjunto con el Banco Mundial idea- ORACLE · Conocimientos
SAP
ORACLE
BPML (4) C-
Semiconductores,
funcionales (admin.,
ron y fondearán la creación y operación Diseño de finanzas, contabilidad)
.NET C, C++ MEMs
Maya, GPS
procesos SAP · Habilidades de ventas JAVA Multimedia
de MexicoFIRST (Federal Institute for de negocio · “Soft Skills para BPO (7)” Flash
Dreamweaver
ProTools,
(Multimedia)
Remote Services and Technologies). *OHMnT
1SPKFDU.BOBHFNFOU
Esta acción pondrá a nuestro país al nivel ²4PGU4LJMMT )BCJMJEBEFTJOUFSQFSTPOBMFTDPNVOJDBDJwO MJEFSB[HP OFHPDJBDJwO FUD
³
Figura 1
de los países líderes en materia de TI de
alto valor agregado, ya que el alcance de
esta iniciativa con carácter nacional, pro-
moverá y facilitará la capacitación y certi- Para lograr cristalizar su visión se sustenta- la especialización y adquirir la capacidad de
ficación de nuestro talento mexicano para rá en una misión que toca tres importantes atender a la creciente demanda internacional.
llevar a cabo actividades de TI y Business líneas de acción:
Process Outsourcing (BPO). Asimismo, • Otorgar al sector de TI el direccionamiento Este modelo nos permitirá incrementar la
facilitará y reducirá los costos de recluta- y las tendencias a nivel global, con el fin de especialización mediante la adición de nue-
miento de personal de las empresas. prever y estar siempre a la vanguardia. vos niveles y competencias, los cuales se irán
• Promover la capacitación y certificación en construyendo con una mezcla de revisiones
A nivel mundial la industria de TI y BPO ha competencias de TI y soft skills generales, así prospectivas y reactivas para seguir ofrecien-
presentado un aumento sostenido en los mismo promover a todo este capital huma- do recursos certificados en las nuevas áreas
últimos años, las proyecciones nos indican no ya certificado para ofrecer sus servicios tecnológicas de vanguardia pensando en
que para 2013 la demanda conjunta en TI en este sector. ofrecer a la industria nacional y global los ser-
y BPO rondará los 150 billones de dólares, • Proporcionar el acceso a la capacitación y vicios y productos que satisfagan sus necesi-
lo cual representa una enorme oportuni- certificación personal y empresarial a través dades de talento, conocimiento y servicio.
dad. Para insertarnos en dicho mercado, la del establecimiento de alianzas y generación
industria de TI en México deberá crecer a de economías de escala. » Metas
tasas aceleradas para lo cual requerirá de La primera meta de MexicoFIRST es certificar
150 mil nuevos profesionales certificados » Catálogo de Certificaciones a 6 mil personas al término de 2008. A partir
en competencias de reconocimiento inter- Los esfuerzos de MexicoFIRST están alineados del próximo año buscará certificar al menos
nacional (50 mil en temas de TI y 100 mil a cubrir los requerimientos tanto inmediatos a 12 mil personas de forma anual, lo cual re-
de BPO). Para hacer frente a este reto, la Se- como futuros en materia de recursos huma- presentará una inversión conjunta de más de
cretaría de Economía a través del PROSOFT nos, para lo que se ha generado un catálogo mil millones de pesos en los primeros cinco
invertirá 40 MUSD en los próximos 5 años de certificaciones progresivo. El objetivo será años de operación.
para sumarlos a las inversiones estatales y ir elevando el conocimiento en materia de TI y
privadas y alcanzar así nuestra meta. BPO con el fin de buscar niveles superiores de El alcance nacional y la sinergia que generará
especialización. La figura 1 muestra la estruc- MexicoFIRST con el PROSOFT, los gobiernos
MexicoFIRST es una iniciativa de la in- tura de este catálogo progresivo. estatales y la industria, aunado a una lista de
dustria nacional alineada a las mejores alianzas estratégicas con las firmas propieta-
prácticas mundiales teniendo como so- El modelo de capacidades previsto para los rias de los modelos, estándares y lenguajes
cios fundadores a la ANIEI y CANIETI. Su primeros años de operación está sustentado le permitirá acceder a economías de escala
misión es proveer a nuestra industria de por el dominio del idioma inglés, la adminis- para brindar servicios de insuperable calidad
las certificaciones necesarias para que tración de proyectos y los “soft skills”. Los tres con una ventaja significativa en el costo.
nuestro talento en las áreas de TI y BPO niveles de especialización técnica represen-
sea reconocido globalmente, vinculando tados por los semicírculos concéntricos, nos iniciativa
n sobre la
las necesidades de la industria con el tra- indican el camino que habrá de seguir la certi- a m ay or informació ta r a A ndrés Sim
ón
Par ac
IR S T, fa vor de cont om ia .g ob .mx.
bajo de la academia. ficación en el país para poder ir avanzando en MexicoF bujaidar@
econ
Bujaidar as

www.sg.com.mx AGO-OCT 2008 29


l mmme
een
nntteee???
t
ooss RR
Reeeaaall Rafael
Bernal
e mm
uuueeerrreemo s
uuéé Q
Q
¿¿QQ Q
¿Qué
e un País
cimi ento d
El Cre Sin embargo, aunque el horizonte parece lleno
de esperanza, vamos demasiado lento, o todos
los demás van muy rápido. Y es que sin impor-
tar la ideología política de cada país, ellos ven
primero por lo que les conviene y se dedican a
México es un país muy complicado. No nos tomar medidas pragmáticas para lograrlo. Un
tenemos confianza entre nosotros mismos y día Deng Xiaoping dijo que era glorioso ser rico,
nuestras ideologías y preferencias partidistas y todo China se volcó a lograrlo. Gran idea, es-
van por encima del bien nacional; preferimos pecialmente comparada con la idea que pare-
que algo no se haga a que lo haga el contrario, cemos tener sobre proteger la pobreza en lugar
aún si sabemos que es bueno, útil o necesario. de fomentar la riqueza; parece que es más fácil
Esto nos ha llevado a una inacción de propor- ayudar al pobre a seguirlo siendo, que crear las
ciones alarmantes y a una costumbre muy dañi- condiciones que generen riqueza.
na, que es planear ad infinitum para posponer,
o de plano no tomar, decisiones. Y así vamos » La excelencia en el estudio
por la vida, anclados a un pasado glorioso que Como ejemplo de esta situación que sufrimos,
nos dicta nuestro quehacer, mientras otros sim- hago un pequeño comentario sobre la educa-
plemente ven hacia el futuro y progresan. ción. Un día me dijo una maestra de primaria que
no era posible exigir la tarea a un niño que no
El problema en estos tiempos es que todos los desayunó; le respondí que con esa filosofía pro-
países nos están rebasando y nosotros segui- bablemente este niño no iba a desayunar toda
mos metidos en nuestro profundo laberinto su vida. Nuestros gobiernos se han dedicado a
de ideologías, en lugar de enfocarnos a lo que cubrir con sus alas protectoras a la ciudadanía,
es bastante evidente que puede sacarnos del especialmente si son pobres, dejándolos en su
atascadero, que es crear una base de industria ignorancia, en lugar de demandar la excelencia
mexicana globalmente competitiva. en el estudio y luego en la vida. Para cualquier
país inteligente que cree realmente en la educa-
Tal vez la excepción hoy sea el programa Prosoft ción de calidad, ésta es la única actividad don-
de la Secretaría de Economía, que fue desarro- de el elitismo es totalmente aceptado: al niño o
llado en conjunto por la propia industria, el Go- niña que tiene el cerebro se le dan todas las fa-
bierno y la Academia. Afortunadamente ningún cilidades para que obtenga la mejor educación
partido político ha visto al software con malos posible, viéndolo/la realmente como el futuro
ojos, tal vez por que ninguno de nuestros pró- del país. Al que no, se le da solamente el me-
ceres tuvo nada que decir sobre él. Es más, nos jor nivel de educación que pueda absorber. En
tocó ser testigos de que al construirse el edificio cambio, en México alegamos que la educación
para empresas de software en Vallejo a finales universitaria debe ser para todos, y así tenemos
del sexenio pasado, tanto en las ceremonias de que la mejor institución educativa del país debe
la primera piedra, —en plena campaña presi- aceptar muchachos que escasamente saben
dencial—como en la inauguración, —con Refor- leer porque “recibir una educación universita-
ma tomado—se dieron un cordial abrazo el Jefe ria es su derecho como mexicanos”, cuando el
de Gobierno y el Secretario de Economía, ambos principio debería de ser “recibir una educación
apostando por la industria de software mexicana al límite de su capacidad es su derecho como
sobre los problemas políticos partidistas. mexicanos”. En el primer mundo, China, Cuba,

Rafael Bernal,  se dedica desde 1997 a promover una industria mexicana de software competitiva. Su experiencia de 35 años en software incluye CIO en
Procter & Gamble México, fundador de Heurística en 1982, entrepreneur en Silicon Valley  y actualmente Presidente de Prosoftware, A. C., desarrolladora
del clúster de empresas de software del Distrito Federal. Rafael considera que la riqueza de un país está en su gente.
 

30 AGO-OCT 2008 www.sg.com.mx


los países asiáticos y los de Europa Oriental, Hoy un parque de software es algo que in- neación a mediano y largo plazo y una vi-
la educación masiva sin requisitos no existe; teresa a muchas entidades. Se han experi- sión verdaderamente de estado harán mi-
los que estudian son los que se lo ganan y lo mentado varias formas de financiamiento, lagros por la economía de aquellos estados
saben desde la primaria, y por eso nos reba- pero considero que la ideal es la ya proba- que de veras quieran. Ya estamos viendo
san con mucho. A ellos se les exige mucho y da en varias partes del mundo: el gobierno que existen estados importadores y esta-
se les trata como adultos, a nosotros se nos interesado dona el terreno, una empresa dos exportadores de talento, y esto sólo se
da poco y se nos trata como niños. que tenga los conocimientos apropiados debe a que algunos tienen ideas y modelos
construye y promueve, y las empresas de mejores que otros. Nosotros en Prosoft-
Pero regresando a nuestra industria de soft- tecnología que se instalan ahí tienen las ware, una asociación creada para construir
ware, aunque aún vamos increíblemente ventajas de un precio menor al del mercado el primer clúster de software en el DF, pro-
lentos –recuerdo que hace 11 años, cuando (a cambio del terreno que donó el gobier- movemos que las empresas que se sumen
todo este movimiento empezó, consideré no), un ambiente adecuado para la sinergia a nuestra asociación lo hagan para crecer y
que en unos dos o tres años estaríamos en y las asociaciones, así como para la ense- ser mejores; los que no tengan estas metas,
camino a ser un país de software, ya que ñanza accesible de conocimientos para las no podrán ser asociados. Queremos cam-
era tan obvio el negocio-país para México— mismas empresas y sus empleados, y un biar el esquema de dádivas improductivas
parece que avanzamos y estamos empezan- lugar donde la gente pueda crecer profesio- por el de ayuda para lograr entes producti-
do a ver un punto de inflexión ascendente nal, intelectual y hasta personalmente. vos para la sociedad. Queremos demostrar
en la curva de la industria, que debería ser que habemos muchos que sí queremos y
exponencial, como lo ha sido en India o Ir- » Logrando entes productivos que podemos sacudirnos el paternalismo
landa. Analizando hoy lo que ha pasado en Si realmente queremos desarrollar esta in- tradicional y usar la reciente libertad de
esos 11 años y el estado de nuestra indus- dustria, los gobiernos tienen que estar con- que gozamos para construir una indus-
tria, considero que lo que hace falta ahora vencidos, no sólo de dientes para afuera, tria productiva para el país.
es la infraestructura para fomentar el creci- sino con su bolsillo y sus propios proyec-
miento, la que se encuentra en los parques tos, hasta ahora internos, de desarrollo de
de software. La razón es que la gran mayoría software. La entidad que realmente quiera
de nuestras empresas, que de hecho son será ganadora indudablemente. La que
muchas, son demasiado pequeñas para po- entre tibiamente, se quedará
der competir, no importa qué tanta calidad en el camino. Una
logren tener. En un mercado de servicios, el buena pla-
tamaño es crucial.

» Parques tecnológicos
Los parques tecnológicos, en particular los
de software, pueden permitir que varias em-
presas pequeñas se conozcan y promover
el que existan motivadores para que logren
juntarse en una empresa mayor que tenga
la capacidad de atraer clientes e inversionis-
tas. Una empresa de veinte personas apenas
podrá llevar alguna metodología de calidad
y no logrará tomar clientes interesantes ni
mantener al día a su gente o contratar a la
gente más capaz a causa su tamaño. Pero
si se juntan varias empresas, logrando unos
200 – 250 empleados, esta nueva empresa
ya estará en capacidad de buscar mercados
más interesantes, de tener capacidad para
dar el entrenamiento continuo indispensa-
ble a todos sus empleados y de crecer. Todo
esto además la puede hacer interesante a los
ojos de inversionistas que puedan aportar el
capital necesario para un crecimiento mucho
más rápido. Recordemos que la demanda
por servicios de software es tal que toda la
industria India sigue creciendo a más del
20% anual y su tasa promedio anual durante
los últimos 20 años es cercana al 30%.

www.sg.com.mx AGO-OCT 2008 31


mm
maa
ann o
noo
iitita H
aalll H
Huu
u Pedro
Galván
l C
C a
a p
pp t
ll R
R e
e ttooodddeeell Ca
EE Ret
El
a nza do
ha a l c
tino nos
E l d e s

C ualquiera que participe en la industria de software en México estará de


acuerdo en que el reto más grande que enfrentamos es el del capital humano.
Hay una gran cantidad de proyectos que están detenidos o se están enviando
a otros países porque no contamos con la gente necesaria.

» Algunas cifras a considerar


De acuerdo a las estimaciones de SG, en México existen cerca de 60 mil profe-
sionistas de software activos –con esto me refiero a personas cuya principal ac-
tividad laboral es desarrollar o mantener software. Por otro lado, la cifra no oficial
que se maneja en la industria de TI es que hay un déficit de 50 mil profesionistas
de TI, de los cuales alrededor de 20 mil son específicamente de software. La cifra
es alta, pero no se me hace descabellada, ya que tan solo en el último mes platiqué
con tres empresas diferentes que necesitaban a mil ingenieros de software cada
una. Entonces, si tenemos 60 mil profesionistas de software y nos hacen falta otros
20 mil, estamos hablando de un reto considerable.

Ante esto, lo primero que nos preguntamos es cuántos egresados estamos generan-
do. De acuerdo con datos del Anuario Prosoft 2007, anualmente se gradúan 60 mil
profesionistas de carreras relacionadas a TI. Esa es una cantidad alentadora, el proble-
ma está en que el porcentaje de graduados que cuenta con los conocimientos necesa-
rios para desempeñarse profesionalmente como desarrollador de software es de entre
un 10% y 15%. Eso significa que en el mejor de los casos estamos generando 10 mil
profesionistas de software al año, lo cual no es suficiente.

» Hemos generado demanda pero …


PROSOFT ha potenciado significativamente a la industria, pero no hemos logrado satisfacer
la demanda de gente que hemos generado (ya tengo espacio en el parque tecnológico, tengo
infraestructura, conseguí clientes, ¿y ahora donde está la gente para hacer los proyectos?).

Un factor que agudiza el problema es que la mayoría de las empresas de nuestra indus-
tria son pequeñas y no tienen capacidad para desarrollar personal, ellos necesitan gente
que pueda rendir inmediatamente. Y por otro lado, aquellas que tienen capacidad para
desarrollar a la gente no están muy dispuestas a hacerlo por el alto porcentaje de
rotación de personal (pirateo).

» El riesgo de las certificaciones


Los actores de la industria están muy conscientes del reto de capital humano que
enfrentamos, y es por ello que la iniciativa fuerte de este año es la de Mexico-
FIRST. Creo que este programa reúne buenas prácticas que van a mejorar el fun-
cionamiento de la capacitación y certificación en México. Ayuda a dar enfoque,
generar economías de escala, y simplificar los procesos para las organizacio-
nes que contratan servicios para capacitación y certificación. Sin embargo,
no debemos perder de vista que las certificaciones solo son el betún del
pastel. Previo a lograr una certificación debemos cumplir con los conoci-
mientos fundamentales que requiere un ingeniero de software.

32 AGO-OCT 2008 www.sg.com.mx


“Primero debemos asegurarnos de establecer los fundamentos
y posteriormente enfocarnos en herramientas específicas ”

Las certificaciones facilitan significativamente la venta de servicios » Generando experiencia


de “staffing” para el extranjero. Sin embargo, todos estamos de acuer- Otro gran problema que enfrentamos es el ciclo vicioso de la experiencia.
do en que ese es un mercado de bajo valor donde solo se compite Las empresas no contratan recién graduados porque no tienen experien-
por tarifa, y esa es una guerra que no nos interesa. Así que si la estra- cia y estos nunca generan experiencia porque no los contratan, pasan los
tegia es proveer servicios de alto valor agregado, deberíamos pre- años y terminan poniendo un Internet café o dedicándose a otra cosa.
ocuparnos primero por generar gente capaz de entender problemas
y resolverlos de forma innovadora. Aquí no hay una solución única, sino la suma de muchos pequeños
esfuerzos. Una de las herramientas con las que contamos y debemos
Esto no significa que estoy en contra de las certificaciones. Creo que aprovechar mejor son los periodos de prácticas profesionales que se
son un elemento importante y hay que impulsarlas, especialmente dan en la mayoría de las universidades hacia el final de la carrera. Hay
porque son algo medible. Pero tampoco debemos caer en la ilusión que armar y gestionar bien estos programas para que brinden expe-
de que son una varita mágica que de pronto va a convertir en “em- riencia realmente útil a los participantes.
pleable” a alguien que no tiene las bases adecuadas (el mono vestido
de seda mono se queda). Por otro lado, las empresas deben apostarle más a estos recién gradua-
dos. Ciertamente ayudaría contar con mayores incentivos para quienes
» Énfasis en fundamentos emplean gente por primera vez, además de mayor protección contra
Parecer ser que estamos dando por hecho que nuestros estudiantes el pirateo de gente, pero aun así las empresas también deben poner su
y profesionistas de software ya cuentan con los fundamentos de esta parte y pensar en que al entrenar a un ingeniero de software, aunque
disciplina, y solo es cosa de capacitarlos/certificarlos en inglés y mé- este se vaya a otra empresa, le está haciendo bien a la industria en ge-
todos/tecnologías específicas. Sin embargo, la retroalimentación que neral y ese beneficio le va a regresar a la empresa de una u otra forma.
continuamente recibo de los consultores que hacen implantaciones
de modelos de calidad de software en nuestro país es que la mayoría » Nada sirve sin la participación de las personas
del tiempo/esfuerzo de una implantación se va en la capacitación de A pesar de todo esto, no debemos pasar por alto que aunque defi-
fundamentos. Es decir, cosas como qué es un requerimiento y qué namos los mejores modelos de competencias y consigamos todos
elementos tiene, qué significa diseñar un sistema de software y qué los recursos para implementarlos, si los estudiantes y profesionistas
tipo de decisiones involucra, qué es la gestión de la configuración y no le entran a este esfuerzo, todo va a ser inútil. Desde mi punto de
por qué es importante. vista, la gran mayoría de los estudiantes y profesionistas de nuestra
industria se encuentran en su área de confort. Hay miles de personas
Ante esto, creo que primero debemos asegurarnos de establecer que trabajan en el área de sistemas de su empresa y que consideran
esos fundamentos, y posteriormente enfocarnos en herramientas y que con saber más o menos como funciona el ERP en su empresa
tecnologías específicas. De no ser así, solo le estamos poniendo be- (o cómo está estructurado su warehouse), ya con eso la hacen. Hay
tún a miles de pasteles que no están bien horneados. otros miles de estudiantes que piensan que con graduarse ya tienen
trabajo seguro. Ellos piensan que simplemente por tener un título de
» El rol de las instituciones educativas Ing. en Sistemas ya merecen ser gerentes de sistemas en un banco, y
Las instituciones educativas están conscientes de este problema y es- si no entonces es culpa de la universidad o del gobierno.
tán en la mejor disposición de realizar los ajustes necesarios para re-
solverlo. La ANIEI (Asociación Nacional de Instituciones de Educación Es triste ver que países como Argentina o Colombia, que tienen mu-
en Tecnologías de la Información) generó el modelo paracurricular, chísimo menos habitantes que México, tienen más participantes que
que es su propuesta para dotar a los estudiantes con los conocimien- nosotros en programas de certificación gratuitos, como el de desa-
tos y competencias que requiere la industria. El reto que enfrentan rrollador cinco estrellas de Microsoft (tan solo por dar un ejemplo).
actualmente es el de implementar dicho modelo de forma rápida.
Digamos que es difícil transformar a 600 instituciones educativas Le hemos entrado a una competencia global. El gobierno tiene esto
cuando sólo se cuenta con los ratos libres entre clases. La nota positi- muy claro, las empresas también, pero al parecer las personas toda-
va es que el BID recientemente aprobó una cantidad significativa de vía no. Y mientras no logremos cambiar esta actitud, ningun progra-
dinero para fondear el proyecto de implantación de este modelo. ma de formación va a servir.

www.sg.com.mx AGO-OCT 2008 33


// COLUMNA invitada

Lecciones Aprendidas de la Quiebra


de Air-Go Technologies
Cuando el ego nos alcanza
Por Héctor Obregón

D e 1996 a 2002 tuve la oportunidad de


participar como fundador y Director General
conmigo para alertarme sobre esto pero
esta soberbia me impidió escucharlos. Una
Mi ego en ese momento influyó también en
algunos conflictos con mis socios. Llegue a
de una empresa de servicios de desarrollo tremenda frase que jamás olvidaré refleja estar más preocupado por mi posición in-
de software en México. Esta empresa inicial- la actitud que tenía en 1999. Poco después terna y externa como Director General que
mente se llamó InterSoftware y más adelan- de haber acordado la primera ronda de fi- por la salud del negocio. Fue fácil distraerme
te Air-Go en su último año y medio de vida. nanciamiento institucional para la empresa con juegos de poder donde ya no se trataba
En ella perseguimos el sueño de crear la por un monto de un millón de dólares, le co- de lo mejor para el negocio sino de lo más
mejor empresa de su tipo en México. Duran- menté a mi socio co-fundador de la empre- placentero para el propio orgullo. En parti-
te varios años creímos que lo lograríamos y sa: “Ya no es posible que fallemos después cular este problema se hizo manifiesto en
después, en un periodo de tiempo muy cor- de esto.”. Varios años después, inmerso en nuestro intento fallido de fusión con otra
to, fallamos por completo resultando final- la crisis del negocio, otro de mis socios, un de las empresas líderes del mercado en ese
mente en la desaparición del negocio. empresario exitoso radicado en Estados momento: Kiven. Mi conflicto con su Direc-
Unidos me comentaría que mantiene en su tor General, fue el factor determinante para
InterSoftware/Air-Go pasó de 5 colaborado- oficina un enorme poster de PanAm Airlines el fracaso de esta operación que probable-
res en 1996 a más de 300 en el año 2001. (ahora desaparecida) para nunca olvidar mente, bien ejecutada, hubiera resultado de
Para el 2002 había desaparecido como en- que, sin importar el tamaño o el éxito alcan- gran beneficio para ambas empresas.
tidad funcional. Nuestra empresa fue de las zados, la posibilidad de perderlo todo siem-
primeras en México en el desarrollo de apli- pre estará vigente. Tomamos riesgos extremos en la operación
caciones para dispositivos móviles (1998), financiera de la empresa. La supervivencia y
búsqueda formal de certificación CMM El éxito aparente también nos había colo- el muy acelerado crecimiento durante 4 años
(1998), implementación de un modelo de cado a mí y a algunos de mis colaboradores no nos sensibilizaron al nivel de riesgo que
fábricas de software de bajo costo (1999), dentro de nuestra zona de confort. Nues- adquirimos. Adicionalmente en el periodo
obtención de fondeo institucional de capital tros ingresos personales eran más que 1996-2000 era muy fácil para una empresa
de riesgo (1999), exportación de servicios suficientes para llevar una vida cómoda y innovadora en el sector de IT obtener fondos
de desarrollo de software a Estados Unidos estaban totalmente desconectados de la y financiamiento debido al entusiasmo ge-
(2000), y crecimiento mediante la consoli- rentabilidad y la generación de valor de neral en los mercados sobre las posibilida-
dación con competidores (2001). Aunque la empresa. Aún cuando como socios de- des de este tipo de empresas. Este entorno
nuestra visión puede haber sido la correcta beríamos haber estado más preocupados reforzó la precepción que teníamos de ser
en varios aspectos, quizá se adelantó un por el desempeño financiero del negocio, prácticamente infalibles.
poco a su tiempo y, mucho más importante, la realidad de nuestro día a día era dema-
nuestra ejecución fue incompetente. siado cómoda. La experiencia del fracaso
La postura personal de orgullo que condujo
En este artículo comparto mis experiencias Sin duda otra de nuestras fallas fue el in- a mi empresa a fracasar se enfrentó con la
personales a través del proceso del fracaso tentar hacer demasiadas cosas al mismo dura realidad en aún menos tiempo del que
de esta empresa así como las que considero tiempo. En un periodo muy reducido de había tomado el “éxito”. Cuando disminuyó
son las principales lecciones que espero ha- tiempo expandimos nuestras operaciones el ritmo de crecimiento de la compañía ha-
ber aprendido durante el proceso. a Guanajuato, Monterrey y, mucho más di- cia fines del año 2000 debido a la combina-
fícil, Estados Unidos. Todo esto sin tener ción de una desaceleración de la economía
Las causas del fracaso experiencia previa sobre las implicaciones y del tamaño que habíamos alcanzado ya,
Tuvimos mucho éxito en un periodo corto de administrar un crecimiento acelerado. en cuestión de un trimestre se hicieron sen-
de tiempo y con relativa facilidad. Desafor- Alcanzamos a nuestro nivel de incompeten- tir en el flujo de efectivo los problemas de
tunadamente, en mi caso personal eso me cia rápidamente. Acabamos haciendo mu- rentabilidad sistémicos que el negocio te-
condujo a una actitud de soberbia que me chas cosas mal en lugar de pocas bien. Lo nía. Durante años la acelerada tasa de cre-
cegó a la posibilidad de visualizar los pro- más grave fue que estas operaciones dis- cimiento en ventas (de alrededor de 100%
blemas que se avecinaban con el tiempo trajeron la atención de la dirección del ne- anual) permitía financiar la operación de la
suficiente para actuar y prevenirlos. Varios gocio principal que probablemente hubiera empresa aun cuando su rentabilidad real
de mis colaboradores y socios se acercaron podido salir adelante con más atención. fuera entre mediocre e inexistente.

34 AGO-OCT 2008 www.sg.com.mx


“Debemos respetar a cualquier socio
potencial de tal manera que sus aportaciones
sean genuinamente efectivas, para el
desarrollo del negocio”.

Pocas cosas son más difíciles que enfrentar- Superar el vacío fuerte y creo que me hubiera hecho perder
se a dificultades de flujo de efectivo de corto Ahora, varios años después, no puedo más más tiempo y dedicarle energía a persecu-
plazo en la operación del negocio. Rápida- que sentirme afortunado de haber superado ciones sin sentido.
mente nuestras líneas de financiamiento ese momento extraordinariamente doloroso
estaban saturadas y nos enfrentamos a pro- y difícil. Hay una serie de elementos que En la medida de lo posible, busque enfren-
blemas para solventar los costos de opera- fueron clave para poder salir adelante. tar la situación con la máxima franqueza
ción más indispensables como la nómina de posible con los distintos afectados por el
nuestro personal. Simultáneamente la “luna Sin duda lo más importante fue el que, aún cierre de la empresa. Había que darle malas
de miel” con los inversionistas instituciona- durante el punto más álgido, conté con el noticias a muchas personas. A los colabo-
les terminaba y nos enfrascamos en discu- apoyo de varias personas que siguieron radores, socios, acreedores, clientes y pro-
siones sobre cómo solucionar el problema creyendo en mí. Esta confianza fue el sal- veedores. Todos se vieron afectados negati-
sin llegar a acuerdos a la velocidad que la vavidas que en ese momento me permitió vamente por los errores que cometimos. En
situación demandaba. Los clientes se per- no ahogarme. Puedo mencionar a Mauricio la gran mayoría de los casos, el trato franco
cataron de nuestros problemas y, natural- Mingramm, mi actual socio en emlink, a con ellos evitó problemas muchos mayores.
mente, perdieron la confianza en nosotros Marcos Achar, Director General de Comex Los casos donde no me fue posible hacerlo
como proveedores lo que aceleró nuestra (que continúa siendo nuestro cliente) , a mi o no dediqué el tiempo necesario fueron los
caída. Provocando que los inversionistas tío Raúl Obregón, y a un compacto equipo que se complicaron después convirtiéndo-
institucionales perdieran la posibilidad de de colaboradores que continuaron creyendo se, por ejemplo, en serios dolores de cabeza
creer en mí y se negaran a proporcionar en mí a pesar de todos los errores que co- legales. Sin embargo, creo que no es posi-
fondos adicionales para “darle la vuelta” al metí. A todos ellos les estaré agradecido el ble satisfacer a todos los afectados. Hay que
problema. Aún cuando nuestros colabora- resto de mi vida por su apoyo y confianza. entender esto y prepararse para asumir las
dores hicieron un importante esfuerzo por consecuencias.
seguir operando, aun ante la falta de pago, Durante este trance descubrí el significado
naturalmente esto nos llevó a un desgaste de la fe. No soy un hombre religioso. Sin em- 10 lecciones aprendidas
finalmente insalvable. bargo, jamás había estado en una situación Las siguientes lecciones de aprendizaje per-
donde tuviera que simplemente creer que sonal no pretenden ser una receta general
Para fines del 2001, la única opción que me iba a salir adelante sin tener la más remota para quien se encuentre en una situación
quedaba para evitar el cierre inmediato de idea de cómo lo lograría ni ningún funda- similar. No son resultado de un amplio es-
la empresa era aceptar mi remoción como mento lógico para creer que fuera posible. tudio de casos. Simplemente son un breve
Director General para tomar las funciones de Creer genuinamente en algo sin ningún fun- resumen de lo más significativo de lo vivido
ventas. Fue muy poco y demasiado tarde. damento racional es para mí el significado personalmente a lo largo de la experiencia
más claro de la fe. relatada y de la posterior búsqueda de cons-
Consideraba, y sigo considerando, a mis truir una nueva empresa, emLink.
principales colaboradores como mis amigos. Fue necesario procesar emocionalmente el
El afecto hacia y desde ellos dificultó enor- fracaso y asumirlo. Esto no me fue posible 1. La gente vale la pena
memente contar con la claridad suficiente hacerlo rápidamente. Se requiere un espa- Mencioné que el afecto con y desde mis cola-
para tomar las decisiones adecuadas. cio de tiempo para poder procesar el duelo. boradores dificultó la toma de algunas deci-
Sin temor a exagerar, me parece que el dolor siones importantes. Sin embargo, no me ima-
En cuestión de meses pasé de una posición de ese momento haya sido similar al de la gino ni me interesa la construcción de una
de orgullo desmedido al otro extremo emo- pérdida de un ser querido. No es posible sa- relación de trabajo sin afecto. Estoy absolu-
cional. Me sentí la persona más incompeten- lir adelante de un dolor de este tipo sin darle tamente convencido de que la construcción
te y estúpida del mundo. Las malas noticias oportunidad de seguir su curso. de un afecto es indispensable para lograr una
adicionales, por pequeñas que fueran, me motivación de conjunto y un liderazgo efecti-
provocaban crisis de pánico. Resultaba casi Necesité aprender a mirar siempre hacia el vo. Así que, en lugar de renunciar a este me
imposible levantarse a trabajar todos los días futuro y rápidamente dar vuelta a las pági- parece que lo mejor es incorporarlo dentro de
y la magnitud del problema me sobrepasó nas del fracaso. La tentación del enojo y de una ética de trabajo y claridad en la defini-
tanto personal como profesionalmente. aferrarse al éxito anteriormente logrado era ción y evaluación de objetivos profesionales.

www.sg.com.mx AGO-OCT 2008 35


// COLUMNA invitada

“Los clientes se percataron de nuestros


problemas y, naturalmente, perdieron la
confianza en nosotros como proveedores, lo
que aceleró nuestra caída”.

Esto permite a las dos partes involucradas en ciplina en este aspecto. Es necesaria para 8. 1% inspiración, 99% ejecución
una relación de trabajo contar con un marco el bien de todas las entidades relacionadas El mundo está lleno de grandes ideas.
de evaluación objetivo sobre los resultados con una empresa: socios, colaboradores, ¿Cuánta gente no conocemos que celebra
del trabajo conjunto. clientes, proveedores y acreedores. Una em- que “se le ocurrió primero” o “ya lo veía
presa que no es rentable acaba fallando con venir”? La diferencia entre un espectador y
2.Ten un sueño la comunidad con que se relaciona. un protagonista en mi opinión, no son las
Después del fracaso vivido, pasé una tem- ideas, es la capacidad de ejecutar sobre sus
porada abandonando mis sueños, enfocado 5. Que mantener el foco sea la doctrina ideas y llevarlas al resultado final deseado.
exclusivamente a la rentabilidad de corto Siempre que emprendamos una nueva ini- Los planes en nuestra mente siempre serán
plazo y la estabilidad del nuevo negocio ciativa hay que evaluar con honestidad si posibles. La realidad es otra cosa.
para evitar a toda costa una repetición de la realmente tendremos la capacidad de ejecu-
experiencia anterior. Ahora me parece que tarla y llevarla a término. Es fácil caer en la 9. Para emprender hay que ser un poco
sin un sueño no es posible construir una mi- tentación de hacer más de lo que realmente bipolar
sión efectiva, atraer y retener a los colabo- tenemos capacidad de ejecutar. Una cosa a Es necesario mantener un optimismo (casi)
radores talentosos que cualquier empresa la vez. O, cuando mucho, tantas como poda- irracional sobre el futuro. Mantener el entu-
que desee ser exitosa requiere. mos ejecutar efectivamente. siasmo y la convicción de que el sueño que
hemos trazado como objetivo es en verdad
3. Busca socios que compartan tus valores 6. Ten paciencia alcanzable en todo momento. Transmitir ese
Los conflictos que con mayor facilidad pue- La velocidad de ejecución siempre es menor entusiasmo a todo nuestro entorno. Al mis-
den destruir a una empresa, son entre los a la velocidad de la imaginación. Es nece- mo tiempo, se necesita un pesimismo (un
socios de esta. Entrar en una sociedad de sario tener paciencia para ver que aquello tanto) irracional para la toma de decisiones
negocios implica evaluar claramente nues- que imaginamos se convierta en realidad. financieras. ¿Realmente es necesario este
tro entendimiento. Vale la pena incorporar Hay que ser enconadamente persistentes y gasto?, ¿podríamos vivir sin él?, ¿podemos
desde un inicio la posibilidad de la sepa- entender que cualquier proceso de cambio ejecutar esta inversión? Planea para el me-
ración. Como en un matrimonio dónde la que involucre la participación de un equipo jor escenario, ejecuta previendo siempre el
posibilidad real del divorcio nos motiva a de trabajo llevará tiempo. Los sueños si son peor escenario. Recuerda que siempre se
construir la relación todos los días. Un socio alcanzables, más no sin esfuerzo, tenacidad puede poner peor.
debe compartir valores e idealmente com- y paciencia.
plementarnos en habilidades, capacidades 10. No se te olvide por qué estás aquí
y puntos de vista. Debemos respetar a cual- 7. Sin riesgo no hay (casi) crecimiento Más allá de cualquier consejo práctico de
quier potencial socio de tal manera que sus Toda empresa implica un riesgo. Sin impor- negocios, evalúa contantemente por qué
aportaciones sean genuinamente efectivas tar cuantas lecciones creamos haber apren- haces lo que haces. ¿Contribuye el ser em-
para el desarrollo del negocio. dido, si queremos crecer y alcanzar nuestro presario a tu felicidad? Es fácil perderse en
sueño como organización, habremos de el día a día y un día darse cuenta de que el
4. Se un Nazi con tu disciplina financiera asumir riesgos que nos pueden llevar al sueño se ha ido o de que la rutina nos ha
Para las empresas generar utilidades es fracaso. Es inevitable esta relación. Sin em- absorbido. De vez en cuando vale la pena
equivalente a comer para el ser humano. Si bargo, podemos buscar calcular el riesgo de hacer una pausa en el camino para evaluar
un negocio no es rentable tendremos asegu- tal forma que nos podamos permitir siempre por qué somos empresarios. Cada uno ten-
rada la imposibilidad de alcanzar los sueños la posibilidad de fallar en alguna iniciativa drá que encontrar su propia respuesta.
y la visión que hemos trazado para este. Por individual sin que esto conduzca al fracaso
lo tanto, vale la pena ejercer una férrea dis- total de la empresa.

Héctor Obregón (http://msdnfan.blogspot.com) es Director General de emLink desde 2002 (www.emlink.com.mx), Microsoft MSDN Regional Director y
Microsoft MVP para Windows Embedded. De 1996 a 2002 fue Director General de Air-Go Technologies (antes InterSoftware).

36 AGO-OCT 2008 www.sg.com.mx


www.sg.com.mx AGO-OCT 2008
// PRÁCTICAS /*ASEGURAMIENTO DE CALIDAD*/

Revisiones entre Colegas


Una Práctica de las Mejores
Por Edith Martínez

Las revisiones entre colegas (peer reviews) están descritas dentro Roles participantes
del proceso de verificación de CMMI, y tienen como objetivo ase- Estos son los roles que típicamente participan en la revisión:
gurar que los productos de trabajo seleccionados cumplan con los • Moderador. Es quien se asegura que se envíen los productos a los
requerimientos especificados. Estas revisiones son un mecanismo involucrados, que la revisión se conduzca correctamente, se revise
de verificación eficaz para prevenir y eliminar defectos, además de al producto y no a la persona, se compartan las observaciones y se
identificar oportunidades de mejora. hagan las modificaciones pertinentes.
• Autor. Elabora o desarrolla el producto que se revisará. Durante
Estas revisiones típicamente son aplicadas por compañeros de traba- las revisiones provee las explicaciones necesarias sobre el producto
jo, muchas veces integrantes del proyecto que tienen un interés en el en revisión.
artefacto bajo revisión. Los revisores son conocidos como colegas, ya • Revisores. Son los expertos o colegas que se preparan para la revisión,
que tienen roles o actividades similares a los del autor del producto. encuentran defectos y retroalimentan acerca de las observaciones.
  • Tomador de notas. Es quien completa las formas con los hallazgos
La aplicación de las revisiones entre colegas tiene diversos beneficios: encontrados, observaciones realizadas, registra los tiempos y clasi-
• Promueve la generación de productos completos y correctos. fica los hallazgos.
• Ayuda a establecer un estándar de excelencia. • Lector. Participa realizando lecturas relacionadas al producto revi-
• Promueve el seguimiento del estilo y reglas de construcción en los sado, en caso de ser requerido.
proyectos.  
• Provee múltiples vistas en las revisiones. Es importante hacer notar que no es requerida una persona para
• Permite obtener mediciones para mejorar el proceso y administrar ejecutar cada rol, por el contrario una persona puede realizar dos
la calidad de los productos. o más roles de acuerdo a las necesidades, cuidando que nadie sea
  juez y parte para asegurar la objetividad.
Algunas definiciones  
Formalmente, una revisión es una técnica para encontrar y eliminar Durante la revisión es importante enfocar las observaciones solo ha-
defectos de productos de trabajo, tan temprano como sea posible y cia el producto y no al autor, así como asegurarse que se levanten
de manera efectiva. defectos y no soluciones, pues las últimas pueden tomar más tiem-
  po del esperado y afectar en el lapso de las revisiones.
Un defecto es:  
• Cualquier ocurrencia en un producto de trabajo que determine que Tipos de revisiones
esté incompleto, incorrecto o con faltantes. Existe variedad en los tipos de revisiones, cada uno con característi-
• Cuando no se satisface un requerimiento. cas diferentes y con diferentes propósitos. Algunos de estos tipos se
• Una inconsistencia o violación a estándares. describen a continuación:
   
Se recomienda el uso de listas de verificación, o checklists, que fun- Inspecciones de software
gen como base para la revisión de artefactos. • Es la forma de revisión más estricta.
  • Revisiones a profundidad.
Un checklist es: • Criterio de salida para cada fase.
• Una lista de elementos en forma de preguntas y/o características. • Dirigida por el líder revisor y asistida por participantes.
• Resume los problemas técnicos potenciales para una revisión. • Se obtienen métricas (Producto y proceso).
• Son utilizados durante la etapa de preparación y de ejecución de  
revisiones. Walkthroughs
  • Medio para llegar a consenso.
Hay diferentes tipos de checklists o bien se pueden revisar diferen- • Útiles para aprendizaje informal.
tes características como: que el producto esté correcto o completo, • Dirigidas por el autor.
que siga reglas de estilo, construcción, etcétera. • No hay métricas.
 

Edith Alhelí Martínez Mata es Consultor especializado en Aseguramiento de la Calidad, en Avantare Consultores. Sus áreas de especialidad son las Inspecciones
de Software y Procesos de Soporte basados en CMMI y SW-CMM. Edith es Licenciada en Informática por el Instituto Tecnológico de Aguascalientes (ITA), y ha
participado como consultora en varios proyectos para la implementación de CMMI así como en evaluaciones SCAMPI.

38 AGO-OCT 2008 www.sg.com.mx


Revisiones técnicas Entre los principales beneficios que proveen las revisiones entre co-
• Busca consenso. legas están:
• Útiles como capacitación. • Acortamiento de tiempos.
• Se expone el producto y se busca aprobación. • Reducción de costos.
• Útiles para productos complejos o de nueva tecnología. • Mejora en capacidad de predicción.
• Se requiere experiencia técnica. • Mayor satisfacción del cliente.
• Métricas no son obligatorias • Mayor entusiasmo en el personal.
  • Retorno de inversión atractivo.
Revisiones cruzadas  
• Determinan el estatus del producto. De forma cuantitativa, las expectativas de ahorro pueden esperarse en:
• Carga extra requerida es mínima. • 60% al 80% de los defectos eliminados antes de la ejecución de
• Revisiones en pares. las pruebas
• Facilita el intercambio de información. • Reducciones en la escala del tiempo de hasta el 25%
• Típicamente utilizadas para diseño y codificación. • Reducción hasta en 5 veces de los costos de pruebas
• Se recolectan algunas métricas.  
  La revisión entre colegas es una práctica que por sí sola genera un
Fases de la inspección de software retorno de inversión visible, ya que ayuda a incrementar la calidad
La realización de una inspección de software requiere de varias fa- y reducir costos.
ses que se detallan a continuación:  
  Preguntas  comunes
Planeación. ¿Quién decide qué debe ser revisado?
• Planear inspección en el calendario del proyecto. El líder técnico o de proyectos.
• Identificar qué productos revisar y los tipos de productos.  
• Asignar responsables (autor y moderadores). ¿Qué revisar?
  Productos de alto impacto, productos asociados a riesgos, y produc-
Preparación tos asociados a objetivos de calidad.
• Validar que el producto esté listo.  
• Asignar revisores, y resto de los roles. ¿Cuándo planear las revisiones?
• Verificar checklists listos y distribuir el material para revisión. De acuerdo al tipo de revisión, en el plan y al inicio del proyecto o
  fases.
Sesión de inspección  
• Revisar el producto. Recomendaciones
• Registrar y clasificar hallazgos. Algunos principios importantes de las inspecciones de software:
• Clasificar defectos. • Limitar las inspecciones a periodos de alta concentración (2 horas).
• Clarificar dudas puntualmente. • Revisar productos, no personas.
  • Identificar defectos, no soluciones.
Reporteo  
• Dar a conocer los resultados, hallazgos y métricas. Algunos riesgos comunes que pueden dificultar la implantación de
  la práctica o limitar los beneficios de ésta, y que por lo tanto deben
Seguimiento tenerse en cuenta para manejarlos adecuadamente:
• Asegurarse que se llevan a cabo las correcciones. • Los participantes no entienden el proceso de revisión.
• Registrar el cierre de los defectos. • Los revisores critican al autor y no al producto.
• Levantar métricas. • Falta de planeación de las revisiones.
  • Las juntas se enfocan a la solución de problemas de estilo.
Costo y beneficios • Falta de preparación y/o los revisores no son los adecuados.
El costo de implementar esta práctica en realidad no es muy alto, ya • Proceso no compatible con las características de la organización.
que es una actividad que se ejecuta naturalmente por los equipos
de trabajo. La ejecución de una revisión se lleva un máximo de 4 Y entonces ¿qué esperamos para llevar a cabo prácticas de
horas, considerando los tiempos de preparación y ejecución, y nos revisiones entre colegas?
da resultados cualitativos y cuantitativos al momento.

www.sg.com.mx AGO-OCT 2008 39


// PRÁCTICAS /*PROGRAMACIÓN*/

Aprendiendo Ruby y Rails


Parte 4. El Framework Rails
Por Carlos Ortega

El presente artículo es el cuarto y último de la serie que tiene la in- Ahora bien, los constructores de Rails han diseñado el framework de
tensión de introducir al lector los principales elementos del lenguaje tal manera que los métodos que se definan dentro de esta clase coin-
de programación Ruby y del framework Ruby on Rails. En esta oca- cidan con las acciones que se generen en las vistas, es decir, si se de-
sión se tratarán los temas del controlador y las vistas. sea que se realice un evento específico dentro de las vistas, el código
que representa ese evento podrá estar contenido dentro del nombre
El Controlador del método o función que definamos dentro del controlador.
Contrario a lo que podría indicar el nombre del patrón: MVC, en Rails
se aconseja desarrollar primero el controlador antes que la vista. Por ejemplo, supongamos que dentro la vista new.rhtml invocamos al
Para lograr esto, Rails echa mano de una clase especial llamada evento agregrar un nuevo Usuario esto, mediante la liga
ApplicationController, a través de los siguientes pasos: <%= link_to “Agregar un nuevo Usuario”, {:action => ‘new’}%>

a) generar una clase derivada de ApplicationController y Entonces si deseáramos que al activar esta liga se ejecute un código
b) manipular con esta clase, a nuestra clase que representa el mode- determinado X, tendremos que definirlo dentro un método o función
lo para lograr el acceso a la base de datos. del controlador cuyo nombre coincida con el nombre de la acción, en
este caso new.
Manteniendo la misma filosofía de generación automática de capas,
el comado generate permite uitlizar el parametro controller para acce- El siguiente diagrama intenta ilustrar mejor este mecanismo.
der a la clase ApplicationController, para invocarlo abriremos una sesión
class UsuarioController < ApplicationController
en linea de comandos, nos posicionaremos en el directorio railsass e <h1> Agregar un Nuevo Usuario </h1>
def metodo1
...
introduciremos: </br>
....
end

..... def metodo2


<%a= link_to ”Agregar un Nuevo Usuario”, {action=>’new’}%> ...
path/trabajo/railsass>ruby script/generate controller Usuario ..... end
.....
def new
# CODIGO QUE
# DESEAMOS QUE SE EJECUTE
end
...
end

new.rhtml usuario_controller.rb

Una vez entendido este concepto podemos proceder a incorporar la


parte que manejará al modelo actualizando al controlador:

class UsuarioController < ApplicationController

#---Mostrar la lista de Todos los Usuarios---#


def list
@usuarios = Usuario.find( :all )
Además de haber creado automáticamente el archivo con el nombre end
usuario_controller.rb destinado a contener la clase controladora, tam-
#--- Crear un nuevo Usuario en Memoria ---#
bién se habrá creado un directorio usuario debajo del directorio views def new
que contendrá los archivos RHTML que manejarán las vistas, un @usuario = Usuario.new
archivo usuario_controller_test.rb para realizar pruebas funcionales y ar- end
chivo usuario_helper.rb dentro del directorio helper que podrá utilizarse
#---Creamos Un Nuevo Usuario ---#
para albergar clases adicionales de soporte que puedan requerirse.
def create
@usuario = Usuario.new( params[:usuario] )
Al abrir el archivo usuario_controller.rb que se encuentra dentro del if @usuario.save
directorio app/controllers ,podemos observar que en este se encuentra redirect_to :action => ‘list’
la clase UsuarioController la cual es derivada de ApplicationController: else
class UsuarioController < ApplicationController render :action => ‘new’
end end
end

40 AGO-OCT 2008 www.sg.com.mx


“En Rails se aconseja desarrollar primero el
controlador antes que la vista”.

#---Mostrar el detalle de Un Usuario---#


def show La siguiente étapa es la construcción de las vistas.
@usuarios = Usuario.find( params[:id] )
end La(s) Vista(s)
end Como se explicó en la sección anterior, el controlador atiende pe-
ticiones de las vistas a través de sus métodos. El nombre de estos
Como se puede apreciar a excepción del método show que muestra la métodos coinciden con las acciones a invocarse en las vistas.
lista de todos los Usuarios, hemos creado varios métodos que corres-
ponderían a la funciones CRUD de un objeto de negocio Usuario. Ahora bien, de la misma manera que acontece en otras partes del
framework, la convención que los diseñadores de Rails han emplea-
Por otra parte es interesante observar como es que a su vez estos do para definir las vistas, es hacer coincidir el nombre de los archivos
métodos manipulan al Usuario, es decir, dentro de ellos se invocan que contengan a las vistas, con el nombre de los métodos que repre-
las diferentes funciones de ActiveRecord, de ahí que el método find sentarán a las acciones a invocarse dentro de los controladores.
de Usuario acepte como parámetro un objeto específico, como una
variable de entorno  (params[:id)  o un símbolo (:all) que representa la Por ejemplo, en nuestro caso UsuarioController tiene los métodos
condición para regresar todos los objetos Usuario. list, new y show, por ende generaremos los archivos list.rhtml, new.rhtml,
show.rhtml que serán los que invocaran a estos métodos y se definen
Por otra parte, la invocación de método redirect_to resulta en la una nue- dentro del directorio app/views/usuario, sin embargo a diferencia de lo
va llamada a la acción y el refrescado de la página web correpondiente. que sucede con el controlador y el modelo, el comando generate no tie-
ne un parámetro específico para generar los archivos .rhtml que con-
Para simplificar nuestra revisión en este momento nos concentra- tendrán a las vistas, por esta razón es necesario crearlos a mano.
remos solo en un objeto, no tocaremos las relaciones (behaviours)
entre otros tipos de objetos de negocio. El siguiente diagrama trata de ilustrar este mecanismo.

<h1> Usuarios del Sistema </h1>


</br>
....
.....
<%a= link_to ”Listar Usuario”, {action=>’list’}%>
.....
.....
class UsuarioController < ApplicationController
list.rhtml
<h1> Agregar un Nuevo Usuario </h1> def list
</br> # CODIGO PARA MOSTRAR TODOS LOS USUARIOS
.... end
.....
<%a= link_to ”Agregar un Nuevo Usuario”, {action=>’new’}%> def new
..... # CODIGO PARA CREAR UN NUEVO USUARIO
.....
end
new.html
def show
<h1> Detalle de un Usuario </h1>
# CODIGO PARA MOSTRAR EL DETALLE DE UN USUARIO
</br>
.... end
.....
<%a= link_to ”Mostrar Usuario”, {action=>’show’}%> def delete
..... # CODIGO PARA BORRAR UN USUARIO EXISTENTE
..... end
show.rhtml
...
<h1> Borrar un Usuario </h1> end
</br>
....
.....
<%a= link_to ”Borrar un Usuario”, {action=>’delete’}%> usuario_controller.rb
.....
.....
delete.rhtml

www.sg.com.mx AGO-OCT 2008 41


// PRÁCTICAS /*PROGRAMACIÓN*/

Un comentario al margen es que existe un mecanismo llamado Finalmente reinicializaremos nuestro webserver WEBRick (si es que
scaffolding que permite la generación automática de todas las vistas y este se encuentra apagado).
un formato homogéneo de las mismas. Sin embargo en esta ocasión
no explicaremos este mecanismo con el fin de que el lector conozca ruby script/server webrick
y maneje los elementos básicos para manipular vistas. Y arrancaremos el web browser de nuestra preferencia apuntándolo
a la siguiente dirección:
A continuación se muestra un ejemplo del código de las vistas, en
este caso sería de la vista list.rhtml. http://localhost:3000/usuario/list

<html> La 1ra. vez deberá aparecer una página parecida a la siguiente:


<head>
<h3>
Historia 15 - USUARIOS - Nuevo
</h3>
</head>
<body>
<h1>Agregar un Nuevo Usuario</h1>
<%= start_form_tag :action => ‘create’ %>
<p><label for=”usuario_nombre”>Nombre</label><br/>
<%= text_field ‘usuario’, ‘nombre’ %></p>
<p><label for=”usuario_apellido”>Apellido</label><br/>
<%= text_field ‘usuario’, ‘apellido’ %></p>
<p><label for=”usuario_tipo”>Tipo</label><br/>
<%= text_field ‘usuario’, ‘tipo’ %></p>
<p><label for=”usuario_permisos”>Permisos</label><br/> Al darle click a la liga “Agregar Nuevo Usuario”  se desplegará en
<%= text_field ‘usuario’, ‘permisos’ %></p> pantalla una forma.   Introduzcamos un par de usuarios de ejemplo:
<%= submit_tag “Create” %>
<%= end_form_tag %>
Nombre: Liliana
<%= link_to ‘Back’, {:action => ‘list’} %> Apellido: Allen
Tipo: 1
</html> Permisos: rwx rwx rwx

Formatos de los archivos de vistas Nombre: Sebastian


Al analizar el código RHTML observamos que en estos estan pre- Apellido: Coe
sentes instrucciones HTML y lo que aparenta ser codigo Ruby; en Tipo: 2
efecto lo es. Permisos: rrr rxx rwx

Recordemos la arquitectura de Rails: La parte de las vistas esta con- Y demos click en el boton “Create” al final de la introducción de los
tenida en archivos .rhtml que son interpetados por el programa ERb, datos de cada usuario
el cual a su vez intepreta, ejecuta y substituye las instrucciones de
Ruby y convierte su salida en HTML la cual es entregada al webserver Podemos percatarnos que una vez que finalizamos la introducción
que finalmente devuelve al browser para su interpretación. de cada usuario mediante el botón “Create” la aplicación nos regre-
sa a la página donde se enlistan todos los usuarios. Esto se debe
Observemos también que en la vistas, se puede llamar directamente justamente al código que incrustamos dentro del controlador:
a los objetos de negocio que representan el modelo, esto, sin nece-
sidad de incluir ninguna librería, mas importante aún es recordar if @usuario.save
redirect_to :action => ‘list’
que el controlador el responsable de crear este tipo de objetos. Para
nuestro caso: @usuario.
El cual le indica a Rails que en caso de haber guardado exitosamente
Otro punto interesante es el código inmerso dentro de las etiquetas al usuario, el control se redireccione a la acción list.
<%= start_form_tag %> … <%= end_form_tag%>, este es una instrucción pre-
construida en Ruby que es interpretada por ERb la cual permite el de- Probemos ahora la liga “Back”; la página desplegada deberá ser si-
sarrollo de formas complejas en HTML de una forma rápida y sencilla. milar a la siguiente:

Carlos Ortega es consultor en metodologías y prácticas ágiles (XP, TDD, Refactoring, Pair Programming), cuenta con certificaciones en RUP,
OOAD, UML, etcétera. Es Certified ATAM Evaluator y Certified Professional Software Architect ambos avalados por el SEI. Ha colaborado en numerosos
proyectos para diversas organizaciones como Banco de México, Elektra, Banco Azteca, Fandelli, Oracle, IMSS, Heinson, Accenture, EDS. Actualmente
colabora con Software Ágil, empresa dedicada al tutelaje e implementación de metodologías ágiles (SCRUM, XP, Crystal).

42 AGO-OCT 2008 www.sg.com.mx


“Las construcciones de Rails han diseñado
el framework de tal manera que los métodos
que se definan dentro de esta clase coincidan
con las acciones que se generan en las vistas”.

Pudimos comprobar diferentes capa-


cidades que los hacen ser uno de los
lenguajes y frameworks más pode-
rosos para desarrollar aplicaciones
web de forma extremadamente rápi-
da. Adicionalmente el hecho de ser
abiertos, libres y correr en múltiples
plataformas los distingue como una
de las tecnologías más atrayente de la
actualidad.
Por último, demos click a alguna de las ligas
que presenta el nombre de los usuarios, la Esta última entrega finalizó nuestra re-
página web desplegará el detalle de los da- visión básica incluyendo el desarrollo
tos que introducimos anteriormente: de los controladores y las vistas.
Existen temas más avanzados que
complementan los mecanismos ne-
cesarios para generar una aplicación
Rails a nivel empresarial. Temas como
el manejo de relaciones entre diferen-
tes objetos de negocio, routers, Ajax,
andamios, seguridad y distribución,
quedan para una revisión posterior.
Sin embargo los elementos hasta aquí
presentados permitirán al lector tener
las bases mínimas para comenzar a
La versión básica de nuestra aplicación ¡ya desarrollar y adentrarse en esta nove-
corre! dosa tecnología.

Un punto adicional que vale la pena comen-


tar es que a pesar de que el código RHTML Referencias
hace sencilla la construcción de vistas, es [ Thomas David, Fowler Chad, Hunt Andy.
muy posible que en futuras versiones de “Programming Ruby”. 2nd Edition. The
Rails este deje de utilizarse debido a que en Pragmatic Bookshelf. 2005 ]
últimas fechas se han creado nuevos meca- [ Thomas David, Heinemeier Hanson Da-
nismos que simplifican la manipulación de vid, et al. “Agile Web Development with
vistas de manera dramática. Rails”. 2nd Edition. The Pragmatic Books-
helf. 2006 ]
[ Black, David A. “Ruby for Rails”. Manning
Conclusión Publications Co. 2006 ]
A través de estos 4 artículos tuvimos [ ruby-lang.org/en ]
la oportunidad de revisar el lenguaje [ rubyonrails.org ]
Ruby y el framework Rails. [ mysql.com]
[ haml.hamptoncatlin.com ]

www.sg.com.mx AGO-OCT 2008 39


// PRÁCTICAS /*ARQUITECTURA*/

Más Allá del Manual de Usuario


Parte 2. Documentando la Arquitectura de Software
Por Omar Gómez

En el número anterior vimos la propuesta de SEI que define tres cate- Si se desea que la documentación de la arquitectura cumpla con el
gorías denomidas tipos de vista. Para concluir con esta propuesta en la estándar, se deben seguir las siguientes prácticas:
figura 1 se muestran los principales conceptos de este enfoque.
• Identificación e información general. En esta práctica se lleva lo
1FSTPOB 5JQPEFWJTUB 4JTUFNB4PGUXBSF
relacionado al control de versiones del documento, fecha, histórico
*OWPMVDSBEBFO de revisiones, estado, contexto del sistema, declaración del alcance,
FM1SPZFDUP
entre otros más.
1..x 1 1
satisface los tiene tiene • Identificación del personal involucrado y sus intereses. Se descri-
intereses
1.. x
1.. x
1 ben los diversos tipos de personas involucradas en el proyecto. Ta-
7JTUB "SRVJUFDUVSB
&TUJMP les como, administradores, diseñadores, desarrolladores, usuarios,
"SRVJUFDUwOJDP cumple
1..x 1 patrocinadores. A su vez, se incluye la diversidad de intereses que la
arquitectura debe satisfacer.
1 1 1
se obtiene es descrita
1
1..x
1..x
• Puntos de vista. Cada de uno de estos debe contener un nombre,
1BRVFUFEF7JTUB
(VrBEF&TUJMPT %PDVNFOUPEF personal involucrado, intereses que satisface, lenguaje o técnicas de
1..x 1 MB"SRVJUFDUVSB modelado utilizados durante la construcción de la vista, algún método
4FDDJwO
1..x 1
analítico para analizar de manera cualitativa o cuantitativa los atribu-
tos de calidad que satisface el punto de vista, y su justificación.

Figura 1. Relación de conceptos de la propuesta “vistas y más allá de éstas” del SEI. • Vistas. Cada vista debe tener un identificador, una breve introduc-
ción y la representación del sistema con respecto a un punto de vista
Por su parte, el IEEE Software propone el estándar IEEE 1471 que en particular.
define un conjunto de recomendaciones centradas básicamente
en 2 ideas, un marco conceptual para describir arquitecturas, y un • Consistencia entre vistas. Registra las inconsistencias entre las
conjunto de prácticas a seguir. La descripción de la arquitectura se vistas, así como algún tipo de procedimiento que indique la consis-
organiza en un conjunto de vistas, cada vista modela una parte del tencia entre ellas.
sistema y satisface uno o más intereses de las personas involucra-
das. Los distintos intereses se deben considerar durante la cons- • Justificación. Se debe incluir la justificación del tipo de arquitectu-
trucción del sistema; si alguno de ellos  no es considerado en al ra seleccionada, y de los puntos de vista utilizados.
menos una de las vistas se dice que la descripción de la arquitectu-
ra está incompleta. Actualmente, el IEEE e ISO están revisando en conjunto este están-
dar con el objetivo de tener una versión actualizada en el siguiente
Cada vista se documenta de acuerdo a un punto de vista (elemento año para someterla a votación.
que pude ser reutilizado) determinado, definiendo las notaciones,
técnicas y reglas para construir e interpretarla, a su vez, este deter- Estos dos últimos enfoques tienen varias similitudes entre sí. Por
mina cómo el contenido de una vista satisface uno o más intereses ejemplo, ambos se centran en las personas involucradas y en sus di-
de las personas involucradas. En este marco conceptual, una vista versos intereses, ninguno de estos prescribe un número fijo de vistas,
es la instancia de un punto de vista dado. Un conjunto (biblioteca) los dos enfoques hacen uso de la reutilización de artefactos; uno atra-
de puntos de vista es análogo a la guía de estilos que propone el vés de la guía de estilos y el otro por medio de una biblioteca de pun-
SEI. En la figura 2 se muestra un extracto del marco conceptual del tos de vista, en ambos la arquitectura debe estar justificada y los dos
estándar IEEE 1471. enfoques recomiendan el uso de análisis cualitativos o cuantitativos.

Omar Salvador Gómez Gómez obtuvo el grado de Maestro en Ingeniería de Software, en el Centro de Investigación en Matemáticas (CIMAT). Actualmente se
encuentra trabajando como estudiante de postgrado en el área de Ingeniería del Software Empírica en la Facultad de Informática de la Universidad Politécnica
de Madrid. Es miembro del IEEE Computer Society. Puedes contactarlo en ogomez@ieee.org

44 AGO-OCT 2008 www.sg.com.mx


4JTUFNBEF4PGUXBSF "SRVJUFDUVSB

tiene 1

tiene descrita por


1..x 1

1FSTPOB %FTDSJQDJwOEF
JOWPMVDSBEBFO MB"SRVJUFDUVSB
FMQSPZFDUP
identifica 1..x

1..x es está
importante organizada por
para es considerado 1..x 1..x selecciona 1..x

5FNBEF*OUFSnT 1VOUPEFWJTUB 7JTUB

usado para conforma


satisfacer
1..x
puede tener
0..1

#JCMJPUFDBEF
1VOUPTEF7JTUB

Figura 2. Extracto del marco conceptual del estándar IEEE 1471.

Una de las diferencias entre los dos enfoques es la siguiente. En el


enfoque del SEI primero se selecciona un conjunto posible de vistas • Mantener actualizada la matriz de trazabilidad entre los
con respecto a las estructuras que están presentes en el sistema a requisitos y los elementos de la arquitectura.
construir, después se validan de acuerdo a un consenso de intereses • Tener bajo una línea base el documento de la arquitectura.
por parte del personal involucrado, posteriormente se documentan.
Por otra parte, el IEEE primero determina los intereses del personal
involucrado, después en base a estos se selecciona un conjunto de Referencias
puntos de vista que los satisfaga, por último se documenta cada una [ Philippe Kruchten. “The 4+1 View Model of Architecture”. IEEE
de las vistas basándose en los puntos de vista seleccionados. Software., Los Alamitos, CA, USA, Volume 12, Number 6, págs. 42-50.
IEEE Computer Society Press, 1995 ]
[ Dilip Soni; Robert L. Nord & Christine Hofmeister. “Software archi-
Conclusión tecture in industrial applications”. ICSE ‘95: Proceedings of the 17th
Uno de los principales beneficios de realizar esta práctica, international conference on Software Engineering, New York, NY, USA.
es el poder efectuar evaluaciones sobre la arquitectura do- págs. 196-207, ACM, 1995 ]
cumentada, con el fin de determinar si se están cumpliendo [ Paul Clements; Felix Bachmann; Len Bass; David Garlan; James Ivers;
o no los intereses del personal involucrado. Para finalizar, al- Reed Little; Robert Nord & Judith Stafford. “Documenting Software
gunos de los puntos que se deben considerar al momento de Architectures: Views and Beyond”. Addison Wesley Professional. 2002 ]
documentar un arquitectura son: [ IEEE Architecture Working Group. “IEEE Standard 1471-2000,
Recommended practice for Architectural Description of Software-
• Documentar la arquitectura tomando en cuenta las necesida- Intensive Systems”. págs 1-23. IEEE, 2000 ]
des e intereses de cada persona que forma parte del proyecto. [ Mary Shaw & David Garlan. “Software Architecture: Perspectives on
• Acompañar la documentación de las vistas con un modelo an Emerging Discipline”. Abril. Prentice Hall. 1996 ]
analítico que ayude a predecir el comportamiento de los atri- [ Mark Klein; Rick Kazman & Robert Nord. “Attribute-Based
butos de calidad. Architectural Styles”.Software Engineering Institute. Technical Report
• UML no es el único lenguaje para documentar la arquitectu- CMU/SEI-99-TR-22. Carnegie Mellon University. 1999 ]
ra. Existen diferentes notaciones y lenguajes para este pro- [ Software Engineering Institute, SEI. “Views and Beyond Architecture
pósito, por ejemplo, lenguajes para descripción de arquitec- Documentation Template” ]
turas (ADLs) que describen aspectos particulares de esta. [ sei.cmu.edu/architecture/arch_doc.html ]
• Mantener una relación consistente entre las vistas. [ Rich Hilliard. “ISO/IEC 42010/IEEE 1471: Architectural Description” ]
[ sei.cmu.edu/architecture/IEEE_1471.html ]
• Elaborar plantillas de estilos para promover la reutilización
[ Omar Gómez. “Evaluando la Arquitectura de Software, métodos de
de artefactos dentro de la organización.
evaluación”. Revista Software Gurú. Año 03 No. 02. 2007 ]

www.sg.com.mx AGO-OCT 2008 45


// PRÁCTICAS /*SEGURIDAD*/

Aplicaciones Web Seguras. ¿Mito o


Realidad?
El mito de la seguridad en aplicaciones Web
Por Germán Domínguez

La seguridad en las aplicaciones Web de las todos ellos descuidan la seguridad en las • Ataques en la parte cliente, resultan de la
organizaciones es, hoy en día, una priori- aplicaciones y la información que en ella se relación de confianza que existe por parte
dad importante. Y es que éstas aplicaciones contienen, de tal manera que la seguridad se del usuario final en el sitio Web, en esta re-
contienen y manejan información invaluable deja única y exclusivamente a la programa- lación el usuario confía que la información
para la operación y el comercio de las em- ción realizada. Sin embargo aquellas fallas proporcionada por el sitio Web será verda-
presas, por lo mismo, la seguridad se vuel- de seguridad no contempladas o conocidas, dera y espera no recibir ningún tipo de ata-
ve imprescindible, ya que muchas de estas quedan vulnerables a usuarios malintencio- que por parte de la aplicación.
aplicaciones manejan números de tarjetas nados, empleados enojados o en el peor de • Ejecución de comandos, en esta catego-
de crédito, listas de clientes de las empre- los casos, a un hacker. ría caen las vulnerabilidades que permiten al
sas, inventarios físicos, documentos de pro- usuario ejecutar comandos remotos en el sitio.
piedad intelectual, etcétera; bienes por los Los ataques a las aplicaciones no siempre • Revelación de información como objetivo
que un hacker estaría dispuesto a hacer lo son malintencionados, un usuario por error obtener información específica del sitio, ta-
posible para obtenerlos. puede lograr tener acceso a información a les como el sistema operativo del servidor,
segmentos del aplicativo que no estaban la marca y versión del servidor de aplicacio-
La mayor parte de los presupuestos de se- destinados para su perfil de usuario. Adi- nes web, etcétera. Y con esta información
guridad en las compañías están dedicados cional a esto, ha habido un incremento de poder utilizar o explotar vulnerabilidades
a la infraestructura de la red y de acuerdo sitios que proporcionan herramientas para conocidas de dichos productos.
con estudios realizados, más del 60% de los la exploración y explotación de vulnerabi- • Ataques lógicos, son aquellos que burlan
ataques en seguridad de la información no lidades en sitios Web, lo que ha permitido la lógica programada de las aplicaciones y
están dirigidos ahí, sino a la capa de apli- el crecimiento de la población de usuarios perjudican la aplicación, los usuarios o la
caciones Web; otro estudio demuestra que malintencionados. Una de las mejores prác- información contenida.
más del 70% de estas aplicaciones, son ticas para mantener seguras las aplicacio-
vulnerables a ataques informáticos y para nes es “nunca asumir que la información in- Estas grandes categorías nos permiten tener
el 2010 el 80% de las organizaciones experi- gresada por el usuario será confiable”, esto una idea del universo de posibilidades para
mentará un incidente de seguridad. evita que la aplicación acepte información un ataque a un sitio Web. En este artículo
o datos que no están permitidos y que po- nos enfocaremos en los que se ubican como
A pesar de esto y de las inversiones en ma- drían convertirse en datos potencialmente los primeros lugares, según la clasificación
teria de seguridad, seguimos leyendo no- peligrosos para la seguridad de la misma. hecha por el Open Web Application Security
ticias que sitios de empresas, medios de Project (OWASP), una de las organizaciones
comunicación, entidades gubernamenta- La realidad de la seguridad independientes más importantes en Seguri-
les, organizaciones políticas y civiles, entre Tipos de vulnerabilidades dad de la Información:
otras, son presas de ataques a la seguridad Según la organización Web Application 1. Cross Site Scripting se refiere a aquellos
de sus sitios web. Security Consortium (WASC), las aplica- ataques que permiten al hacker obtener in-
ciones son vulnerables a diferentes tipos formación confidencial del usuario (como
Las organizaciones invierten recursos, prin- y categorías de ataques y los clasifica en 6 cuentas y contraseñas), llevar a cabo ata-
cipalmente, en la seguridad informática, en grandes rubros: ques de phishing y hasta llegar a tomar el
seguridad perimetral con la instalación de • Autenticación, el objetivo de estos ata- control del navegador del usuario final. Está
Firewalls, en Sistemas de Detección de In- ques es la validación de la identidad de los es la vulnerabilidad más común y agresiva
trusos (IDP), Sistemas de Prevención de In- usuarios con la intención de engañar al pro- de las aplicaciones web; en las clasificacio-
trusiones (IPS) y Firewalls de Aplicaciones, ceso de autenticación del sitio web. nes antes mencionadas pertenece a ataques
todo apoyado en Sistemas de Administra- • Autorización, este tipo de ataques buscan en la parte del cliente y autenticación.
ción de Eventos e Incidentes (SIEM). Todos obtener acceso a recursos o información a
estos controles de seguridad bloquean ata- los que el usuario no tiene derecho o permi- Esta vulnerabilidad es exitosa mediante la
ques muy bien identificados, sin embargo, so de utilización. inserción de código HMTL o JavaScript en el
navegador del usuario, usualmente estos

Germán Domínguez es Licenciado en Informática Administrativa de UNITEC con más de 13 años de experiencia en el desarrollo de aplicaciones de ne-
gocio y aplicaciones Web. Ahora pertenece al equipo de IT de IBM de México, especialista para la marca de software Rational, y puede ser contactado en
germand@mx1.ibm.com

46 AGO-OCT 2008 www.sg.com.mx


ataques son encontrados en comunidades en aplicaciones que ayudan a mitigar este
virtuales, foros de discusión, salas de chat y riesgo. Este tipo de acciones reduce la posi-
hasta en el mismo sitio web que se pretende bilidad de algún ataque a la aplicación, pero
afectar. Todas las plataformas son suscepti- siempre una buena práctica de seguridad
bles a estos ataques. Lamentablemente, es- es la realización de pruebas para verificar y
tas agresiones son dirigidas directamente al comprobar nuestras mejoras en el diseño y
usuario final, por lo que la inserción de códi- programación.
go en el navegador no puede ser controlada
por nuestros sistemas de seguridad. En la etapa de pruebas, de igual manera
existen dos maneras de ser realizadas, ma-
2. Inyección defectuosa, este tipo de vulne- nualmente o mediante una herramienta que
rabilidades tienen lugar cuando un usuario automatice estas pruebas. La primera signi-
malicioso ejecuta comandos no previstos fica dedicar tiempo en la creación de los ca-
en la aplicación Web mediante el envío de sos de prueba, instrucción y documentación
datos especialmente diseñados para tal fin del equipo de pruebas para conocer las vul-
utilizando como interprete de estos coman- nerabilidades existentes. Actualmente, con
dos al sitio, estas instrucciones permiten al la mayor adopción de aplicaciones Web 2.0,
atacante leer, crear o borrar información. las variables en la ecuación de seguridad de
Algunos tipos de instrucciones que se inyec- aplicaciones crece aún más.
tan en las aplicaciones son tipo SQL, LDAP,
XML o comandos de sistema operativo. La automatización de las pruebas reduce
tiempos de realización de las pruebas y sim-
En casos extremos, este tipo de ataques plifica los casos, adicionalmente es impor-
permiten al intruso tomar el control total del tante contar con una herramienta que emu-
sistema, incluidas aplicaciones, datos, siste- le el comportamiento malicioso del hacker
ma operativo y hasta intrusión en los demás y contenga una base de datos actualizada
equipos en la red de la organización. con las fallas comunes que se conocen en
el mundo de la Seguridad de la Información.
Todas las plataformas son susceptibles a La herramienta en el mercado que facilita
cualquiera de estos tipos de ataque, ya sea estas actividades es Rational AppScan que,
C#, .Net, PHP, C, Perl, Ruby on Rails y hasta adicionalmente a las características antes
aplicaciones Java y lo peor de todo es que no mencionadas, contiene una base de conoci-
importa que tan segura sea la configuración mientos que permite sugerir correcciones y
de red, si la aplicación no es segura, la infor- mejores prácticas a los errores y omisiones
mación que contiene está en riesgo. que se hayan encontrado al momento de la
ejecución del proceso de revisión del sitio.
Tomar cartas en el asunto
Las aplicaciones deben ser protegidas con- La prioridad es la seguridad
tra cualquier problema de seguridad, es de- La seguridad y garantía de la información
cir, los ataques a las mismas se deben de de- que reside en las aplicaciones Web no es un
tectar y evitar desde su concepción, para ir tema que se deje a la ligera, requiere de toda
delante de los hackers existen dos caminos: la atención ya que existe todo un ejército de
el fortalecimiento de los estándares de pro- personas que están dispuestas a tomarse
gramación y las pruebas sobre aplicaciones. el tiempo de encontrar en las fallas al sitio
que escojan y de esa forma poner en riesgo
Robustecer los estándares de seguridad pro- a las empresas, independientemente de su
gramados en las aplicaciones permite evitar tamaño. Tomar las medidas precautorias es
la recodificación, reduce los costos de man- garantía de que ni las organizaciones ni los
tenimiento y las situaciones críticas cuando usuarios sufrirán de algún tipo de pérdida
algún evento de seguridad se presenta. En económica, robo de identidad o despresti-
algunos casos la utilización de frameworks, gio frente a clientes e inversionistas.
permiten reducir la posibilidad de un ataque
Cross-Scripting y para evitar situaciones de Referencias
inyección de código SQL, es posible median- [ webappsec.org/projects/threat/ ]
te la utilización de sentencias preparadas [ owasp.org/index.php/Top_10_2007 ]

www.sg.com.mx AGO-OCT 2008


// UML

RECONOCIENDO LOS DIAGRAMAS


Buen Comportamiento con Diagramas de Secuencia
Por Miguel Ángel Armas Alemán

Una de las principales preguntas al anali- teractúa el actor y qué objetos de negocio sentido modelar una y otra vez en cada caso
zar y diseñar software con UML es ¿cómo se ven involucrados para atender los even- de uso cuáles son los objetos involucrados
se hace o reconoce un buen diagrama? tos generados, todo esto apegado al guión en las tareas repetitivas como esta, pueden
Conocer la notación es apenas el inicio del especificado en el texto del análisis. omitirse por un sentido práctico.
camino, la mejor analogía la encontramos
en la literatura, saber leer y escribir no ga- Este tipo de diagrama puede verse como Una parte importante de la identificación de
rantiza que podamos escribir obras como una traducción del texto del análisis en tér- los objetos consiste en nombrarlos y asig-
Shakespeare o Quevedo, de la misma forma minos de objetos y métodos con todas las narlos a la clase a la que pertenecen, esto
el conocer UML no garantiza que tengamos consideraciones técnicas de la arquitectura. evita que los programadores dupliquen ob-
la capacidad de hacer un buen análisis o di- Hacer un buen diseño no es cuestión de com- jetos y clases que ya existen.
seño. En otros artículos se han mostrado las plejidad, es decir, el mejor diagrama de secuen-
reglas básicas para elaborar un diagrama de cia no es el que tenga más objetos y mensajes, La identificación de los objetos involucrados
secuencia, en esta ocasión nos ocuparemos pero hay tres principios básicos que debe cum- usualmente se hace en paralelo con la asig-
de los principios mínimos para hacer el di- plir un buen diagrama de secuencia: nación de responsabilidades de cada obje-
seño de un caso de uso en un diagrama de to, el cual es el siguiente punto.
secuencia de UML. 1. Identificar a los objetos involucrados
2. Definir la responsabilidad de cada objeto Definir la responsabilidad de
Intención del diagrama de 3. Mostrar el ciclo de vida de cada objeto cada objeto
secuencia Este es el aspecto más importante de un
El diagrama de secuencia nos permite dise- El diagrama de secuencia modela el compor- diagrama de secuencia, la mejor forma de
ñar el comportamiento del software. Sirve, tamiento de un caso de uso desde la perspec- asignarle responsabilidad a un objeto es
entre otras cosas, para diseñar casos de tiva del diseño, por lo que el comportamiento usando los Patrones de Diseño y los Patro-
uso, generalmente se hace al menos uno de una aplicación de escritorio para 25 usua- nes Generales de Asignación de Responsa-
por cada caso de uso, se diseña tomando en rios es distinto al de una aplicación web para bilidades (GRASP por sus siglas en inglés).
cuenta los resultados del análisis, por lo que 700 usuarios, esta particular interacción en- Pero, otro aspecto importante que no abar-
los artefactos que se necesitan para elabo- tre los objetos de la aplicación debe quedar can los sistemas de patrones anteriores,
rarlo son los mostrados en la figura 1. plasmada en el diagrama aplicando los prin- es lo que tiene que ver con el negocio del
cipios mencionados. sistema que se diseña. En el caso de uso
Prestar Libro, ¿qué objetos de negocio están
&TQFDJGJDBDJwOB
EFUBMMFEFM$6 Identificar a los objetos involucrados?, ¿cuántas ventanas se necesi-
%JBHSBNBEF involucrados tan?, ¿cuáles son los objetos de persistencia
TFDVFODJBT
1SPUPUJQPEF
%JTFvBSVO$6
La primera parte de traducir el texto del aná- necesarios?, ¿qué objeto lleva el control del
JOUFSGB[HSgGJDB
%JBHSBNBEF
lisis a objetos y métodos consiste en identifi- CU? Estas preguntas se deben resolver al di-
DMBTFT car qué objetos están involucrados, el texto señar cada caso de uso.
.PEFMP
DPODFQUVBM
del análisis menciona normalmente sólo a
los objetos de negocio; mismos que posible- Una de las técnicas más utilizadas para de-
mente tengamos ya incluidos en el modelo finir las responsabilidades de los objetos es
Figura 1. Entradas y salidas del diseño de un caso conceptual. Es responsabilidad del diseña- clasificar cada objeto de acuerdo al patrón
de uso. dor identificar e incluir el resto de los objetos Modelo-Vista-Control (MVC) como frontera,
que participan en el caso de uso y que no son control o entidad.
El diagrama de secuencia es un diagrama de negocio, como ventanas, formas, servicios
de comportamiento y modela lo que suce- web, persistencia, seguridad, etcétera. Los objetos de frontera son los que interac-
de internamente en el software cuando, por túan con el actor, mostrando información o
ejemplo, los usuarios aprietan botones y Tampoco se trata de modelar todos y cada recibiendo peticiones. Estos objetos repre-
teclas, ahí debemos definir con qué objetos uno de los objetos, solo los más importantes sentan ventanas, páginas web y servicios
de frontera (GUI, servicios web, etcétera) in- para la ejecución del caso de uso, no tiene web entre otros.

48 AGO-OCT 2008 www.sg.com.mx


Los objetos de control son los que reciben lar y no cuando estamos programando, por
mensajes de los objetos frontera y deci- ejemplo, si únicamente diseñamos con un
#JCMJPUFDBSJP GSN3FH1SFTUBNP DUSM$63FHJTUSBS1SFTUBNP DSFEFODJBM MFDUPS
den qué curso de acciones tomar, enviando diagrama de clases, corremos el riesgo de
mensaje a todos los objetos involucrados en WBMJEBS-FDUPS OVN$SFE

que cuando estemos programando el caso


WBMJEBS-FDUPS OVN$SFE

atender la petición del usuario. En una de las de uso Pagar Multa y nos demos cuenta de que
variantes del patrón MVC se modela un obje- OVN$SFE7BMJEPWBMJEBS OVN$SFE
CPPM
el objeto credencial se comporta similar en el
to de control para cada caso de uso, el cual DSFE7JHFOUFWJHFOUF
CPPM
caso de uso Prestar Libro, tengamos que hacer
tiene los pasos necesarios para ejecutarlo. MFDUPS&MFHJCMF1SFTUBNPFMFHJCMF1SFTUBNP OVN$SFE
CPPM refactoring sobre el código de ambos casos
HFU%BUPT

de uso, y definitivamente es más rápido y ba-


Los objetos entidad son los que ya se han NPTUSBS MFDUPS

rato modificar diagramas que código.


identificado como clases en el modelo con-
ceptual, aunque se podrían identificar nue- Otra ventaja está en la posibilidad de de-
vos conceptos de negocio en el diseño. Tam- Figura 3. Responsabilidad de los objetos. sarrollar una arquitectura consistente para
bién se pueden modelar los objetos de una todo el sistema. Si sólo diseñamos utilizan-
capa de persistencia como objetos entidad. Datos. En un diagrama de secuencia debe do diagramas de clases, cada programador
modelarse con mensajes de creación (- - - >) puede codificar sus casos de uso con un
en qué momento se necesita crear un objeto, estilo muy particular y distinto al de los de-
al encontrar una X en la línea de vida de un más, que dependerá más de la calidad de la
objeto, sabemos que es elegible para reco- especificación del caso de uso y la habilidad
lección de basura. de cada programador.
'SPOUFSB $POUSPM &OUJEBE
Los objetos que no reciben un mensaje de Pero, como le solemos explicar a nuestros
Figura 2. Estereotipos de los objetos en el patrón MVC. creación se asume que ya existen antes de co- alumnos en nuestros cursos, la proporción
menzar el caso de uso y el símbolo del objeto de casos de uso a los cuales conviene dise-
En los objetos de negocio es donde el dise- está hasta arriba en el diagrama de secuen- ñarles sus diagramas de secuencia depende
ñador debe aplicar su pericia para definir la cias, como puede observarse en la figura 4. de la situación del proyecto y sus tiempos.
responsabilidad de cada objeto, por ejem- Debido a que en la mayoría de los casos
plo, si hay que validar que una credencial no contamos con tantos recursos ni tiempo
esté vigente, no es responsabilidad del ob- #JCMJPUFDBSJP GSN3FH1SFTUBNP DUSM$63FHJTUSBS1SFTUBNP
como para poder desarrollarlos todos.
jeto ventana, si no de un objeto credencial, WBMJEBS-FDUPS OVN$SFE

verificar que el lector no tenga más de tres WBMJEBS-FDUPS OVN$SFE

préstamos vigentes y ninguna multa sin OFX$SFEFODJBM Conclusión


pagar, lo debe hacer el objeto lector y no la DSFEFODJBM Un buen diagrama de secuencia debe
OVN$SFE7BMJEPWBMJEBS OVN$SFE
CPPM
ventana de préstamos. Estas responsabili- dejar claro cuáles son los objetos in-
DSFE7JHFOUFWJHFOUF
CPPM
dades las podemos ver en la figura 3. volucrados, cómo colaboran dichos
objetos para realizar el caso de uso, y
Para definir las responsabilidades en un OFX-FDUPS

qué objetos se crean durante el caso


MFDUPS
diagrama de secuencia se deben identificar MFDUPS&MFHJCMF1SFTUBNPFMFHJCMF1SFTUBNP OVN$SFE
CPPM de uso y cuáles existían previamente.
que objetos de frontera intercambian men- NPTUSBS MFDUPS

HFU%BUPT

No es necesario indicar el algoritmo


sajes con el actor y que objetos de control para validar el número de una creden-
solicitan a los objetos de entidad ejecutar cial o la sintaxis de una dirección de
las operaciones de negocio necesarias para email, eso le corresponde al progra-
realizar el caso de uso. Figura 4. Símbolo del objeto. mador, pero si es imprescindible indi-
car qué objeto es el responsable de va-
Mostrar el ciclo de vida de cada Ventajas de diseñar con un lidar y además a qué clase pertenece.
objeto diagrama de secuencia No olvides que, siempre que te sea
Saber qué objetos ya existen y cuáles son Elaborar un diagrama de secuencia para cada posible, es sano apoyarte en gente
los que deben crearse durante la ejecución caso de uso representa un esfuerzo impor- con mayor experiencia en las buenas
de un caso de uso es importante para evitar tante dentro del proyecto, pero nos permite prácticas. Al final tu usuario te lo agra-
que en cada caso de uso se reserve memoria detectar comportamiento común en varios decerá al beneficiarse con la calidad
a diestra y siniestra y se dupliquen objetos casos de uso, identificando tempranamente de tus sistemas.
haciendo viajes innecesarios a la Base de a los objetos y clases reutilizables al mode-

Mike Armas es consultor e instructor senior certificado por la OMG en Milestone Consulting.

www.sg.com.mx AGO-OCT 2008 49


// PM CORNER

MEJORES ESTIMACIONES PARA EL


DESARROLLO DE SOFTWARE
El Poker de la Planeación
Por Marco Dorantes

En la actualidad la teoría y la práctica del ño de software ofrezca mejores resultados la perspectiva del cálculo de proyectos de
diseño de software es todavía una mezcla cuando se realiza en un ambiente cooperati- desarrollo— sólo dos de las conclusiones
sui géneris entre arte-artesanía y ciencia- vo donde los diseñadores emplean todo tipo de DeMarco y Lister: El planteamiento en
ingeniería donde la precisión matemática es de lenguaje y sus formas de expresión habla- producción o manufactura tiende a evitar
tan relevante como el atractivo emocional. da o escrita para crear software de calidad. que los individuos se pongan a pensar en el
El lado técnico del diseño de software se asi- La importancia de la comunicación efectiva trabajo, a su vez, se inclina por empujar el
mila mejor familiarizándose con el proceso es imponente en diseño de software tan sólo esfuerzo hacia un enfoque ciento por ciento
creativo de obras que provienen exclusiva- seguida de la importancia de inventiva. Sin dedicado a la ejecución y a la conclusión de
mente de la lógica y cuyas propiedades por embargo, es paradójico descubrir que existe tareas bajo la excusa de que hay poco tiem-
ende no están definidas en el campo de la una imposibilidad intrínseca en la comunica- po, como si hubiese alguna vez trabajo por
física (con excepción quizá de la medida del ción humana que nos libera de intentar una hacer sin la presión del tiempo.
desorden observado en las dependencias comunicación perfecta. Así, el desarrollo de
en, desde y hacia dicho software). software se convierte en un juego cooperati- Un planteamiento que considera la natura-
vo de comunicación e invención con el cual leza del desarrollo de software incluye tiem-
El diseñador de software desarrolla y ejerce cada proyecto no intentará lograr comuni- po suficiente para pensar en, por ejemplo,
su talento desde su fuero interno en don- cación perfecta sino administrar la falta de ¿debiéramos siquiera realizar esta tarea? y
de encuentra la materia prima del software completez en nuestra comunicación. pensarlo en repetidas ocasiones. Un proyec-
mismo sujeto de diseño: la lógica, como to o un ambiente donde la reflexión —acer-
los principios de la inferencia lícita y los Calculando un proyecto de ca del contexto y rumbo del esfuerzo— es
criterios de la demostración válida que in- desarrollo de software alentada tienen mayor oportunidad de ofre-
vestigan y clasifican la estructura de las de- La responsabilidad del cálculo de las varia- cer predicciones más confiables. Después
claraciones y de los argumentos. Las propie- bles económicas típicas de un esfuerzo se- de todo ¿qué es un estimado?. Desde un
dades de la materia prima de un producto rio para llevar a cabo X está en función del punto de vista formal un estimado es una
cualquiera moldean las posibilidades de lo conocimiento y experiencia de quienes ha- predicción basada en una valoración pro-
que puede llegar a convertirse y la manera cen dicho cálculo. Ese conocimiento incluye babilística siempre sujeta a ser ajustada. El
en que alcanza su función. Por lo tanto, el no solamente las expectativas sobre X sino proyecto de alta prioridad que debe ofrecer
conocimiento detallado de las propiedades también sus propiedades intrínsecas, es de- los mejores beneficios económicos a todas
de la materia prima y de los bloques prefa- cir su naturaleza. las partes es precisamente el proyecto que
bricados es esencial para un buen diseño; no puede darse el lujo de privarse de dicho
donde los bloques prefabricados aquí son Tom DeMarco y Timothy Lister nos explican ambiente donde los individuos son estimu-
el software previamente escrito y disponible cómo la actividad del desarrollo de software lados a realizar reflexiones frecuentes.
para ser reutilizado. es inherentemente diferente a la actividad
de producción o manufactura. Ellos men- El trabajo intelectual es diferente al trabajo
Siendo la lógica —la lógica simbólica en par- cionan algunos efectos fatales que causa mecánico y los errores provisionales —no
ticular— parte de la materia prima en diseño la mentalidad de producción o manufactura permanentes— son una parte natural y sana
de software entonces para un empleo ade- cuando se aplica al desarrollo de software de este tipo de trabajo. Los errores de esta
cuado de la misma es ineludible el dominio y, sin embargo, cuán frecuente es el caso clase proveen más oportunidades para el
del lenguaje, sea este natural como el espa- de grupos gerenciales que permiten mol- aprendizaje y mantener un ambiente donde
ñol o el inglés o sea artificial como Microsoft dear su pensamiento por una filosofía de no se permiten dichos errores sólo provoca
Visual C#, para lograr consistencia, validez y administración enteramente derivada de que la gente adopte una actitud defensiva
completitud en el software diseñado. No es los ambientes de producción o manufactu- y de no intentar nada nuevo que tenga una
sorpresa entonces que la actividad de dise- ra. Por brevedad, aquí presentaré —desde ligera probabilidad de resultar mal. Dicho

Marco Dorantes es consultor en el diseño y formulación de software desde 1987. Ha realizado diversas contribuciones públicas en la comunidad mundial de pro-
gramación, tanto en foros técnicos como en software disponibles en www.xprogramming.com Publica un diario electrónico en blogs.msdn.com/marcod

50 AGO-OCT 2008 www.sg.com.mx


ambiente se provoca cuando se pretende do el proyecto. Una técnica para ejecutar la Los roles son el moderador, el dueño del
automatizar el proceso intelectual tal como estimación iterativa se llama poker de pla- producto y los estimadores. El dueño del
se automatiza un proceso mecánico —al neación. La granularidad del alcance funcio- producto es similar al rol gerente de produc-
estar este completamente entendido— o nal determina dos niveles de planeación: de to en MSF. Por cada función, caso de uso o
cuando se imponen metodologías rígidas grano grueso, y de grano fino. El nivel de pla- característica a ser estimada el moderador
que impiden a los individuos tomar cual- neación de grano grueso abarca funciones lee en voz alta la descripción. El dueño del
quiera de las decisiones estratégicas por generales de alto nivel y representa ciclos producto contesta cualquier pregunta que
miedo a que se equivoquen. Por otro lado, usualmente en la escala de meses. El nivel de tengan al respecto los estimadores. Después
un planteamiento más cercano a la realidad grano fino abarca funciones detalladas que de ser contestadas todas las preguntas para
del desarrollo de software estimularía a los son implementables en ciclos típicamente en esa función, cada estimador selecciona una
individuos a cometer este tipo de errores y la escala de semanas. Los ciclos de desarro- carta en forma privada y que represente su
ser felicitados cuando los cometan pues es, llo de grano fino inician con la ejecución del tamaño funcional estimado.
en parte, por lo que reciben su sueldo. Des- poker de planeación y terminan con una ver-
de esta perspectiva introduzco a continua- sión interina de la solución en desarrollo que Las cartas permanecen privadas hasta que
ción una estrategia que puede ser llamada incluye la implementación de las funciones todos los estimadores hayan hecho su elec-
estimación iterativa. estimadas en el poker de planeación inicial. ción. Entonces, todas las cartas son mostra-
Los ciclos de desarrollo de grano grueso sim- das simultáneamente de tal forma que todos
Estimación iterativa plemente son agrupadores de ciclos de grano los participantes pueden verlas. Es muy pro-
La idea básica es que cualquiera que publi- fino y terminan con la liberación de una ver- bable que en este punto los estimados va-
que un estimado es susceptible de mejorar sión pública de la solución en desarrollo. ríen significativamente y esto, de hecho, son
dicha habilidad y así publicar estimados buenas noticias. Si estos difieren, los estima-
cada vez más útiles. Dicho con otras pala- ¿Cómo mejorar tus dores con las evaluaciones más bajos y más
bras, se sabe que algunos estimados son estimaciones? altos proceden a explicar su estimado. Nóte-
intrínsecamente propensos a estar del todo La variedad de técnicas existentes para desa- se que no se trata de criticar o atacar a estos
equivocados y tienen que ser rechazados, rrollar una estimación pueden ser de ayuda estimadores en este punto, sino de escuchar
no ajustados, pues la actividad de estima- siempre y cuando se decida analizar su utili- y entender cuáles fueron sus criterios.
ción incluye tales callejones sin salida y el dad en el debido contexto, depende de usted
esfuerzo perdido puede mantenerse peque- estimado lector. A continuación resumo breve- El grupo puede discutir la función bajo es-
ño y ser considerado un error provisional. mente la técnica de poker de planeación para timación por algunos minutos, durante los
su consideración cuando le pregunten ¿cuán- cuales se pueden tomar notas de puntos
La estimación iterativa puede ser percibida do... ó cuánto...?, y que también le pueden importantes para el momento de estar im-
por algunos como una complicación política servir para valorar la calidad de la respuesta plementando dicha función. Después de la
pues les parece difícil justificar el re-trabajo cuando sea usted quien hace la pregunta. discusión, cada estimador revalora y reali-
y prefieren creer que les irá mejor usando za nuevamente un estimado seleccionando
el estimado equivocado aún cuando podría La técnica puede tener aplicación gene- la carta correspondiente de manera priva-
costar mucho más al final de cuentas. La ral, pero en realidad están orientados para da. Las cartas permanecen privadas hasta
estimación iterativa es una técnica heurís- proyectos de desarrollo de soluciones de que todos hayan evaluado y entonces to-
tica, es decir, una técnica de indagación y software, además se asume que los puntos das las cartas son mostradas simultánea-
descubrimiento; una manera de buscar la esenciales para mejorar el ¿qué desarrollar? mente. Para la segunda vuelta es probable
solución a un problema mediante métodos ya han sido debidamente considerados en que los estimados hayan convergido, pero
no rigurosos, por tanteo ó reglas empíricas. forma de una especificación funcional. El sino, será necesario repetir el proceso. El
La estimación iterativa considera al menos poker de planeación incluye como partici- objetivo es que estos converjan en un solo
cinco causas por las que las estimaciones pantes a todo el personal técnico posible estimado para la función en cuestión. No es
son deficientes: del grupo de proyecto incluyendo desarro- absolutamente necesario que todos coinci-
1. Escasez de destreza para estimar lladores, arquitectos, testers, DBAs, etcé- dan en un solo número, lo importante es
2. Predisposición o imparcialidad no consi- tera. Al inicio del poker de planeación se le que exista consenso.
derada en la estimación ofrece a cada estimador un mazo de cartas
3. Poco entendimiento del significado de un donde cada carta tiene escrito un valor es- Referencias
estimado timado válido: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, [ Agile Software Development. The
4. Uso inadecuado de políticas que obstacu- 16, 20, y 40. Los números deberán ser su- Cooperative Game by Alistair Cockburn ]
lizan una buena estimación ficientemente grandes para verse desde el [ Peopleware. Productive Projects and
5. Escasez de métricas de estimación para otro extremo de una mesa. Los números re- Teams by Tom DeMarco y Timothy Lister ]
referencia presentan el tamaño funcional relativo de lo [ Controlling Software Projects.
que se va a estimar y lo importante es que Management, Measurement and
No debiera suceder una sola vez al inicio de se mantenga consistencia entre los tamaños Estimation by Tom DeMarco ]
un proyecto pues su mayor valor se obtiene relativos, es decir, una función con tamaño 2 [ Agile Estimating and Planning by Mike
al repetirla por cada agrupación de alcance debe representar el doble de funcionalidad Cohn ]
funcional detallado en que haya sido dividi- de una función con tamaño 1.

www.sg.com.mx AGO-OCT 2008 51


// fundamentos

Un, Dos, Threads!


Una Introducción Simple a los Threads y sus Conceptos Básicos
Por Erick Frausto

Quizás están esperando leer algo sobre requerir mantenimiento, y por lo tanto, de- solo un usuario a la vez podría estar hacien-
threads al comenzar a revisar este artículo, bería un técnico estar al tanto de las repara- do uso de la caseta telefónica y también es
pero les propongo que recorran esta lectura ciones y mantenimiento de ésta, momento un hecho que diversos usuarios a la vez po-
de una forma diferente, qué les parece si co- en el cual el siguiente usuario de la caseta drían necesitar hacer uso de ella, por lo que
menzamos hablando sobre las casetas tele- deberá esperar fuera de esta si llegara algu- para resolver este problema necesitaremos
fónicas. Se preguntarán ¿cuál es la relación no en el momento de una reparación o hacer sincronizar el uso de la caseta y de esta for-
de los threads con estas?, descubramos mas fila si algún usuario ya se encontrara espe- ma asegurarnos que solo un usuario a la vez
adelante la analogía. rando para entrar (¡incluido Superman!) y la utiliza, por otra parte, el técnico encarga-
con esto permitir el trabajo del técnico quien do del mantenimiento también deberá ser el
En la ciudad de México no me ha tocado ver también tuvo que esperar a que terminara la único que podría estar dentro de la caseta ya
en las esquinas de las calles casetas telefóni- llamada de algún usuario si es que alguno que mientras el mantenimiento se realiza, la
cas con cabina, pero creo que todos hemos se encontrara usando la caseta en el mo- caseta estaría temporalmente fuera de servi-
visto una en las películas, como aquellas mento de su arribo. Una vez que el técnico cio y no podría ser usada ni por otro técnico
donde Superman entraba a cambiarse para termine con el mantenimiento y/o repara- ni por cualquier otro tipo de usuario. Con
ponerse su disfraz. Ahora que menciono esto, ciones, dará el aviso a los usuarios para que esto, nuestra clase que representa la caseta
Superman tendría que asegurarse de que continúen con el uso de la caseta. telefónica quedaría de la siguiente manera:
nadie mas utilizará la caseta telefónica don-  
package undosthreads;
de se cambiaba para que nadie descubriera Llegando a este punto, seguro que las perso- public class CasetaTelefonica {
private String numeroMarcado;
quién era realmente, y debido a que las case- nas que planificaron la forma en como funcio- private boolean enUso;
private boolean enMantenimiento;
tas telefónicas que ocupaba eran públicas y narían las casetas telefónicas de uso público public synchronized void usarCaseta(String numeroTel) throws
por lo tanto accesible para cualquier usuario, consideraron las siguientes situaciones: Exception {
if(enMantenimiento) {
wait(); // El usuario esperara a que el mantenimiento se
Superman tendría que tener cuidado. termine
}
• Las casetas telefónicas serán de uso com-        
enUso = true;
Sabemos que estas casetas al tratarse de partido numeroMarcado = numeroTel;       
if(!numeroMarcado.equals(“”)) {
un recurso compartido, su uso está sincro- • Los usuarios podrán llegar de forma con- System.out.println(“Se esta haciendo una llamada al
numero: “ + numeroMarcado);
nizado para atender a un usuario a la vez, currente a la caseta, por lo que el uso de la }
else {
así que por este lado Superman podría estar misma deberá sincronizarse System.out.println(“El usuario no específico un número
para hacer la llamada.”);
System.out.println(“Tal vez entro superman para cambiar-
tranquilo, y los usuarios que desean hacer • Un técnico se encargará de forma periódica se y salir al rescate...”);
}
una llamada también lo estarán ya que na- de visitar la caseta telefónica para realizar el        
long duracionLlamada = Math.round(Math.random() *
die mas interrumpirá su conversación mien- mantenimiento y/o hacer las reparaciones 10000);
Thread.sleep(duracionLlamada);  // Llamando...
       
tras usa la caseta telefónica. De lo contrario, correspondientes si estas fueran necesa- System.out.println(“Duración de la llamada: “ + duracionLla-
mada/1000 + “seg.”);
¡imagínense lo que pasaría si el uso de la ca- rias. En este momento, la caseta no podría numeroMarcado = null; // El usuario colgo el telefono
enUso = false;
seta telefónica no estuviera sincronizado!. ser utilizada por ningún otro usuario }
public synchronized void darMantenimiento() throws Excep-
Cualquier persona entraría a la caseta mien- tion {
enMantenimiento = true;
tras alguien más la está utilizando, colgaría Bien, ahora será momento de hacer la ana- while(enUso) { }
       
System.out.println(“Caseta Telefónica en mantenimiento...”);
su llamada y marcaría el nuevo número para logía de la caseta telefónica con los threads long duracionMantenimiento = Math.round(Math.random()
* 10000);
comunicarse con alguien más, además de y de plasmarla en código para poder echar a Thread.sleep(duracionMantenimiento);  // En mantenimiento...
       
        System.out.println(“Duración del mantenimiento: “ + dura-
que la cabina se saturaría después de unos andar nuestro ejemplo de manera práctica. cionMantenimiento/1000 + “seg.”);   
       
cuantos usuarios, seguro que habría bas- Para esto, primero pensemos en el diseño         enMantenimiento = false;
        notifyAll(); // El tecnico avisa a los usuarios que pueden
tantes problemas entre los usuarios además de nuestra caseta  y las diferentes formas continuar con el uso de la caseta
}
   
de que todos sabrían quién es Superman y en que podrá ser utilizada por sus usuarios, }

se enterarían de todo lo que dice la persona la primera sería su uso para realizar una lla-
que esté hablando. mada y dirigida a cualquier tipo de usuario;  Como podemos darnos cuenta, tanto el mé-
otra sería darle mantenimiento, enfocada todo usarCaseta() y el método darMantenimiento()
También deberíamos considerar que la case- a los técnicos encargados de que la caseta se encuentran sincronizados (synchronized),
ta telefónica podría sufrir descomposturas o funcione correctamente. Es un hecho que con esto aseguramos que los usuarios se-

Erick Frausto es egresado de la carrera de Ing. en Informática en UPIICSA-IPN. Además de desempeñarse como Arquitecto JEE, organiza cursos sobre tecno-
logía Java. Lo puedes contactar al siguiente e-mail: erick_frausto10@yahoo.com.mx. Erick dedica este artículo a su hermosa novia Irma.

52 AGO-OCT 2008 www.sg.com.mx


rán representados como threads podrán package undosthreads; da de Thread y llamaremos al método start(),
public class Usuario2 implements Runnable {
acceder uno a la vez a un método en par-     el cual iniciará la ejecución del thread (la JVM
private CasetaTelefonica ct;
ticular, de esta manera tenemos que solo     private String numTelefono; se encargará de llamar al método run() que
un thread entrará al método usarCaseta() public Usuario2(CasetaTelefonica ct, String numTelefono) implementamos para este Thread), para el
{
y un solo thread entrará al método this.ct = ct; segundo caso después de crear el objeto de
this.numTelefono = numTelefono;
darMantenimiento(). Pero lo anterior no resuel-     } la clase que implementa Runneable, creare-
ve del todo nuestro problema de concurren- public void run(){ mos una instancia de Thread y le pasaremos
try {
cia, ya que la implementación que tenemos ct.usarCaseta(numTelefono); a través de su constructor el objeto creado
}
hasta ahora permite que un usuario normal catch(Exception e) { un paso antes, posteriormente llamaremos
System.out.println(e);
y un técnico puedan hacer uso de la caseta } al método start() que tendrá la misma función
}
telefónica al mismo tiempo, por lo que de-     que en el primer caso.
beremos establecer una comunicación en- }

tre los usuarios normales y el técnico, esto Con la ejecución de la clase de prueba, po-
En el caso del técnico, la implementación
lo logramos mediante los métodos wait() y quedará de la siguiente manera: dremos ver algo como esto:
notifyAll(), el método wait() le dice al thread
que se este ejecutando que deberá suspen- package undosthreads; Se esta haciendo una llamada al numero: 98776655
der momentáneamente su ejecución has- public
    class Tecnico extends Thread { Duración de la llamada: 2seg.
Se esta haciendo una llamada al numero: 99887654
ta que otro thread le notifique que puede private CasetaTelefonica ct;
public Tecnico(CasetaTelefonica ct) { Duración de la llamada: 3seg.
continuar, el método wait() será llamado por this.ct = ct; Caseta Telefónica en mantenimiento...
    } Duración del mantenimiento: 4seg.
el thread que representa a un usuario normal public void run() { El usuario no específico un número para hacer la llamada.
cuando detecte que la caseta telefónica se try {
ct.darMantenimiento();
Tal vez entro superman para cambiarse y salir al rescate...
Duración de la llamada: 9seg.
encuentra en mantenimiento, y el método } Se esta haciendo una llamada al numero: 81909090
catch(Exception e) { Duración de la llamada: 1seg.
notifyAll() será llamado por el thread que repre- System.out.println(e);
}
senta al técnico, este método lo que hace es     }
avisar a los threads que están en espera que }
pueden continuar con su ejecución, es decir, Conclusión
le dirá a los usuarios que la caseta telefónica Finalmente nos queda crear una clase de prue- Es claro que lo que vimos fue una in-
esta lista para ser usada nuevamente. ba donde echaremos a volar nuestra pequeña troducción al tema de threads y a sus
aplicación, esta luce de la siguiente manera: conceptos básicos, estos dan lugar a
Una vez lista nuestra caseta telefónica, pa- tantas opciones dentro de la creación
semos a la creación de nuestros usuarios. package undosthreads; de aplicaciones en Java, desde las que
Como mencionamos antes, tanto la imple- public
    class Test { solo requieran levantar un thread en
mentación de los usuarios normales como la public static void main(String[] args) throws Exception {
CasetaTelefonica ct = new CasetaTelefonica();
paralelo al thread principal para que
       
implementación del técnico, deberán estar Usuario1 a = new Usuario1(ct, “98776655”); borre archivos temporales hasta apli-
basados en threads. Existen dos formas en         a.start(); caciones complejas que requieran toda
Usuario2 b = new Usuario2(ct, “99887654”);
Java mediante las cuales indicamos que una Thread hilo = new Thread(b); una administración de threads, como

clase será un thread, esto es extendiendo de         hilo.start(); una aplicación de scheduling donde
Tecnico tecnico = new Tecnico(ct);
la clase Thread o implementando la interfaz         tecnico.start(); se podrían tener diversos threads
Runneable, en ambos casos debemos de Usuario1 superman = new Usuario1(ct, “”);

ejecutándose en paralelo y accedien-
        superman.start();
implementar el método run() cuyo conteni- Usuario1 c = new Usuario1(ct, “81909090”); do a recursos compartidos, donde la
do será la actividad que el thread llevará a c.start();
} implementación de una aplicación de
cabo. Veamos ambos casos: }
    este tipo requerirá de toda la dedica-
ción y atención posibles tanto en su
package undosthreads;
public class Usuario1 extends Thread {
diseño como en su desarrollo.
   
private CasetaTelefonica ct; Aquí tenemos la creación del objeto caseta
    private String numTelefono; telefónica que será compartido entre los dis- El desarrollo de aplicaciones basa-
  public Usuario1(CasetaTelefonica ct, String numTelefono)
{ tintos usuarios. Después tenemos la creación das en threads es un tema complejo
this.ct = ct;
this.numTelefono = numTelefono; de diversos objetos que representan a los y para el cual existen libros completos
    } usuarios, lo interesante a mencionar en esta tratando el tema, sin embargo, espero
public void run() {
        try { parte es la diferencia cuando creamos un que esta pequeña introducción sea un
ct.usarCaseta(numTelefono);
} thread cuya clase que representa su función primer buen paso para los que se ini-
catch(Exception e) {
System.out.println(e);
hereda de la clase Thread o implementa la cian en el tema de threads y sus con-
}
    }
interfaz Runnable, en el primer caso solo es ceptos básicos.
} necesario crear el objeto de la clase que here-

www.sg.com.mx AGO-OCT 2008 53


// COLUMNA /*PRUEBA DE SOFTWARE*/

La Calidad del Software Mexicano


Resultados del 2º Concurso e-Quallity

Luis Vinicio León Carrillo es actualmente Director General de e-Quallity, empresa especializada en prueba de software, de la que es co-
fundador. Fue profesor-investigador en el ITESO durante varios años, que incluyeron una estancia de posgrado en prueba de software en
Alemania, en la que abordó aspectos formales de dicha disciplina. Es autor de varias publicaciones nacionales e internacionales. Fue co-
fundador del Capítulo Jalisco de la AMCIS.

R ecientemente el proceso de prueba de


software, de la empresa en la que laboro, fue
certificado con un nivel muy alto tanto en el
modelo estadounidense Testing Maturity
Model (TMM) como en el europeo Test
Process Improvement (TPI).

Aprovechando esta experiencia el año pa-


sado lanzamos el Concurso e-Quallity 2007, 5JFNQP
%FTBSSPMMPEFMQSPEVDUP .BOUFOJNJFOUPDPO1SVFCBT
en el que convocamos a la comunidad desa- 7FOUBT .BOUFOJNJFOUPTJO1SVFCBT
rrolladora nacional de software a enviarnos
productos pequeños terminados, para en- Figura-1: Impacto económico de las pruebas
contrar los productos con menor densidad
de defectos (cantidad de defectos entre ta- del software estadounidense es mucho más El proceso y la muestra
maño). Hicimos la premiación en el congreso grande y madura, la nuestra está apenas La evaluación de servicios la realizamos en
SG’07 Conferencia y Expo, publicamos los re- despegando, lo que dificulta ganar inercia tres fases:
sultados en la columna Prueba de Software positiva, y crea un nocivo circulo vicioso.
del número 20 de esta revista. 1. Un Diagnóstico del software: un tester ex-
En The Impact of Software Testing in small perimentado realiza pruebas exploratorias y
Este año llevamos a cabo el Concurso Settings, publicamos datos del impacto eco- detecta una primera capa de defectos. Uti-
e-Quallity 2008, del cual hicimos la premia- nómico de las de pruebas en dos proyectos lizando esa información y nuestro Modelo
ción en el pasado congreso SG’08 Conferen- reales en los que participamos. Puesto grá- Predictivo, se genera una estimación de los
cia y Expo. Aquí mostraremos los resultados ficamente tendríamos lo que se observa en defectos que aún se encuentran en el pro-
que se obtuvieron. Nuestro objetivo no es la Figura 1. ducto, el costo de detectarlos, y la compara-
realizar un estudio estadístico riguroso, sino ción del producto contra la media de calidad
poner nuestro grano de arena en la genera- Aquí la curva negra muestra el consumo de de los productos que hemos probado.
ción de datos para cubrir el enorme hueco los recursos al desarrollar un nuevo produc-
de información que tenemos respecto a mé- to de software, considerando datos de A 2. Con esos datos del diagnóstico, el intere-
tricas de calidad de los productos mexica- Guide to the Project Management Body of sado puede optar por contratar las Pruebas
nos, y su repercusión en la industria. Knowledge; la verde los ingresos por ventas Profundas para detectar esos defectos: si
del producto; la azul los costos de mante- el producto está muy mal, sólo se justifica
El Impacto de probar nimiento cuando el software es probado invertir en pruebas lo suficiente como para
inadecuadamente el Software adecuadamente antes de ser liberado y se detectar una pequeña segunda capa de
En la publicación de esa columna, mencio- elimina la mayoría de los defectos; y la roja defectos críticos (por ejemplo, probar sólo
nábamos que en 2003 la industria de los los costos de mantenimiento cuando no se alguna(s) sección(es)); si está muy bien,
Estados Unidos perdió cerca del 1% de su prueba o se prueba inadecuadamente el recomendamos no invertir en pruebas pues
PIB por pruebas de software inadecuadas o software. Cuando no se prueba adecuada- resultará muy caro detectar los defectos; si
inexistentes, equivalente a casi 60 mil millo- mente el software, los costos de manteni- el producto tiene un estado intermedio, las
nes de dólares. miento suelen mermar significativamente pruebas profundas sí pueden ayudar a me-
las utilidades (ventas – mantenimiento, jorar significativamente el producto.
Comentamos que en México no existe una grosso modo), dificultando la inversión en
cuantificación semejante, pero que pode- mercadotecnia e innovación en el producto, 3. Si después de estas pruebas profundas y
mos pensar que en nuestro país el efecto es haciendo difícil el crecimiento de esa unidad las correspondientes pruebas regresivas, el
más nocivo, pues mientras que la industria de negocio. software muestra un buen comportamiento

54 AGO-OCT 2008 www.sg.com.mx


“Mientras que la industria del software
estadounidense es mucho más grande y
madura, la nuestra está apenas despegando”.

al aplicar nuestro Modelo de Calidad de Pro- (Esto es un tema en sí mismo, que buscare-
ducto, otorgamos nuestro Sello de Calidad mos abordar en otro número.) Por tanto, la en nuestro país que reportan lograr
e-Quality Approved, mismo que fue validado hipótesis no es concluyente. densidades semejantes… lo curioso
con apoyo del Consejo Nacional de Ciencia y es que son los mismos programado-
Tecnología (CONACyT). Por otra parte, este año recabamos la mé- res los que realizan las pruebas, no un
trica de los Defectos por KLOC (D/KLOC). equipo de testers (interno o externo)
Para la ejecución del Concurso aplicamos un En el marco del Encuentro Prosoft llevado a debidamente entrenado, al que se le
proceso que representa un downsizing del cabo recientemente, se anunció el impulso pague por detectar defectos (a los de-
Diagnóstico mencionado arriba (fase 1). que se le brindará en nuestro país al mode- sarrolladores no se les entrena para
lo Team Software Process (TSP); ahí mismo eso, ni se les paga por ello).
Este año redujimos el número máximo de Watts Humphrey (autor de ese modelo y
concursantes a 20. Una cantidad considera- de CMMI) declaró que con TSP se pueden Para poder demostrar que con TSP
ble de productos fueron rechazados, ya fuera alcanzar densidades de defectos de hasta verdaderamente se pueden alcanzar
porque se excedían en el tamaño, o porque 0.06 D/KLOC, contra los 7.50 para el Nivel 1 esas densidades de defectos, sería
no estaban completamente terminados. de CMMI-1, los 6.24 para el 2, los 4.73 para interesante ver resultados de pruebas
el 3, los 2.28 para el 4, y los 1.50 para el 5. realizadas por un tercero, no por los
La muestra final constó de 15 productos, mismos desarrolladores de la empresa.
provenientes de varios dominios de aplica- Los resultados obtenidos en este Concurso
ción. Su tamaño (entre 20 y 30 meses hom- muestran que el 1º, 2º y 3er lugar tendrían Habrá que esperar además, más pre-
bre) se midió utilizando una métrica interna densidades de defectos correspondientes cisión de TSP, pues no es lo mismo ha-
semejante a los puntos de función. al Nivel 4, 4 y 5 de CMMI respectivamente… blar de esas densidades de defectos
lo curioso es que esas empresas no tienen para productos de 100 KLOC, que para
Resultados y Análisis tales acreditaciones. productos de 1,000 KLOC.
En la tabla que se muestra a continuación
presenta datos sobre la calidad de los pro- Aquí también hay que considerar la salve- Surge también la duda: ¿cuántas KLOC
ductos concursantes (KLOC = miles de lí- dad del tamaño (size matters). suelen tener los compiladores comer-
neas de código). ciales?, ¿con qué densidad de defec-
tos? Si fuera superior a 0.06 D/KLOC,
En un primer acercamiento, si comparamos Conclusión entonces los productos generados por
directamente la segunda columna contra los Un asunto pendiente que abordaremos ellos tendrían dificultad para alcanzar
resultados del Concurso pasado, podríamos en otro número es cómo los ganadores ese número.
pensar que estos productos son más esta- de los primeros lugares en el concurso
bles que aquellos. Sin embargo, estos fue- lograron esos niveles de calidad.
ron más pequeños, y como dijera un autor Referencias
“Size matters”: un producto de 100 KLOC Por otro lado: se asevera que con TSP [ León-Carrillo, L.: Columna “Prueba de
con 300 defectos en realidad tiene constitu- se puede obtener densidades de de- Software”, Software Gurú, Feb-Abr 2008 ]
yentes más confiables que un producto de fectos de hasta 0.06 D/KLOC; sin em- [ León-Carrillo, L.: The Impact of Software
10 KLOC con 30 defectos… siempre y cuando bargo, hemos encontrado empresas Testing in small Settings, en Oktaba, H.
tengan complejidad estructural semejante. and Piatini, M. et.al. Software Processes in
small Enterprises. IGI Global. 2008 ]
[ The Project Management Institute: A
 1SPEVDUP %FGFDUPT$BTPTEF %FGFDUPT,-0$
Guide to the Project Management Body of
  1SVFCB
Knowledge. USA, 2000 ]
 NgTNBEVSP   [ e-quallity.net/definiciones.php ]
 QSPNFEJP   [ e-quallity.net ]
 NFOPTNBEVSP  
» Luis Vinicio León Carrillo
Tabla-1: Densidad de Defectos en Productos mexicanos pequeños

www.sg.com.mx AGO-OCT 2008 55


// COLUMNA /*tendencias en SOFTWARE*/

Nuevos Patrones de Software para el


Consumidor Digital
El Concepto Mesh

Luis Daniel Soto es director regional de desarrolladores y difusión de plataforma en Microsoft para América Latina. Es miembro de la
orden nacional al mérito de México (ministro de educación). Luis Daniel obtuvo el primer lugar en el Concurso Nacional para Software de
Exportación en 1989. blogs.msdn.com/luisdans

Presente

S e han consolidado los medios sociales,


complementando a los medios tradicionales de
comunicación. Este conjunto de tecnologías del -BQUPQ
Web 2.0 junto con otras (por ejemplo, experien- )PNF%FTLUPQ
cia de usuario) evolucionan a Enterprise 2.0.

El desarrollador de software vive una gran 8PSL "EE%FWJDF


confusión entendiendo las tecnologías. Por
ejemplo, si he de construir una experiencia
-JWF%FTLUPQ
Rich Internet Application (RIA) o una Rich
Local Application, se tiene que entender a
fondo las diferencias y ventajas para selec- • Los dispositivos no tienen nociones de Internet un usuario almacena una lista de sus
cionar entre Silverlight, WPF, Ajax, HTML, pertenencia entre ellos. El usuario no tiene dispositivos para que estos tengan noción
FLASH, AIR, JavaFX y otras. una vista de todos sus dispositivos. Aunque a el uno del otro, para que posteriormente el
nivel empresarial está resuelta la distribución usuario pueda definir la ubicación de archivos
Las opciones que permiten crear aplicacio- de software, un usuario que tiene varias com- en cualquier dispositivo o en un almacena-
nes Web, para dispositivos, para el escrito- putadoras tiene que pelear por mantener la miento en la nube. Además existe un software
rio y para el servidor con las mismas herra- configuración e instalar en forma independiente. que es capaz de replicar los datos entre los
mientas y lenguajes son muy pocas. dispositivos utilizando normas de Internet y
• Los datos están atrapados. Apesar de vivir traspasando cualquier configuración de red.
Nuevas realidades: en la época de facilidad de intercambio de
cómputo en la nube información, esto no es cierto. Un usuario Por ejemplo, Juan crea un listado que incluye
El panorama se complicará, se demandará con varias computadoras tiene que enviarse la computadora de oficina, el sistema de tea-
la creación de nuevos patrones de creación correos a sí mismo a veces para sincronizar tro en casa, una Apple mac de uso personal y
de soluciones de software. Por una parte el sus sistemas. El paradigma actual de sincro- un teléfono celular inteligente. Después de-
cómputo en la nube (trataremos ese tema nización 1:1 es frágil y tedioso. fine que la carpeta “imágenes personales”
en una columna futura), por otra el desa- va a residir en la computadora que corres-
rrollo de cómputo empresarial (tampoco lo • Las aplicaciones no son capaces de vivir en ponde a la sala de TV pero que se mantendrá
trataremos a fondo ahora). Estamos por ver múltiples dispositivos: si fueron hechas para sincronizada en todos los dispositivos. Ese
una evolución de las herramientas de desa- Internet su capacidad de operar fuera de lí- usuario también desea que su esposa pueda
rrollo de software a creación de mashups nea es muy pobre. Carecen de capacidades acceder la carpeta por lo que de forma natu-
que combinen sistemas internos y externos, básicas de explotar las redes sociales a nues- ral permite la colaboración grupal.
y se continuará soportando mayor funciona- tro alrededor: de la misma forma que hoy el
lidad ALM en sistemas cliente-servidor. Hoy menú “editar, copiar” existe, debería permitir Esas computadoras, podrán sincronizarse y
nos enfocaremos en los consumidores fina- “etiquetar (tag), calificar (rate)”, etcétera. comunicarse de dispositivo a dispositivo de
les de tecnologías. forma segura: no se requiere Internet. Por
Es decir, el individuo que hoy vive en la era último, la actualización será automática y
Un modelo para aplicaciones digital no tiene acceso entre sus dispositi- transparente, los datos auténticamente se
del consumidor digital vos, aplicaciones, datos y redes sociales con hacen disponibles en el momento necesario
Ni el desarrollo monolítico, ni el de múlti- las que interactúa. y en cualquier dispositivo.
ples capas, tampoco el modelo de software
entregado como servicio resuelve las nece- Solución En el modelo más avanzado, es posible
sidades de los nativos digitales y del consu- El Web es el centro de intercambio de infor- ahora crear una aplicación, por ejemplo de
midor en la era digital: mación: imaginemos que de alguna forma en administración de proyectos, que puede tra-

56 AGO-OCT 2008 www.sg.com.mx


“El individuo que hoy vive en la era digital
no tiene acceso entre sus dispositivos,
aplicaciones, datos y redes sociales con las
que interactúa”.
bajar indistintamente en la nube, en una red las aplicaciones más triviales que se cons- •Manténgase informado. Es posible des-
o localmente. Y cuando lo hace localmente truyen bajo el nuevo esquema. cubrir los cambios y actividades que a cada
eventualmente se sincronizará. El usuario quién interesan.
tendrá la vista de que dispositivos han sido Resultado
sincronizados. Los beneficios son: •Nuevas experiencias. Se hace posible que
• Los dispositivos trabajan de forma inte- los sitios de Internet se extiendan en partes
Sin duda, esto representa un innovador pa- grada. Se comunican por canales encripta- portátiles que hace sentido llevar y operar
trón que complementa los existentes hoy en dos, cada dispositivo puede tener poder de fuera de línea. Combine esto con tecnolo-
día. Una implementación de este modelo es cómputo y almacenamientos muy variables, gías para crear interfaces cinemáticas en
parte de lo que se ha denominado Live Mesh. conforme lo demande la aplicación. pantallas muti-tácto y los consumidores es-
Se compone de una plataforma que define tarán complacidos.
modelos, servicios en la nube, software en • Acceso universal. Por primera vez, el mesh
el cliente y una experiencia de plataforma está disponible en cualquier dispositivo que La era de la innovación en software más ser-
que expone dispositivos, archivos, aplica- puede ser accedido desde cualquier cliente vicios apenas ha iniciado…
ciones, notificaciones y redes sociales. o arbitrariamente en cualquier explorador
de Internet. Rerefencias
No hay que confundir las primeras aplicacio- [ mesh.com ]
nes con el concepto, la implementación de • Simple de compartir. Es fácil invitar a más [ is.gd/tgj ]
carpetas virtuales o acceso remoto son solo personas a colaborar los unos con los otros. » Luis Daniel Soto

www.sg.com.mx AGO-OCT 2008


// TECNOLOGÍA /*INFRAESTRUCTURA*/

¿Repetir el Proceso?
10 recomendaciones para una migración P2V exitosa
Traducido por Martín Álvarez

Cuando se trata de migrar servidores físicos sión. La mayoría de las organizaciones tie- necesidades. Ahora es tiempo de empa-
a máquinas virtuales, muchos profesionales nen una fecha límite para su conversión de tarlas a las soluciones disponibles. Existen
de TI han descubierto que llegar ahí no es físico a virtual y tienen tiempo extra limitado cuatro enfoques básicos de la conversión
la mitad de la diversión. Muy a menudo, el para completarlo. Por lo tanto, el tiempo de P2V. Cada uno de ellos es efectivo en casos
proceso de conversión es más frustrante, conversión total y la capacidad de conver- de uso específicos y cada uno tiene sus li-
confuso y tardado de lo que necesita ser. El sión simultánea de cada enfoque son con- mitaciones. Primero elija el enfoque general
tiempo y recursos requeridos para la con- sideraciones importantes. Decida si puede y luego comience por evaluar opciones de
versión son variables importantes en el va- desconectar servidores para realizar la con- una solución específica. Éstas son cápsulas
lor global y el costo total de propiedad que versión durante o después de horas de tra- resumidas de enfoques de conversión P2V:
le brindarán sus sistemas virtualizados. Es bajo y determine de cuánto tiempo con los
fundamental seleccionar el enfoque correc- servidores desconectados dispone en total • CDs de arranque más utilidades genera-
to en la migración de servidores físicos a antes de la fecha límite del proyecto. A con- les de clonación y copia. Las organizaciones
virtuales (P2V) para minimizar riesgos, man- tinuación, divida el tiempo disponible entre a menudo utilizan software de clonación he-
tener su proyecto dentro del presupuesto y el número de servidores que virtualizará a redado y lo complementan con una utilidad
en continuidad, y sus datos intactos. fin de determinar su requisito de tiempo de de conversión de máquina virtual y CDs de
conversión total del que puede disponer por arranque para capturar, convertir y transferir
Presentamos las siguientes recomendacio- servidor. Aquí el presupuesto es también un archivos. Éste es el enfoque de conversión
nes para el manejo del proceso y la selec- factor (¿se necesitará tiempo extra o perso- original y puede ser difícil de usar, en espe-
ción de la solución que mejor satisfaga sus nal adicional para completar el proyecto?). cial si se le compara con alternativas más
necesidades. recientes. Es el mejor para proyectos de
3. Evalúe sus facultades conversión pequeños o únicos.
1. Evalúe las necesidades Las preguntas acerca del personal y del pre-
inmediatas y futuras supuesto no se pueden responder hasta que • Herramientas de conversión gratuitas
La conversión P2V se ha llevado a cabo de determine si su personal tiene las facultades de proveedores de plataformas de virtua-
muchas maneras, pero sólo unos cuantos y el tiempo para llevar a cabo la conversión. lización. Para los usuarios con un entorno
enfoques han funcionado bien en las migra- Evalúe sus conocimientos de TI internas y su virtual homogéneo, las herramientas gratui-
ciones a gran escala. La escalabilidad y la disponibilidad para determinar qué opcio- tas que ofrecen los fabricantes representan
velocidad son dos de los mayores diferen- nes tiene a disposición su organización. un paso adelante del enfoque de copiar e
ciadores entre las soluciones de conversión; iniciar. Como las herramientas gratuitas se
de modo que es importante que entienda 4. Fije una meta de nivel de éxito centran en el aspecto de la conversión y no
sus necesidades actuales y futuras. Las fallas en la conversión de servidores P2V intentan automatizar mucho del proceso
no son raras. Pueden ocurrir fallas con má- global, el tiempo total que se requiere para
Considere no sólo cuántos servidores se quinas virtuales de mayor tamaño por arri- preparar, convertir y solucionar problemas
necesitan convertir en el proyecto en curso, ba del rango de los 50 gigabytes, y también de los servidores puede ser muy largo, en
sino también si se pueden convertir otros cuando las herramientas P2V no cuentan especial en el caso de servidores grandes.
servidores de forma periódica o en masa con el soporte para ciertos entornos, con- Conclusión: son buenas para conversiones
(como volver otro departamento virtual troladores o servicios implícitos. Utilizando únicas y ocasionales.
después de que se completen los proyectos el tiempo y el personal disponibles como
actuales). También es importante tomar en guías, determine cuántas conversiones falli- • Herramientas y soluciones de conversión
cuenta si todos los servidores físicos serán das puede soportar, fije una meta de nivel comerciales. Las soluciones comerciales au-
convertidos a la misma plataforma virtual de éxito y úsela para ayudarse en la evalua- tomatizan muchas tareas relacionadas con la
o si se pudieran utilizar múltiples entornos ción de opciones. Debe poder encontrar una preparación, conversión y procesamiento pos-
virtuales. Algunas soluciones de conversión solución que le proporcione un nivel de éxi- terior, y a menudo proporcionan una interfaz
sólo admiten un entorno virtual. to de al menos 95%. de usuario única para estas etapas. Ofrecen el
tiempo total de migración más corto y pueden
2. Establezca escalas de tiempo, 5. Conozca las opciones (y sus incluir programación de actividades y funcio-
fechas límite y presupuestos limitaciones) nes avanzadas de conversión simultáneas;
A menudo el mejor enfoque depende del Si sigue las primeras cuatro recomendacio- de modo que a menudo son más adecuadas
tiempo disponible para completar la conver- nes tendrá un buen entendimiento de sus para proyectos de mediana y gran escala.

58 AGO-OCT 2008 www.sg.com.mx


• La subcontratación de servicios con un la red disponga del ancho de banda para que se deben llevar a cabo. Entre estas se
proveedor de soluciones es siempre una op- transferir la imagen virtualizada, y que la cuentan: revisar registros, reactivar servicios
ción y puede que sea la única opción prác- máquina virtual destino tenga la memoria y agentes, actualizar controladores, reali-
tica para organizaciones con necesidades para poder aceptarla. Trabaje con el propie- zar pruebas de control de calidad, ejecutar
únicas que no satisfacen las aplicaciones de tario del servidor y programe la conversión scripts generados por el usuario, activar y
conversión comerciales. Es más apropiada y la prueba subsecuente del entorno vir- sincronizar la nueva máquina virtual, crear
para organizaciones con restricciones seve- tualizado. Por último, fije fechas límite para documentación y quitar el software de con-
ras de tiempo y personal. solicitudes de cambios y programe la reali- versión. Estas actividades se deben contem-
zación de la conversión real. plar al calcular los requisitos de tiempo total
6. Calcule el tiempo total que de conversión, que frecuentemente se pasan
emplearía cada método 8. Automatice la ejecución por alto. Una vez más, el tiempo requerido
Tras un análisis inicial, uno o dos enfoques hasta donde sea posible para completarlas depende de lo completa
de conversión podrían parecer apropiados La realización del paso de conversión pue- que sea la solución de conversión.
para su proyecto. Uno de los errores más de tomar de unos 30 minutos a 20 horas. El
comunes (y costosos) que se comete en los tiempo requerido tiene un impacto impor- 10. Repita el proceso las veces
proyectos de conversión P2V es subestimar tante en el costo del proyecto y en la posibi- que sea necesario
el tiempo total requerido. Asegúrese de lidad de cumplir con la fecha límite. Se sus- Para realizar conversiones de medio y alto
considerar la preparación de los servidores citan muchos procesos entre el momento en volumen, el método debe ser repetible para
físicos, la programación de los tiempos para que se instala el software de conversión y ser efectivo. Las soluciones desarrolladas
los propietarios de los servidores, los pasos se inicia el servidor virtual recientemente para estos escenarios de uso tienen caracte-
precisos requeridos para llevar a cabo la con- migrado. Se deben seleccionar, configurar rísticas para eliminar mucha de la redundan-
versión y los requisitos de procesamiento y asignar nombres a destinos y anfitriones; cia en la conversión de decenas o cientos de
posteriores a la conversión cuando evalúe el es posible que se requiera alguna partición; servidores físicos.
tiempo total requerido. que se necesite configuración adicional para
la CPU y la memoria; se deben monitorear Existen muchos enfoques para convertir un
Estas recomendaciones deben ayudarle a las redes y las condiciones de error; se debe servidor físico en un entorno virtual, pero las
identificar el enfoque y la solución que me- asignar un nombre e iniciar la nueva máqui- opciones prácticas se reducen abruptamen-
jor se adapte a sus necesidades. Las reco- na virtual; y se debe repetir el proceso con el te cuando aumenta el tamaño del proyecto.
mendaciones siguientes se aplican a la eje- siguiente servidor. Cuantas menos de estas En el caso de migraciones de servidores a
cución de la conversión misma. tareas tenga que realizar el administrador gran escala, el tiempo del personal es a me-
manualmente, más rápido se realizará la nudo el elemento más costoso del proyecto
7. Prepare los servidores para conversión. Las velocidades de conversión de virtualización.
optimizar el proceso de reales varían considerablemente entre las
conversión herramientas y soluciones P2V, asegúrese Las soluciones que ahorran tiempo ahorran
Los tiempos de conversión pueden dismi- de considerar la velocidad cuando manipule dinero. Los conocimientos y la disponibi-
nuir y los niveles de éxito aumentar cuando todas las variables. lidad son también restricciones comunes.
los servidores físicos son preparados de Las organizaciones deben considerar el
manera efectiva con antelación. Los pasos 9. Verifique y haga pruebas tiempo de conversión total al evaluar dife-
a seguir en esta etapa incluyen calcular el La complejidad de la preparación y la conver- rentes enfoques y deben determinar qué
inventario de sus parámetros de configura- sión misma crean oportunidades de error; tareas necesitan que manipule su solución
ción, detalles de la licencia y direcciones IP, de modo que las máquinas virtuales recien- de conversión. Considerando y manejando
instalar parches de software, desfragmentar temente convertidas deben ser probadas estas variables, las organizaciones pueden
unidades de disco, limpiar directorios, des- para asegurarse de que la conversión haya seleccionar la solución más eficiente para
comprimir archivos y realizar otras tareas de sido exitosa. Incluso cuando resultó libre sus necesidades y por último minimizar el
mantenimiento. También debe verificar que de errores, existen varias tareas posteriores riesgo, el tiempo y el costo total.

Martín Álvarez realizó la traducción del documento original que pueden consultar en: http://www.vizioncore.com/articles/positiondoc/p2v.pdf

www.sg.com.mx AGO-OCT 2008 59


// TECNOLOGÍA /*gadgets*/

Connect-A-Desk
¿Cuántas veces has caminado con la lap-top encendida y escribiendo con una sola
mano? Suena extraño, pero ¡es cierto!. En ocasiones, tenemos la necesidad de estar con
la computadora portátil funcionando al mismo tiempo que caminamos o estamos para-
dos, es un poco incómodo no solamente teclear con una sola mano, sino estar cargando
con la otra la máquina con el riesgo de sufrir algún incidente (por ejemplo tirarla... bueno,
tal vez este ejemplo sea un poco exagerado). Para evitar cualquier tipo de percance y para
evitarnos la incomodidad de cargar con una mano y escribir con la otra, llega para complacer
a todo tipo de usuario el  Connect-A-Desk, un soporte para cargar la computadora portátil.

Fácil de transportar, de utilizar, de ponerse y quitarse; además es un artículo en pro de la ecología


al estar fabricado con plástico 100% reciclado, ergonómicamente diseñado, ajustable a cualquier
estatura de persona, puede utilizarse con cualquier tamaño de laptop, notebook o tablet; no impor-
ta en dónde te encuentres o si estás caminando o sentado en la sala de espera.

Compuesto por una base y un par de soportes que van al hombro, este producto llega para
alivianar la carga de una herramienta de trabajo, que se ha vuelto popular en este tiempo:
la laptop.

Sony VAIO

Mouse Talk

SE2 Labs
ITC One
Para los amantes de la tecnología, ha lle-
gado la navaja suiza de los gadgets. Así
es, SE2 Labs ha hecho posible el sueño
Los diseñadores industriales e ingenieros muestran su talento a través electrónico de muchos y saca el ITC One,
de este diseño compacto de mouse óptico de doble funcionalidad, es que ensambla lo más solicitado en el
además un teléfono vía Internet. Como mouse, ofrece una resolución de mercado del consumidor de tecnología.
800 dpi y con un peso de 67 gramos,  además de ser un teléfono para
VOIP que puede ser utilizado con Skype; tiene un led indicador que se Con un procesador de sonido THX y 125
enciende, a manera de alerta, cuando entra una llamada. Con tan sólo watts, un controlador Netlinx todo puede
presionar un botón, el mouse se abre para ponerlo en modo teléfono. ejecutarse sin dificultades desde un con-
trol remoto. Bajo el concepto de Hi-Def,
Es ideal para laptop y ahorra espacio en la oficina, el hogar o mientras se está elaborado con DVR y una pantalla
está en los ahora restaurantes y cafeterías con servicio de WiFi. ¡Ah! y tam- touchscreen en el frente. ¿Complicado?, no,
bién está disponible en color blanco. incluye un Apple iPod y un Xbox 360 (con
sus respectivos puertos de control) que lo
hace estándar, si eso no es suficiente se
puede escoger opcionalmente un player
Blu-ray, una AppleTV o un Nintendo Wii.
60 AGO-OCT 2008 www.sg.com.mx
INDEX

DIRECTORIO Anunciante Páginas Sitio

Adecco 2F, 1 www.adecco.com.mx


Avantare 43 www.avantare.com
CIAPEM 15 www.guerrero.gob.mx/ciapem2008
Compusoluciones 63 www.compusoluciones.com
Cutter 3F www.cutter.com.mx/summit2008
e-Quallity 13 www.e-quallity.net
Gartner 37 www.gartner.com/mx/econit
IDC 61 www.idc-eventos.com
IT Institute 57 www.it-institute.org
Manpower 47 www.manpowerprofessional.com.mx
Milestone Consulting 4F www.milestone.com.mx
Prodata 11 www.prodataconsult.com.mx
Safe Net 7 www.safenet-inc.com
SIE Center 9 ciisa.gda.itesm.mx

TENEMOS UN ESPACIO
RESERVADO PARA TI
Si deseas anunciarte contáctanos
en el (55) 5239 5502 o en
ventas@softwareguru.com.mx

www.sg.com.mx AGO-OCT 2008 61


// cOMUNIDADES

¿Cómo se Organiza la Comunidad?


Coordinación de Esfuerzos en Grupos de Desarrollo e Integración de Software Libre
Por Gunnar Wolf

Acercarse a comprender el funcionamiento y la organización de las para cada fallo, si cae en el ámbito de la consistencia del sistema
tareas dentro de las comunidades de desarrollo de software libre Debian (y por tanto debe ser corregido directamente por ellos) o si
es una tarea bastante complicada ante quien se acerca con curiosi- es relativo a la lógica de uno de los paquetes (en cuyo caso debe ser
dad, proveniente del mundo del software propietario, desarrollado corregido en coordinación con el autor de dicho programa, para que
e integrado centralmente y dentro de compañías que operan como la corrección “fluya” hacia las otras distribuciones que lo integran y,
“cajas negras”. Sin exponer sus procesos, sin ofrecer a los clientes en general, hacia todos sus usuarios).
una ventana a cada uno de los momentos de su proceso de desarro-
llo. Comprender cómo funcionan las comunidades de Software Libre Hasta hace unos cuatro años, la norma en Debian era que cada mante-
es una gran oportunidad para entender las distintas metodologías nedor fuera responsable exclusivo de los paquetes que le interesaran.
de ingeniería de procesos, en entornos donde todas las metodolo-
gías formales simplemente no tienen cómo ser aplicadas. En 2003 nació el sistema Alioth, basado en GForge, y ofreciendo de
una manera centralizada las herramientas necesarias para un ver-
El ejemplo que aquí se muestra se centra en el trabajo que realizo en dadero desarrollo colaborativo, se comenzaron a configurar grupos
el grupo de empaquetamiento de módulos de Perl (pkg-perl) para la amplios de mantenimiento de infraestructura. Uno de los primeros
distribución Debian GNU/Linux.  en aparecer, ante la iniciativa de Joachim Breitner, fue pkg-perl. El eje
fundamental en torno al cual gira el trabajo del grupo es el depósito
Retomando el concepto de que Perl  es un lenguaje de programación Subversion, donde mantenemos sobre un esquema de manejo de ver-
muy popular, especialmente para las tareas de administración de siones todos nuestros paquetes, programas y documentos, así como
sistemas y de desarrollo de sitios Web, y uno de sus más importan- los cambios independientes que vamos realizando sobre de ellos.
tes recursos es el CPAN (Comprehensive Perl Archive Network), una
enorme biblioteca de módulos nacida en octubre de 1996, y que a fe- Los módulos del CPAN ofrecen varias ventajas para su mantenimiento
brero del 2008 cuenta con más de 13,000 módulos independientes. masivo colaborativo. A diferencia de lo que ocurre en muchos lengua-
jes, casi la totalidad de los módulos están basados en una estruc-
CPAN ofrece a sus usuarios, además, herramientas para el desarro- tura de compilación ampliamente conocida (ExtUtils::MakeMaker o
llo y seguimiento colaborativo, un sistema de seguimiento de fallos Module::Build). Esto permitió la creación de dh-make-perl, un script
y un sistema de organización, búsqueda y consulta de la documen- bastante genérico cuyo objetivo original era simplificar la creación de
tación de dichos módulos. paquetes Debian directamente a partir del CPAN para ser instalados
localmente por los administradores, pero que fue extendido por el
El proyecto Debian, por su parte, es la distribución de software libre, grupo pkg-perl para automatizar la creación de paquetes.
hoy por hoy, más grande del mundo, con más de 15,000 paquetes
fuente independientes. Su propósito es presentar una colección co- Si bien formalmente el grupo pkg-perl cuenta con 70 miembros, en
herente, consistente y con un elevado nivel de control de calidad. todo momento hay aproximadamente 15 miembros activos. Actual-
mente, el grupo es responsable por 660 paquetes en las siguientes
El reto del grupo pkg-perl es empaquetar (de una manera consisten- actividades:
te con las políticas de Debian) y dar seguimiento a los fallos que va-
yan apareciendo en dichos paquetes. Debian ofrece a sus usuarios • Responsable el dar seguimiento a los fallos reportados
un sistema de seguimiento de fallos centralizado a través del cual • Mantenerlos al día (tanto respecto a nuevas versiones producidas
pueden comunicarse directamente con los “mantenedores” de cada por sus autores como respecto a las políticas en Debian, que van
uno de los programas. Son ellos los responsables de determinar, cambiando poco a poco reflejando la evolución del proyecto)

Gunnar Wolf ha sido usuario y promotor de Software Libre en México por más de diez años. Es fundador del Congreso Nacional de Software Libre (CONSOL)
y miembro externo del Departamento de Seguridad de Cómputo en la UNAM. Participa como desarrollador en el proyecto Debian desde el 2003. Trabaja como
administrador de red y en el desarrollo de sistemas para el Instituto de Investigaciones Económicas de la UNAM.

62 AGO-OCT 2008 www.sg.com.mx


“Comprender cómo funcionan las
Comunidades de Software Libre es una gran
oportunidad para entender las distintas
metodologías de ingeniería de procesos”.

• Realizar operaciones transversales de control de calidad a través de todos los paquetes,


y demás

Para simplificar la coordinación de todas estas tareas, los integrantes del grupo (especialmen-
te Martín Ferrari, de Argentina, Gregor Hermann, de Austria, y Damyan Ivanov, de Bulgaria)
hemos creado un script que tiene las siguientes funciones:

• Comparar el estado de los módulos en CPAN Comparar los paquetes en el depósito


• Subversion
• Comparar los reportes en el sistema de seguimiento de Debian, y los paquetes publicados
en la distribución misma de Debian

Hoy en día, este script es nuestra principal herramienta, brindándonos un reporte de estado
condensado y adecuado específicamente a nuestro flujo de trabajo. Y tan útil resulta este
resumen que actualmente estamos adecuando este script para que lo utilicen también otros
grupos con un enfoque similar; probablemente  para cuando este artículo esté impreso, lo
están utilizando ya los grupos de empaquetamiento de Python y Java, habiendo varios más
en el horizonte.

Conclusión
El ejemplo que aquí se presenta es sólo uno de tantos, pero es ilustrativo. Bajo el mo-
delo del software libre, las barreras entre desarrollo e integración se desvanecen, y el
contacto directo entre usuario final y los desarrolladores deja de ser una rara ocurren-
cia, y se vuelve la norma, algo que damos por supuesto en todo momento de nuestros
desarrollos.

Referencias
[ debian.org ]
[ perl.com ]
[ cpan.org ]
[ rt.cpan.org ]
[ search.cpan.org ]
[ pkg-perl.alioth.debian.org ]
[ bugs.debian.org ]
[ alioth.debian.org ]
[ svn.debian.org/wsvn/pkg-perl ]
[ pkg-perl.alioth.debian.org/cgi-bin/qareport.cgi ]

www.sg.com.mx AGO-OCT 2008 51


// BIBLIOTECA

Ajax on Rails
Scott Raymond
O’Reilly, 2007

01
Las nuevas tendencias del desarrollo para web nos invitan Es importante mencionar que el
al aprendizaje de herramientas de vanguardia, pero cuan- autor no olvidó hablar de pun-
do un par de estas se combinan para trabajar, entonces se tos importantes para el desa-
crea la mancuerna perfecta. Como ejemplo tenemos este libro. rrollo de una aplicación como
son las pruebas, detección de
El lector aprenderá a construir aplicaciones web dinámicas utilizan- errores, seguridad y tiempo
do dos de las herramientas más importantes de desarrollo actual: de ejecución. Dedicando por
Ajax y Ruby on Rails. A través de sus páginas, conocerá cómo combi- separado un espacio para
nar ambas tecnologías para construir rápidamente aplicaciones con cada uno de ellos, el autor
alto tiempo de procesamiento y escalabilidad. habla sobre los principios
de seguridad de las apli-
Los capítulos del libro no solamente incluyen una introducción a los caciones web, así como
conceptos de Ajax y Rails, además incluye la explicación y uso de las estrategias de estudio
Prototype, framework de JavaScript que permite el fácil desarrollo del “performance”.
de aplicaciones web dinámicas.
En la sección de tiempo de ejecución incluye temas como: optimi-
Para hacer una mejor mancuerna con Prototype, incluye un capítulo zación de sesiones, tiempo de respuesta en las peticiones a Rails,
dedicado a uno de los add-on’s de este framework: script.aculo.us, reducción en la comunicación entre JavaScript, CSS y Ajax y la utili-
en el que se enseña el uso de las características de la biblioteca que zación de Ajax para mostrar el progreso de una tarea del usuario.
corresponden a la plataforma Rails.

Inside Windows Communication


Foundation
Justin Smith
Microsoft Press, 2007

02
Para los interesados en WCF con conoci- A través de sus 10 capítulos
mientos previos en el mismo, llega este el lector puede apreciar el
libro para profundizar más en el tema. Con por qué y el cómo de WCF,
la finalidad de dejarle los mejores conceptos al lector, ya que el libro muestra el
el autor trata en la primera parte una introducción para balance entre la cobertura
enseñar el por qué del concepto además de mostrar las del modelo y los concep-
metas del mismo. tos que deben ser con-
siderados dentro de las
En la segunda parte del libro,  podemos encontrar con- aplicaciones de WCF.
ceptos más propios de Windows Communication Founda-
tion como los mensajes, los canales y los administrado- Este libro brinda al lector, un vistazo dentro de Windows
res de canales para terminar con una tercera parte que Communication Foundation para facilitar el diseño, construcción,
trata sobre la capa del ServiceModel. pruebas y mantenimiento de las aplicaciones.

64 AGO-OCT 2008 www.sg.com.mx


No. 21 www.sg.com.mx SG SOFTWARE GURU - CONOCIMIENTO EN PRÁCTICA Agosto-Octubre 2008

Vous aimerez peut-être aussi