MAR-ABR 2005

Anuncio
• MoProSoft en
la práctica
• La problemática
de pruebas
• Estructura de
paquetes J2EE
Software Guru CONOCIMIENTO EN PRÁCTICA
Año 01 No.02 • Marzo-Abril 2005
EDUCACIÓN
ENTREVISTA:
Blanca Treviño
Modelos y
Tendencias
CEO de Softtek
EN SERIE
Centros de Desarrollo de Software
A Fondo
Además: Noticias • Eventos • Fundamentos • Biblioteca • Tecnología • Carrera
XMLSpy 2005
DIRECTORIO
Edición Ejecutiva
Pedro Galván
A>
EDITORIAL
Coordinación Editorial
Mara Ruvalcaba
Edición y Producción
Edgardo Domínguez
Dirección de Arte
Oscar Sámano
La noción de industrializar el desarrollo de software ha sido un tema bastante
popular en los últimos años. Cada que escuchamos sobre un proveedor de servicios que se autoproclama como fábrica de software, es difícil evitar pensar
en qué tanto es realidad y qué tanto es moda. Definitivamente la evolución de
esta industria hacia modelos de mayor productividad no es una moda, es una
necesidad. Los centros de desarrollo de software son un paso importante en
esta evolución, por lo que es importante conocer su modelo de trabajo. Para
ejemplificar, hemos seleccionado tres empresas pioneras, que brindan un servicio de clase mundial.
En este número también hablamos sobre los perfiles de carrera relacionados con
TI, actualmente disponibles en México. Consideramos que este es un tema de
vital importancia, dado que como todos sabemos, estamos en una industria altamente intensiva en capital humano, donde es fundamental una formación educativa competitiva a nivel mundial.
Queremos agradecer las facilidades otorgadas por los diferentes centros de desarrollo, especialmente a: Blanca Treviño, Alejandro Camino, Alejandra Ancira y Yaneth
Herrera en Softtek; Carlos Cevallos, Carlos López, Isabel Calderón y Vanessa Romero
en IBM; Arnoldo Díaz, Sergio Durán y Alberto Balderas en Certum.
Equipo Editorial
P.D. Continuamos agradeciendo el apoyo por parte de todos ustedes. Estamos muy
contentos por el gran recibimiento que ha tenido Software Guru, así como las expectativas que estamos generando. Agradecemos el interés de nuestra audiencia
en América Latina, especialmente de Alfonsina Morgavi, nuestra primera colaboradora internacional.
02
MAR-ABR 2005
Consejo Editorial
Francisco Camargo, Guillermo Rodríguez,
Ralf Eder y Raúl Trejo, ITESM CEM;
Hanna Oktaba, UNAM-AMCIS;
Luis Cuellar, Softtek.;
Luis Vinicio León, e-Quallity
Colaboradores
Omar Ruvalcaba, Kendra Medina,
Alfonsina Morgavi, Claudia Alquicira,
Ma. Julia Orozco, Luz Ma. Luckie,
Ramés Rodríguez, Ramón Hernández,
Alfredo López, Ariel García, Karla García,
Luis Daniel Soto
Ventas
David González
Marketing
Natalia Sánchez
Webmaster
www.aguilahosting.com
Contacto
[email protected]
+52 55 5239 5502
Software Guru es una publicación bimestral editada
por Brainworx S.A. de C.V., Malinche no. 6, Col. El
Parque, C.P. 53398, Naucalpan, México. Prohibida la
reproducción total o parcial del contenido 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 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: PP155106. Se imprimió en febrero de 2005 en Litográfica
Roma S.A. de C.V. Distribuido por Sepomex.
www.softwareguru.com.mx
contenido mar-abr 2005
EN PORTADA
Centros de Desarrollo de Software: Un Nuevo Paradigma
¿Qué es un centro de desarrollo de software? ¿Cómo funcionan y cuáles son
algunos ejemplos en nuestra región?
Productos
número 02
20
Consideraciones Legales 16
en el Desarrollo de Software
Caso de Estudio
LO QUE VIENE
Borland Core SDP y RFID
10
MoProSoft en la Práctica
A FONDO
Altova XMLSpy 2005
12
Ma. Julia Orozco y Claudia Alquicira comparten
su experiencia en la implantación de MoProSoft
en una empresa de desarrollo de software.
32
HERRAMIENTAS
Object-Relational Mapping
14
Entrevista
18
Blanca Treviño, CEO de Softtek
Prácticas
PRUEBAS
Transitando hacia el Cambio
Columnas
Tejiendo Nuestra Red
por Hanna Oktaba
06
Mejora Continua
por Luis Cuellar
08
Cátedra y Más
por Ralf Eder
www.softwareguru.com.mx
41
36
Poco a poco se valora mås el valor de las pruebas
de software. Alfonsina Morgavi nos comparte
su experiencia en la formación y reclutamiento
de ingenieros de pruebas.
ARQUITECTURA
Estructura de Paquetes para
Sistemas J2EE
38
Organizar las clases en un sistema J2EE no es
algo trivial. Ramsés Rodríguez nos recomienda
una estrategia para definir una jerarquía de
paquetes adecuada.
Educación
28
Modelos y Tendencias
En Cada Número
Noticias y Eventos
Fundamentos
Tecnología
Biblioteca
Carrera
04
42
44
46
48
MAR-ABR 2005
03
CASO DE ESTUDIO
Noticias
ExpoComm México 2005
consolida su liderazgo
Del 8 al 11 de febrero se llevó a cabo con gran éxito EXPOCOMM
MÉXICO 2005. Innovación y convergencia tecnológica fueron las
principales características que 23,302 profesionales de Telecomunicaciones y Tecnologías de Información (TIC) pudieron presenciar
durante este foro. Ésta fue la 14a edición de EXPOCOMM, que se
consolidó como el foro de Telecomunicaciones y Tecnologías de
Información más importante en México. En su interés por cubrir
el ámbito de software, EXPOCOMM presentó los pabellones especializados de Soluciones de Seguridad y Almacenamiento, y el de
Consultores e Integradores. El programa de conferencias de EXPOCOMM incluyó conferencias magistrales de Motorola, Nortel, IBM
e Intel y la realización en paralelo del Foro Tendencias de Select, lo
cual reunió a expertos nacionales e internacionales para compartir
su experiencia sobre retos y tendencias en México y el mundo.
Para mayor información, visita: www.expocomm.com.mx
IBM México obtuvo el
máximo nivel del modelo
Capability Maturity Model
Integration (CMMI) para
desarrollo de software
IBM de México, a través de la organización de Servicios de Gestión de Aplicaciones (AMS, por sus siglas en inglés),
obtuvo el Nivel 5 de capacidad y madurez
bajo el modelo Capability Maturity Model
Integration (CMMI) para desarrollo de
software, que otorga el Instituto de Ingeniería de Software (SEI) de la Universidad
Carnegie Mellon, Estados Unidos. “En la
búsqueda por ofrecer mejores servicios
y productos de alta calidad a nuestros
clientes, decidimos evolucionar el programa de mejora continua de procesos,
reemplazando el modelo de referencia
anterior por el más reciente modelo del
SEI: CMMI, el cual está siendo adoptado
por la industria de software a nivel mundial como el nuevo marco de referencia
para evaluar la capacidad de las organizaciones para entregar productos y servicios de alta calidad”, señaló Carlos López
Santibáñez, director AMS Latinoamérica
de IBM de México.
Para mayor información, visita:
www.software.ibm.com
04
MAR-ABR 2005
Se inaugura el Progama TechBA
El pasado 28 de febrero fue inaugurada la
primera Aceleradora de Negocios de Tecnología - México y Silicon Valley, conocida
como el Programa TechBA. Dicha aceleradora pertenece a un programa de la Secretaría de Economía y es administrada
por la Fundación México-Estados Unidos
para la Ciencia (FUMEC), en colaboración
con The Enterprise Network (TEN), y apoyada por el Instituto Tecnológico y de Estudios Superiores de Monterrey (ITESM),
la Universidad Panamericana (UP) y el
Instituto Politécnico Nacional (IPN). En
el Programa TechBA ya están trabajando las primeras compañías, entre ellas
3dmx, productora de animación 3D para
juegos y películas; Tralcom, proveedor de
contenido de e-learning; Pess M&D Center, comisionados en plantas eléctricas,
puesta en operación, y mantenimiento;
BlockNetworks, proveedor de soluciones
ERP y BPM; Stakeware, software de responsabilidad social; y Azertia, proveedor
de soluciones personalizadas para empresas pequeñas. Todas estas compañías
han desarrollado productos y servicios
innovadores, y están listas para extender
su mercado en Silicon Valley.
Para mayor información visita:
www.techba.com
Secretaría de Economía
Publica las Reglas de Operación
de ProSoft
El pasado viernes 18 de febrero, la Secretaría de Economía dio a conocer las
Reglas de Operación del Programa para
el Desarrollo de la Industria del Software (ProSoft), en el Diario Oficial de la
Federación. Estas reglas especifican información relacionada con organismos
participantes, beneficiarios, criterios
de elegibilidad y tipos de apoyo, como:
capital humano, calidad y capacidad
de procesos, innovación y desarrollo
tecnológico, proyectos productivos, desarrollo de capacidades empresariales
y de estrategia, acceso al financiamiento, promoción y comercializacion, y desarrollo de masa crítica, entre otros.
También lista a detalle el presupuesto
asignado y montos de apoyos para
las diferentes categorías, incluye el
formato de la solicitud de apoyo, y
muestra cada actividad a ejecutarse
para llevar a cabo el proceso completo de evaluación, otorgamiento, y seguimiento de fondos.
Para mayor información visita:
www.software.net.mx
www.softwareguru.com.mx
Eventos
Marzo-Abril 2005
2-3 Marzo 2005
Sun Tech Days
Sun Microsystems
World Trade Center
Ciudad de México
Info: www.suntechdays.com.mx
e-mail: [email protected]
2,3,4,9,10 y 11 Marzo, 13,14,19,27 y 29 Abril
Developer Days
Microsoft
Marzo: 2 y3 Cd. Juárez, 4 Chihuahua, 9 Los Mochis,
10 - Culiacán, 11 - Mazatlán. Abril: 13 - Cd. de México (por
confirmar), 14 - Aguascalientes, 19 - Tuxtla Gtz.,
27 - Zacatecas, 29 - Puebla
Info: www.microsoft.com/spanish/msdn
18 Marzo 2005
Seminario Proceso de Desarrollo
de Software
Universidad Autónoma de Nuevo León y Kernel
Dirección General de Informática
Monterrey, Nuevo León
Info: www.kernel.com.mx
Tel: (81) 8625-2500
e-mail: [email protected]
6-7 Abril 2005
III Cumbre Gartner – Integración de Aplicaciones y Servicios Web
Gartner
Centro Banamex
Ciudad de México
Info: www.gartner.com/mx/appint
Tel: (55) 5207-2695
e-mail: [email protected]
28 Abril 2005
2 y 15 Marzo, 5 y 19 Abril 2005
Talleres Software.net.mx
Secretaría de Economía y Microsoft
Auditorio de la Secretaría de Economía (Condesa)
Ciudad de México
Info: www.software.net.mx
Tel: 01800-849-9959
e-mail: [email protected]
Seminario Gratuito “Logrando Proyectos
Exitosos con Subcontratistas de
Software y Creando una Oficina de
Proyectos Práctica y Efectiva”
Itera
Cd. de México
Info: www.itera.com.mx
Tel: (55) 5281-7670
e-mail: [email protected]
7-10 Marzo 2005
SEPG 2005 - Deliver Winning Products
Through Process Improvement
Software Engineering Institute
Washington State Convention & Trade Center
Seattle, Washington
Info: www.sei.cmu.edu/sepg
e-mail: [email protected]
Eventos
Mayo 2005
16-20 Mayo 2005
14-18 Marzo 2005
SD West 2005 – Develop an Advantage
StarEast 2005 - Software
Testing Conference
CMP Media
Santa Clara Convention Center
Santa Clara, California
Info: www.sdexpo.com
e-mail: [email protected]
Software Quality Engineering
The Rosen Centre Hotel
Orlando, Florida
Info: www.sqe.com/stareast
e-mail: [email protected]
18 Marzo 2005
22-26 Mayo 2005
Asociación Mexicana para la Calidad en Ingeniería de
Software (AMCIS)
Ciudad de México
Info: www.amcis.org.mx
Tel: (55) 5563-5039
e-mail: [email protected]
IBM Rational Software
Mandalay Bay Resort
Las Vegas, NV
Info: www.ibm.com/software/rational/events/rsdc2005/
Tel: +1(888) 889-0074
e-mail: [email protected]
Diplomado en Calidad de Software
www.softwareguru.com.mx
Rational Development Conference 2005
MAR-ABR 2005
05
COLUMNA
TEJIENDO NUESTRA RED
Proceso y Calidad del Producto
Una Preocupación Real
E
La Dra. Hanna
Oktaba es profesora
en la Facultad de
Ciencias de la UNAM.
Es fundadora y vicepresidenta de la Asociación
Mexicana para la
Calidad en la Ingeniería
de Software. Actualmente dirige el proyecto
para la creación de una
norma mexicana para la
industria de software.
Barry Boehm
Victor Basili
06
MAR-ABR 2005
n enero de este año me tocó viajar al sorpresivamente frío Orlando para participar en el segundo
taller del International Process Research Consortium (IPRC), cuyo objetivo es definir el mapa y la ruta
(roadmap) de la investigación en el área de procesos de
software para los próximos cinco-diez años. En esta ocasión se incorporaron dos grandes figuras de la Ingeniería
de Software, uno de ellos es Barry Boehm, el famoso autor
del modelo espiral para el desarrollo de software, quien
acaba de publicar, con Richard Turner, un nuevo libro bajo
el muy llamativo título: Balancing Agility and Discipline, A
Guide for the Perplexed. El segundo famoso es Victor Basili,
conocido por su modelo GQM (Goal-Question-Metric), quien
resultó ser una persona muy participativa y amena. En este
taller también ya se cerró el grupo de patrocinadores, quienes
por una módica cuota de $150,000 USD tienen derecho de
mandar a un representante a cada taller. Entre ellos se encuentran Bosch de Alemania, Tata de la India y los demás provienen
de organizaciones estadounidenses como Lockheed Martin,
Florida IT Centres of Excellence, University of Pittsburgh y,
por supuesto, Software Engineering Institute.
Para que nos ubicáramos en el tiempo y entendiéramos mejor qué es lo que pueda pasar en un lapso de diez años, los
organizadores nos pidieron recordar y compartir nuestras experiencias personales de hace diez años. Fue muy divertido y
muy aleccionador escuchar experiencias personales, las cuales, en su mayoría, fueron bastante lejanas de los intereses y
quehaceres actuales de los participantes. Para cumplir con
el encargo, revisé mi CV para constatar que hace diez años
me dedicaba a dar cursos en la maestría de Diseño OO (basada en libros y artículos de Booch, Dijkstra, Hoare y Brinch
Hansen) y Tipos de Datos Abstractos y Estructuras de Datos
con especificaciones algebraicas al estilo de John Guttag.
¡Ah, qué tiempos aquellos!
Una buena parte del tiempo del taller nos dedicamos a familiarizarnos con la técnica de construir escenarios para
imaginar lo que puede pasar dentro de diez años. Se ha
hablado de grandes tensiones en el mundo entre Prosperidad & Pobreza (migración), Intangibles & Físicos (servicios, comunicación), Poder & Vulnerabilidad (más poder,
más vulnerabilidad), Aceleración Tecnológica & Retroceso
(problemas éticos), Laicismo & Sagrado (agnosticismo vs.
religión), Gente & Planeta (en los próximos veinte años,
98% de la gente va a nacer en los países en desarrollo).
Se han mencionado algunas ideas emergentes, como por
ejemplo:
• Cambios en los modelos organizacionales
(multi-sitios, virtuales)
• Crecimiento de la economía informal
(también en software)
• Acercamiento de sistemas de software a los humanos
• Litigio y rechazo de los humanos con respecto al software
• Programación por usuarios finales - ¿vamos a necesitar
programadores?
• Crecimiento inmenso del poder computacional.
Como anécdota, que confirma algunas de estas inquietudes, les cuento que el mini-bar de mi cuarto en el hotel de
Orlando era tan “inteligente” que bastaba sacar la botella,
sin siquiera abrirla, para que te la cargaran a tu cuenta.
Antes de retirarme del hotel me llevé la sorpresa de encontrar en mi cuenta varias cosas nada más por tocarlas.
Afortunadamente, el personal de la recepción demostró
todavía su lado humano y me creyó cuando juré que solamente levante las botellas por pura curiosidad. Pero el
disgustó que me llevé antes de que se aclararan las cosas,
nadie me lo quita.
En el evento se han hecho preguntas importantes, como
por ejemplo:
• ¿Qué forma va a tener software en el futuro?
• ¿Qué va a pasar si los procesos no progresan más?
• ¿Quién controla a la tecnología? ¿Gobiernos, gente
o mercado?
Estas preguntas quedaron sin respuesta pero nos abrieron
los ojos a un abanico de incertidumbres que debemos analizar y tomar en cuenta para hacer propuestas o predicciones.
Para finalizar el taller se realizó una actividad que ya se
repitió por segunda ocasión, y que se llama “chaos cocktail party”. Cada participante escribió en una tarjeta el
tópico más importante, según su parecer, surgido durante
este taller. Luego, durante unos minutos intercambiamos
las tarjetas entre nosotros y, a la señal dada por la facilitadora Suz García, nos juntamos en parejas para asignar las
calificaciones de 1 a 5 a los dos tópicos comparados. La
calificación más alta se asignaba al tópico más importante según la pareja. Este “baile” se repitió cuatro veces y,
finalmente, se seleccionaron los tópicos mejor evaluados.
Para la sorpresa de todos, los seis tópicos más importantes rondaban alrededor del tema: Relación clara entre el
proceso y la calidad del producto. Sin duda, esta es la mayor preocupación de todos los que hoy en día creen en los
procesos, y algunos que hasta viven de ellos, porque la
evidencia de que realmente sirven es todavía débil.
Tal vez este último comentario suena un poco fuerte. Yo
misma, en los últimos años, me he dedicado a predicar
sobre procesos. Sin embargo, me parece importante que
reflexionemos sobre este tema y nos esforcemos en demostrar que la utilidad de los procesos para lograr buenos
productos es real.
- Hanna Oktaba
www.softwareguru.com.mx
COLUMNA
MEJORA CONTINUA
El Proceso a Seguir
Problemas en la Definición de Procesos
E
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 CMM5
y Six Sigma a través
de las diferentes
áreas del centro de
desarrollo de Softtek.
n nuestra charla anterior hablamos sobre el significado de crear una organización orientada a procesos
con el objetivo de generar resultados repetibles en
forma eficaz y eficiente, facilitar la comunicación y generar
un “framework” para administrar el conocimiento. Esto suena muy bien, pero si es tan buena idea, ¿por qué no se hace
en todas las compañías? Esto se debe a problemas tanto de
definición como de implantación. En esta ocasión hablaremos de los problemas de definición y en nuestra siguiente
charla hablaremos de problemas de implantación.
3. La definición se tarda meses y después ya nadie tiene
tiempo de implantar los procesos en la organización. El
que define debe continuar con la implantación. Si la dirección define, es porque ellos van a implantar. Sino, entonces no deberían estar definiendo.
El Proceso Perfecto
En este punto permítanme ser lo más claro posible: NO
EXISTE EL PROCESO PERFECTO. Muchas veces es mejor
implantar un proceso que toda la organización esté dispuesta a seguir, en lugar de uno que un consultor diga
que es el mejor proceso jamás generado. En el momento
en que estamos cambiando a una organización orientada
a procesos, estamos trabajando con la idea de que estos
procesos son dinámicos, por lo que se requiere gente encargada de mantenerlos actualizados constantemente y
entrenando a los equipos de trabajo en forma constante.
Un elemento que he encontrado en forma consistente en
el área de sistemas, es lo mucho que nos maravilla definir procesos, y a su vez la gran falta de entusiasmo para
operar los mismos. El mercado está lleno de consultores,
libros, maestros y “jefes” de corazón, vendiendo la solución a todos nuestros problemas. Esto sugiere la idea de
que existe un conocimiento mágico, un proceso perfecto
o una única solución al problema de desarrollo de software. Creo que esta por demás decir que este proceso,
¡NO EXISTE!
En los últimos años he apoyado a varias organizaciones a
alcanzar niveles de CMM y Seis Sigma. Una estrategia que
he visto comúnmente es la de juntar a los grandes expertos de la organización para definir la metodología perfecta
que servirá de guía sobre lo que tienen que hacer todos
los demás. Esta estrategia tiene tres riesgos importantes:
1. Existen pocos incentivos a escuchar lo que actualmente sucede en los proyectos. La premisa de estos grupos
acostumbra ser: “Todo lo que hacemos actualmente está
mal y tenemos que definir algo nuevo para arreglar todos
nuestros problemas”. Lo ideal es iniciar con aquello que
actualmente funciona, asegurar que entrenamos a toda la
organización para hacer el trabajo de la misma manera, y
sólo cuando no estamos haciendo algo para controlar una
práctica clave debemos definir algo nuevo. En la práctica,
el problema de definir un proceso es diez por ciento del
problema de implantarlo, por lo que si ya existe y se conoce es mejor sólo documentarlo.
2. Los nuevos procesos ya no se mejoran posteriormente.
Después de todo, ¿quién puede mejorar el proceso si los
mejores ya lo definieron? Desafortunadamente el proceso
perfecto no existe, una de los características básicas de la
definición debe de ser su facilidad de modificarse. Desde
la definición se debe de estar consciente de la importancia
de definir algo flexible y fácil de modificar, que se adecue a
la problemática actual y futura.
08
MAR-ABR 2005
Otra estrategia es la de comprar un proceso en el mercado
e implantarlo en la organización. En este caso es vital contemplar cómo se capacitará o modificará el proceso una
vez que el consultor termine su trabajo.
Best Practices
Personalmente siento que el término “Best Practice”, es
uno de los grandes frenos de la industria de software.
Creado con finalidad de mercadeo, el término lleva consigo
la idea de una “solución mágica” que resuelve tus problemas; que de todas las soluciones que existen en el mundo, es la mejor. Sin embargo, todas las prácticas tienen
un valor con respecto a su contexto. Una práctica que fue
exitosa en un ambiente abierto y con pocas restricciones
puede ser inoperable en una organización con fuertes niveles de control. Desafortunadamente, cuando queremos
definir nuestros procesos, todas estas grandes prácticas
se atraviesan en nuestro camino generando dudas, ya que
queremos que lo que definamos suene impactante cuando lo presentemos a nuestros clientes y empleados.
Conclusión
Lo que busco decirles con todo esto es: no existe un proceso perfecto; no existe la solución mágica que sólo tengan
que copiar y obligar a su gente a seguir. El mejor proceso
que podemos definir es uno que sea sencillo de aprender,
operar y fácil de mejorar, que controle de alguna manera el
trabajo que hacen actualmente, y que las personas estén
dispuestas a implantar ellos mismos en sus proyectos.
La próxima ocasión platicaremos sobre la implantación
de los procesos, sus problemáticas y cómo beneficiarse
al máximo de la estrategia de implantación.
- Luis Cuellar
www.softwareguru.com.mx
LO QUE VIENE
PRODUCTOS
Microsoft con Visual Studio Team System, que
se espera para verano 2005.
Borland Core SDP
PLATAFORMA BASADA EN ROLES
Borland lanzó al mercado su nueva plataforma de productos llamada Core SDP (Software Delivery
Platform), anteriormente conocida con el nombre clave “Themis”.
Core SDP es una plataforma integrada basada en roles que incluye Core Analyst, Core Architect,
Core Developer y Core Tester. Esta
estrategia basada en roles, y no
en productos, es similar a la que
decidió aplicar tanto IBM con su
Software Development Platform
lanzada a finales del 2004, como
Detrás del Core SDP están las herramientas
que ya conocemos de Borland: Together
(modelado visual), CaliberRM (administración de requerimientos), StarTeam (gestión
de configuración y cambio), JBuilder (desarrollo Java) y OptimizeIt (pruebas). Sin
embargo, la nueva oferta consiste en una
infraestructura unificada. Cada rol puede ver
información de los demás roles sin tener que
utilizar productos separados. Por ejemplo,
desde Core Developer se pueden acceder
los requerimientos.
De acuerdo con Patrick Kerpan, CTO de
Borland, lo que puede llegar a diferenciar
al Core SDP de sus competidores, son ciertas piezas que serán liberadas en un futuro
próximo y están dirigidas hacia los roles de
gerencia y dirección.
El Core SDP es parte de la estrategia de Borland llamada Software Delivery Optimization
(SDO), que busca traer un enfoque industrializado al desarrollo de software. Según
Borland, esta estrategia difiere de la de IBM
y Microsoft en cuanto a que su alcance es
mayor porque no sólo llega hasta los niveles
de gerencia, sino que también involucra a
los niveles directivos.
Además de proveer herramientas de software, la estrategia SDO busca proporcionar
ayuda a las empresas en cuanto a cómo desarrollar software alineado con las metas
de negocio. Para reafirmar esta iniciativa,
Borland recientemente adquirió la empresa
TeraQuest Metrics, una consultora especializada en procesos de desarrollo.
Core SDP maneja dos versiones de Core Developer: una basada en JBuilder y otra en
Eclipse. Próximamente se agregará soporte
para Visual Studio.
C++Builder ha quedado fuera de Core SDP.
Borland ha anunciado que este producto se
manejará como parte de la familia Delphi.
PRODUCTOS
RFID
Mustang disponible en
java.net
PREPARÁNDOSE PARA LA OLA
En los últimos meses hemos sido fuertemente bombardeados acerca de la
tecnología de identificación por radiofrecuencia (RFID), sus múltiples aplicaciones y cómo cambiará la cadena de
suministro. Probablemente ya estén
cansados de tanto oír sobre el mismo
tema —la verdad es que nosotros ya lo
estamos—, sin embargo, dado que empresas de la talla de Wal-Mart la están
empujando y obligando a sus proveedores a incorporar, debemos reconocer
su importancia y prepararnos para ella.
Es un hecho que pronto tendremos que
desarrollar aplicaciones de software que
soporten RFID.
Para comenzar, he aquí una lista de recursos para aquellos que quieran dar los
primeros pasos hacia el desarrollo de
aplicaciones para RFID:
10
MAR-ABR 2005
MÁS VERSIONES PREVIAS
PARA DESARROLLADORES
RFID Journal
www.rfidjournal.com
RFID World 2005
www.rfid-world.com/rfid05/
Kit de principiantes para RFID
www.intensecomp.com/rfid_store_sf.html
SDK en Java para RFID
www.sun.com/software/solutions/rfid/
Sun Microsystems ha hecho disponible una versión previa de la siguiente
versión de J2SE, nombre clave “Mustang”, a través de java.net, un sitio
para la comunidad de desarrolladores de Java.
En un esfuerzo por ser más abiertos,
Sun al igual que Microsoft, están brindando acceso a los desarrolladores a
versiones previas de sus productos.
Microsoft ha mostrado a los desarrolladores su disponibilidad a ser más
transparente al brindar no solamente
versiones beta de sus herramientas,
sino también las llamadas CTPs (Community Technology Previews) para que
los desarrolladores puedan conocerlas y proveer retroalimentación.
www.softwareguru.com.mx
PRODUCTOS
A FONDO
Altova XMLSpy
XMLSpy 2005
Altova
www.altova.com
Calificación: 5 de 5
2005
Líder Indiscutible
L
Precio y Disponibilidad
• Enterprise: 99 EUR
• Professional: 49 EUR
• Home: Gratuito
• Disponible a través de la tienda en
línea de Altova (http://shop.altova.com)
Requerimientos de Sistema*
Windows NT, 2000, XP, 2003
256 MB de RAM
Procesador Pentium III o superior
*La documentación de XMLSpy no especifica requerimientos mínimos más
allá del sistema operativo. Los requerimientos de memoria y procesador son
los recomendados por Software Guru.
VEREDICTO
No solamente XMLSpy es un producto muy completo, sino que también
su uso es fácil y amigable. Con justa
razón es reconocido como el líder en
su segmento.
PROS:
1. Amplia lista de capacidades.
2. Interfaz de usuario amigable.
3. Soporte a los estándares más
recientes.
CONTRAS:
1. Solamente funciona sobre Windows.
2. No se manejan distribuidores
locales, se debe adquirir en línea.
12
MAR-ABR 2005
a tecnología XML (eXtensible Markup Language) juega un rol clave en
los sistemas de información que se
desarrollan actualmente y durante la próxima década por lo menos. Para adoptar esta
tecnología y mejorar la productividad de los
desarrolladores, es útil contar con herramientas para crear, editar, validar y depurar
documentos XML. Es por ello que en este
número hemos decidido analizar a fondo el
XMLSpy de Altova, una de las herramientas
para XML más populares del mercado.
• Browser.– Permite previsualizar en HTML el
contenido generado a partir de datos XML.
• Authentic.– Esta vista está diseñada para
que los usuarios finales, que no conocen
XML, puedan administrar documentos en un
ambiente similar al de un procesador de texto. Básicamente es una versión integrada de
la herramienta Authentic de Altova, la cual
está disponible de manera gratuita.
XMLSpy es conocido principalmente como
un editor XML, pero tiene muchas otras capacidades, como generación de schemas,
DTDs y transformación utilizando XSL. Conozcamos las principales capacidades de
este producto:
Edición en Diferentes Vistas
Una de las características más importantes
de XMLSpy es que provee diferentes vistas
para manejar documentos XML de acuerdo al
perfil y propósito del usuario. Las cinco vistas
que maneja XMLSpy son las siguientes:
A través de la vista Schema/WSDL se pueden
modelar interfases avanzadas de datos
Soporte a Estándares
• Texto.– Es la vista base para editar documentos XML. Contiene características útiles para la
edición como sintaxis a color, auto-completar,
expandir/colapsar elementos, bookmarking, y
formateo automático para indentar los elementos en estructura de árbol. Esta vista también
soporta corrección de ortografía en diversos
lenguajes, entre ellos el español.
Altova siempre ha sido uno de los pioneros
en cuanto a soporte de estándares. Además
de soportar los tradicionales, como XQuery,
XSLT 1.0 y XPath 1.0, XMLSpy es uno de los
primeros en soportar los nuevos estándares
XSLT 2.0 y XPath 2.0. Éstos proveen fuertes
mejoras en términos de poder, flexibilidad y
eficiencia en el manejo de XML.
• Grid.– La vista grid (malla o cuadrícula)
permite trabajar con documentos XML de
una manera similar a como si se estuviera
usando una hoja de cálculo. Esto permite
realizar operaciones en grupos de elementos en vez de línea por línea.
Interacción con
RDBMS
• Schema/WSDL.– Utilizada para modelar interfases avanzadas de datos y web services.
Los elementos de WSDL como operaciones,
puertos y bindings se pueden visualizar y
modificar fácilmente en esta vista.
XMLSpy interactúa con
los principales manejadores de bases de datos
a través de interfase nativa. Esto permite conectarse a la BD,
generar schemas XML en base a la estructura de la BD y viceversa, e importar/exportar
datos. Entre los principales manejadores
soportados nativamente están Oracle, SQL
Server, MySQL, Sybase y DB2.
www.softwareguru.com.mx
En el caso de Eclipse y VisualStudio, la
integración es completa ya que XMLSpy
queda embebido dentro de estos.
Gestión Colaborativa
de Schemas
Una de las principales características
de XML es la capacidad de generar
schemas complejos a partir de otros
más sencillos utilizando imports e
includes. Esto permite extender y
reutilizar fácilmente los schemas
generados por diferentes áreas o
personas en una organización. La
edición Enterprise de XMLSpy incluye SchemaAgent, un producto cliente/servidor que administra el acceso
y edición colaborativa de schemas.
Integración con IDEs
XMLSpy se puede utilizar en modo
independiente (stand-alone), pero
también se integra con los IDEs más
populares. En el caso de Eclipse y Visual Studio, la integración es completa ya que XMLSpy queda embebido
dentro de estos. Después de instalar
el producto, se instala un plug-in en
el IDE para reemplazar su módulo default de XML por XMLSpy.
Generación de Código
XMLSpy puede generar automáticamente clases en Java, C++ y C# a
partir de elementos de datos definidos en un schema XML. Al modelar
los elementos de datos en el Schema
Editor, XMLSpy genera los archivos
de las clases con los atributos y métodos get/set correspondientes.
Comparación de Elementos
Es bastante común verse en la necesidad de encontrar diferencias entre
elementos para conocer qué partes
del código han cambiado de un archivo a otro. Para resolver esto, XMLSpy
provee una utilería que compara y fusiona documentos. La herramienta los
analiza y despliega las diferencias entre ambos, permitiendo que el usuario
escoja las estructuras que desea inwww.softwareguru.com.mx
La comparación de elementos permite visualizar las diferencias y decidir qué hacer con ellas
tegrar entre ambos documentos. Esta
misma funcionalidad puede ser aplicada a directorios enteros para comparar
su contenido.
web services con SOAP desde una sola
herramienta.
Depuración
Otra de las fortalezas de este producto es su amplia capacidad para
depuración (debugging), que seguramente ahorrará tiempo a los desarrolladores. XMLSpy revisa que los
documentos estén bien formados y
valida su contenido contra el DTD o
schema correspondiente. En los ambientes de depuración para XSLT y
XQuery es posible definir puntos de
observación (watches), puntos de
rompimiento condicionales (breakpoints), y ejecutar las operaciones paso
a paso (single-stepping).
Web Services
A quienes trabajan con web services
les interesará saber que este producto
ofrece un fuerte soporte para SOAP.
Además de las capacidades para edición de documentos WSDL y depuración de SOAP, XMLSpy incluye un
cliente a través del cual podemos probar las respuestas a peticiones. Esto
permite desarrollar, probar y depurar
Con todas estas capacidades, es fácil
entender porqué XMLSpy ha sido reconocido en diversas ocasiones como
la mejor herramienta para desarrollo
con XML. Los invitamos a que conozcan este producto en alguna de sus
diferentes ediciones:
Enterprise.– Funcionalidad completa
para desarrollo empresarial.
Professional.– Recomendable para
proyectos sencillos. No incluye. soporte a web services, generación de
código ni gestión de schemas.
Home.– Versión gratuita con funcionalidad básica.
MAR-ABR 2005
13
PRODUCTOS
HERRAMIENTAS
O.bject R.elational M.apping
Brindando Persistencia a los Objetos
Por Pedro Galván
Es un hecho que la mayoría de los sistemas de información actuales se
desarrollan utilizando lenguajes orientados a objetos. Dentro de este
paradigma, los objetos en cierta manera representan objetos del mundo real. Por ejemplo, imaginemos una agenda que contiene una lista de
personas con cero o más direcciones y números telefónicos. En el mundo
de objetos, éstos se representarían como objetos “persona”, con atributos correspondientes a la información relevante a cada persona, como su
nombre, una lista de teléfonos de diferentes tipos (casa, oficina, móvil) y
otra lista de direcciones.
E
l problema llega cuando debemos almacenar esta información en algún medio permanente. Desde la perspectiva de un
desarrollador, una posible solución
sería utilizar un almacenamiento de
objetos persistentes, en el que se almacenan objetos que pueden ser encontrados posteriormente. La mayoría
de los lenguajes de objetos proveen
algún mecanismo para lograr esto. Por
ejemplo, en Java se pueden “serializar”
los objetos y así almacenarlos en disco. Esto puede ser aceptable en la programación de sistemas de bajo nivel.
Sin embargo, no sería útil en aplicaciones empresariales donde los usuarios
deben poder acceder los datos de diferentes maneras y con diferentes clientes para obtener la información que
requieran (reportes, análisis de datos,
etc.). Adicionalmente, en aplicaciones
empresariales el almacenamiento de
información debe tener un alto desempeño y confiabilidad.
Como sabemos, la solución a todas
estas necesidades de almacenamiento ya existe, y son las bases de
datos. La solución que podría parecer ideal en principio sería utilizar
bases de datos orientadas a objetos.
Sin embargo, éstas no han logrado
penetrar el mercado en general, por
lo que en la mayoría de las ocasiones
nos vemos obligados a recurrir a bases de datos relacionales (RDBMS).
Como sabemos, casi todos los manejadores de bases de datos relacionales son previos al paradigma de
objetos y el soporte que tienen hacia
éste es bastante pobre.
14
MAR-ABR 2005
Diferencias Entre
Paradigmas
El mapeo entre objetos y relaciones no
es algo trivial, ya que existen diferencias
fundamentales entre estos modelos. La
teoría relacional se centra en los datos,
mientras que la de objetos se enfoca en
el comportamiento. Estos son algunos
de los aspectos en que difieren:
• Los objetos tienen un claro sentido de
identidad y de propiedad de sus atributos. En cambio, en una base de datos es
necesario construir queries utilizando
llaves para relacionar y darle sentido a
los datos que contienen las tablas.
• Dado que la información de un objeto
típicamente abarca varias tablas, se requiere de varias sentencias o del uso de
JOINS para obtener toda la información
de un objeto.
• Las bases de datos realizan búsquedas a través de índices, pero no pueden
ver objetos residentes en memoria.
• Los tipos de datos manejados por ambos modelos son diferentes.
• Las relaciones soportados por ambos
modelos son diferentes. Por ejemplo,
los RDBMS no soportan directamente
la herencia.
• Los RDBMS proveen mecanismos
para aislar y evitar cambios a ciertos
registros (locking).
Object-Relational Mapping
De todo esto surge la necesidad de utilizar algún mecanismo para integrar la
información contenida en nuestros objetos con los datos almacenados en el
RDBMS. Esto típicamente se logra a través de una capa de traducción objeto-relacional. Tal estrategia es conocida como
Object-Relational Mapping (ORM).
Dependiendo de que tanto se apoyan
en ORM, podemos clasificar las aplicaciones en las siguientes categorías:
Puramente relacional - Todo el sistema, incluyendo la interfaz de usuario,
está diseñado en base al modelo relacional, utilizando statements de SQL
dentro de los programas. Los queries
se pueden ajustar directamente, pero a
costa de poca portabilidad y dificultad
en el mantenimiento. Las aplicaciones
en esta categoría típicamente utilizan
mucho los stored procedures, llevando
la mayoría del trabajo de procesamiento hacia la capa de datos.
Mapeo de objetos sencillo - Las entidades se representan como clases que se
mapean manualmente a las tablas en la
base de datos. Las llamadas al RDBMS
se separan de la lógica de negocio a
través de algún patrón de diseño como
el DAO (Data Access Object). Esta estrategia es muy común y tiene éxito en
aplicaciones con entidades sencillas.
Mapeo de objetos medio - La aplicación se diseña en base a un modelo de
objetos. Las sentencias SQL se generan
en tiempo de ejecución a través un framework o generadores de código. Las
asociaciones entre objetos son manejadas por el mecanismo de persistencia
y es posible refinar el acceso a datos a
través de expresiones en un lenguaje
orientado a objetos. Típicamente se
maneja un cache de objetos en la capa
de persistencia. La mayoría de los productos ORM y soluciones desarrolladas
internamente (in-house) soportan este
nivel de funcionalidad. Este nivel es
adecuado para aplicaciones de complejidad media, donde es importante la
portabilidad hacia diferentes RDBMS.
www.softwareguru.com.mx
Mapeo de objetos completo - Se soporta modelado de objetos complejo con composición,
herencia, polimorfismo, etc. La capa de persistencia implementa persistencia transparente,
esto es la capacidad de manipular los datos almacenados en el RDBMS directamente a través de objetos, sin tener que implementar alguna interfaz especial o heredar una clase. Se
utilizan técnicas eficientes para la obtención y cacheo de información, las cuales son transparentes hacia la aplicación. Este nivel de funcionalidad es muy difícil de lograr a través de
una solución in-house, ya que requiere meses o tal vez años de desarrollo.
Diferentes Técnicas
En el mercado existe una gran variedad de herramientas y productos para ORM. Conozcamos
algunas de las técnicas más utilizadas por estas herramientas:
Mapeo directo sin identidad – El desarrollador crea clases con atributos de cuyo nombre
se derivan las columnas de las tablas en la base de datos (o viceversa). Las herramientas
examinan estas clases y generan los queries correspondientes. No se mantiene identidad
basada en la llave primaria. Esto significa que es posible que en memoria existan dos objetos
diferentes que corresponden a la misma hilera de una tabla. Si ambos objetos son actualizados, entonces se perderán los cambios en alguno de ellos. Esto implica que la lógica de la
aplicación esté al pendiente de que esto no suceda.
Mapeo directo con identidad – Similar al anterior, pero se mantiene un índice (típicamente
un hash table) de todos los registros residentes en memoria. De esta manera se asegura que
no puedan existir dos objetos que correspondan a la misma hilera de una tabla. El inconveniente de esta estrategia es que la capa ORM debe responsabilizarse de administrar el ciclo
de vida de los objetos, ya que la lógica de la aplicación no tendrá forma de saber cuando se
deba eliminar un objeto compartido. Esto puede presentar complicaciones dependiendo del
lenguaje de programación utilizado y los mecanismos que provea para administrar el ciclo
de vida de los objetos.
EJB CMP - En el caso de J2EE, se puede utilizar la persistencia administrada por el contenedor o CMP. El desarrollador define clases abstractas para cada atributo de los objetos, y
se generan métodos get/set que encapsulan el acceso a las variables. Se utiliza EJB QL, un
lenguaje similar a SQL, para definir statements para acceder información.
JDO – JDO (Java Data Objects) es un API creado por Sun para abstraer la persistencia en los
objetos. Los desarrolladores se apoyan en este API para lograr que la información de su
modelo de dominio se almacene en la base de datos. A diferencia de CMP, JDO está diseñado
para funcionar con cualquier tipo de objetos Java, no solamente EJBs. JDO ha tenido un gran
éxito y se espera que la versión 3 de EJB se base en JDO.
Generación a partir de XML – Consiste en generar código a partir de definiciones escritas en
XML. Es recomendable que el código generado no sea modificado posteriormente.
Herramientas
Existe una gran cantidad de productos
para ORM. Entre los más populares estan:
Hibernate (Java, Open Source)
www.hibernate.org
Cocobase (Java, Comercial)
www.thoughtinc.com
NEO (.NET, Open Source)
neo.codehaus.org
NHibernate (.NET, Open Source)
sourceforge.net/projects/nhibernate
ORM .NET (.NET, Open Source)
sourceforge.net/projects/orm-net
Toplink (Java, Comercial)
www.oracle.com/technology/products/
ias/toplink
ObjectSpaces es un ORM de Microsoft que
inicialmente se esperaba en conjunto con
Visual Studio Team System. Sin embargo,
recientemente se anunció que este no serå
lanzado hasta que WinFS esté disponible.
Referencias:
Autores varios, “Object Relational Mapping Articles”
www.service-architecture.com/object-relational-mapping/articles
Berglas, Anthony. “Object Relational Mapping Tools”
www.uq.net.au/~zzabergl/simpleorm/ORMTools.html
www.softwareguru.com.mx
Al hablar sobre desarrollo de software, comúnmente nos
viene a la mente la creación de programas de cómputo que
sirven para solucionar problemas específicos, mediante la
conjunción de algoritmos bajo determinados lenguajes de
programación. Para unos es un misterio, para otros es un arte,
mientras que para algunos cuantos es cosa sencilla y de todos
los días. Para nosotros, los abogados, hablar sobre desarrollo
de software es hablar sobre una convergencia de múltiples
derechos y obligaciones, tanto legales como contractuales.
Desarrollo
de Software:
Consideraciones legales
Por Kendra Medina
E
l software, en tanto que es un bien, está
sujeto a las reglas del derecho civil y,
en tanto que es intangible, sujeto a las
reglas de propiedad intelectual. No obstante,
la actividad humana de desarrollarlo y otras
relacionadas, como lo son su comercialización,
implementación, integración o mantenimiento,
están o pueden estar sujetas a una multiplicidad de reglas más, como lo son las del derecho
mercantil, fiscal, de la propiedad industrial y de
la protección al consumidor. Asimismo, en tanto más amplia y compleja sea una organización
dedicada al desarrollo de software, la aplicación
de reglas adicionales se hace evidente, tales
como las del derecho laboral y societario.
Protección Legal
La protección legal que se le otorga al software varia significativamente de país a país,
dependiendo de cómo se perciba, el régimen
legal aplicable, e incluso su historia y cultura
económica. Por ejemplo, en Asia el desarrollo
de software se percibe como una industria
manufacturera, en donde los desarrolladores
son fabricantes y el software un bien de producción que juega un rol dentro de los procesos de otras industrias. En Norteamérica
se percibe una industria, como una actividad
creativa, pero con fines meramente económicos. De ahí que la protección otorgada por el
Copyright se limite precisamente al derecho
de prohibir o autorizar su reproducción.
En México, al igual que en Europa, donde
nuestro régimen legal tiene como base al llamado Civil Law o Derecho Romano-Germánico, el desarrollo de software es considerado
como un arte y los programas en sí mismos
son obras que merecen ser protegidas por el
llamado Droit d’Auteur o Derecho de Autor, el
cual no se limita únicamente al derecho de
prohibir o autorizar su reproducción, sino que
otorga al creador de una obra la protección al
vínculo que lo une con su creación intelectual,
tanto desde una perspectiva personal como
real, toda vez que protege su autoría y sus derechos de propiedad sobre el mismo. Es por
ello que nuestra legislación protege tanto los
derechos patrimoniales como morales de los
desarrolladores de software.
El derecho patrimonial o económico es el que
el autor tiene para explotar de forma exclusiva su software o de permitir a otros explotarlo
(copyright). Es decir, de autorizar o prohibir su
reproducción, publicación o transmisión en
cualquier medio (papel, CD, Internet). El autor
de un software puede transmitir este derecho
sobre su obra sin limitación alguna. Por su parte, el derecho moral es el derecho que el autor
tiene de decidir sobre si ha de divulgar o no su
obra y la forma de hacerlo, así como de exigir
su reconocimiento como autor de la misma, de
modificarla y de oponerse a cualquier modificación, deformación o mutilación. En este caso,
este derecho es irrenunciable e intransferible.
Cabe señalar que la protección legal es inmediata, sin necesidad de registro alguno, desde
el momento en que la obra se fija en un soporte
material, por ejemplo, en un papel o en un archivo electrónico. El registro de un programa de
Kendra Medina Chávez es abogada del Área Legal Corporativa, en la especialidad de Telecomunicaciones & Tecnologías de Información de PricewaterhouseCoopers,
S.C. Estudió Derecho en el Instituto Tecnológico Autónomo de México, cuenta con un postgrado de Telecomunicaciones por la misma institución y una Maestría en
e-Law por la Universidad de Melbourne. Es miembro del Consejo Editorial de The Sci-Tech Lawyer, revista especializada de la American Bar Association y ha impartido
clases de licenciatura, de maestría y conferencias sobre Derecho de Tecnologías de Información y Telecomunicaciones en el Instituto Tecnológico de Estudios Superiores
de Monterrey (Campus Monterrey), la Universidad de Monterrey y el Instituto de Investigaciones Jurídicas de la Universidad Nacional Autónoma de México.
16
MAR-ABR 2005
www.softwareguru.com.mx
cómputo ante el Instituto Nacional del Derecho
de Autor es meramente declarativo, más no
constitutivo de derechos, por lo que su utilidad
principal es como medio de prueba.
Consideraciones Jurídicas
Siendo el desarrollo de software una actividad
que nuestros legisladores optaron por regular
como un arte, no como una ciencia y mucho menos como una industria, los empresarios mexicanos que buscan expandir el desarrollo de software bajo un esquema de negocios deben tomar
en cuenta no sólo este enfoque regulatorio, sino
muchas otras consideraciones jurídicas más.
Antes de constituirse como entidad legal, el empresario mexicano debe definir el core business
de su empresa y su mercado. Decidir desarrollar
software a la medida o software empaquetado, o
prestar servicios de integración o implementación
de software, tiene una incidencia directa en el tipo
legal más adecuado bajo el cual debe constituir
su empresa. No pocas veces ha sucedido que por
esta falta de enfoque se elija, por ejemplo, constituir una sociedad anónima en vez de una sociedad civil, sujetándose así, sin ninguna necesidad,
a un régimen fiscal mucho más estricto.
Asimismo, por muy pequeña que parezca
su empresa en un inicio, la integración de la
definición del core business con la visión de
crecimiento que se tenga a mediano o largo
plazo, deben ir de la mano con el establecimiento del objeto social de la empresa y la
estructura corporativa idónea. En el mejor de
los casos, una falta de previsión en cualquiera de estos sentidos puede implicar gastos
innecesarios en modificaciones a los estatutos de su empresa o en su representación
legal; pero en el peor de ellos, podría impedir
la inclusión de nuevos inversionistas en el
momento y lugar adecuados, dejando pasar
así valiosas oportunidades de crecimiento.
Otra consideración de vital importancia es la
aplicabilidad de legislación especial, como es
el caso de la laboral. Hay que recordar que esta
regulación es de orden público y en todo caso,
en situación de conflicto, la carga de la prueba
la tiene el empleador. Por lo anterior, es muy
importante que queden bien documentadas todas las obligaciones que los empleados de una
empresa dedicada al desarrollo de software
tienen, tanto los desarrolladores, como el personal administrativo. Hay que tener en mente
que la protección mínima que la ley otorga a los
desarrolladores de software como empresarios
es la presunción de que, salvo pacto en contrario, los derechos patrimoniales del software
desarrollado por el empleado —dentro de las
funciones de su cargo y bajo instrucciones del
empleador únicamente—, pertenecen a este
último. Por lo anterior, esta protección mínima
debe complementarse con disposiciones contractuales explícitas en materia de renuncia de
www.softwareguru.com.mx
derechos y secretos industriales, mediante
sólidos contratos laborales y cláusulas de
confidencialidad.
No hay que olvidar que la protección legal
otorgada por la legislación en materia de derechos de autor se restringe a la protección
de la obra tal cual es fijada sobre el soporte
material (código fuente y código objeto), no a
la idea. Por lo que debe también considerarse
la protección adicional de elementos no visibles, tales como la estructura, organización,
secuencia, interfaces (el llamado look & feel
de un programa), así como las bases de datos
y contenidos relacionados. De esta forma, en
la manera de lo posible pueden tenerse maneras efectivas de combatir prácticas de clean
room* de posibles competidores.
Finalmente, las nuevas formas de comercialización y distribución merecen una atención legal especial. Por su naturaleza, la
distribución y comercialización de software
a través de medios electrónicos, como Internet, no sólo es conveniente, sino eficiente. En estos casos, no deben considerarse
únicamente los términos y condiciones de
la licencia de uso de los programas de cómputo así distribuidos, sino la forma y sustancia de la contratación electrónica para
fines de validez y como medio de prueba.
Asimismo, hay que recordar que los usuarios finales son consumidores y están amparados bajo una regulación especial y favorable en cuanto a contratación de bienes
y servicios se refiere.
Conclusión
Es claro que la industria del software se conoce como tal porque la evolución natural
del desarrollo de la tecnología la ha llevado
a ser no un arte, sino una industria generadora de inversión y de empleos. Por ello,
es importante que los empresarios tengan
en mente que la protección legal más importante de su principal activo no proviene
exclusivamente de un registro ante el Instituto de Derechos de Autor y que, para el
sano desarrollo de su empresa, es necesario considerar una diversidad de normas
jurídicas, por lo que no sólo es aconsejable,
sino necesario, allegarse de la asesoría legal adecuada oportunamente.
*Las tecnicas de “clean room” se utilizan para crear
programas muy similares a los de los competidores, sin
violar algún derecho de propiedad intelectual o convenio de confidencialidad. El proceso es el siguiente:
• Se aísla a uno o más programadores y se les dan unos
requerimientos a alcanzar.
• Se les da información que no es confidencial (cómo
funcionan algunas herramientas del programa, qué tan
amigable debe ser, etc.).
• Se cuida mucho que esos programadores no tengan
acceso al programa original que se pretende “copiar” e
incluso se registra todo el proceso para que pueda comprobarse que en ningún momento se trató de ingeniería
inversa o copia literal del programa.
ENTREVISTA
Blanca
TreviÑo
CEO de Softtek
La historia de Blanca Treviño está llena de retos. Conozcamos un poco más sobre quién es
ella, la problemática que ha enfrentado y su opinión respecto a la industria de software.
Software Guru.- ¿Quien es Blanca Treviño?
Blanca Treviño.- Soy regia, puedes empezar por ahí. Soy orgullosa madre de dos niñas, una adolescente y otra de once
años. Casada, como una señora casi normal.
¿Qué te motiva?
Para mí el reto es una constante, y es algo que viene de familia. Mi mamá estudió una carrera ya teniendo seis hijos.
Mi papá nunca me permitió ponerme límites. Cuando escogí mi carrera, estaba interesada en estudiar sistemas,
pero me dio miedo y me apunté en mercadotecnia. Él me
dijo que no me podía salir, que aceptaba que pudiera tener una hija tonta pero no miedosa. Así que para mí el
¿Sientes que el camino para las mujeres es
más difícil?
Reconozco que es complicado conforme van
subiendo. Cuando trabajas en una oficina convencional, haces un compromiso de estar de
9 a 6, y ahí termina. Pero conforme creces profesionalmente, ya no se traduce en un horario
sino en compromiso. A la mejor vas a poder
estar a las 9 en tu casa, pero no vas a poder
estar el día de los premios del colegio. En las
mujeres esto puede provocar que te cuestiones si ese compromiso no se contrapone con
tu compromiso de mamá y de esposa. Debes
tener un driver muy fuerte para decir “lo hago,
y hay un sentido para hacerlo”, y traducirlo en
términos de tus hijos, porque no puede ser
meramente un desarrollo que te alimente a
ti, sino un desarrollo que se traduzca en retos
para la familia. Además, cuando encuentras
estas respuestas, se lo logras transmitir a tus
hijos para que ellos lo entiendan.
¿Qué tan difícil es crecer profesionalmente
en esta industria?
Yo creo que más bien depende de la empresa.
Si tú te gradúas de esta carrera y te metes al
área de sistemas de una empresa tradicional,
va a ser difícil poder crecer. En cambio, si te
18
MAR-ABR 2005
reto siempre ha sido algo muy fuerte y continuo. No digo
que deba ser profesional, sino que debes sentirte continuamente en exigencia de mejorar, de aprender. Mis dos
niñas también son un gran motor para mí. Cuando tienes
hijos se te vuelve un compromiso el transmitirles esa búsqueda constante de retos.
Eres una mujer que dirige una empresa de 100 millones de
dólares, ¿eso pasa por tu cabeza o no le das importancia?
El hecho de que sea una mujer sí me hace muy consciente de
tener el privilegio de estar en una empresa que me permita desarrollarme y estar aquí. Lo reconozco como un privilegio, pero
no lo subo mucho a la cabeza, no en el contexto de limitarme.
metes a una empresa dedicada a TI, eso te da
muchas opciones de crecimiento. Creo que
las oportunidades de crecimiento van más de
la mano de la empresa que de la industria.
Cuéntanos sobre Softtek, ¿cuál es su
alcance y presencia actual?
Actualmente Softtek tiene cerca de 2,700 empleados y presencia en diez países. Somos la
empresa privada de TI más grande con presencia regional en Latinoamérica.
¿Qué implica el hecho de ser una
empresa privada?
Ser una empresa privada tiene la connotacion positiva de decir “es mío y lo voy a hacer
y no me voy a poner límites”, pero también
tiene limitaciones. No tener atrás un socio
capitalista hace que al momento de llegar
ciertas circunstancias, atravieses dificultades que otras empresas no. Es poco común
que una empresa llegue a este tamaño sin
un capital detrás. Pero yo estoy segura que
hoy no tendríamos el alcance que tenemos si
tuviéramos un socio capitalista. El dinero nos
hubiera ayudado mucho para hacer frente a
problemas financieros, pero no hubiéramos
llegado a esto.
¿Cuál es tu mayor orgullo en Softtek?
A mi todas las épocas de Softtek me han dado
orgullo, pero donde más orgullosa me he sentido es donde hemos podido demostrar que
nos sabemos levantar. Así como Softtek es
muy conocido, también es bien sabido que
tuvimos años muy difíciles. 1999 y 2000 fueron años muy duros, y el impacto de ellos se
reflejó en 2001 y 2002. Que la empresa sea
nuestra ha demostrado que en las crisis Softtek sabe salir adelante. El proceso fue muy
duro, nos ayudó mucha gente y afectamos a
algunos otros ya que no teníamos atrás un
socio capitalista que nos respaldara. Otras
empresas cerraron sus puertas porque el negocio ya no daba y su socio capitalista ya no
estaba dispuesto a perder dinero. En nuestro
caso eso no era una posibilidad. Yo creo que
una empresa que nunca ha vivido una crisis
no puede sentirse del todo orgullosa.
¿Cuáles son las razones para penetrar el
mercado norteamericano de software?
Nuestro principal motivo fue para soportar
las crisis económicas que se daban cada
sexenio en México. No te voy a negar que otro
factor importante fue el simple gusto de decir
“sí podemos”. Un beneficio que inicialmenwww.softwareguru.com.mx
“Nuestro principal reto es
lograr que los clientes vean a
México como un jugador
en esta industria”.
te no contemplamos, es todo lo que hemos
aprendido y nos hemos desarrollado. El grado
de exigencia del mercado norteamericano te
obliga a elevar tu nivel de calidad.
¿Consideras que el interés de las empresas
nacionales por incursionar en el mercado
norteamericano provoque que se descuide
el mercado local?
No lo veo así. Al contrario, el que las empresas busquen internacionalizarse hace que se
desarrollen, mejorando su oferta y calidad, y
eso beneficia al mercado interno.
¿Cuál es la principal dificultad que encuentran para vender en Estados Unidos?
Nuestro principal reto es lograr que los clientes vean a México como un jugador en esta
industria. Los clientes primero escogen el
país al que van a enviar trabajo, y ya después
escogen proveedores dentro de ese país. El
mercado le apuesta a un país, porque con el
país vienen una serie de factores como distancia, horario, estabilidad, etc. Cuando se
hacen las evaluaciones, el principal punto débil de México es la poca cantidad de proveedores. Softtek puede ser una buena opción,
pero una empresa no hace una industria.
www.softwareguru.com.mx
¿Qué opinas sobre la industria mexicana de
software en términos de colaboración?
Afortunadamente cada vez somos más los
que nos damos cuenta de que para tener éxito a largo plazo, debemos colaborar. En nuestro caso, tenemos un programa de apoyo a
PyMEs desarrolladoras de software, en el que
las integramos en proyectos y las capacitamos para que se desarrollen. Al principio las
empresas desconfían y piensan “algo ha de
traer Softtek”, pero lo que pasa es que necesitamos desarrollar la industria nacional para
poder vender en el extranjero. En sí, creo que
la colaboración en esta industria ha mejorado
bastante en los últimos años. Las asociaciones juegan un papel importante, y el gobierno
también ha ido propiciando un ambiente adecuado a través de ProSoft.
ro para pagarle a la gente durante esas seis
quincenas. Para las empresas de esta industria es difícil obtener financiamiento por medios tradicionales, ya que no contamos con
muchos activos que nos respalden, sino que
al ser una industria intensiva en conocimiento
los principales activos son intangibles.
¿Crees que en México se deberían dar
apoyos gubernamentales a esta industria?
Sí. Creo que lo más importante son apoyos
financieros para sustentar el flujo de efectivo. Lo que pasa es que en esta industria, tú
comienzas un proyecto y al mes de estar trabajando empiezas a facturar, y luego de ahí
pasan sesenta días para que recibas tu pago.
Entonces necesitas ver de dónde sacas dine-
¿Qué mensaje le dejas a nuestros lectores?
Están en un sector con enormes oportunidades, lo cual implica un gran reto y compromiso. No necesitan irse al extranjero a buscar
trabajos de alto nivel. Desde aquí pueden
atraer oportunidades de desarrollo no sólo
para ustedes sino para muchos otros. Todo
esto no se da por sí solo, hay que cultivarlo y
debemos hacerle frente a este reto.
El siguiente rubro tiene que ver con la promoción del país. Con esto me refiero a posicionar a México como un jugador en la industria
mundial. Adicionalmente hay otras cosas que
se pueden lograr si se tiene más en mente a
esta industria. Por ejemplo, el año pasado
Aeroméxico cerró un trato para comprar muchísimos aviones a Boeing. ¿No crees que se
hubiera podido acordar algo de reciprocidad
para que enviaran algo de trabajo a México?
MAR-ABR 2005
19
EN PORTADA
Centros de
Desarrollo
de Software
Un Nuevo Paradigma
Por Pedro Galván
El desarrollo de software actualmente es una actividad lenta, cara y propensa a errores que generan defectos
y problemas de usabilidad, desempeño y seguridad. Según las estadísticas, menos de la tercera parte de los
proyectos de software son exitosos en términos de alcance, calidad, tiempo y presupuesto. A lo largo de los
años se han dado algunas mejoras en productividad, principalmente a través de la mejora de los lenguajes y
herramientas, pero aún así seguimos desarrollando software casi de la misma manera que hace una década.
Nuestros métodos y prácticas realmente no han cambiado, como tampoco lo han hecho los costos y riesgos.
20
MAR-ABR 2005
www.softwareguru.com.mx
La clave para aclarar esta discusión es
entender la diferencia entre economías
de escala y economías de alcance.
La demanda global de software ha aumentado constantemente en los últimos diez años, y aumentará a un ritmo
mucho mayor durante la próxima década, dirigida por las
fuerzas de la nueva economía, el creciente rol del software en
la sociedad moderna y nuevas plataformas como dispositivos
móviles y dispositivos inteligentes para el hogar.
Ahora podemos entender los problemas en la comparación
de otras industrias con la de software. No es posible generar
economías de escala en el desarrollo de ningún producto,
ya sea físico o virtual. Sin embargo, podemos buscar lograr
economías de alcance a través de la industrialización del desarrollo de software.
Esto nos presenta un problema de capacidad para satisfacer
la demanda. No somos la primera industria en enfrentar tal
problema, otras ya lo han superado. Lo lograron al evolucionar de la artesanía, donde los productos se hacen desde
cero por individuos o pequeños equipos, hacia la manufactura, donde un amplio rango de variantes se ensambla
rápidamente de acuerdo a componentes reutilizables creados por diferentes proveedores y a través de máquinas se
automatizan las tareas repetitivas. Estas industrias estandarizaron sus procesos, diseños y empacado, utilizando líneas
de producción para facilitar la reutilización, y cadenas de
suministro para distribuir el costo y riesgo. Esto es a lo que
llamamos industrialización.
Centros de Desarrollo de Software
¿Se Puede Industrializar el Desarrollo
de Software?
Este ha sido un tema de amplia discusión desde hace tiempo.
¿Pueden aplicarse a la industria de software los patrones de
industrialización comunes? ¿Somos una industria especial o
diferente a las demás?
La clave para aclarar esta discusión es entender las diferencias
entre las economías de escala y de alcance. La reutilización
sistemática puede generar ambas. Estos dos efectos son bien
conocidos en otras industrias; aunque reducen el tiempo y
costo, y mejoran la calidad de los productos, difieren en la
manera en la que producen estos beneficios.
• Las economías de escala surgen cuando se producen varias
instancias idénticas o copias de un mismo producto. Se crea
un diseño, junto con sus instancias iniciales (prototipos) a
través de un proceso intensivo en recursos, llamado desarrollo, que es llevado a cabo por ingenieros. Posteriormente
se crean muchas instancias adicionales, llamadas copias, a
través de un proceso llamado producción, que es realizado
por máquinas o mano de obra barata.
Con el objetivo de aumentar la productividad, disminuir los
costos y elevar la calidad de los productos y servicios ofrecidos a los clientes, recientemente se ha hecho popular el
modelo de operación de “centros de desarrollo de software”.
Lo que busca este modelo es generar economías de alcance
en el desarrollo y mantenimiento de software.
¿Y las fábricas de software?
El término fábricas de software se hizo popular hace unos años, cuando se inició el esfuerzo de industrializar el desarrollo de software para
bajar costos y mejorar calidad. Sin embargo, en la mayoría de los
casos, los proveedores que se etiquetaban como fábricas se limitaban a
desarrollar software de manera tradicional, pero en sus propias instalaciones en lugar de las del cliente. Este modelo puede llegar a brindar
beneficios de costo, pero son marginales. Lo que diferencía un centro
de desarrollo del concepto manejado como “fábrica de software”, es la
búsqueda de economías de alcance.
Vale la pena notar que Microsoft también está usando el término fábricas de software para identificar su estrategia de desarrollo de software
empresarial. Ver “Tendencias de Construcción” en la página 27.
A continuación les presentamos tres ejemplos de empresas
pioneras en México con el modelo de centro de desarrollo
de software (CDS).
• Las economías de alcance surgen cuando varios diseños similares pero distintos se producen de manera colectiva. En la
manufactura de automóviles, por ejemplo, se generan varios
modelos de automóvil con ciertas similitudes al combinar diseños existentes de subcomponentes como el chasis, interiores,
transmisión, etc. Las variaciones entre modelos se generan por
diferencias entre algunas características, como el motor, por
ejemplo. Así que las mismas prácticas, procesos, herramientas
y materiales se utilizan para diseñar distintos productos.
MAR-ABR 2005
21
EN PORTADA
Softtek
Con más de 2,500 personas en 10 países, Softtek es
la empresa privada de servicios de TI más grande en
Latinoamérica. La firma ha estado en operación por
más de 20 años y da servicio a clientes corporativos
en todos los mercados en los que opera.Softtek se ha
convertido en una fuerte alternativa a los servicios
offshore en el mercado de Estados Unidos, segmento
dominado por empresas de la India. Al explotar el
concepto Near Shore, Softtek es el líder de este segmento en América. Recientemente Softtek concluyó
la integración de GE Ddemesis, empresa adquirida a
General Electric a finales de 2003, realizó la apertura
de un Centro de Entrega de Servicios en Azcapotzalco, D.F., con lo cual suma ya tres centros de desarrollo
en México (además de Monterrey y Aguascalientes),
dos centros de desarrollo en Brasil y uno más en España, destinado a atender el mercado europeo.
Especialización
Los servicios de Softtek están divididos en tres grandes rubros:
• Servicios Relativos a Aplicaciones, como desarrollo a la medida, mantenimiento de sistemas existentes, help desk y testing.
• Servicios de Soporte a Infraestructura, como administración de redes, servidores y seguridad.
• Outsourcing de Procesos de Negocio, que gira alrededor
de la mejora y digitalización de procesos de negocio.
Modelo de Entrega
Los servicios de Centro de Desarrollo de Softtek están
orientados primordialmente a atender las necesidades de
empresas globales, mediante el modelo Near Shore.
analizando los resultados para mejorar continuamente. El resultado es software de muy alta calidad, desarrollado en tiempo
y costo. A nivel mundial, menos de 10% de las organizaciones
evaluadas han alcanzado el nivel 5. La cultura Six Sigma, que
se encuentra incrustada en Softtek, consiste en un método de
administración orientado al cliente y sustentado en datos que
permite lograr excelencia en procesos de negocio. La digitalización de los procesos se logra al utilizar la suite de productos
de IT Governance Center de Mercury, lo cual permite tener
consistencia en todos los procesos de la organización.
Principales Retos
La sola idea de una empresa mexicana de servicios de TI
proporcionando servicios a empresas Fortune 100 en Estados Unidos, es una novedad. Softtek ha hecho frente exitosamente a las preocupaciones de sus clientes con respecto
a la disponibilidad de recursos calificados en México, las
barreras idiomáticas, entregas a tiempo y calidad. Los principales retos que Softtek enfrenta son:
• Disponibilidad de profesionales con dominio del idioma
inglés y el grado de especialización que se requiere en un
ambiente globalizado.
• Carencia de más jugadores en México con los niveles requeridos para competir en un mercado global, ya que esto
se ve reflejado en una baja percepción de México como jugador en la industria.
Asimismo, Softtek está aprendiendo a aprovechar el hecho
de que México es el segundo socio comercial de Estados
Unidos, comprando productos y servicios con un valor superior a $100 mil millones de dólares al año, lo que representa más de veinte veces lo que adquiere India.
Perspectiva a Futuro
Modelo de Calidad
Los tres elementos de calidad de Softtek (CMM Nivel 5,
Six Sigma y Digitalización) interactúan de manera tal que
permiten entregar al cliente elementos de control, confiabilidad, predictibilidad y mejora continua. Las organizaciones
CMM Nivel 5 son altamente maduras, debido a que sistemáticamente utilizan procesos cuantificables y controlables,
22
MAR-ABR 2005
Alejandro Camino, alto ejecutivo de Softtek, nos comenta
lo siguiente: “Softtek continuará la estrategia de fortalecimiento de su modelo Near Shore, mediante el robustecimiento del modelo de calidad, y la apertura de más centros
de desarrollo en los polos que proporcionen las condiciones
de disponibilidad y fortalecimiento de recursos humanos
competitivos a nivel mundial. Asimismo, continuaremos
ampliando nuestro portafolio de servicios, principalmente en el segmento de outsourcing de Procesos de Negocio,
donde vemos la mayor oportunidad de crecimiento. Nuestro objetivo es continuar el rol de liderazgo de una nueva
generación de profesionistas mexicanos altamente competitivos y con mentalidad global.”
www.softwareguru.com.mx
certum
certum es una empresa mexicana con más de dieciocho años de experiencia en desarrollo de software a la medida. Nació
en la ciudad de Puebla en 1986 bajo el nombre de Servicios en Informática y Desarrollo de México. En 1988 cambió su
domicilio a la ciudad de México, ya que sus clientes se encontraban en esta ciudad. En 1994 comienza a participar en un
proyecto de la ISO llamado SPICE (Software Process Improvement and Capability dEtermination). El Director General,
Arnoldo Díaz, fue nombrado ISO Project Editor y Miembro del Consejo de Administración del consorcio. Asimismo, la
Herramienta de Evaluación de Procesos de Software desarrollada por esta empresa fue denominada Official SPICE Assessment Instrument. Esta iniciativa a través del tiempo dio como resultado la creación del estándar internacional para
la evaluación de procesos de software ISO/IEC 15504. En 1997 lanza la marca certum, que significa “certeza” en latín.
El nombre obedece a la intención de atacar uno de los problema fundamentales de la industria del desarrollo de software:
la incertidumbre. Incertidumbre alrededor de lo que llaman el trinomio: calidad, tiempo de entrega y costo.
Planta física de certum
Especialización
certum se ha enfocado desde su fundación al desarrollo de software a la medida, lo que los ha llevado a trabajar en diversos sectores tanto en el mercado nacional como en el extranjero. La forma
de trabajo es a través de proyectos, los cuales son cuidadosamente
seleccionados, ya que siempre buscan se encuentren alineados a
la estrategia de sus clientes expresada en su Red de Servicios. Sus
soluciones son independientes de la plataforma, y cuentan con
experiencia en una gran diversidad de tecnologías.
Modelo de trabajo
Existen tres dimensiones de componentes estructurales:
• Operación - planta física, herramientas de desarrollo y herramientas de soporte.
• Control - procesos estándar para el desarrollo de los productos.
• Desarrollo de Personas - evaluaciones de desempeño, planes de
carrera y compensación.
certum ha desarrollado diversas herramientas propietarias para
diseño de servicios, repositorio de activos, seguimiento a proyectos y administración de incidentes, por mencionar algunas.
La planta física fue diseñada bajo el paradigma de líneas de producción. A cada cliente se le dedica una línea, organizada siempre
a través de proyectos, y trabajando bajo sistemas y herramientas
comunes. Esta organización trabaja bajo el concepto de puertas
abiertas (no hay privados ni para los Directores), lo que facilita la
comunicación y crea un ambiente mucho más integrado.
www.softwareguru.com.mx
Modelo de calidad
Desde 1993 certum adoptó el paradigma de modelos de capacidad de procesos. A lo largo de su historia ha obtenido certificaciones ISO 9001 y una evaluación Bootstrap - equivalente
a SW-CMM nivel 3 gracias al estándar ISO 15504, siendo la
primera empresa en Latinoamérica en obtenerlo. Su modelo de
calidad se basa en métricas de: productividad (puntos de función
por persona mes), calidad (defectos por puntos de función), satisfacción de cliente, costos, etc. Esto es un elemento clave para
lograr la mejora sostenible de sus procesos y productos.
Retos y Perspectiva a Futuro
certum ha tenido una trayectoria complicada y retadora pero
muy interesante y enriquecedora, que finalmente los ha posicionado con resultados exitosos, y por esta razón piensa continuar
en la misma línea. Entre sus retos presentes está superar la lucha
cultural alrededor de los procesos y métricas, continuar la búsqueda por mejorar aún más la capacidad de sus procesos, a fin
de poder ver esto reflejado en valor superior para sus clientes a
través de implementar con éxito los servicios que ofrecen.
MAR-ABR 2005
23
EN PORTADA
IBM Centro de Diseño y Desarrollo de Software
Una de las mayores concentraciones de ingenieros de software del país se encuentra en el Centro de Diseño y Desarrollo de
Software de IBM, el cual tiene más de 950 profesionistas dedicados al diseño, desarrollo y pruebas de software. Este centro
tiene oficinas tanto en la ciudad de México como en Guadalajara y desde ellas atiende a múltiples clientes nacionales e
internacionales. Esta historia comenzó hace quince años, cuando solamente había ocho personas desarrollando software
de bajo nivel en la división de laboratorios de IBM. Los resultados que dieron, así como el aprendizaje de desarrollar
software en base a una metodología con gran énfasis en calidad, provocaron que esta operación creciera poco a poco tanto
en cantidad como en alcance. Desde hace cinco años operan dentro de la organización de AMS (Application Management
Services), que a su vez es parte de la división IBM Global Services, ofreciendo una amplia variedad de servicios de TI.
Oferta
La oferta del centro de desarrollo de
IBM es muy amplia. Aquí se diseña,
desarrolla y da mantenimiento tanto a
software para productos de IBM, como
aplicaciones para clientes externos. Entre los servicios provistos están:
• Servicios profesionales especializados
• Desarrollo de software a la medida
• Integración de aplicaciones
• Mantenimiento
• Outsourcing de infraestructura, administración de aplicaciones y soporte técnico
• Consultoría en desarrollo de software
Una parte vital de la oferta de valor de IBM es la red mundial que tiene a su disposición. Esto le permite conseguir
recursos altamente especializados, así como acceso a la base
de conocimiento de proyectos de todo el mundo.
Modelo de Calidad
IBM es reconocida como una empresa pionera en modelos
de calidad y procesos, y el Centro de AMS México no es
la excepción. Fueron la primera organización en México en
alcanzar el nivel 5 de SW-CMM, y en diciembre de 2004
fueron reconocidos con el nivel 5 de CMMi. La mejora continua es parte fundamental de la operación diaria de IBM.
Como comenta Carlos Cevallos, Gerente del Centro de Desarrollo: “lo difícil no es desarrollar software, sino hacerlo
con un proceso repetible y mejorarlo continuamente”.
Retos y Perspectiva a Futuro
Uno de los principales retos de IBM es responder a los requerimientos de la economía globalizada. Para lograrlo, los
centros de desarrollo de IBM en todo el mundo se integran
bajo una misma forma de trabajo para ofrecer a sus clientes
globales un mismo servicio en cualquier lugar del mundo.
Acerca de AMS Latinoamérica
Modelo de Entrega
El modelo de entrega realmente es una oferta muy flexible
que se adapta a lo que los clientes necesitan. En algunos casos IBM se encarga por completo de los proyectos, mientras
que en otros solamente realiza funciones específicas como la
coordinación, desarrollo o pruebas. En el caso de servicios
como help desk, IBM puede hacerse cargo de todo el manejo, o solamente a partir de cierto nivel (por ejemplo, el cliente maneja el primer nivel de soporte y los niveles posteriores
son realizados por IBM).
24
MAR-ABR 2005
La organización de AMS se dedica al desarrollo, mantenimiento y pruebas de aplicaciones de software, ayudando a complementar los múltiples ofrecimientos del área de servicios,
enfocada tanto a clientes nacionales como internacionales. En
Latinoamérica, AMS cuenta con aproximadamente 3 mil profesionistas de TI trabajando en diferentes áreas de productos,
aplicaciones y servicios de Software: 950 localizados en México,
1,200 en Brasil, y el resto en Argentina y la Región Andina. El
Centro de AMS en México obtuvo el nivel CMMI 5 el pasado
diciembre 2004, Brasil espera obtener el nivel CMMI 5 para
el segundo cuarto del 2005, y Argentina y la Región Andina
buscan obtener el nivel CMMI 4 durante el 2005.
www.softwareguru.com.mx
La TI del Futuro se
hace en México para el
La Evolución de las Fábricas de Software
Por Karla García
Mundo
La lucha de las empresas de tecnología de información en México por exportar sus servicios
y productos al mercado mundial y en particular a los Estados Unidos, no es un tema reciente
pero definitivamente constante y en crecimiento. El proceso no ha sido sencillo para los que hemos participado en esta transformación, pero definitivamente a los que hoy competimos con la
India, Filipinas, Europa del Este, por mencionar algunos, nos es importante vernos finalmente
mencionados. En un estudio reciente de Gartner Research, México aparece como una segunda
alternativa después de la India para proveer outsourcing a nivel mundial.
Venimos de un pasado tormentoso, en
donde un país con un apellido primordialmente energético y de agricultura,
tiene hoy en día una producción de más
de 20,000 egresados en carreras relacionadas con informática anualmente.
Estos profesionistas en conjunto con el
gobierno y empresas privadas, hemos
trabajado incansablemente en cambiar
percepciones a nivel global, mejorar
idiomas, capacidades tecnológicas y
de infraestructura, y lo más importante, definir ofertas que tengan sentido
para el mercado. Reportes como los
emitidos por Forrester Research en el
2004, donde llaman a México “una
fuerte alternativa de solución global en
outsourcing” avalan nuestro esfuerzo.
Un mercado en crecimiento sostenible
a pesar de toda la prensa negativa generada en el mercado norteamericano,
donde por lo menos 30% de las empresas con algún tipo de programa de
outsourcing a nivel mundial continuarán incrementando en por lo menos
dos cifras porcentuales el volumen de
trabajo enviado al extranjero.
¿Le apostamos como país a la oferta de
Near Shore? Absolutamente. Y no sólo
a Near Shore como el modelo pionero
de trabajo remoto sino en general a la
industria de TI hecho en México. El
trabajo de tecnología desarrollado en lo
que inicialmente conocimos como fábricas de software —hoy centros globales de desarrollo—, está evolucionando
para poder satisfacer las diferentes necesidades que demanda el mercado con
sorprendentes resultados positivos.
www.softwareguru.com.mx
Existen tres áreas primordiales asociadas a los centros globales de desarrollo
(CGD) que están cambiando de manera drástica y moldeando este negocio:
capital humano, la propuesta de valor
y las ofertas.
Capital Humano
En un mundo global donde ya la demanda personal y de competitividad
sobre los profesionistas es mucho más
alta que hace cinco años, algunos de
los aspectos críticos que deben de estar
enfrentando los egresados hoy de manera inmediata son: segundos idiomas
en formas fluidas, foco en procesos de
negocio, experiencia vertical por industria, dominio tecnológico, visión
de negocio, habilidades de negociación, colaboración en equipo, trabajo
remoto en tiempo real y comunicación
en un mundo global, así como entendimiento de las diferencias culturales
y su impacto en los negocios; esto por
mencionar algunos.
El apoyo de las instituciones educativas
es crítico para satisfacer la masa crítica
demandada y hoy en día los centros de
desarrollo debemos de trabajar pro-activamente en la alineación de los programas académicos con las necesidades
del mercado, ya que la evolución tan
vertiginosa de las soluciones tecnológicas hace que un programa tradicional
de licenciatura ya no sea suficiente.
La capacidad de proveer recursos a la
misma velocidad que la India —la potencia mundial en offshore— puede
“hacer o deshacer” un CGD.
Propuesta de Valor
La propuesta de valor es el mensaje
más importante que un centro global
de desarrollo puede llevar al mercado;
es la oportunidad del proveedor de
transformar sus ventajas y diferenciadores a una expresión clara y cuantificable; en valor para el cliente. ¿Cuál es
nuestra propuesta de valor? ¿En qué somos únicos?, ¿Cómo proporcionamos
valor a los clientes de nuestros clientes?
¿Cuál es nuestra práctica que más valor
deriva a nuestros clientes en ahorro,
satisfacción y optimización? Aspectos
como riesgo, comunicación efectiva,
costo, productividad, medidos en base
a modelos estadísticos de Six Sigma,
son hoy en día el mínimo estándar requerido, tomado de la mano con modelos de CMM/CMMI, entre otros.
¿Qué tan fuerte y sostenible es nuestra
propuesta de valor? Gigantes como General Electric e IBM, quienes cuentan
con sus propios centros de desarrollo
cautivos en la India, y pioneros en las
tendencias y modelos operativos globales de offshore, determinan el comportamiento del resto de los proveedores
y por lo tanto obligan a nuestras propuestas de valor a modificarse y evolucionar rápidamente para responder a
los cambios. Esto exige una estructura
organizacional de CGD muy delgada
donde podemos ver relaciones de staff
a operación de 1 a 6 ó 1 a 7. En general, operaciones orientadas a procesos y
muy agresivas en sus niveles de productividad, para poder alinear estrategias
cada año a bajo costo.
MAR-ABR 2005
25
EN PORTADA
La propuesta de valor es el mensaje más importante que
un Centro Global de Desarrollo puede llevar al mercado.
Oferta
El tema de la oferta es algo que poco a
poco se ha ido refinando. En la industria
de tecnología de información, el área de
Product Management tiene relativamente poco de haberse convertido en un área
estratégica y que trabaja directamente con
el CEO de la organización; ha tomado un
significado importante y de resonancia.
Hace siete años, cuando nace el concepto de fábrica en Monterrey con Softtek
Near Shore Services, el acercamiento
inicial al mercado fue el de proporcionar
manos calificadas y entrenadas para hacer trabajos de alto volumen, como codificaciones, validaciones, migraciones y
pruebas repetitivas, todo a bajo costo o a
una tarifa horaria competitiva en comparación con los consultores tradicionales.
Aún y cuando esto ha representado un
buen comienzo, ese modelo ha quedado
en el pasado. Los clientes hoy en día buscan un modelo que los lleve fase a fase
a incrementar su productividad, lo cual
va directamente relacionado con la oferta
que compra a un proveedor.
un modelo altamente efectivo operacionalmente para el negocio. Una vez
que el cliente ha logrado su primera
reducción de costos, estará buscando
mejora y estabilización operacional
y de proyectos, así como soluciones
que mitiguen el riesgo de manera directa y que estén pensadas para atacar
problemas específicos. Esto le traerá
otra serie de beneficios que se darán a
través de la optimización de procesos
de negocio, minimización del riesgo y
mejor desempeño de sus proveedores
y CGD a través de todo su programa
de outsourcing, así como a través del
establecimiento de niveles de servicio
más estrictos. Esta fase demanda mayor madurez por ambas partes e iniciativas más innovadoras en términos
de digitalización de procesos y decisiones basadas en métricas.
De manera general, observemos las fases a las cuales tendrá que responder un
CGD para poder crecer y competir en
este mercado:
1. La primera fase de servicio de un
CGD es el outsourcing. En este esquema se ofrece al cliente optimizar costo
a través de la subcontratación de su staff de TI interno. Esto brinda beneficios
inmediatos, ya que el costo directo es
recortado a través de tarifas más bajas.
El año que un cliente decide usar un
programa de outsourcing (Near Shore
u offshore) como estrategia de reducción de costos, los resultados típicamente son inmediatos y el retorno de
inversión (ROI) es muy satisfactorio
para los accionistas. La desventaja es
que este beneficio es difícilmente mejorable después de un par de años.
2. La segunda fase consiste en transformar el programa de outsourcing a
3. La tercera fase se da cuando ya se
tiene capacidad de proveer soluciones
globales para cualquier problema desde cualquier región. El crecimiento
estratégico y la globalización darán la
pauta para establecer centros de desarrollo en donde tenga sentido para los
clientes, con un modelo estándar de
oferta y operativo. Estos modelos estarán soportados tanto por organizaciones físicas como virtuales y donde los
expertos están disponibles de manera
presencial y remota en un tiempo de
respuesta y calidad comparables para
cualquier usuario de nuestros clientes,
con conocimiento del proceso de negocio. Este modelo de alta productividad le traerá a las organizaciones la
siguiente ola de valor a su negocio en
su programa de outsourcing, donde la
madurez de los mecanismos de comunicación y control en tiempo real, son
lo que primordialmente sostendrán
este modelo de entrega.
Hoy en día el mercado maduro está en
la fase dos, buscando modelos híbridos
de CGD y demandando métricas de
control a sus proveedores; preparándose para dar el salto.
El reto hoy es vender México como
potencia en la arena de TI, vender
una propuesta de valor única que
complemente, que compita y que
reditúe en utilidad y poco riesgo;
crecer la propuesta de valor de Near
Shore, promocionar el costo total de
la relación de negocio con un país en
el mismo huso horario y proveer la
masa crítica para satisfacer la necesidad del mercado de Estados Unidos.
Un portafolio de ofertas competitivas
y la creencia de que los profesionistas mexicanos podemos competir en
cualquier plano con los profesionistas de la India, son las herramientas
primordiales para nuestros centros
globales de desarrollo.
Me preguntan constantemente en las
Universidades, en foros gubernamentales estatales y federales y en algunas
empresas de TI, si vale la pena apostarle a esto en los próximos diez años.
Analistas predicen que para el 2007
el gasto en servicios de TI realizado a
través de mecanismos globales de outsourcing, como offshore y Near Shore,
sobrepasará los 50 billones de dólares.
Definitivamente quiero que México
se lleve una rebanada de ese mercado.
¿Alguien gusta?
Karla García es Directora de Product Management para Softtek US, donde es responsable de la definición de los productos y servicios para el mercado de Near Shore®.
Sus principales actividades están enfocadas a promover el mercado de Tecnología en México hacia el extranjero, continuar el crecimiento en el mercado de Estados Unidos
y desarrollar ofertas para los nuevos mercados de Near Shore® en Softtek como lo son Europa y Brasil. Karla es egresada de LSCA del Tecnológico de Monterrey.
26
MAR-ABR 2005
www.softwareguru.com.mx
Tendencias en
Construcción de Software
Por Luis Daniel Soto
Bjarne Stroustrup, creador de C++, señaló: “Nuestra civilización opera sobre el Software”... Luego de una inversión global valorada en más de 10 mil billones de dólares,
la Tecnología de Información está presente en nuestro día a día en forma transparente.
Esto sin considerar la integración de procesos entre empresas, que apenas ha iniciado.
En Estados Unidos la construcción de software
es un negocio, en Europa una ciencia y en Asia
un arte. Lo que es claro es que la construcción
de software es un proceso complejo. Muchos
“nuevos alquimistas” han buscado la forma de
industrializar el software, pero se ha determinado que crear software no es un proceso de
manufactura; es una combinación de ciencia,
arte, ingeniería y habilidades de administración
de proyectos. Las tendencias son diversas:
• Procesos para la construcción de software.
• Plataformas, herramientas y lenguajes.
• Esquemas de desarrollo: internamente,
contratado al exterior, o por una comunidad.
• Filosofía: el diseño es la aplicación; diseño independiente de plataforma; descripción de la
intención y no la secuencia de pasos; distintas
formas de licenciar y distribuir el código, etc...
En este breve espacio, deseamos describir una
tendencia a considerar: fábricas de software
orientadas a dominios específicos. Aunque
mucho se ha criticado el uso del término “fábrica de software”, lo que resulta evidente es que
en todo caso una fábrica no produce por igual
mesas que llantas o tazas.
Los generalistas recomiendan partir de un proceso de desarrollo genérico (como es el caso
del Rational Unified Process) para construir
cualquier tipo de aplicaciones (v.gr. dispositivos portátiles, aplicaciones de misión crítica o
aplicaciones para aviones comerciales).
Existe otra visión: Microsoft, Unisys, Borland y
otras empresas consideran que la simplificación
en construir el software reside en una combinación de elementos acotados a un tipo de problema en particular, llamado “dominio” específico:
• Herramientas de construcción de software
generales pero personalizadas con “diseñadores
visuales” orientados a un dominio específico (Dichas herramientas además incluirán elementos de
“nueva generación” como instrumentación, desarrollo en equipo, soporte asistido a metodologías
para construcción de software, etc.).
• Lenguajes de programación específicos a dominio (Domain Specific Languages o DSL).
• Arquitecturas de software probadas, para
dominio específico y frameworks (Un framework es la solución parcial a un tipo de
problema particular).
• Guías y procesos para dominios específicos.
• Encapsular el conocimiento de negocio
específico y conocimiento técnico asociado.
Por ejemplo, una fábrica de software para el
sector financiero podrá producir soluciones
de banca, aseguradoras, CRM y más con entidades de dicha vertical. Todo lo repetible se
automatizará en lugar de crearse nuevamente
para cada aplicación. Estos son algunos ejemplos de empresas que están adoptando y promoviendo la estrategia de fábricas de software
para dominios específicos: Unisys tiene fábricas de software para 20 industrias verticales;
Borland desarrolló lenguajes específicos a dominio basados en diagramas UML 2; Kinzan
provee fábricas de software horizontales para
desarrollo web; Nationwide tiene lenguajes
específicos a dominio para desarrollos en sector finanzas; y Siemens cuenta con fábricas de
software para dispositivos médicos
Para mayor información sobre herramientas
para dominio específico, pueden consultar:
lab.msdn.microsoft.com/vs2005/
teamsystem/workshop/dsltools/
Estimados lectores, ¿a ustedes cuál corriente
les parece más sensata?
Luis Daniel Soto Maldonado es Director de Evangelización en Nuevas Tecnologías en Microsoft
México. Entre sus funciones actuales están la administración de la relación con el Gobierno Mexicano
para el desarrollo de la industria de software (ProSoft). Luis Daniel es jurado del “Gran Orden de Honor al
Mérito Autoral” en software del INDAUTOR/SEP y fundador de diversas asociaciones de Tecnologías de
Información (TI) relacionadas a inteligencia competitiva, administración del conocimiento y construcción
de software. Luis Daniel Soto es Ingeniero en Sistemas de la Fundación Arturo Rosenblueth y ganó el
primer lugar en el concurso nacional para software de exportación en 1989.
www.softwareguru.com.mx
Educación
en la Economía
del Conocimiento
Modelos y Tendencias
Por Guillermo Rodríguez
En tiempos como los nuestros, las reglas del juego han
cambiado radicalmente con respecto al pasado cercano y
lo único constante es el cambio. Cada vez más, la influencia de los mercados toma una vertiginosa importancia en
el bienestar de una nación entera dentro del ambiente
globalizado que nos envuelve.
L
as naciones latinoamericanas
en particular, han mantenido
un esquema de competencia
basado en mano de obra barata y
abundancia de recursos naturales. Las
consecuencias ya se han hecho sentir
con gran impacto. La razón es muy sencilla, los recursos naturales son agotables y muy susceptibles a cambios de
precio en el mercado mundial. Por otro
lado, la mano de obra latinoamericana
ya no se puede clasificar entre la más
barata del mundo, aunque es lógico
reconocer que hay grandes diferencias
entre los países que constituyen este
bloque. Los mercados internacionales
demandan ahora que las empresas
sean ágiles, basando su competitividad en su capacidad de determinar lo
que ocurre en su ambiente y adaptarse al cambio de manera flexible y oportuna. Es así como se requiere que las
empresas basen sus estrategias en la
innovación y en la administración del
conocimiento.
Muchas naciones consideradas como
economías emergentes han reconocido esta necesidad y generado estrategias nacionales que les permitan
enfocarse a nichos específicos de
competitividad basada en el capital
intelectual. ¿A qué podemos adjudicar el gran éxito que han tenido estas
iniciativas? Un factor común en ellas
es el alto grado de articulación entre
los sectores educativo, empresarial
y gubernamental. Cada uno de estos
sectores tiene muy claro su papel
dentro de la estrategia nacional de
desarrollo. En todos los casos se ha
apostado muy fuertemente a la educación como base de producción del
28
MAR-ABR 2005
capital intelectual requerido para
este tipo de iniciativas.
En el ramo de las tecnologías de información y electrónica, a través de los
años se han diferenciado muchos perfiles de acción de esta profesión. Sin
embargo la relación entre ellas cada
vez se hace más patente en cualquier
campo profesional. Peter J. Denning,
de la Universidad George Mason, hizo
un análisis muy detallado de la necesidad que tienen los profesionistas en el
corazón de la computación, como son
los dedicados a las ciencias computacionales y la ingeniería de software, de
relacionarse con otras disciplinas para
poder ofrecer soluciones de calidad
aplicables en la vida diaria.
Perfiles Internacionales
Muchas organizaciones en el mundo
han realizado un gran esfuerzo por
definir los parámetros mínimos que
deben cumplir los perfiles profesionales en esta industria. Tal es el caso de
la Association for Computer Machinery
(ACM), la Association for Information
Systems (AIS), el Institute for Electrical
and Electronic Engineers (IEEE) y el
modelo europeo de Career Space.
La orientación norteamericana, basada en los modelos producidos por los
primeros tres organismos mencionados, identifica cinco perfiles profesionales, variando de la visión más física
de la tecnología, hasta la visión más
organizacional. Dichos modelos son:
1. Ingeniería Computacional.– Orientada
al funcionamiento y diseño de sistemas
electrónicos computacionales, es decir al
desarrollo y manejo óptimo de hardware.
2. Ciencias Computacionales.– Con
una orientación científica matemática
para la construcción y administración
de software de base, que permita el
funcionamiento óptimo del equipo y
sus periféricos. Además, es el indicado
para la producción de nuevo conocimiento en las áreas de inteligencia artificial, visualización y gráficas y otras
áreas de corte matemático y científico.
3. Ingeniería de Software.– Especializado en la construcción de software
de alto nivel de aplicación general o
específica, orientado al usuario final.
4. Tecnología de Información.– Responsable de la planeación de capacidades e implantación de una
infraestructura tecnológica confiable
y robusta. Tiene sólidas bases teóricas
de la arquitectura tecnológica y bases
administrativas para su optimización.
5. Sistemas de Información.– Orientación a la estrategia tecnológica como
fundamento de la estrategia competitiva de las organizaciones. Tiene sólidas
bases administrativas y conocimiento
aplicativo de las tecnologías.
Cabe señalar que la construcción de
los perfiles de ACM/IEEE/AIS obedece
a la visión primariamente académica
de los integrantes de estas asociaciones. Sin embargo, existe un componente importante de la industria.
A diferencia de la visión norteamericana, los perfiles europeos de Career
Space no definen profesiones como
tales, sino puestos necesarios en las
organizaciones y basan su composición en las opiniones de este consorcio de empresas de alta tecnología,
donde se encuentran representados
www.softwareguru.com.mx
Los programas educativos
deben tomar en cuenta las
necesidades de su contexto
los más importantes proveedores de tecnologías de información en sus diferentes
ramos. Career Space define 18 perfiles de
puesto, clasificados dentro de cuatro grupos
principales. La composición de los perfiles
europeos es como se indica a continuación:
1. Telecomunicaciones
a. Ingeniería de radiofrecuencia
b. Diseño digital
c. Ingeniería de comunicación de datos
d. Diseño de aplicaciones para el
procesamiento digital de señales
e. Diseño de redes de comunicación
2. Productos y sistemas
f. Diseño del producto
g.Ingeniería de integración,
implantación y pruebas
h. Especialista en sistemas
3. Software y servicios
i. Desarrollo de software y aplicaciones
j. Arquitectura y diseño de software
k. Diseño de multimedia
l. Consultoría de empresas de TI
m. Asistencia técnica
4. Intersectoriales
n. Dirección de marketing de TI
o. Dirección de proyectos de TI
p. Desarrrollo de investigación
y tecnología
q. Dirección de TI
r. Dirección de ventas de TI
La descripción de estos perfiles es muy completa, incluyendo el perfil del aspirante a los
www.softwareguru.com.mx
puestos, así como su actividad profesional y
su posible ruta de desarrollo en las empresas. A diferencia de los perfiles norteamericanos, no es importante la carrera cursada,
sino las competencias que se requieren para
una inserción laboral y un desarrollo profesional satisfactorios, desde una perspectiva
principalmente originada en la industria.
Perfiles en México
En nuestro país, el principal responsable de
la definición de perfiles profesionales es la
Asociación Nacional de Instituciones de Educación en Informática (ANIEI), que agrupa a
cientos de instituciones de educación media superior, técnica superior, universitaria
y superior. Los perfiles de ANIEI muestran
cierto grado de correspondencia con los de
la visión norteamericana. Sin embargo, tiene
contempladas las necesidades de la industria por medio de la definición de perfiles
paracurriculares que giran alrededor de los
académicos y sugieren la formación de competencias específicas que demanda la industria. Con esta estrategia, se busca disminuir
el tiempo y dinero que invierten las organizaciones para convertir a los egresados de las
universidades en profesionistas productivos
dentro de las mismas. Los perfiles definidos
por la ANIEI son los siguientes:
1. Informática
2. Ingeniería de Software
3. Ciencias Computacionales
4. Ingeniería Computacional
Actualmente, la ANIEI se encuentra trabajando la definición de un quinto perfil, el de
Ingeniería Telemática.
Los perfiles curriculares de estas organizaciones revisten una gran importancia, ya que
sirven como referencia para mecanismos
acreditadores y certificadores. Así, la acreditación nacional hecha por el Consejo Nacional
de Acreditación en Informática y Computación
(CONAIC) a programas educativos de calidad
en México, se fundamenta en los perfiles de
la ANIEI. De modo similar, las acreditaciones
realizadas por la Accreditation Board for Engineering and Technology (ABET) en Estados
Unidos, hacen referencia a los perfiles de
ACM/IEEE/AIS. En el ramo individual, el Centro Nacional de Evaluación (Ceneval) también
basa la composición de sus exámenes de certificación en los perfiles de la ANIEI.
Cabe mencionar que todos los perfiles son
meramente referenciales, no normativos.
Existe el riesgo de que las instituciones educativas tomen dichos perfiles como dogma y
definan sus programas de estudio como una
copia fiel de los perfiles. Esto constituye un
gran error debido a que la intención muchas
veces es asegurar la acreditación de sus programas. Un programa educativo debe considerar los perfiles como algo muy importante,
pero no debe olvidar que es vital realizar un
diagnóstico detallado de las necesidades de
su propio contexto. Consultar a los empreMAR-ABR 2005
29
sarios y gobierno de su región es un factor
importantísimo para poder atender las necesidades de la misma. La construcción de un
programa de estudios debe articular una estrategia de impulso económico de la comunidad que la rodea. En el caso de universidades
de corte nacional, la definición de programas
debe obedecer la misma necesidad, pero tomando en cuenta las oportunidades y estrategias de desarrollo del país. Asimismo, las
instituciones deben identificar sus fortalezas
para ofrecer un valor agregado a sus egresados en los campos de especialidad en que
posean un mayor dominio.
Es un común denominador en las recomendaciones de todas las organizaciones la inclusión de un esfuerzo muy grande por generar
profesionistas cultos y con una gran visión
humanista. Esto responde a la clara importancia de proveer una visión de comunidad
en los egresados, así como de proveerles una
formación multidisciplinaria.
Estas tendencias ya han empezado a ser incorporadas por las instituciones educativas.
Por ejemplo, después de más de 35 años de
haber incursionado en el ámbito de la educación de computación en México, el Tecnológico de Monterrey ha evolucionado su
oferta educativa con un paradigma radicalmente distinto a las renovaciones periódicas
que realizaba al menos cada cinco años, así
redefiniendo su oferta educativa en una profesión integradora de Tecnologías de Información y Electrónica. Las carreras incluidas
en esta oferta son las siguientes:
1. Ingeniería en Tecnologías Electrónicas,
con concentraciones en Sistemas Digitales,
Automatización y Robótica, Telecomunicaciones y Microelectrónica. Este profesionista es
especialista en hardware y programación de
bajo nivel y hace frente a los retos de innovación en dispositivos que permitan mejorar
la competitividad en las industrias de manufactura y comunicaciones.
Es vital desarrollar una estrategia educativa
basada en el impulso de las tecnologías de
información y electrónica
Hacia Adelante
La Asociación Nacional de Universidades e
Instituciones de Educación Superior (ANUIES)
generó una visión de la educación superior en
México para el año 2020, donde estos factores se encuentran claramente fundamentados. Se enfatizan puntos neurálgicos como
la necesidad de mecanismos que aseguren la
calidad académica, el uso de modelos innovadores de educación y la importancia de la
cooperación interinstitucional, tanto a nivel
nacional como internacional. Asimismo, se
destaca la importancia de facilitar la incorporación de los egresados al mercado laboral y
de proporcionar salidas intermedias.
En México existe una gran cantidad de programas relacionados con las tecnologías de
información y electrónica que comparten
nombres, pero carecen de homogenización en
los objetivos y perfiles que abarcan. Esta confusión se transmite a los empleadores, quienes deben realizar su selección basándose en
competencias, en lugar de en el nombre de
las carreras. Las instituciones también deben
ayudar al egresado a clarificar sus competencias, construyendo un portafolio de pruebas
que permita evidenciar su perfil y facilite su
certificación por organismos especializados.
2. Ingeniería en Tecnologías Computacionales,
con concentraciones en Animación Digital,
Ingeniería de Software, Redes y Seguridad,
Sistemas Inteligentes y Arquitectura de Tecnologías de Información. Este profesionista
se especializa en aplicaciones de software,
proveyendo a las empresas de la administración adecuada de infraestructura que permita
la continuidad de las operaciones de una organización de manera óptima.
3. Licenciatura en Administración de Tecnologías de Información, con concentraciones en Aplicaciones Multimedia, Inteligencia
de Negocios y Mercadotecnia de Productos
y Servicios de Tecnologías de Información.
Este profesionista es un estratega tecnológico para las organizaciones, facilitando su
competitividad y su adaptabilidad en mercados cambiantes.
4. Ingeniería en Tecnologías de Información
y Comunicaciones, con acentuaciones en
Electrónica, Computación e Informática.
Este profesionista atiende necesidades de
integración en las disciplinas de electrónica,
computación e informática, teniendo un valor
muy particular en comunidades pequeñas,
así como en la pequeña y mediana empresa,
misma que tiene un gran impacto en la productividad de naciones en desarrollo.
Es importante notar que se incluyen núcleos
muy importantes de formación humanística,
además de mecanismos específicos de internacionalización, experiencia profesional,
investigación y desarrollo emprendedor. La fórmula del Tecnológico de Monterrey no es para
todos. Cada institución educativa debe actuar
de acuerdo a las tradiciones positivas que la caracterizan, buscando capitalizar en sus logros y
fortaleza, pero sin olvidar que los objetivos primordiales deben ser los siguientes:
1. Atender las necesidades de su comunidad
inmediata, formando los profesionistas adecuados a las mismas.
2. Articular el desarrollo e implantación de
sus programas con el sector productivo y
gubernamental.
3. Proveer competencias específicas que faciliten su incorporación al sector productivo.
4. Proveer una educación multidisciplinaria,
ya que así son los problemas del mundo.
5. Enfatizar la formación ética, humanística
y de compromiso con la comunidad.
6. Apoyar el impulso económico de la región
y del país, considerando el capital intelectual como agente activo de desarrollo.
Sólo resta concluir que para garantizar el
desarrollo nacional y poder enfrentar la
competencia global, es vital desarrollar una
estrategia basada en el impulso de las tecnologías de información y electrónica en
nuestro país. Esta estrategia debe apostar al
mejoramiento del sistema educativo nacional y a la formación de una verdadera sociedad de conocimiento, con capital intelectual
competitivo internacionalmente y con visión
multidisciplinaria y comprometida.
Referencias
• Denning, Peter J. (1998) Computing the
Profession. Preparado para el libro Computer
Science and Engineering Education, Tony
Greening, Editor y para Educom Review, John
Gehl, Editor.
• Accreditation Board for Engineering and
Technology (ABET)
www.abet.org
• Career Space
www.career-space.com/cdguide/index.htm
• Asociación Nacional de Instituciones de
Educación en Informática (ANIEI)
www.aniei.org.mx
• Programas profesionales ITESM
www.sistema.itesm.mx/va/profesional.htm
El Dr. Guillermo Rodríguez es Director de Sistemas de Información en el Tecnológico de Monterrey, Campus Estado de México, donde se especializa en temas como
Sistemas Estratégicos, Administración del Conocimiento y Transferencia de Tecnología. Guillermo participa de manera continua en conferencias internacionales, y en
1999 recibió el reconocimiento a la mejor conferencia en el Americas Conference on Information Systems. Es presidente fundador de la Asociación de Sistemas de
Información de América Latina y el Caribe.
30
MAR-ABR 2005
www.softwareguru.com.mx
CASO DE ESTUDIO
MoProSoft
MoProSoft® es un
posible medio para
las organizaciones
que deseen lograr
una evaluación
exitosa en un modelo
internacional como
SW-CMM®
MoProSoft® es un modelo de procesos de
reciente creación, para la industria de
software en México que fomenta la estandarización de su operación a través de la
incorporación de las mejores prácticas en
gestión e ingeniería de software. El objetivo
de este modelo es mejorar la capacidad de
los procesos de las empresas.
La estructura de MoProSoft® considera tres
categorías: Alta Dirección, Gestión y Operación. Establece un mecanismo para alinear
las estrategias de las tres categorías. La
categoría de Alta Dirección contiene el proceso de Gestión de Negocio. La categoría
de Gestión está integrada por los procesos
de Gestión de Procesos, Gestión de Proyectos y Gestión de Recursos. Éste último está
constituido por los subprocesos de Recursos
Humanos y Ambiente de Trabajo, Bienes,
Servicios e Infraestructura y Conocimiento
de la Organización. La categoría de Operación está integrada por los procesos de Administración de Proyectos Específicos y de
Desarrollo y Mantenimiento de Software.
MoProSoft® está disponible en la página
www.software.net.mx
Antecedentes
Desde hace varios años, ULTRASIST ha realizado un esfuerzo de mejora incremental al
adoptar las mejores prácticas de diferentes
modelos internacionales. Como resultado,
la Organización alcanzó el nivel de madurez
4 de SW-CMM®, utilizando a MoProSoft®
como marco de referencia.
en la Práctica
Recomendaciones para su Implantación
Por Ma. Julia Orozco y Claudia Alquicira
Este artículo presenta la experiencia de la implantación de MoProSoft® en una empresa de desarrollo de software y resume un ciclo
de mejora considerando desde la planeación estratégica hasta su
valoración. Se explica cómo se usó el modelo como marco de referencia para las partes de gestión y operación y cómo se utilizó el qué
y el cómo para la parte de Gestión de Negocio.
En la planeación estratégica del 2003, la
Organización decidió buscar una evaluación
en algún modelo reconocido en la industria.
Entre los modelos candidatos se encontraban
ISO 9000:2000, MoProSoft y SW-CMM®. En
ese momento MoProSoft® tenía la característica de ser el documento base de la norma
mexicana para la industria de software, pero
por ser de reciente creación, no contaba con
su método de evaluación, ni con un organismo que respaldara la aplicación del mismo.
La decisión que se tomó para adoptar el modelo orientado en la industria mexicana y lograr una evaluación reconocida, fue obtener
al menos un nivel 3 de SW-CMM® a través
de MoProSoft®.
Problemática
La Organización contaba con una serie de procesos para el desarrollo y mantenimiento de
software, administración de proyectos y para
establecer la mejora continua de los mismos.
El desempeño de los procesos de desarrollo y
mantenimiento se medía a través de indicadores, lo que permitió robustecer estos procesos
pero no proporcionaban el tipo de información
que necesitaba saber la alta dirección para
medir el cumplimiento de los objetivos estratégicos. Durante varios años la Organización
establecía un Plan Estratégico para definir las
metas, pero no con base en un proceso documentado. Existía una brecha entre las metas
de negocio y las de los procesos de desarrollo
de software por no contar con una retroalimentación bidireccional. Es decir, la dirección consideraba los resultados de la valoración de los
procesos para realizar esta actividad de pla-
neación, mientras que el Grupo de Procesos se
preocupaba por mejorar los procesos con base
en los resultados de la evaluación anterior
(defectos fugados, defectos por caso de uso,
plataforma de trabajo, retrabajo, entre otros)
pero no se consideraban las expectativas de
la alta dirección (utilidad esperada, retorno de
inversión, valor presente neto, tasa interna de
retorno, entre otros).
Experiencia en la Implantación
MoProSoft® se utilizó para alinear las estrategias de la parte operativa con las expectativas de la alta dirección. El proceso de
Gestión de Negocio se estableció formalmente en la Organización. Una vez revisada
la misión, visión y valores de la Organización, se revisaron los objetivos estratégicos
y se definieron indicadores que permitieran
evaluar el cumplimiento.
<Categoría>
Alta Dirección
<<Dir>>
+ Gestión de Negocio
Aborda las prácticas de Alta Dirección relacionadas con la gestión del negocio. Proporciona
los lineamientos a los procesos de la Categoría
de Gestión y se retroalimenta con la información
generada por ellos.
Los objetivos estratégicos se agruparon en
cuatro perspectivas como sugiere el Cuadro
de Mando Integral (Balanced ScoreCard).
Claudia Alquicira trabaja en Avantare Consutores como consultor en programas de mejora en organizaciones de desarrollo de software. Sus áreas de interés son la ingeniería
de software, calidad y tecnología orientada a objetos. Claudia cuenta con una Maestría en Ciencias de la Computación y participó como ponente en el SEPG LA 2004
32
MAR-ABR 2005
www.softwareguru.com.mx
En la Perspectiva Financiera se agruparon
aquellos objetivos que tienen que ver con el
cumplimiento de las expectativas de los accionistas. En la Perspectiva del Cliente los objetivos que nos llevan a satisfacer las necesidades
de nuestros clientes. En la Perspectiva Interna
los relacionados con la mejora de aquellos
procesos en los cuales debemos ser excelentes, y finalmente, la Perspectiva de Aprendizaje y Crecimiento que considera los aspectos
críticos para mantener la excelencia.
Se definieron los procesos de negocio
requeridos en la Organización para dar
cumplimiento a los elementos del Plan
Estratégico, la estructura organizacional se
revisó y actualizó principalmente en lo que
respecta al Grupo de Procesos definiendo
responsables de procesos y especialistas. El
Plan de Comunicación se instituyó como un
mecanismo de difusión de los Planes a los
miembros de la Organización. Se consideró
un Proyecto de Inversión y se identificaron
los proyectos internos y externos para dar
cumplimiento a los objetivos. Como proyectos internos se establecieron el Proyecto
de Mejora y el de Infraestructura y Fortalecimiento. Se establecieron las estrategias
para dar cumplimiento a los objetivos estratégicos y se definieron metas e indicadores
para poder valorar el avance.
<<Categoría>>
Gestión
<<Ges>>
Gestión de Procesos
<<Ges>>
Gestión de Proyectos
<<Ges>>
Gestión de Recursos
Establecer los procesos de la organización, en
función de los procesos requeridos identificados
en el Plan Estratégico. Así como definir, planear, e
implantar las actividades de mejora en los mismos.
Categoría de Gestión
La alta dirección dio la responsabilidad al
Grupo de Procesos para detallar los Procesos de Negocio y definir los procesos de
apoyo para cumplir con los objetivos estratégicos planteados.
tablecieron fueron aquellas que permitieran
retroalimentar a la Organización en cuanto
al cumplimiento de los objetivos estratégicos. El aspecto más importante que se tomó
en cuenta para definir una métrica fue que
el costo de producirla estuviera balanceado
con el beneficio potencial que será ganado
en la organización. El registrar, recolectar y
evaluar métricas lleva implícito un costo, que
para la mayoría de las empresas mexicanas
de desarrollo de software puede resultar prohibitivo si no se garantiza un retorno de inversión a corto plazo. Si bien es sabido que no
se puede mejorar lo que no se puede medir,
también es cierto que hay que empezar por
mejorar aquellos procesos que impacten a
las metas prioritarias de la Organización.
La implantación del proceso de Gestión de
Negocio dio orden y disciplina a las actividades de la alta dirección, lo que permitió
establecer la alineación de las metas de negocio con las de Gestión y Operación.
La estrategia que estableció el Grupo de Procesos para implementar los cambios en la Organización, consistió en realizar las actividades
en forma iterativa e incremental de acuerdo a
las prioridades establecidas.
El aspecto más importante para definir una
métrica fue que el costo de producirla estuviera
balanceado con el beneficio potencial que será
ganado en la organización
Categoría de Gestión y Operación
El Grupo de Procesos realizó un análisis de
brecha de las prácticas establecidas en la
Organización con respecto a las establecidas en las otras categorías de MoProSoft®.
Como resultado se obtuvo que la Organización contaba con procesos que cubrían gran
parte de la categoría de Gestión y toda la
categoría de Operación.
Con base en el análisis realizado, se priorizaron los objetivos con la Dirección y se
elaboró el Plan de Procesos que contiene
la estrategia para definir, implantar, medir y
evaluar los procesos. Las métricas que se eswww.softwareguru.com.mx
Al finalizar cada incremento se evalúo el cumplimiento de los objetivos establecidos en el
Plan Estratégico. Estas evaluaciones fueron
más frecuentes que las establecidas en los
años anteriores por ser un modelo de procesos
nuevo, que impactaba a toda la Organización.
Para este proyecto, se acordó contar con el
apoyo de consultores internos y externos con
conocimientos en CMM® y MoProSoft® para
asegurar el apego a los modelos. Durante la
definición y el ajuste del proceso se establecieron las diferencias significativas entre los
modelos MoProSoft® y SW-CMM®. Con respecto al proceso de Gestión de Proyectos, se
dividió en dos procesos, Ventas y Oficina de
Proyectos, tomando como base las prácticas
ya establecidas en la Organización.
Para los procesos de Gestión de Recursos y
sus subprocesos asociados, se estableció
una arquitectura diferente a la definida por
MoProSoft®. La Organización contaba con
un proceso que considera un Plan de Capacitación para cumplir con las metas planteadas
en los objetivos estratégicos de aprendizaje y
crecimiento; considera los requerimientos de
los proyectos, las sugerencias del personal
e incluye el desarrollar las habilidades que
se desea que adquieran los miembros de la
Organización, como es el trabajo en equipo,
habilidades gerenciales, y manejo de conflictos. La capacitación que plantea se ofrece
en diferentes modalidades: interna, externa,
seminarios sobre nuevas tendencias tecnológicas y capacitación en la práctica.
El proceso de Recursos Humanos establecido
por MoProSoft® se maneja dentro del Proceso de Gestión de Proyectos por la Oficina de
Proyectos. En él se establecen los elementos a considerar en la selección, asignación,
aceptación, evaluación y desempeño de los
recursos humanos. Para la evaluación de
los miembros de la Organización se provee
un mecanismo que permite valorar su crecimiento en dos direcciones: la horizontal
con respecto al desarrollo de habilidades y
la vertical con respecto a los conocimientos
y responsabilidades. El objetivo de esta evaluación es permitir un crecimiento gradual de
los miembros de la Organización para cumplir
con los objetivos estratégicos planteados en
la perspectiva de aprendizaje y crecimiento.
En cuanto al Plan de Infraestructura y Ambiente de Trabajo, se considera dentro del
Proyecto de Infraestructura derivado del
Plan Estratégico.
Si bien la Organización contaba con una Base
de Conocimiento con la información referente
a las Categorías de Gestión y de Operación,
no consideraba la generada por la Alta Dirección. Hoy en día el repositorio considera toda
la información de la Empresa.
SW-CMM® a Través
de MoProSoft®
Como resultado de este esfuerzo, la empresa
pudo comprobar que es factible implantar MoProSoft® y que es un posible medio para las
organizaciones que deseen lograr una evaluación exitosa en un modelo internacional como
SW-CMM®. Para lograrlo es necesario cuidar
las prácticas establecidas en CMM® y no consideradas en MoProSoft®, por ejemplo:
• En el proceso de Gestión de Negocio, escribir una política que contenga los lineamientos
que rijan los procesos definidos consideranMAR-ABR 2005
33
CASO DE ESTUDIO
<Categoría>
Alta Dirección
<<Dir>>
+ Gestión de Negocio
<<Categoría>>
Gestión
Optimizado
Administrado
Categorías
<<Ges>>
Gestión de Procesos
Definido
Repetible
Inicial
marco de referencia.
do los compromisos establecidos en el nivel
que se desea alcanzar de SW-CMM®.
• En el subproceso Recursos Humanos y Ambiente de Trabajo del proceso de Gestión de
Recursos, definir un mecanismo de renuncia
a la capacitación asignada.
• En el subproceso de Conocimiento de la Organización del proceso de Gestión de Recursos, incluir las prácticas de administración
de configuración establecidas en CMM®.
• MoProSoft® no considera el Grupo de SQA
que maneja CMM®, pero sí establece verificaciones y validaciones a productos y a procesos, sin embargo, para cumplir con CMM®
hay que conformar un Grupo de SQA que sea
independiente al proyecto.
• En cada uno de los procesos de MoProSoft incluir las verificaciones de las actividades por el
SQA de acuerdo a cada área clave de CMM®.
• En las evaluaciones externas (proceso de gestión de procesos) considerar un SQA externo.
Ambos modelos llevan al mismo fin, pero
cada uno sigue un camino diferente.
Fortalezas de MoProSoft®
Gestión de Negocio, sirve como vínculo entre
la parte de operación, gestión y dirección para
que los esfuerzos de la organización estén alineados para alcanzar la misión y visión. Para
empresas de reciente creación pueden utilizar el qué y el cómo que define MoProSoft®
<<Ges>>
Gestión de Recursos
<<Categoría>>
Operación
<<Oper>>
Administración de
Proyectos Específicos
Diagrama 1:
MoProSoft® como
<<Ges>>
Gestión de Proyectos
CMM
como un medio que facilite la transición a un
modelo internacional.
Los modelos internacionales por lo general
consideraran una gran variedad de roles que
una micro y pequeña empresa mexicana no
puede implantar. MoProSoft® no restringe a
ningún rol para que pueda ser realizado por
una misma persona, o por diferentes personas
dentro del mismo proyecto y en la medida que
la empresa crece, éstos pueden paulatinamente ser asignados a personas diferentes. Se
recomienda cuidar en la medida de lo posible
que una persona no sea juez y parte. Esto permite a la micro y pequeña empresa crear la cultura de procesos y fomentar la disciplina.
Aunque MoProSoft® fue pensado principalmente para la pequeña y mediana empresa,
puede ser usado como marco de referencia para
toda empresa que se inicia en un programa de
mejora, para asegurar que las estrategias a lo
largo de la organización están alineadas y para
asegurar que los procesos ya establecidos, contemplan las mejores prácticas.
Recomendaciones Generales
para Implantar MoProSoft®
Es importante conservar las mejores prácticas con las que cuenta una organización
y, en caso de ser requerido, ajustarlas
para el cumplimiento con el propósito, los
<<Oper>>
Desarrollo y
Mantenimiento
de Software
objetivos, la descripción del proceso establecidos por el modelo MoProSoft®. Como
ejemplo, definir un proceso de Gestión de
Recursos que incorpore los elementos de
los subprocesos de Recursos Humanos e
Infraestructura, Bienes, Servicios y hacer
un proceso en Gestión de Conocimiento de
la Organización.
La participación de consultores con experiencia en el modelo que se desea implantar
siempre es recomendable. En MoProSoft®
por ser un modelo de reciente creación que
no cuenta con experiencia documentada, se
considera indispensable.
Para las organizaciones que inician un programa de mejora, el proceso de Gestión de
Procesos podría ser el primero a definir e implantar puesto que con este proceso se genera el resto de los procesos. Se recomienda
una estrategia incremental de acuerdo a las
prioridades de la organización que permite
reducir los riesgos que conlleva la introducción de muchos cambios y permita a la Dirección observar resultados a corto plazo.
La responsabilidad de asignación de recursos humanos a los proyectos se puede atribuir al responsable de Gestión de Proyectos
y la parte de registro de recursos humanos a
un área administrativa.
Ma. Julia Orozco ocupa la Dirección Técnica en la empresa Ultrasist. Es Matemática con estudios de Maestría en Ciencias de la Computación. Ha impartido cursos en
universidades, gobierno e iniciativa privada y ha sido ponente en diversos foros internacionales.
34
MAR-ABR 2005
www.softwareguru.com.mx
PRÁCTICAS
PRUEBAS
M
i intención al escribir artículos es poder compartir con los lectores mis experiencias y visión
sobre el control de calidad del software en la Argentina, su problemática, y lo que he observado sobre su
evolución a lo largo de la última década.
a darle un lugar preponderante dentro del ciclo de vida de
desarrollo del software. Sin embargo, aunque ya hemos
recorrido un largo camino, no es poco ni simple lo que
queda por delante.
Una Mirada Retrospectiva
A pesar de que la actividad ya está en gran medida incorporada al “quehacer cotidiano” de muchas de las organizaciones, esto no significa que como disciplina esté
madura, aún queda mucho por mejorar, refinar, expandir
y aprender. Permítanme entonces, señalar algunos de los
puntos sobre los que debemos trabajar.
Durante los últimos años de mi trabajo en sistemas, me
he dedicado con exclusividad al control de calidad de software. Una de mis principales actividades ha sido el reclutamiento y entrenamiento de ingenieros de pruebas. Esta
tarea no me ha resultado sencilla, dado que es un mercado donde dicha actividad era considerada, hasta hace
unos años, como una profesión de segunda categoría, a la
cual se podía acceder:
• Como castigo por haber cometido algún error o tener un bajo
rendimiento en otro área de sistemas de la organización.
• Como la vía de ingreso de principiantes para trabajar en sistemas y prepararse para mejorar su desarrollo profesional incipiente, el cual desembocaría en el área de desarrollo.
• Como pasajeros en tránsito, que colaboraban en el área
de pruebas mientras el área de recursos humanos buscaba para ellos un nuevo proyecto de desarrollo, porque su
asignación anterior había terminado.
Sólo unos pocos accedimos por elección a esta singular
profesión, recientemente considerada como tal.
A partir del año 2000, y como resultado de haber mostrado a clientes internos y externos, el valor de la actividad, la
percepción sobre la misma está cambiando considerablemente. La industria comienza a reconocerla, a valorarla, y
T
La Problemática de la Actividad
El factor humano en la calidad.- La calidad debe ser liderada desde la cúpula de la organización. Necesita ser patrocinada y respaldada a lo largo del tiempo. Además, es
responsabilidad de todos y de cada uno de los integrantes
de la organización y no sólo del área de calidad.
El entrenamiento.- Pocas organizaciones tienen previsto un
plan de capacitación para el área de pruebas. Es habitual
capacitar a los desarrolladores, pero de alguna manera es
como si realizar pruebas fuera un don con el que se nace,
en lugar de tratarse de una disciplina que se aprende con capacitación y trabajo metodológico. Realizar pruebas es una
disciplina de la ingeniería y no un arte. Sigue persistiendo el
prejuicio de que probar es algo que cualquiera puede realizar
profesionalmente, sin entrenamiento. Pretender cambiar certeramente esta idea es difícil; aplica una cita de Einstein: “Es
más fácil desintegrar un átomo que un prejuicio”.
Definitivamente cuanto mayor y mejor sea el entrenamiento que recibe un ingeniero de pruebas, mejor será su desempeño y el valor que podrá agregar
al producto a probar.
RANSITANDO HACIA
EL CAMBIO
LA PROBLEMÁTICA DEL INGENIERO DE PRUEBAS
Por Alfonsina Morgavi
Los vínculos participativos.- No es frecuente que se genere una relación participativa entre ingenieros de pruebas
y desarrolladores. Es usual, encontrar
dos equipos enfrentados “pasando el
juego (el software) del lado del campo
del adversario”, lo que desde luego no
es beneficioso para el proyecto.
Alfonsina Morgavi es socia fundadora de QASoft en Argentina, donde se desempeña como consultora en Aseguramiento de Calidad de Software. Dedicada desde el
año 1989 exclusivamente a esta actividad. Uno de sus principales intereses es el entrenamiento de ingenieros de pruebas y el coaching en proyectos de la especialidad.
Alfonsina está certificada por el Quality Assurance Institute como Ingeniera en Control de Calidad de Software, así también como Consultora en Implementación ISO
9001:2000 por la Fundación Cane. Es miembro activo del subcomité de normas de calidad de software del Instituto Argentino de Racionalización de Materiales (Miembro
ISO, COPANT y AMN).
36
MAR-ABR 2005
www.softwareguru.com.mx
La calidad debe ser liderada desde
la cúpula de la organización
¿Cuándo probar?.- La prueba, por lo general,
es incluida sólo al final del desarrollo, cuando
hay un “ejecutable” a evaluar. Entonces, por
ser la última actividad (antes de la prueba de
aceptación y de la entrega del producto), las
etapas previas de desarrollo suelen tomar
para sí, parte del tiempo destinado a la etapa
de pruebas. Esto significa que es la actividad
cuyo tiempo es más factible que se recorte,
poniendo en peligro la cobertura de las pruebas y, por ende, la calidad del producto.
Sin lugar a dudas, el momento más apropiado para el comienzo de las actividades de
pruebas es al inicio del proyecto, lo antes
posible, y desde la etapa de requerimientos.
Se trata de no llegar al final del desarrollo
con un producto que por ejemplo, funciona
correctamente “en el escritorio”, pero que
no responde a los requerimientos especificados y no le permitirá al usuario llevar
adelante la operatoria de su negocio en el
“mundo real”.
El final del proyecto es, definitivamente, el momento menos adecuado para enterarnos de esto.
Por unanimidad, los libros de la especialidad dicen claramente: “Test often and test soon”, “realice pruebas con frecuencia y tempranamente”.
Acerca de los Procesos
Es prioritario definir la prueba como un proceso,
a efectos que, toda la organización tenga en claro cuál es su propósito, las actividades que se
realizan, los roles y responsabilidades, dejando
en claro que no es la solución “para enderezar”
un proceso de desarrollo desordenado y caótico. Como contracara, un proceso de desarrollo
ordenado y disciplinado permitirá realizar una
mejor evaluación del estado de los productos,
permitiendo a los ingenieros de pruebas poner
el foco de atención sobre sus debilidades.
Algunas Conclusiones
Ya no buscamos la famosa bala de plata, pero sólo porque ninguno de nosotros ha conocido a alguien que alguna
vez la haya visto, y sin ánimo de ser
aguafiestas, tampoco deberíamos reemplazar la ilusión de la bala de plata
por fórmulas mágicas, porque tampoco
nadie las ha visto.
Es tiempo de crecer y cambiar, de diseñar planes de acción realistas, que nos
permitan mejorar nuestros procesos
de control de calidad. Es tiempo de capacitarnos para enfrentar un mercado
que día a día, pide lo mejor.
Y por último y a modo de cierre, quisiera rescatar las palabras de John Ruskin: “La calidad nunca es un accidente;
siempre es el resultado del esfuerzo de
la inteligencia”.
PRÁCTICAS
ARQUITECTURA
ESTRUCTURA DE
PAQUETES
Por Ramés Rodríguez
ORGANIZANDO LOS
ELEMENTOS DEL SISTEMA
E
n el número anterior expusimos la forma de abordar la
complejidad de un sistema
J2EE a través de su organización en
capas conceptuales. En esta ocasión
aplicaremos este método para organizar los elementos de un sistema.
Es decir, definiremos una jerarquía
de paquetes para contener las clases
que componen el sistema. Aunado
a la aplicación de las capas conceptuales, y con el objeto de diseñar un
Sistema J2EE de la vida real, aplicaremos el patrón MVC (ver Fundamentos, pg. 42) a esta arquitectura
que será diseñada. ¿Qué beneficios
ofrece esto? Reducir la duplicidad del
código, facilidad de mantenimiento y
una arquitectura robusta, la cual puede ser empleada como plantilla en el
diseño de un Sistema J2EE.
Diseño de la Arquitectura
Una vez que hemos entendido la importancia del Patrón MVC en sistemas
que poseen varios tipos de clientes,
ha llegado el momento de mostrar
en dónde encaja el método de organización en capas conceptuales. La
organización consiste en la estructura de paquetes en que globalmente
será dividido un sistema. Para esto
nos apoyaremos en un sistema cuya
arquitectura de referencia será basa-
La organización consiste en
la estructura de paquetes que
agruparán a los elementos
da en los Patrones MVC y Fachada (un
patrón donde se provee una interfaz
sencilla hacia objetos o subsistemas
complejos). La figura 1 muestra la arquitectura de este sistema. En la imagen se puede observar que se cuenta
con un solo cliente, el cual es una
aplicación JFC/Swing, y además de
que el sistema, desde la perspectiva
del cliente, sólo está dividido en tres
partes: Vista, Controlador y Modelo.
Figura 1. Una arquitectura basada en los Patrones MVC y Fachada.
Si analizamos con detalle la arquitectura encontraremos varios puntos
interesantes. El objeto Modelo, desde
la perspectiva del Controlador, funciona como un Proxy de toda la Lógica
de Negocios tanto local como remota
(EJB’s). Gracias a esto, al Controlador
le resulta transparente el hecho de
que está obteniendo datos de una
fuente local (un archivo a través del
ModeloLocal) o remota (Servidor de
Aplicaciones a través del ModeloRemoto); desde su perspectiva, debe de
relacionarse exclusivamente con un
solo objeto, el Modelo.
Ahora definiremos la estructura de
paquetes que será organizada a
través de las capas conceptuales.
Primero definiremos el espacio de
nombres, éste viene dado por el
nombre de dominio en Internet de
la organización, pero en orden invertido. Por ejemplo, mx.edu.loyola
sería el espacio de nombres para
el dominio loyola.edu.mx. Después
hay que agregar el acrónimo del Sistema a nuestro espacio de nombres.
Por ejemplo, SIL es el acrónimo de
un proyecto que lleva por nombre
“Sistema Integral Loyola”. Posteriormente se define un paquete para
cada una de las cinco capas conceptuales. La plantilla se muestra en el
Listado 1.
mx.com.miempresa.misistema.
Presentacion
Aplicacion
Servicios
Dominio
Persistencia
Listado 1. Esquema de paquetes genérico.
Ramés Rodríguez Vargas es Desarrollador de J2EE desde el 2002. Su especialidad es el empleo de software libre aplicado a Java y el diseño de arquitecturas
orientadas a objetos. Actualmente se desempeña como Arquitecto de Sistemas en la Universidad Loyola del Pacífico.
38
MAR-ABR 2005
www.softwareguru.com.mx
El Listado 2 muestra cómo sería la estructura de
paquetes para el ‘SIL’, el Sistema de ejemplo:
mx.edu.loyola.sil.presentacion
mx.edu.loyola.sil.aplicacion
mx.edu.loyola.sil.servicios
mx.edu.loyola.sil.dominio
mx.edu.loyola.sil.persistencia
Como la Lógica de Negocios está programada a través de EJBs, se declara el paquete ‘ejbcontainer’ en cada una de las
tres últimas capas. En la de servicios se
almacenarán nuestras fachadas; en la de
dominio, el modelo conceptual; y en la de
persistencia, todas aquellas clases que
colaboran en el almacenamiento de nuestro modelo conceptual.
Listado 2. La estructura de paquetes en un Sistema Real.
Los paquetes para clientes y
la Lógica de Negocios
Los clientes cuya arquitectura está basada
en el Patrón MVC sólo emplearán las tres
primeras capas (presentación, aplicación y
servicios) para almacenar las clases de los
objetos Controlador, Vista y Modelo. Las
otras dos capas son exclusivas para la programación del lado del servidor, sin embargo, la capa de servicios es compartida
tanto por el cliente como por el servidor.
El siguiente paso es agregar en cada una
de estas tres capas un paquete para cada
tipo de cliente. Por ejemplo, el Listado 3
muestra al SIL con dos tipos de cliente:
uno de tipo inalámbrico basado en MIDP
(Mobile Information Device Profile) y una
aplicación JFC/Swing.
servicios.ejbcontainer
mx.edu.loyola.sil.
persistencia.ejbcontainer
Listado 4. El paquete para los EJB’s.
Los Paquetes para los
Módulos del Sistema
Un sistema suele dividirse en módulos cohesivos que encapsulan una funcionalidad
muy específica e independiente de otros
módulos. El siguiente paso es agregar los
paquetes para los módulos en cada uno los
paquetes de tipo de cliente y en el de los
EJBs. Por ejemplo, el SIL puede estar dividido en dos módulos: cobranza y control escolar. El Listado 5 muestra como deben estar
organizados estos paquetes.
midp.
presentacion.
midp
jfc
mx.edu.loyola.sil.
aplicacion.
servicios.
midp
jfc
Listado 3. La estructura para dos tipos de cliente.
cobranza
controlEscolar
jfc.
midp
jfc
dominio.ejbcontainer
cobranza
controlEscolar
ejbcontainer.
cobranza
controlEscolar
Listado 5. Los Módulos en cada uno de los clientes y
en el paquete de los EJB’s.
Un sistema suele dividirse en módulos cohesivos
que encapsulan una funcionalidad muy específica
e independiente de otros módulos.
www.softwareguru.com.mx
PRÁCTICAS
ARQUITECTURA
Lo que aquí se ha expuesto es una plantilla de
referencia que puede servirnos como guía al momento
de crear un nuevo sistema J2EE
Conclusión
Lo que resta es definir dónde se deben almacenar cada
uno de los objetos que componen nuestro sistema en
base al Patrón MVC. Las clases que componen las vistas
son almacenadas en la capa de presentación; el controlador en la de aplicación; y el modelo en la de servicios.
El Listado 6 muestra las clases que formarían parte de
un módulo y de un cliente. La figura 2 muestra cómo se
comportaría este módulo en tiempo de ejecución.
Las Vistas
mx.edu.loyola.sil.presentacion.jfc.cobranza.Ventana1
Hemos mostrado la forma en que las capas
conceptuales nos pueden auxiliar en la organización de un sistema cuya arquitectura referencial está basada en los patrones
MVC y Fachada. Todo esto nos ofrece beneficios tales como: mejorar la organización del código, desacoplar el modelo de
negocios con el de presentación, un fácil
mantenimiento, reutilización de código y
facilidad al momento de agregar un nuevo
tipo de cliente.
mx.edu.loyola.sil.presentacion.jfc.cobranza.Ventana2
mx.edu.loyola.sil.presentacion.jfc.cobranza.Ventana3
El Controlador
mx.edu.loyola.sil.aplicacion.jfc.cobranza.Controlador
Lo que aquí se ha expuesto es una plantilla de referencia que puede servirnos
como guía al momento de crear un nuevo
Sistema J2EE. Esperamos que les pueda
ser de utilidad.
El Modelo
mx.edu.loyola.sil.servicios.jfc.cobranza.Modelo
mx.edu.loyola.sil.servicios.jfc.cobranza.ModeloLocal
mx.edu.loyola.sil.servicios.jfc.cobranza.ModeloRemoto
La Fachada
mx.edu.loyola.sil.servicios.ejbcontainer.cobranza.ServiciosDeCobranza
El Modelo de Dominio
mx.edu.loyola.sil.dominio.ejbcontainer.cobranza.Entidad1
mx.edu.loyola.sil.dominio.ejbcontainer.cobranza.Entidad2
mx.edu.loyola.sil.dominio.ejbcontainer.cobranza.Entidad3
La Persistencia
mx.edu.loyola.sil.persistencia.ejbcontainer.cobranza.DACB1
mx.edu.loyola.sil.persistencia.ejbcontainer.cobranza.DACB2
mx.edu.loyola.sil.persistencia.ejbcontainer.cobranza.DACB3
Listado 6. Algunas de las clases que conforman un solo Módulo: cobranza.
Figura 2. El módulo en operación.
Referencias:
Marinescu, Floyd. EJBTM Desing Patterns. Wiley, 2002.
Singh, Stearns, et al. Designing Enterprise Applications with the
J2EE Platform, Second Edition. Addison-Wesley, 2002.
40
MAR-ABR 2005
www.softwareguru.com.mx
CÁTEDRA Y MÁS
COLUMNA
Centros de Desarrollo de Software
La Opción para México
L
a industria del software interviene en todos los
procesos que habilitan a la nueva “economía digital”, siendo el software elemento inherente de las
tecnologías de información. De acuerdo a las características de cada empresa, éstas desarrollarán su software o
lo adquirirán de otras compañías o divisiones. Existen varios esquemas para adquirir software de manera externa:
software general (off-the-shelf ), outsourcing, nearsourcing y centros de desarrollo. El que me ocupa hoy es este
último. Un centro de desarrollo de software (CDS) es una
empresa que ofrece servicios de desarrollo de software a
la medida, garantizando estándares internacionales. Ya
se ha comentado anteriormente en esta columna sobre la
necesidad de que en el país se fomente la industria del
software. Dado esto, ¿qué tan apropiado o conveniente es
que un desarrollador de software se consolide como CDS?
Comento algunos hechos que se han estado dando sobre
este tema en México:
a) La Secretaría de Economía de México lanzó en el año
2003 el Programa para el Desarrollo de la Industria del
Software (ProSoft). El objetivo fijado es lograr exportaciones de cinco mil millones de dólares para el año 2010.
b) Tal como comenta Rocío Ruiz Chávez, Subsecretaria
de Comercio Interior de la Secretaría de Economía, la
industria a nivel mundial está interesada en encontrar
países con bajos costos y mano de obra calificada. Están
conscientes en la Secretaría de Economía que se debe
crear primero el marco legal para los productos que desarrollen estos centros, así como un mercado interno que
consuma los productos. Apunta también al hecho de que
en México hay únicamente cuatro sectores compradores
de soluciones de software: industria automotriz, bancos,
gobierno y las grandes cadenas comerciales. Comenta
que se ha creado el Instituto del Desarrollo de la Economía Digital, que promoverá la creación del mercado
interno de productos.
c) Los datos de la Cámara Nacional de las Industrias Electrónicas de Telecomunicaciones e Informática (CANIETI),
revelan que el gasto en TI como porcentaje del PIB apenas llega en México a 1.3%. Sin embargo, en países como
Brasil y Argentina alcanza 2.7%; mientras que en Chile se
eroga 2.2%. Ni hablar de economías grandes como la de
Gran Bretaña, que destina 4.5%.
Se ha comentado anteriormente que la industria del software debe mirar primero hacia el mercado interno del
país, antes de fijarse en objetivos de exportación. Ante
www.softwareguru.com.mx
este punto de vista, la idea de establecer CDSs resulta
atractiva, ya que un centro establecido puede entonces
hacer el movimiento al mercado de exportación. En mi
opinión, se requiere de un programa nacional de desarrollo en el que el gobierno mexicano se ocupe de ser el
promotor de la industria mexicana, a la vez que también
sea el principal consumidor de productos de software desarrollados a la medida. Se deben crear las condiciones,
además de generar la demanda por productos, para que
valga la pena el establecer estos centros en el país. Ya
contamos con CDSs en Aguascalientes, Baja California,
Guanajuato, Jalisco, Morelos, Nuevo León, Puebla, Sinaloa, Sonora y Yucatán.
Si el interés por apalancarse en Tecnologías de Información para apoyar la operación de sus negocios no se
propaga entre las PyMEs, si por el otro lado no tenemos
suficientes cuadros técnicos que estén egresando de las
diversas opciones educativas en el país para satisfacer las
necesidades de los CDSs, y si además tenemos un marco
regulatorio incipiente para la creación de dichos centros
con todo y los recursos requeridos, pienso que no habrá
forma de exportar a los niveles que ProSoft se propone
lograr en algunos años.
Deben primero generarse las condiciones internas en el
país, que ayuden a madurar el modelo de negocios propio,
que no copie o imite a otros países, para que en segundo
término podamos incidir en exportaciones de productos
de software. No podremos atraer suficientes inversiones
en este sentido si no hay demanda interna y no hemos podido afinar un esquema de producción requerido para el
exigente mercado exterior.
El Dr. Ralf Eder Lange
es Profesor ConsultorExtensionista del
Departamento de
Sistemas de Información en el Tec de
Monterrey, Campus
Estado de México,
donde ha sido Director de los Programas
de Graduados en
Ciencias Computacionales y Sistemas
de Información, y
Director del Centro de
Investigación en Informática. Sus áreas de
especialidad incluyen
Reingeniería de
Procesos y Administración de Innovación
Tecnológica. Ralf es
miembro fundador de
la Asociación Latinoamericana y del Caribe
de Sistemas de Información (LACAIS).
Estamos ante una oportunidad histórica de coordinar esfuerzos, que esperamos nos rindan los frutos deseados.
Nos debemos de poner a trabajar para orquestar un enfoque viable. Existe la necesidad y se requiere actuar a
tiempo para cubrirla. La consolidación de CDSs en el país
presenta un gran potencial económico y de desarrollo que
no debe ser pasado por alto.
- Ralf Eder
Referencias
Fábricas de software: "Cómo se inventa una nueva industria"
www.microsoft.com/mexico/gobierno/entrevistas/Rocio_Ruiz.asp
Varela, Rogelio. "CANIETI propone inversión en TI para elevar productividad"
www.canieti.net
MAR-ABR 2005
41
FUNDAMENTOS
El Patrón MVC
Separando Responsabilidades para Brindar Flexibilidad
Por Alfredo I. López
En general, un patrón es la descripción de una solución a un problema común. En el desarrollo de software se utilizan mucho los patrones, ya que nos permiten aprovechar y
replicar las soluciones que los expertos han generado. Uno de los patrones más comunes
y utilizados en las aplicaciones de software modernas es el patrón Modelo-Vista-Controlador (Model-View-Controller en inglés), conocido por sus siglas como MVC. Alfredo López
nos explica cuál es el problema que resuelve este patrón y cómo es que lo logra.
En muchas ocasiones nos encontramos desarrollando aplicaciones donde
toda las reglas del negocio, accesos a
fuentes de datos y hasta código de
presentación se encuentran en una
sola clase, librería o, peor aún, en una
sola página (hablando de JSP, ASP o
similar). La experiencia nos ha demostrado que estas aplicaciones son muy
difíciles de mantener y casi imposibles
de reutilizar adecuadamente.
• Requiere desplegar su información
en diferentes tipos de clientes. La
figura 2 muestra un ejemplo de un
sistema que requiere proveer información a través de clientes web, móviles, applets y web services.
Variaciones del Patrón
Las variaciones del MVC suelen girar
en torno a las diferentes opciones
de implementación para las vistas.
Solución
El patrón MVC consiste en separar
las diferentes responsabilidades en
una aplicación, en elementos de tres
tipos:
• Modelos que contengan el estado (datos) y los mecanismos para alterarlo.
• Vistas que desplieguen información
o la comuniquen a otros sistemas.
• Controles que administren los
eventos que afectan a los modelos
y escojan las vistas adecuadas para
desplegar los resultados.
Esto se aprecia en la siguiente figura.
Aplicaciones
El MVC es muy útil cuando tenemos
componentes o subsistemas con una o
más de las siguientes características:
42
MAR-ABR 2005
necesidades. Es por esto que se necesita visión y un análisis cuidadoso
para implementar el elemento de
forma que no se impongan restricciones específicas a una aplicación
sobre él.
• Tiene múltiples comportamientos
debido a distintos usos que se puedan dar a la lógica de negocios.
• Se requiere readaptar o reutilizar
bajo distintas circunstancias con un
mínimo de trabajo adicional.
Ventajas y desventajas
El patrón MVC proporciona una forma
excelente de hacer que un elemento
sea flexible y adaptable a distintas
situaciones. Esta flexibilidad puede
ser aprovechada ya sea de manera
estática o dinámica. Estática cuando
se agregan nuevas clases de vistas
o controladores, y dinámica cuando
los objetos de vista o controlador se
escogen en tiempo de ejecución.
Usualmente, el mayor desafío del
MVC consiste en determinar la base;
es decir, definir interfaces adecuadas para que interactúen modelo,
vistas y controlador. A menudo,
como en la mayor parte del software,
un elemento MVC se desarrolla para
satisfacer un conjunto específico de
• Push vs. Pull.– Un esquema “push”
(empujar) es aquel en que el modelo
envía actualizaciones de datos hacia
las vistas, mientras que “pull” (jalar)
es cuando las vistas obtienen información del modelo conforme lo van
requiriendo.
• Vistas múltiples.– Un modelo puede proporcionar información a más
de una vista. Esto resulta muy útil
en algunas implementaciones de interfaces gráficas, porque los mismos
datos deben llevar algunas veces a
distintas representaciones.
• Vistas de sólo lectura.– No todas
las vistas necesitan un controlador.
Algunas proporcionaran sólo una
represtación visual de los datos del
modelo, pero no soportan ningún
cambio en el modelo.
Con esto concluimos nuestro estudio acerca de este patrón. Esperamos que les traiga beneficios en sus
próximos proyectos.
Referencia:
Stelting, Stephen & Maassen, Olav.
Applied Java Patterns.
Prentice Hall, 2002
www.softwareguru.com.mx
TECNOLOGÍA
Candados de
Hardware
Protección y Flexibilidad
Por Ariel García
La piratería es un mal que aqueja a todas las compañías dedicadas al desarrollo de software. Recientes
estudios de la BSA (Business Software Alliance) indican que la piratería de software en México se ubica en 56% y que va en aumento. En un estudio de
impacto económico de abril de 2003, IDC concluyó
que la reducción de la piratería en 10 puntos porcentuales en cuatro años agregaría más de un millón de
nuevos trabajos y generaría 400 mil millones de dólares en crecimiento económico mundial.
L
as grandes compañías de
software han implementado
nuevos esquemas de licenciamiento y creado mecanismos de activación de productos, como la distribución
de actualizaciones o patches para controlar el software pirata. ¿Qué tipo de
solución podemos adoptar aquellos
desarrolladores que no contamos con
la infraestructura de las grandes compañías? ¿Cómo podemos implementar
mecanismos que no limiten la funcionalidad de nuestras aplicaciones y logren protegernos de la piratería?
44
Si la llave no está conectada o la respuesta
es incorrecta, la aplicación no se ejecuta o
se ejecuta en modo restringido, de acuerdo
a la configuración. Esta verificación se realiza continuamente durante la ejecución de la
aplicación, y cada vez se envía un mensaje
diferente para evitar su emulación. De hecho, en los dispositivos más avanzados, la
mitad de los mensajes son falsos, para así
despistar a los crackers.
Una solución fácil de implementar y
de gran robustez son los candados o
llaves físicas. Esta solución se basa en
hardware que se integra con aplicaciones de software. Este candado se distribuye a los usuarios finales junto con la
licencia de software. La aplicación protegida verifica la presencia de esta llave
durante la ejecución para asegurar que
el software se utilice dentro de los parámetros acordados en la licencia.
Algunos de estos productos cuentan con
características avanzadas como relojes de
tiempo, actualización remota y memoria no
volátil, para almacenar información de diferentes aplicaciones. Estas características permiten restringir la ejecución del software de
diferentes formas, ya sea por tiempo, usuarios concurrentes, o acceso a componentes
específicos. Todo esto facilita la implementación de diferentes modelos de licenciamiento,
como renta de software, pago por uso, demos
y compra por Internet, permitiendo así que los
productores de software lleguen a más clientes potenciales sin tener que preocuparse por
la protección de sus productos.
Estas llaves contienen un motor de
cifrado impenetrable y de alta seguridad. Durante la ejecución, el software
protegido envía secuencias cifradas
que la llave descifra produciendo una
respuesta que no se puede emular. Si
la respuesta de la llave es correcta, la
aplicación sigue funcionando.
Las llaves normalmente se venden junto con un
kit de herramientas para desarrollo —utilerías y
APIs para que la aplicación de software pueda
interactuar con la llave—. Antes de adquirir una
solución de este tipo es importante asegurarse
de que el kit de desarrollo soporte el lenguaje
y ambiente deseados. Para casos en los cuales
no se cuenta con el código fuente de una aplica-
MAR-ABR 2005
ción o no se desea modificar éste, algunos proveedores ofrecen utilerías que pueden agregar
una capa de seguridad a aplicaciones existentes, forzándolas de esta manera a requerir de
una llave para su ejecución.
Las generaciones anteriores de los candados
se conectaban a través del puerto de la impresora, lo cual llegaba a provocar problemas
de compatibilidad, sin embargo, las nuevas
generaciones se conectan a través del puerto
USB, facilitando así implantar esta solución
en ambientes multiplataforma.
Dado el incremento de la piratería en nuestro
país, es necesario implementar mecanismos
dentro de nuestros desarrollos que protejan nuestra propiedad intelectual, nuestro
modelo de licenciamiento y sea adaptable
a cambios del mismo. Una solución que
cumple con todos estos requisitos y ofrece
una implementación sencilla y robusta son
los candados o llaves físicas. Estos no sólo
ofrecen una protección contra el uso ilegal
de nuestro software, sino que tienen una flexibilidad asombrosa para el diseño de modelos de ventas y licenciamiento.
En el mercado existen diferentes marcas de
estos productos. Típicamente se diferencian
entre sí por la facilidad de adopción y nivel
de protección que ofrecen. Las dos marcas
líderes a nivel mundial son Sentinel de SafeNet y HASP de Aladdin. Ambas tienen distribución en México y Latinoamérica.
www.softwareguru.com.mx
TECNOLOGÍA
Apple
Mac Mini
Lo más impresionante de la reciente MacWorld Expo, celebrada en
enero pasado, fue la presentación de Mac Mini, la propuesta de Apple
para competir en el mercado de las PCs de escritorio de precio accesible. Con un diseño minimal y todo el estilo tradicional de la marca, esta computadora integra un procesador G4 de 1.25 ó 1.42GHz,
disco duro de hasta 80GB, unidad CD-R/DVD-ROM y 256MB en RAM
—expansible hasta 1GB—, en un espacio breve.
Dos puertos USB 2.0, un Firewire, entrada DVI/VGA, módem integrado
y puerto ethernet 10/100 Base T, complementan la oferta, precisamente haciendo gala de un precio reducido; a pesar de esto, la Mac Mini
tiene poder suficiente para trabajar con todo tipo de aplicaciones para
desarrollo e incluso con software para diseño. Obviamente el paquete no incluye monitor, teclado y mouse, pero es prudente aclarar que
cualquier marca de periféricos funciona con la Mac Mini, con lo cual
se puede obtener un equipo de buena capacidad por un bajo precio.
Para los que necesiten algunas otras características, es posible incluir
un SuperDrive (DVD-R/RW), Bluetooth integrado y una tarjeta AirPort
Extreme para trabajar en redes Wi-Fi.
ATI
Buffalo
El mercado de las estaciones de trabajo no es muy grande;
los principales consumidores son los usuarios de CAD/CAM
y las compañías de ingeniería y diseño. Las tarjetas de video
que se utilizan en estas aplicaciones usualmente alcanzan
precios muy altos, pero al ser el componente de hardware
que puede mejorar el desempeño de un equipo de manera
dramática, el costo es secundario. La ATI FireGL X3-256 es
una tarjeta diseñada con las estaciones de trabajo de rango medio en mente, pero con el desempeño necesario para
darle batalla a las más avanzadas en un par de pruebas.
Ideal para trabajar con shaders HLSL o en el desarrollo de
aplicaciones con animaciones complejas, esta es una opción
de buen precio —alrededor de $800 dólares—, y ofrece una
solución, por lo menos hasta que las tarjetas basadas en PCI
Express se convierten en el estándar.
Este pequeño disco duro es la propuesta de Buffalo Technology al problema de almacenamiento que vivimos diariamente ya sea en el trabajo o en casa. Con capacidades desde 120
y hasta 300GB, el LinkStation se puede instalar fácilmente
en cualquier red local vía ethernet o Wi-Fi, opera con un simple pero efectivo sistema que permite a los usuarios utilizar
un navegador para revisar los archivos almacenados.
FireGL X3-256
www.softwareguru.com.mx
LinkStation
Cuenta con dos puertos USB 2.0 para conexión directa y,
dependiendo del modelo, también incorpora un servidor
de impresión y un FTP, además se puede configurar para
auto respaldar la información contenida en otro LinkStation
o cualquier computadora de la red, por medio de calendarios predefinidos. Su fuente de poder es de bajo consumo
de energía y además se puede programar para encendido y
apagado automático.
MAR-ABR 2005
45
BIBLIOTECA
01
Design Patterns: Elements of
Reusable Object Oriented Design
Erich Gamma, Richard Helm, Ralph Johnson ,
John Vlissides
Addison Wesley, Enero 1995
Dado que en este número hemos comenzado a hablar de patrones,
y con la esperanza de que haya quienes quieran aprender más sobre el tema, les recomendamos este excelente libro que es considerado la biblia de patrones de diseño.
Citando a los autores, podemos decirles lo siguiente:
“Cuando entiendan los patrones de diseño y digan ¡Aha!, en lugar de
¿Huh?, podrán diseñar sistemas más flexibles, modulares y reutilizables, que a fin de cuentas es la razón por la que nos interesa la tecnología orientada a objetos”. Debido a su largo nombre, este libro es
comúnmente llamado como el “Gang of Four” o “GoF”, haciendo referencia al cuarteto de autores. Así que si alguna vez alguien les pregunta
sobre el “GoF”, ya saben de que les están hablando.
Les avisamos que el GoF no es un libro que puedan leer y pretender
entender por completo a la primera. Es un material de referencia que
describe soluciones a diferentes problemas posibles. Conforme se vayan encontrando con tales problemas, entenderán las
soluciones recomendadas y apreciarán su valor.
Uno de los inconvenientes de Design Patterns, es que dado que data de 1995, los ejemplos están modelados en una notación pre-UML y varios de los ejemplos de código están en Smalltalk. Si esto no es de su agrado, pueden recurrir al libro
“Applied Java Patterns” de Stephen Selting, el cual describe los mismos patrones que el GoF (y otros más), modelados en
UML y con ejemplos de código en Java. Design Patterns está disponible tanto en formato impreso como en edición electrónica (CD-ROM). Adicionalmente existe una edición en español, pero solamente fue publicada en España.
Software Factories:
02
Assembling Applications
with Patterns, Models,
Frameworks and Tools
Jack Greenfield
Wiley, Agosto 2004
No podrán negar que el mero título de este
libro es bastante atractivo. La idea de ensamblar aplicaciones de software de una
manera industrializada, apoyándose en
patrones, modelos, marcos de referencia y
herramientas, ha sido un tema recurrente
de los últimos años. Tanto así que abarca el
tema central de éste número de SG.
El autor principal de esta obra es Jack Greenfield,
un reconocido Guru de la industria. Actualmente
Jack es arquitecto de herramientas empresariales
en Microsoft, y es la mente maestra detrás de Visual Studio Team System, la próxima generación
de herramientas de software de Microsoft para el
desarrollo de software en equipo. Antes de eso
Jack fue arquitecto en jefe en Rational Software
46
MAR-ABR 2005
y también fue uno de los principales colaboradores en el desarrollo de UML y J2EE.
En Software Factories el Sr. Greenfield y Cía.
describen una nueva visión para el desarrollo de software. Actualmente esta es una
actividad altamente intensiva en mano de
obra, que depende de una cantidad limitada
de desarrolladores talentosos. Conforme la
demanda de software global supere la capacidad de esta fuerza laboral, los métodos actuales de desarrollo serán reemplazados por
métodos automatizados, haciendo el desarrollo de software más rápido y barato.
Como explicamos en el artículo principal de este
número, el término “Fábricas de Software”, se
hizo popular hace unos años, aunque para muchas empresas simplemente significaba desarrollar software fuera de las instalaciones del
cliente. En el caso de este libro, las fábricas de
software representan un concepto mucho más
completo y maduro, donde juegan un rol crucial los procesos y las herramientas.
En general, Software Factories es un libro interesante con contenido valioso para todos
aquellos que dirigen áreas de sistemas o
centros de desarrollo de software.
Recomienda un libro para esta sección, escribe a:
[email protected]
www.softwareguru.com.mx
INDEX
DIRECTORIO
TENEMOS UN ESPACIO
RESERVADO PARA TI
Anunciante
Páginas
Sitio
AMCIS
Avantare
e-Quality
Gartner
IBM
Imexsoft
Innevo
Intersoftware
Itera
Mayen PM
Microsoft
Ssistemas
Softtek
Tec de Monterrey
47
39
37
07
F4
17
09
11
31
15
F2-1
26
35
F3
www.amcis.org.mx
www.avantare.com
www.e-quallity.net
www.gartner.com
www.ibm.com/mx
www.imexsoft.com.mx
www.innevo.com
www.intersoftware.com.mx
www.itera.com.mx
www.mayen-project.com.mx
www.microsoft.com/mexico
www.ssistemas.com
www.softtek.com
www.itesm.mx
Si deseas anunciarte contáctanos
en el (55) 5239 5502 o en
[email protected]
www.softwareguru.com.mx
MAR-ABR 2005
47
CARRERA
Project Manager Professional
La Certificación para Directores de Proyecto
Por Ramón Hernández
L
a certificación de PMP (Project Management Professional) es la credencial más importante para los individuos relacionados con la profesión de Dirección de Proyectos, otorgada desde 1984 por el PMI (Project Management Institute), fundado en 1969 y reconocido como
la asociación más importante a nivel mundial relacionada con la Dirección de Proyectos. El examen para obtener esta certificación está
basado en un estándar aceptado por la comunidad relacionada, llamado “A Guide to the Project Management Body of Knowledge (PMBOK®
Guide)”, la traducción oficial al español se llama “Guía de los Fundamentos de la Dirección de Proyectos (Guía del PMBOK®)”.
Datos Enero 2005
MEMBRESIA
Total de miembros
Total de países con miembros
153,952
146
COMPONENTES
239 Capítulos - Grupos de miembros del PMI que
se localizan en un área geográfica específica.
31 SIGs (Specific Interest Groups) - Grupos de
miembros del PMI de industrias similares.
2 Colleges - Grupos de miembros del PMI
interesados en el estudio detallado de un área
de conocimiento.
INDUSTRIAS CON MAYOR NÚMERO DE
MIEMBROS
Tecnología de Información
Hardware/Software
Servicios Financieros
Servicios de Administración
de Negocios
Telecomunicaciones
22,172
21,551
9,377
9,088
9,000
CERTIFICACIÓN
Total de PMP’s
105,088
Requisitos para Obtener la Certificación
como PMP
Se deben cubrir los siguientes requisitos:
Educación y Experiencia
Categoría 1
• A la fecha de aplicación del examen, el
candidato cuenta con un título profesional o
el equivalente en su país.
• Demostrar un mínimo de 4,500 horas
de experiencia en Dirección de Proyectos
con participación en los cinco Grupos de
Procesos (Iniciación, Planeación, Ejecución,
Seguimiento y Control, y Cierre) demostrando una experiencia de al menos tres años.
• Haber tomado 35 horas de capacitación relacionada con la Dirección de Proyectos. Las horas
deberán incluir las nueve Áreas de Conocimiento
de la Dirección de Proyectos (Calidad, Alcance,
Tiempo, Costes, Recursos Humanos, Comunicaciones, Riesgos, Adquisiciones e Integración).
Categoría 2
• A la fecha de aplicación del examen, el
candidato no cuenta con un título profesional
o equivalente, pero tiene al menos estudios
de nivel medio superior o el equivalente.
• Demostrar un mínimo de 7,500 horas
de experiencia en Dirección de Proyectos, en
los cinco Grupos de Procesos, demostrando
una experiencia de al menos cinco años.
• Haber tomado 35 horas de capacitación
relacionada con la Dirección de Proyectos.
Aceptar el Código de Ética del PMI, que básicamente contiene las responsabilidades
para con la profesión, y las responsabilidades para con los clientes y la sociedad.
Aprobar el Examen de Certificación como
PMP, el cual se presenta en computadora en
cualquiera de los sitios autorizados por el PMI.
Para una lista completa visitar www.2test.com.
En el caso de México, se cuenta con tres lugares, ubicados en la Ciudad de México, Guadalajara y Monterrey. El examen comprende 200
preguntas de opción múltiple, y para acreditar
se requiere acertar 137 preguntas. Es posible
presentar el examen en idioma español.
Requisitos para Mantener la
Certificación como PMP
Aquellos individuos que hayan conseguido
la certificación de PMP deberán demostrar
su compromiso continuo con la Dirección
de Proyectos, para ello deberán acumular al
menos 60 Professional Development Units
(PDUs) durante cada ciclo. El primer ciclo de un
PMP termina el 31 de Diciembre del tercer año
completo siguiente a su fecha de examen. Por
ejemplo, una fecha de examen del 31 de Julio de
2004 tendría una fecha de expiración del 31 de
Diciembre de 2007. El resto de los ciclos tiene
una duración de tres años exactos iniciando al
primer día de la expiración del ciclo anterior.
¿Qué son los PDUs?
Es una unidad de medida utilizada para
cuantificar el aprendizaje y actividades profesionales relacionadas con la Dirección de
Proyectos. Generalmente un PDU se obtiene
por cada hora invertida en el aprendizaje o
actividad profesional. Los PDUs están organizados en cinco categorías:
1. Educación Académica Formal.
2. Actividades Profesionales y Auto-estudio.
3. Educación recibida por REPs (Registered
Education Providers).
4. Educación recibida por otro proveedor.
5. Servicio Voluntario a Organizaciones
Profesionales o a la Comunidad.
Conclusión
Como se puede apreciar en las estadísticas del PMI, la industria de TI han dado
un gran impulso a la profesión de la Dirección de Proyectos. México no podía
quedarse atrás en esta gran iniciativa y
en 1996 inició operaciones el PMI Capítulo México, que desde sus inicios se ha
dedicado a promover la profesión de la
Dirección de Proyectos en México.
Referencias
The Project Management Institute (PMI)
www.pmi.org
PMI Capítulo México
chapter.pmi.org/mexico/
Ramón Hernández es gerente de proyecto con más de diez años de experiencia en Tecnología de Información, concentrado en proyectos para el sistema financiero.
Ramón es PMP certificado desde 1999 y colabora en el capítulo del PMI en la Ciudad de México.
48
MAR-ABR 2005
www.softwareguru.com.mx
Año 01 No. 02
www.softwareguru.com.mx
SOFTWARE GURU CONOCIMIENTO EN PRÁCTICA
Marzo-Abril 2005
Descargar