Académique Documents
Professionnel Documents
Culture Documents
• Mantenimiento
• Diseño orientado
a objetos
[ ENTREVISTA ]
Scott Ambler
La Evolución de Ágil
Software Guru CONOCIMIENTO EN PRÁCTICA
Año 03 No. 4 • Julio-Agosto 2007 • www.sg.com.mx
México, $65.00
directorio
Dirección Editorial
Pedro Galván
Dirección de Operaciones
Mara Ruvalcaba
Arte y Diseño
David Gutiérrez
Oscar Sámano
Consejo Editorial
Francisco Camargo, Ralf Eder, Raúl Trejo,
Editorial
Guillermo Rodríguez, ITESM-CEM;
Hanna Oktaba, UNAM-AMCIS;
Luis Cuellar, Softtek;
Luis Vinicio León, e-Quallity - ITESO.
Colaboradores
Oscar Cortés, Miguel Ángel Morán,
Aldo Hernández, Alexis Castañares,
Edgar Parada, Carlos “Fofo” Ordoñez,
Rocío García Ocaña, José M. Esquivel,
Aquiles Santana, Juan M. Hernández,
Luis Daniel Soto, Sergio Orozco, Ariel García,
Emilio Osorio, Jorge Palacios, Susana Tamayo.
Fotografía
Lectores SG
Sabemos que cuando les llegue esta buena respuesta. Muchas gracias. Espe-
revista probablemente ya vayan a estar ramos que les haya gustado el resultado,
Ventas
hartos de oír sobre Web 2.0 y estén listos y que logren encontrarse por ahí. Claudia Perea
para ahorcar a la próxima persona que Natalia Sánchez
se quiera hacer el interesante sacando a Esta edición de SG es una de las más den-
colación este término. Definitivamente es sas que hemos hecho, en términos de Marketing y RP
algo que ha sido sobreexplotado, y since- contenido técnico. Esperamos que sea de Dafne Vidal
ramente nos disculpamos por contribuir a su satisfacción. Ya saben que con gusto
ello. Es solo que consideramos que real- recibimos cualquier retroalimentación en Circulación y Subscripciones
mente es algo notable, y por lo tanto no lo editorial@softwareguru.com.mx Daniel Velázquez
podíamos dejar pasar sin atender. Hemos
hecho un gran esfuerzo por proveer artí- Cada vez está más cerca SG ’07. Estamos Administración
culos serios y objetivos que los ayuden muy emocionados de volver a verlos y sen- Araceli Torres
a formar una opinión propia e informada tir esa energía. Sabemos que ustedes tam-
Contacto
sobre esta tendencia. bién están muy interesados en poder asis- info@softwareguru.com.mx
tir para aprender y compartir experiencias +52 55 5239 5502
Para nosotros, lo verdaderamente nota- con sus colegas. Les garantizamos que
ble de Web 2.0 no es la tecnología, sino estamos haciendo todo para que esta edi-
la participación. Esto es lo que realmen- ción salga todavía mejor que el año pasa- SG Software Guru es una publicación bimestral
te agrega valor y le da su sabor. Es por do. La visión sigue siendo la misma: tener editada por Brainworx S.A. de C.V., Malinche no.
ello que los invitamos a participar para en México un congreso de clase mundial 6, Col. El Parque, C.P. 53398, Naucalpan, México.
Queda prohibida la reproducción total o parcial
generar la creatividad de este número, y para profesionistas de software.
del contenido sin previo aviso por escrito de los
estamos muy satisfechos con los resulta- editores. Todos los artículos son responsabilidad de
dos. La verdad es que no cualquier revista — Equipo Editorial sus propios autores y no necesariamente reflejan el
puede darse el lujo de darle tan solo un punto de vista de la editorial. Reserva de Derechos
al Uso Exclusivo: 04-2004-090212091400-102.
par de días a sus lectores para que en- Certificado de licitud de título: 12999. Certificado
víen fotografías personales, y obtener tan de licitud de contenido:10572. ISSN: 1870-0888.
Registro Postal: PP15-5106. Se imprimió en julio de
2007 en Litográfica Roma. Distribuido por Rrecca
Comercializadora y Sepomex.
18 EN PORTADA
WEB 2.0
A través de una variedad de artículos
definimos qué es el Web 2.0, qué carac-
terísticas tienen las aplicaciones de este
tipo, y cómo es que se desarrollan.
Productos
LO QUE VIENE 10
Tecnologías RIA, Visual Studio 2008,
JBoss Seam 2.0, Spring Batch
TUTORIAL 12
Desarrollo de código seguro
con Visual Studio
Columnas Prácticas
Tejiendo Nuestra Red 06 Tendencias en Software 43 MANTENIMIENTO 32
por Hanna Oktaba por Luis Daniel Soto Mantenimiento de Software
José M. Esquivel hace un repazo sobre la impor-
Mejora Continua 08 Tierra Libre 46 tancia del mantenimiento de software, y algunas
por Luis Cuellar por Emilio Osorio mejores prácticas de esta disciplina.
DISEÑO 40
14
El Mariachi Orientado a Objetos
Carlos Ordoñez adopta un enfoque divertido para
explicar un tema bastante complicado: la incor-
Entrevista poración de patrones para hacer más flexible y
Scott Ambler robusto un diseño orientado a objetos.
La Evolución de Ágil
Directores TI 2007
Los días 13 al 15 de junio, hospedada en la Universidad Vera-
cruzana, se llevó a cabo la XVI Reunión Nacional de Directores
de Escuelas y Facultades de Informática y Computación, que
organiza la Asociación Nacional de Instituciones de Educación
en Tecnologías de la Información – ANIEI. Durante la reunión
se realizaron mesas de trabajo que revisaron temas como: mo-
delos curriculares, vinculación academia-industria-gobierno, y
siguientes metas para la estrategia 2 de PROSOFT, entre otros.
Como problemas prioritarios se identificó la baja en las matrí-
culas de las carreras de TI, la enorme brecha entre la oferta
y la demanda de capital humano; problemas que ya en la ac-
tualidad, impiden el desarrollo de la industria de software en
México. Ya los Directores de las carreras de TI se encuentran
trabajando al respecto, pero es necesario que todos los involu-
crados pongamos nuestro granito de arena.
Para mayor información visita: www.aniei.org.mx
30 y 31 de Agosto 2007
26 de Julio 2007 Agile Project Management:
El Director de Proyectos y Innovation in Action
el Analista de Negocios Strategic IT Training Cycle, Cutter Consortium
Ciclo de conferencias, PMI Capítulo México y REPs 30 de Agosto - Hotel Camino Real, Monterrey, N.L.
Cd. de México 31 de Agosto - Hotel JW Marriott, Cd. de México
Info: www.pmichapters-mexico.org/mexico Info: www.cutter.com.mx/ciclo2007
e-mail: info@pmichapters-mexico.org Tel: +52 (81) 2282 6266 y +52 (55) 5336 0418
e-mail: eventos@cutter.com
La Dra. Hanna Oktaba es profesora de la UNAM a nivel licenciatura y posgrado. Sus áreas de interés son Ingeniería de Software, Tecnolo-
gía Orientada a Objetos, Modelos de Procesos de Software y Mejora de Procesos. Es fundadora de la AMCIS. Actualmente es miembro de
International Process Research Group (IPRC). También es Directora Técnica del proyecto COMPETISOFT.
Personas y Procesos
¿Donde Está el Problema?
Luis R. Cuellar es Director de Calidad a nivel mundial de Softtek Information Services. Luis es reconocido por la American Society for Quality
(ASQ) como Certified Quality Manager, Certified Software Engineer, y Six Sigma Black Belt. En los últimos cinco años ha estado a cargo de la
definición e implantación de la estrategia para CMMI5 y Six Sigma a través de las diferentes áreas del centro de desarrollo de Softtek.
Hace algunas semanas me encontraba dando una asesoría cuando una vicios coherentes con la finalidad de sumar el trabajo de cada individuo
de las personas preguntó lo siguiente: “dado que un proceso es una en un todo a gran escala, apoyando a asegurar la consistencia y produc-
secuencia de actividades, y dado que toda mi gente ejecuta activida- tividad del servicio.
des y todos ellos utilizan alguna herramienta como SAP, PeopleSoft o
similar, que los obligan a seguir una secuencia, entonces: ¿no sería la Detectando la madurez
mía, una organización orientada a procesos? ¿Qué es lo que diferencía Cuando se tiene algo de experiencia trabajando en áreas de calidad, es
a una organización orientada a procesos de otra que no lo está?”. Una relativamente fácil detectar la madurez de una organización con tan solo
pregunta interesante. A fin de cuentas, todos ejecutamos secuencias de unos minutos de diálogo con los empleados.
actividades, lo cual, es la base de todo proceso. ¿Pero exactamente qué Una organización poco madura está principalmente basada en la ha-
hace que una organización se clasifique como orientada a procesos? bilidad adquirida de las personas asignadas. Esto quiere decir que
no importa lo que pase, cualquier eventualidad no planeada o no
Las personas y los problemas definida es atribuible a la persona que tenía como responsabilidad
Antes que nada, la primera pregunta es: ¿para que moverse a una or- ejecutar correctamente esa actividad; lo que nos lleva a dos efectos
ganización orientada a procesos? Todos hemos escuchado que en las secundarios:
organizaciones de software, la gente es el activo más preciado. Para • Como parte de la naturaleza humana, cuando se echa la culpa de un
brindar un servicio de excelencia, se requiere gente experimentada, problema de la organización a una persona, ésta inmediatamente busca
comprometida, y orientada al servicio. Lo importante es la gente, los otros culpables que tomen por lo menos parte de la responsabilidad (el
procesos no son nada sin ella. Por eso, si vamos a lograr un servicio cliente, la gente que se me asignó, el área encargada de la infraestruc-
de calidad, la organización debe estar enfocada a la gente, y no a los tura, etcétera). Esto hace parecer que todo lo que pasa en proyectos
procesos. Dicho lo anterior, también debemos estar conscientes de que depende de tantas variables fuera de nuestro control, que resulta impo-
los procesos aumentan la productividad y eficacia de la gente. Una orga- sible o al menos poco práctico prevenirlas.
nización de clase mundial está formada por tres componentes básicos • Y el otro efecto tiene que ver con que la única forma de prevenir que
representados en la figura 1: vuelva a suceder es llamarle la atención a la persona o asignar a alguien
más, ya que la otra persona demostró no ser capaz de resolver lo que
se le asignó. Normalmente, en una organización de este tipo la conver-
sación que se escucha tiene que ver con establecer culpables, deslindar
responsabilidades y criticar el trabajo de otros.
La felicidad esta en la moderación Si quieres saber si una organización está orientada a personas o a pro-
El servicio orientado a procesos implica que existe un balance entre: cesos, simplemente espera que algo salga mal y observa si la conver-
1. La gente que asegura la calidad y flexibilidad del servicio, en base a su sación se enfoca en culpar a las personas o en reparar los procesos.
conocimiento y habilidades. Se puede predecir fácilmente el nivel de madurez de una organización
2. La tecnología que apoya a los individuos con información requerida simplemente midiendo el grado de cooperación que existe entre los in-
en forma rápida, concisa y oportuna para lograr los objetivos de calidad, dividuos, al encontrarse con un problema.
productividad y excelencia.
3. El proceso que entreteje todo esto en una serie de actividades y ser- —Luis R. Cuellar
A pesar de todo el ruido que ha habido en el escenario de tecnologías La próxima versión de Visual Studio, que anteriormente era
RIA en los últimos años, realmente no ha habido una competencia in- conocida por el nombre clave “Orcas” ya se aproxima a su
terna fuerte. Los principales jugadores habían sido Ajax y Flex, siendo última etapa antes del lanzamiento. Actualmente está dispo-
ambos tan diferentes en su estructura y comportamiento, que estaban nible como Beta 1, y se espera un Beta 2 este verano, para es-
más cerca de complementarse que de competir. Sin embargo, esto cam- tar lanzando el producto final antes de que termine el año.
bió a principios de mayo, cuando Microsoft lanzó Silverlight, un plugin
para ejecutar aplicaciones enriquecidas y multimedia, lo cual compite Entre las características más esperadas de esta versión está
directamente con Flash/Flex. Todavía un par de semanas después Sun el soporte a la versión 3.0 del .NET Framework, incluyendo
Microsystems se agregó a la competencia dando a conocer JavaFX, una C# 3.0 y LINQ (Language Integrated Query), lo cual tendrá un
tecnología para desarrollar y ejecutar clientes enriquecidos tanto para fuerte impacto en la forma en que se desarrollan aplicacio-
desktops como dispositivos móviles. Es así que podemos declarar ofi- nes .NET. Otra característica importante es que Visual Studio
cialmente iniciada la guerra de los RIA. Tools for Office –el componente para extender las aplicacio-
nes de Office– ya estará integrado dentro de Visual Studio
Uno de los primeros acontecimientos notables al respecto, es que Mi- 2008. Asimismo, Visual Studio Tools for Office –el compo-
guel de Icaza ya se apuró a desarrollar una implementación de Silverlig- nente para extender aplicaciones de Office– ya vendrá inclui-
ht basada en Mono, que lleva el nombre de Moonlight. do como parte de Visual Studio.
Por otro lado, JavaFX se está moviendo un poco más lento, ya que has- Más información en msdn2.microsoft.com/en-us/vstudio
ta el momento Sun solo ha liberado dos productos específicos: JavaFX
Script, que es el lenguaje de scripting para desarrollar aplicaiones, y
JavaFX Mobile, el ambiente de ejecución para dispositivos móviles.
Sun ha indicado que le restan varios productos por liberar dentro de la Spring Batch
familia de JavaFX, pero no ha dado detalles sobre cuales son, y cuando Framework para trabajos Batch
saldrán. También ha anunciado que JavaFX será eventualmente libe-
rado como software libre bajo licencia GPL, sin embargo no ha dado
fecha para esto. Como sabemos, recurrir a procesos batch es una
solución muy común en las empresas para procesar
En SG estaremos al pendiente de lo que suceda en esta arena, y grandes cantidades de datos. La falta de una arqui-
estaremos publicando artículos relacionados con las diferentes tectura estándar para procesos batch no le deja a las
tecnologías para que puedan conocerlas más a fondo. organizaciones otra opción más que desarrollar so-
luciones in-house, haciendo un desarrollo diferente
cada vez que se encuentran con esta necesidad. El
objetivo de Spring Batch es cambiar esto, ya que es
un framework para facilitar la creación y administra-
JBoss Seam 2.0 ción de procesos batch.
Uniendo Web 2.0 con Java EE
Spring Batch fue creado por Interface21 en colabo-
Tan solo tres meses después de liberarse la versión 1.2.1 de Seam, ya te- ración con Accenture, quien aportó su experiencia
nemos disponible un beta de la versión 2.0. Como ya hemos comentado y ejemplos acumulados en décadas de desarrollar
anteriormente, Seam es un framework Java para desarrollar aplicaciones procesos batch para sus clientes. La mejor noticia es
Web de nueva generación que unifica e integra tecnologías como Ajax, que Spring Batch es open source, de tal forma que
Java Server Faces, EJBs, Java Portlets y capacidades de BPM. cualquiera puede descargarlo, utilizarlo, y extender-
lo o personalizarlo a sus necesidades específicas.
Gavin King, desarrollador en jefe de Seam, nos comentó que entre las
principales características de esta versión están: Hablar sobre procesos batch no es algo muy sexy, y por
• Soporte a Groovy lo tanto este producto no ha recibido mucha atención
• Soporte a Google Web Toolkit por parte de los medios. Sin embargo, nosotros en-
• Integración de búsqueda con Hibernate tendemos la importancia y utilidad de un framework,
• Soporte para JSF 1.2 así que les recomendamos echarle un ojo, puede ser
•Soporte para transacciones independientes de JTA de gran ayuda en su próximo proyecto.
<add>
<doc>
<field name=”id”>3007WFP</field>
<field name=”nombre”>Dell Widescreen UltraSharp 3007WFP</field>
<field name=”fabricante”>Dell, Inc.</field>
<field name=”caracteristicas”>30” TFT active matrix LCD, 2560 x 1600, .25mm dot pitch, 700:1 contrast</field>
<field name=”peso”>401.6</field>
<field name=”precio”>5199</field>
</doc>
</add>
El directorio exampledocs contiene ejemplos de instrucciones que Solr puede recibir, así
como una utilería en Java (post.jar) para alimentar instrucciones a Lucene desde la línea
de comandos.
4. Realizando búsquedas
Las búsquedas se realizan a través de peticiones por HTTP GET en el url /solr/select del servidor
donde estés ejecutando Solr. El query de búsqueda se pasa a través del parámetro “q”. Es po-
sible agregar parámetros adicionales para controlar la información que se obtiene. Un url con un
query sencillo se vería de la siguiente forma: http://localhost:8983/solr/select?q=monitor
Solr regresa los resultados en forma de XML, así que es posible manipularlos como queramos.
Incluso podemos utilizar Solr directamente utilizando un objeto XMLHttpRequest y manipular
los resultados con Javascript.
Conclusión
En este artículo apenas echamos un pequeño vistazo a Lucene y Solr. Estas tecnologías
son muy flexibles y nos proveen una amplia gama de posibilidades. De hecho, a quienes
les interese hacer un ejercicio más sofisticado les recomendamos buscar en Internet
los tutoriales que enseñan como utilizar Solr en conjunto con el API de Digg para poder
realizar búsquedas de los contenidos de Digg usando Solr.
Ahora que conocen estas tecnologías, esperamos que las tengan en cuenta la próxima
vez que requieran incorporar funcionalidad de búsqueda en sus aplicaciones.
Referencias:
• lucene.apache.org
• lucene.apache.org/solr
¿Cómo describirías el estátus actual de Ágil? los DBAs que no comprenden esto se enfocan en hacer demasiado mode-
Hace unos años, Ágil era visto como un movimiento, una revolución. lado muy temprano en el ciclo de vida, lo cual en el libro “Agile Database
Sin embargo, creo que actualmente Ágil ya es parte de la “corriente Techniques” demuestro que es una forma de trabajo altamente ineficien-
principal” (mainstream) de los métodos de software. Justamente en te. El Data Warehouse Institute estima que tan solo en Estados Unidos,
marzo de este año realicé una encuesta sobre el grado de adopción los problemas de calidad de datos generan un costo de $600 mil millones
de ágil, y de las 781 personas que contestaron, el 69% contestó que de dólares anualmente. A pesar de esto, la comunidad de profesionistas
su organización aplica técnicas derivadas de Ágil. Esto no quiere de- de datos ofrece muy pocas recomendaciones prácticas sobre lo que se
cir que todo mundo ya esté usando algo como XP como su proceso puede hacer para resolver esto.
default, pero si nos indica que la mayoría ya está usando (o conside-
rando usar) una o más técnicas de Ágil. En resumen, creo que hay problemas serios en la gestión de datos, sin
embargo la mayoría de los profesionistas se aferran a los métodos que
¿Cuáles consideras que son los principales retos de Ágil en los generaron estos problemas en primer lugar. Afortunadamente, la comu-
próximos años? nidad Ágil está involucrándose y desarrollando alternativas para resolver
Creo que el principal reto para Ágil al corto plazo es demostrar que es estos problemas. Yo he escrito varios artículos al respecto que están dis-
escalable a proyectos grandes. Precisamente el trabajo que hago con ponibles en www.agiledata.org y que pueden ser de gran ayuda para los
IBM consiste en ayudar a clientes a aplicar técnicas ágiles en proyectos profesionistas de datos.
grandes y complejos donde se tienen muchas restricciones de regulación,
y el equipo de desarrollo es grande, distribuido geográficamente, y for- ¿Es cierto que un desarrollador de un equipo que utiliza Ágil necesita
mado por distintos proveedores. Estas organizaciones están interesadas mayor habilidad y experiencia que en el desarrollo tradicional, o simple-
en adoptar Ágil, precisamente porque están interesadas en maximizar su mente es cuestión de una mentalidad diferente?
eficiencia. En www.ibm.com/rational/agile tenemos varios documentos El aspecto fundamental es la mentalidad. Los desarrolladores ágiles bus-
y videos al respecto. can colaborar estrechamente con otros, aprender de cada uno, y desarro-
llar nuevas habilidades. También tienen un fuerte enfoque a la calidad,
¿Crees que Ágil evoluciona? ¿Cómo? típicamente utilizando una estrategia “test-first” (probar primero). El he-
Sin duda, las metodologías ágiles están evolucionando. Por ejemplo, cho es que ser un desarrollador ágil requiere mayor disciplina que uno
en los últimos años yo he hecho varios ajustes a Agile Modeling; Kent tradicional, así que tal vez no sea para todos.
Beck liberó la segunda versión de su libro “Extreme Programming
Explained”, donde presenta cambios significativos a la versión ori- Últimamente has escrito sobre “lean development governance”, ¿de
ginal de XP; Enterprise Scrum justo acaba de salir, y básicamente es qué se trata esto?
una extensión de Scrum que toma ideas del Rational Unified Process La gobernabilidad tradicional se enfoca en estrategias de comando y con-
(RUP). También está el Open Unified Process (OpenUP), que es un mé- trol, que buscan administrar y dirigir a los equipos de proyecto de forma
todo ágil open source que está disponible en www.eclipse.org/epf. explícita. Aunque ésta es una estrategia válida en algunas situaciones, en
Así que en el espacio de las metodologías, claramente hay una evolu- la mayoría de los casos es semejante a arrear gatos –se aplica un gran es-
ción y actualización. fuerzo pero se obtienen pocos resultados. En cambio, “lean governance”
se enfoca en estrategias de colaboración que buscan habilitar y motivar a
Por otro lado, es interesante ver que el Manifiesto Ágil parece resistir la los miembros del equipo implícitamente.
prueba del tiempo. Los valores y principios en que se basa no han sufrido
cambios, y parecen no necesitarlos. Sin embargo, también está el traba- Por ejemplo, la forma tradicional de hacer que un equipo siga lineamien-
jo del Agile Project Leadership Network (APLN), www.apln.org, el cual en tos de programación es definirlos y luego realizar inspecciones formales
cierta forma puede ser considerado una extensión al Manifiesto Ágil. para asegurar que se estén siguiendo. En cambio, lo que se haría en un
enfoque “lean”, sería escribir los lineamientos en colaboración con los
Al parecer, la gestión de datos (Data Management) también está siendo programadores, explicando la importancia de que todos los sigan, y luego
impactada por Ágil, ¿podrías explicarnos algo sobre esto? proporcionando herramientas que faciliten la adopción y seguimiento de
Introducir agilidad al mundo de la gestión de datos es una tarea cierta- los lineamientos. El enfoque “lean” es semejante a guiar gatos, si tomas
mente complicada. Desafortunadamente, la gestión de datos se manteni- un pedazo de pescado, ellos te seguirán a donde vayas.
do relativamente estática en cuanto a métodos y procesos, y muchos de
los profesionistas de esa comunidad se siguen aferrando a concepciones ¿Consideras que el desarrollo dirigido por modelos (MDD) alguna vez
erróneas sobre como funciona el desarrollo de software en realidad. Por será el común denominador de cómo desarrollar software?
ejemplo, muchos DBAs creen que es difícil evolucionar o refactorizar un Eso depende de qué entiendas por MDD. La versión Ágil de MDD ha sido
esquema de base de datos existente. Esto es algo que Pramod Sadalage el común denominador desde hace años, ya que es muy común que los
y yo demostramos que se puede hacer fácilmente a través de las técnicas desarrolladores ágiles usen herramientas sencillas como pizarrones y ro-
documentadas en nuestro libro “Refactoring Databases”. Sin embargo, tafolios para modelar. Lo que no es tan común es el enfoque que promue-
ven los profesionistas de modelado, donde todo se debe hacer en una ¿Qué está sucediendo en cuanto al Eclipse Process Framework (EPF)?
herramienta CASE. En teoría, esta estrategia es muy buena. Sin embargo, Este es un proyecto muy interesante. El EPF composer permite que las
en la práctica muy pocas organizaciones tienen suficiente gente con las personas puedan definir, personalizar y publicar procesos de software, e
habilidades necesarias para lograr esto. Las organizaciones que llegan a incluirlos en la herramienta de desarrollo Eclipse. Hay mucho material dis-
tener buenos modeladores, con buenas herramientas, logran muy bue- ponible, incluyendo el OpenUP y la definición de Extreme Programming
nos resultados. Sin embargo, este es un porcentaje pequeño de todas las para EPF. Últimamente no he estado muy involucrado en este proyecto,
organizaciones de software, y dudo que eso cambie en el futuro cercano. pero espero poder hacerlo pronto, para agregar más material sobre mo-
delado de datos ágil.
¿Qué opinas sobre la programación orientada a aspectos (AOP)?
Creo que AOP es una solución muy interesante que todavía está buscan- ¿Algunas palabras para nuestros lectores?
do un problema que resolver, y no veo que eso vaya a cambiar. Estoy muy entusiasmado de visitar México. Nos vemos en SG ’07.
A
finales de 2006, la revista Time anun- guajes existentes. Lo que es nuevo son las herramientas
ciaba a la persona del año y terminaba o aplicaciones construidas con dichos lenguajes. Estas
con la incertidumbre. Para sorpresa de herramientas tienen algo en mente, algo que ha empeza-
muchos, esta vez no se trataba de un pa- do a tener resonancia en el mundo Web 2.0: “Inteligencia
cifista o líder político o moral. La publicación nos Colectiva”. Es decir, brindan un mecanismo para que los
decía: “la persona del año eres tú”, o de manera usuarios no sólo puedan comunicarse con el creador del
plural: “ustedes”. Para algunos, esto parecía una sitio, sino entre todos ellos. Y muchas veces, sólo entre
broma, sobre todo porque la portada incluía una ellos. Juntos crean y mejoran conceptos y procesos. Es
imitación de espejo, invitando al lector a verse en un principio de Web 2.0: “nadie de nosotros puede saber
ella. Pero no, no era una broma. Y entonces, ¿que todo, pero cada uno de nosotros sabe algo”. Así, si junta-
habíamos hecho para recibir este honor? mos nuestras habilidades y conocimientos individuales,
podemos hacer algo nuevo y mejor.
2006 marcó el año en que los usuarios de Internet pasaron
de ser pasivos a activos. Es decir, no sólo fueron recepto- Un sitio Web 2.0 puede ser reconocido porque permite
res de información, sino que también fueron autores de la interacción con su audiencia, y deja huella de dicha in-
contenido. Y no es que los usuarios no quisieran partici- teracción en forma de nuevo contenido. Un sitio que no
par anteriormente, sino que la Web no lo permitía, porque permite tal colaboración no está usando el concepto Web
originalmente no estaba pensada de esa forma. Pero des- 2.0. La comunicación debe circular en ambos sentidos y
de su inicio, la Web ha ido evolucionando cada vez más quedar asentada para que la vean, juzguen y actualicen
del modo lectura, al modo lectura-escritura desde la pers- otros usuarios. Pero reformulemos la pregunta original: ¿a
pectiva del usuario común y corriente. Dicho movimiento quiénes se está reconociendo como usuarios de Web 2.0?
no bastó por si solo para ser una novedad, sino que fue la Bueno, aunque cualquiera puede beneficiarse del conoci-
masiva participación de los cibernautas. El concepto con- miento disponible, no todos los usuarios han participado
formado por lo sistemas y prácticas alrededor de estos in- de la misma manera. Por ejemplo: un blog puede ser visi-
gredientes una Web en modo de lectura-escritura y gente tado y habitualmente leído por muchas personas, pero no
usándola es lo que lo que hoy llamamos Web 2.0. todas participan con sus comentarios. Este tipo de usua-
rios contribuyen al tráfico, y muchas veces distribuyendo
Web 2.0 es considerado un concepto, y no una tecnolo- las historias que leen enviándolas por correo electrónico.
gía. Su construcción está basada en infraestructura y len- Pero su participación es más bien de espectadores.
Oscar Cortés Santos. Maestría en Ciencias en TI, McCallum Graduate School of Business en Bentley College, Boston, USA. Oscar cuenta con más de diez años de experien-
cia desarrollando aplicaciones para el mundo empresarial, tanto en Cliente/Servidor como Web, y es un entusiasta de tecnologías Web 2.0 y su convergencia con los negocios.
Trabaja como Software Engineer para Brightcove en Boston, desarrollando aplicaciones RIA con Flex.
M
ashup es una palabra que ¿Qué no es un mashup? de las empresas crece exponencialmente. Se
proviene de un término mu- Antes de continuar, debemos aclarar dos necesita usar esa información para manipularla
sical en inglés, que significa concepciones erróneas que tienden a existir de manera rápida y sencilla.
la creación de una nueva relacionadas con los mashups. La primera es > La información se encuentra distribuida en di-
canción a partir de la mezcla o pedazos que un mashup no es un portal. Sin embar- ferentes fuentes de información.
de otras canciones. Desde este concepto se go, un portal puede complementarse por un > Integración dinámica temporal a fuentes de
basa el mashup de software. La Wikipe- mashup y viceversa. información.
dia lo define como “una aplicación o sitio > Integración realizada por el usuario y no nece-
web que combina contenido de una o más La segunda aclaración es que un mashup sariamente por el área de sistemas.
fuentes dentro de una nueva experiencia tampoco es una aplicación compuesta (com- > Acceso rápido a la información significa mayor
de usuario o manejo de información”. posite application). El término composite competitividad y productividad.
application se utiliza para referirse a apli-
Los mashups son un producto de la Web 2.0 caciones que en lugar de ser desarrolladas Clasificación de mashups
donde el usuario es el centro de todo. Va de la desde cero, son “ensambladas” a partir de Un mashup puede dividirse en dos tipos:
mano con conceptos como colaboración y dis- servicios disponibles en una arquitectura > Orientado hacia el navegador (browser).
tribución de la información. SOA. Este concepto puede parecer muy simi- Está más enfocado en la mezcla o composi-
lar al de un mashup, sin embargo hay una di- ción de información con imágenes del lado
Las características que podemos en- ferencia crucial: las composite applications del navegador, principalmente usando Java-
contrar actualmente en el Web 2.0 parten de un enfoque centrado en TI, mien- Script como lenguaje de programación para
son: tras que los mashups parten de un enfoque lograrlo. Un ejemplo clásico de este tipo de
> Hecho por el usuario para él mismo. centrado en el usuario. Bajo el modelo de mashups es aquél en que se usa el servicio
> Capacidad dinámica de integración de infor- las composite applications, el usuario final de Google Maps, con otro servicio, por ejem-
mación con otras fuentes. sigue dependiendo del departamento de TI plo: de precios de casas que muestre en una
> Integración concurrente limitada. para crear una aplicación (aunque ésta so- sola pantalla el precio y la ubicación donde se
> Utilización de servicios Web públicos. lamente se vaya a ensamblar, no a crear). En encuentra una casa en venta.
> Orientado al consumidor. cambio, con los mashups el objetivo es que > Orientado hacia el servidor (mashup empresa-
sean los usuarios quienes puedan crear (o rial). En éste, la integración y manipulación de la
Sin embargo, conforme el Web 2.0 comienza ensamblar) sus aplicaciones. información suceden en ambos lados: servidor
a ser adoptado en las empresas, empezamos y navegador. Su uso principal es interactuar con
a ver su evolución, que llevará a las siguientes ¿Por qué mashups? información de diferentes sistemas para gene-
características en el futuro: Las grandes tendencias de desarrollo de soft- rar vistas necesarias para la toma de decisiones.
> Hecho por el usuario para él y compartirlo con ware son la reutilización e integración. La mayor Este tipo de mashup es capaz de interactuar con
más usuarios. parte de los presupuestos de TI para los próxi- data centers para generar valor .
> Capacidad dinámica de compartir e integrar mos años estarán asignados al mantenimiento
de la misma manera con otras fuentes. y explotación de los sistemas existentes. Funcionalidades del
> Utilización tanto de servicios Web públicos, mashup empresarial
así como servicios internos. La funcionalidad de los mashups se justifica en Estas son algunas de las acciones más comu-
> Orientado hacia la empresa, sus clientes y base a los siguientes puntos: nes que se pueden realizar con un mashup
aliados de negocio. > La información disponible en Web y al interior empresarial:
Aldo Hernández Murguía es parte del equipo de JackBe en México. Aldo es Ingeniero en Cibernética y Sistemas Computacionales por la Universidad La Salle, México. Cuen-
ta con más de nueve años de experiencia en TI, y está certificado como Java Developer y Architect. JackBe ofrece soluciones para aplicaciones de negocios basadas en SOA y
servicios Web que resultan en aplicaciones interactivas basadas en browser que buscan optimizar las actividades diarias de las organizaciones.
L
a forma de publicación y con- Y entonces, ¿qué consideraciones debo tener ofrecen las tecnologías más recientes para
sumo de información en la en cuenta al desarrollar aplicaciones de este la creación de este tipo de aplicaciones.
web de hoy en día ha sufrido tipo? Precisamente ese es el objetivo de este
un cambio fundamental. El artículo, explicar desde el punto de vista ar- En el pasado, muchas organizaciones han de-
advenimiento de un paradigma mu- quitectónico las principales consideraciones jado a un lado la experiencia de usuario en el
cho más proactivo en el uso de la web que debemos tener para el desarrollo de las desarrollo de sus activos en la web en aras de
por parte de los usuarios –que publi- aplicaciones de esta nueva generación. Co- buscar la ubicuidad de las aplicaciones, enten-
can su propio contenido en forma de mencemos entonces. diendo ésta como la posibilidad de contar con
blogs, wikis, videos, fotografías– ha ellas en múltiples dispositivos y en la mayor
provocado que anualmente se esté ge- Enfoque en la Experiencia de Usuario audiencia posible. Hoy en día los proveedores
nerando un volumen de información Los ejemplos más exitosos que podemos en- tecnológicos y las comunidades de desarrolla-
(estimado en 1.5 exabytes tan sólo contrar en el desarrollo de sitios y aplicaciones dores están dando prioridad a estas funciona-
para este año) que es mayor al que se de la web 2.0 han sido aquellos que implemen- lidades, pues la web 2.0 nos ha demostrado
ha producido en los últimos 5000 años taron una experiencia integrada y altamente que, con la nueva realidad de accesos de ban-
de la historia humana. funcional de uso. La alta cohesión en la inter- da ancha y usuarios altamente demandantes,
faz de usuario y el uso de tecnologías como es precisamente la experiencia de usuario el
Este nuevo paradigma ha dado pie a una inte- Ajax, que permiten proveer interactividad en el componente principal para que éstas aplica-
racción mucho más profunda entre los usua- browser similar a la ofrecida por las aplicacio- ciones tengan la capacidad de generar los al-
rios de la Internet, que han dejado atrás el rol nes de escritorio, han sido factores clave para tos volúmenes de lealtad, crecimiento y opor-
exclusivo de observadores y han comenzado fomentar la adopción masiva de aplicaciones tunidades de negocio que las organizaciones
a colaborar, discutir, formar comunidades e como YouTube o MySpace, pues permiten re- están buscando.
incluso amasar sitios ya existentes, en nue- ducir la curva de aprendizaje del usuario y por
vas aplicaciones o experiencias personaliza- lo tanto incrementar la productividad y lealtad Modelo de Programación 2.0
das usando mashups. El contar con un medio del mismo hacia la aplicación. Una de las premisas del concepto web 2.0
como la Internet para intercambiar información acuñado por Tim O’Reilly en 2005 es la ne-
correlacionada y catalogada a escala humana Actualmente, los desarrolladores tienen cesidad de contar con modelos ligeros de
supera la capacidad de cualquier individuo e al alcance diversas tecnologías para crear programación que permitan que las aplica-
incluso cualquier organización para generar aplicaciones enriquecidas (RIAs). Silver- ciones sean interconectadas para la creación
conocimiento, y se convierte en un proceso light, por ejemplo, es un plugin multipla- de funcionalidad personalizada. Las apli-
de inteligencia colectiva o “sabiduría de las taforma para el desarrollo de RIAs que caciones web 2.0 son inherentemente en-
masas”, como lo denomina Michael Platt en su utiliza lenguajes avanzados como JavaS- samblables y para ello es necesario que su
artículo “Web 2.0 in the Enterprise”. cript, C# ó VB e incorpora las funcionali- arquitectura considere la utilización de es-
dades de acceso a datos y comunicación tándares tanto en el manejo de datos como
Organizaciones de todos tamaños y en todas del framework de .NET con un sistema de en la comunicación, así como un esquema
las industrias han comenzado a investigar el entrega de video, habilitando el desarrollo que separe la funcionalidad en módulos que
poder de éstas tendencias para la generación de aplicaciones dinámicas multimedia. Los puedan ser reutilizables. Las aplicaciones
de nuevas oportunidades de crecimiento, sa- diferentes frameworks para el desarrollo que sigan estos modelos en su desarrollo
tisfacción en sus clientes, economías de escala de aplicaciones AJAX como Google Web estarán mejor preparadas para exponer pun-
basadas en la web, mercadotecnia viral, comu- Toolkit, ASP.NET Ajax, Prototype, DWR o tos de conexión que puedan ser usados para
nidades en línea y sistemas de distribución. Dojo son otro ejemplo de las opciones que la creación de mashups.
Alexis Castañares es Asesor Especialista en Arquitectura de Infraestructura en Microsoft México, donde está a cargo de la estrategia web. Alexis cuenta con 15 años de ex-
periencia en Tecnologías de Información, y ha dirigido un gran número de proyectos Internet de gran escala para diversas organizaciones como el Grupo MVS Comunicaciones
y la Organización Mundial de Comercio. Es egresado de Ingeniería en Cibernética por la Universidad La Salle.
Conclusión
Haciendo un análisis somero de la arquitectura de ac- Las consideraciones arquitectónicas aquí presentadas pueden servir
tivos altamente exitosos en la web 2.0, visualizamos la presencia como premisas iniciales en la planeación y diseño de una solución
recurrente de modelos, estrategias, patrones y paradigmas arqui- web 2.0. Con la vista puesta en el futuro inmediato, la organización
tectónicos orientados a sacar provecho de los nuevos horizontes deberá incluir en su estrategia muchas otras, como la multiplicidad de
que la “sabiduría de las masas” ha creado. La utilización de los dispositivos de entrega ó los ciclos continuos de mejora en los aplica-
modelos planteados por el advenimiento de la web 2.0 encierra tivos. En incrementos exponenciales estos modelos van evolucionan-
un alto potencial de negocio así como de soporte a poderosos me- do y siendo reemplazados por nuevas ideas que habilitan el potencial
dios de acercamiento con los clientes internos o externos de las y desencadenan el crecimiento de la máquina más compleja creada
organizaciones por medio de sus activos en Internet. por el hombre: El World Wide Web. <<
D
esde el año 2005 cuando Jesse James Garrett acuñó acceso Web de Outlook (OWA) . Este objeto se encarga de establecer
el acrónimo AJAX (Asynchronous Javascript and un canal de comunicación independiente del browser para enviar y re-
XML), las tecnologías relacionadas se han esparcido cibir datos, y así evitar que el usuario se percate de lo que está suce-
de una manera francamente vertiginosa. diendo tras bambalinas. Ya que la información está siendo procesada
en background.
Ajax es una técnica de programación donde se explotan tecno-
logías ya existentes como Javascript y XML, para mejorar consi- Dado que este objeto es programable en Javascript, es posible escribir
derablemente la interacción entre un usuario y una página Web. scripts que interactúen con el DOM de la página y de esta manera lograr
Esto se logra mediante la transmisión y recepción de información páginas muy interactivas. Debido a su popularidad y su uso masivo, el
(postback) desde el cliente al servidor en segundo plano, evitando World Wide Web Consortium (W3C) ha definido ya una especificación
los molestos pantallazos que implica el envío de datos, la admisión estándar para dicho objeto, y por lo tanto, ya lo implementan distintos
de los mismos y la regeneración de la página Web por parte del navegadores como Firefox, Safari y Opera.
browser. El uso adecuado de este modelo trae como consecuencia
un aumento considerable de la usabilidad, velocidad y tiempo de Implementación básica
respuesta de un sitio Web. Uno de los principales atractivos de Ajax, es que al usar tecnologías que
ya se encuentran implementadas en los browsers actuales, no es nece-
Antecedentes sario instalar nada para comenzar a usarlo.
Aunque parezca increíble, la capacidad real de utilizar estas técnicas
ha estado entre nosotros desde 1999, cuando Microsoft lanzó la ver- En el siguiente ejemplo definimos una implementación básica en la cual
sión 5 de Internet Explorer, y con él un objeto llamado XMLHttpRe- buscamos que al momento de seleccionar un destino en el Panel 1, se
quest ideado originalmente para optimizar la interfaz de usuario del actualice la información en el Panel 2, sin redibujar de nuevo la página.
<script language=”javascript”> A continuación presento algunos de los frameworks más usados actual-
var objxmlHttp=null;
// Devuelve una instancia correcta del objeto XMLHTTPRequest de acuerdo al browser usado. mente en la red.
function ObtenerObjetoxmlHttp()
{ Frameworks de cliente
try // Instancia para navegadores no Microsoft
{objxmlHttp=new XMLHttpRequest();}
Prototype: es un framework muy sencillo de entender, y bastante
catch (e) // Instancias para navegadores Microsoft popular. Para usarlo sólo es necesario incluir el archivo prototy-
{ try pe.js y con esto estamos listos para poder utilizar los objetos que
{ objxmlHttp=new ActiveXObject(“Msxml2.XMLHTTP”);}
catch (e)
incluye la librería. El listado dos muestra el código que necesita-
{ objxmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”);} ríamos para lograr el mismo objetivo que en el listado uno, pero
} usando Prototype.
return objxmlHttp;
} <script language=”javascript” src=”prototype.js”></script>
<script language=”javascript”>
// Envía la forma y los datos seleccionados en el control <select> function EnviarForma(){
function EnviarForma() { new Ajax.Request(‘Servidor.aspx’, {
objxmlHttp=ObtenerObjetoxmlHttp(); method: ‘post’,
objxmlHttp.open(“POST”,”Servidor.aspx”, true, “”, “”); parameters: {selLugares:document.getElementById(“selLugares”).selectedIndex} ,
objxmlHttp.setRequestHeader(“Content-type”, “application/x-www-form-urlencoded; onSuccess:
charset=windows-1255”); function(strRespuesta){
objxmlHttp.onreadystatechange=MostrarRespuesta; document.getElementById(“divDescripcion”).innerHTML=strRespuesta.responseText;
objxmlHttp.send(“selLugares=”+document.getElementById(“selLugares”).selectedIndex); }
} });
}
// Procesa la respuesta del servidor y la muestra en el <div> del Panel 2
function MostrarRespuesta() { </script>
if (objxmlHttp.readyState==4)
document.getElementById(“divDescripcion”).innerHTML=objxmlHttp.responseText; Listado 2. Implementación con Prototype
}
</script>
Es evidente que el código anterior es mucho más limpio y sencillo que
la implementación original. Sólo hacemos uso del método Request del
Listado 1. Implementación de Ajax sin framework objeto Ajax incluido en Prototype, y le pasamos como parámetros los
detalles de nuestra petición. Podemos ver que Prototype ha manejado
Implementar un código como el anterior no representa mayores proble- automáticamente la detección del browser, la suscripción del objeto y
mas cuando se trata de un ejemplo sencillo como el descrito. Sin embar- la interpretación de la respuesta.
go, conforme la interfaz de usuario tenga mayor complejidad, el código
para implementarla se incrementará exponencialmente, haciéndolo di- Cabe señalar que Prototype no sólo incluye funcionalidad para Ajax,
fícil de crear y mantener. sino que también incluye funciones para manejo y optimización de arre-
glos, cadenas, objetos etc. Incluye métodos taquigráficos para hacer
Ante este panorama, muchos fabricantes y grupos han tratado de facili- el código más legible, extiende el DOM, soporta JSON, y muchas otras
tar la vida a los desarrolladores mediante la creación de marcos de tra- características. Prototype tiene un compañero ideal llamado script.acu-
bajo que hacen más rápido y sencillo el uso de Ajax. Entre las principales lo.us que es otro script que extiende aun más la interactividad de las
ventajas de utilizar frameworks están: páginas mediante funciones de drag and drop, animaciones etc. y toma
> Simplificación y reducción de la cantidad de código requerida. como base Prototype
> Estandarización del modelo de codificación.
> Integración con el modelo de programación de la tecnología del lado The Dojo Toolkit: se basa en los mismos principios que Prototype,
de servidor. incluir un script del lado del cliente (en este caso dojo.js) para au-
> Aumento de la productividad en el desarrollo. mentar la funcionalidad de Javascript. Sin embargo, Dojo va más
allá e introduce todo un conjunto de características como gráficos
Podemos dividir los frameworks de Ajax en las siguientes dos categorías: de vectores, un sistema de eventos muy completo, la capacidad de
> Frameworks de cliente: básicamente scripts de Javascript pre- crear widgets (componentes basados en HTML + Javascript) y por
escritos y listos para usarse con sólo insertarlos directamente en supuesto, soporta Ajax. La desventaja de Dojo es que se ha vuel-
nuestra página Web. to sumamente complejo debido a su gran cantidad de funciones y
> Frameworks de servidor: son librerías implementadas del lado del ser- su escasa documentación. No obstante, empresas como Sun e IBM
vidor, que ayudan a una integración browser/server. Estos framewor- están apoyando este proyecto, por lo que en un futuro cercano po-
ks suelen generar dinámicamente el Javascript requerido para Ajax de dríamos ver un mejor soporte.
<asp:ScriptManager ID=”manEjemplo” runat=”server”/> Google Web Toolkit (GWT): es un framework que proporciona el so-
<asp:UpdatePanel ID=”upnContenedor” runat=”server”>
<ContentTemplate> porte a Ajax mediante la utilización de Java. Con GWT, el desarro-
<asp:Label ID=”lblDescripcion” runat=”server” llador escribe su página en Java (integrando las clases del GWT), y
Text=”Seleccione un destino y se le mostrara su descripcion” /> el compilador de la herramienta se encarga de generar el HTML y el
</ContentTemplate>
<Triggers>
Javascript correspondiente. El modelo de programación es muy pa-
<asp:AsyncPostBackTrigger ControlID=”drpDestinos” EventName=”SelectedIndexChanged”/> recido a Swing, y actualmente ya existen varios IDEs que proveen
</Triggers> integración con GWT para facilitar el desarrollo. Entre los que están
</asp:UpdatePanel> IntelliJ IDEA, Eclipse (a través del plugin Cypal Studio), y NetBeans (a
Listado 3. Implementación con ASP.NET Ajax través del plugin gwt4nb).
Conclusión
Los frameworks de Ajax facilitan y aceleran el desarrollo de Con esto, he presentado tecnologías representativas (por cierto, to-
las aplicaciones antes mencionadas. La elección del framework espe- das gratuitas), que a pesar de ser muy distintas entre sí, todas ellas
cífico depende de tus necesidades y restricciones: facilitan y aceleran el desarrollo de aplicaciones con Ajax. Como po-
Para quienes desean implementar Ajax a través de scripting drán apreciar, gracias a estas herramientas puede ser muy sencillo
en el cliente, Prototype y Dojo son muy buenas opciones, que implementar Ajax en nuestros sitios Web. Los invito cordialmente a
además de la funcionalidad básica de Ajax, proveen capaci- programar sitios fantásticos sumergiéndose de lleno en Ajax.
dades para extender las estructuras base de Javascript y del
DOM, con la ventaja agregada de su independencia de la pla- El código fuente completo de los listados de este artículo se encuen-
taforma en el servidor. tra disponible en www.developersdotnet.com <<
Para los que desarrollamos en ASP.NET, sin lugar a dudas la
opción natural es Microsoft ASP.NET AJAX debido a su completa Referencias
integración con el modelo de controles de servidor de ASP.NET; • www.prototypejs.org
la ayuda del IDE donde ni siquiera es necesario implementar • dojotoolkit.org
una sola línea de código de Javascript, y el montón de controles • script.aculo.us
incluidos en el Control Toolkit que harán a nuestros sitios verse • ajax.asp.net
espectaculares. Los programadores de Java tienen las opciones • getahead.org/dwr
de DWR y Google Web Toolkit, entre las más conocidas. • code.google.com/webtoolkit
Miguel Ángel Morán Bolaños es Microsoft Most Valuable Professional (MVP) en C# y Microsoft Certified Trainer (MCT). Es Licenciado en Informática por la UNITEC y cuenta
con 10 años de experiencia desarrollando profesionalmente. Actualmente colabora en Intersoftware como Consultor en TI. Mantiene, junto a un grupo de colegas, la comuni-
dad DevelopersDotNet donde frecuentemente escribe y organiza eventos sobre tecnología. mmoran@developersdotnet.com
Evolución de las Aplicaciones En una RIA se eliminan los viajes innecesa- hacia la interfaz de usuario UI, y también tie-
Como sabemos, las tecnologías y arquitectu- rios al servidor, lo cual impacta positivamen- nen la habilidad de enviar y recibir datos del
ras de las aplicaciones de software están en te el desempeño de las aplicaciones, ya que servidor de forma asíncrona. Una ventaja adi-
continua evolución para satisfacer mejor las la mayor parte del procesamiento se ejecuta cional es que las aplicaciones hechas en Flex
necesidades de tanto los usuarios como los en el cliente. Este es un cliente enriquecido pueden ser consideradas multiplataforma
departamentos de TI. Es así que pasamos por (rich client) cuya funcionalidad va mucho debido a la ubicuidad de su cliente (Flash Pla-
los “mainframes”, y luego por la arquitectura más allá del comportamiento default de un yer). Muchos argumentarán que Ajax también
cliente/servidor, cuyas características permi- navegador web. Algunas tecnologías utiliza- es multiplataforma, lo cual en teoría es cierto.
tían una mayor productividad, a costa de com- das para clientes enriquecidos son los prác- Sin embargo, en la práctica nos encontramos
plicaciones en la distribución y despliegue. ticamente extintos Java Applets, o el novedo- con que los diferentes navegadores tienen
so Silverlight de Microsoft por citar algunos, distintos niveles y mecanismos de implemen-
Posteriormente, un nuevo modelo vio la luz, y pero sin duda alguna el de mayor adopción a tación de Javascript y CSS, mientras que Flash
fue tiempo de darse cuenta del potencial del nivel mundial es el Flash Player de Adobe. Player es una sola máquina virtual estándar
web como un ambiente para ejecución de apli- para todos los navegadores y sistemas ope-
caciones. En este modelo, los navegadores ac- Nociones de Web 2.0 rativos. Además, sería incorrecto comparar
túan como clientes ligeros donde se interpreta Fue en el año 2004 cuando Tim O’Reilly utiliza directamente ambas tecnologías, ya que en
HTML, y a través de este se hacen peticiones el término Web 2.0, aunque nunca ha sido de- esencia Flex es un framework y una platafor-
y se reciben respuestas de un servidor. Co- finido un esquema formal para decir qué sitio ma de desarrollo, mientras que Ajax es una
múnmente esta interacción también se cono- es 2.0 y qué sitio no lo es. Si algo se ve lo sufi- serie de técnicas de desarrollo que explotan
ce como arquitectura basada en páginas. Con cientemente “cool” se agrega el mote de 2.0. el objeto XmlHttpRequest.
este modelo se resolvieron los problemas de
distribución y despliegue, ya que las aplicacio- De los principios más socorridos al momento Elementos de Flex
nes residen en el servidor. Sin embargo, esto de hablar de Web 2.0 tenemos: La plataforma de Flex está formada por los
se logra a costa de la experiencia del usuario. > Usar la Web como plataforma. siguientes elementos:
Esto se debe a las limitantes de HTML, así > Datos como una fuerza de negocios > ActionScript 3.0 – Un lenguaje de progra-
como del protocolo HTTP. > Tomar los efectos de la red para crear una mación orientado a objetos basado en la úl-
arquitectura de participación tima especificación ECMAScript.
Es entonces que llegaron las denominadas > Innovación en los sistemas y sitios web > Flash Player 9 – La siguiente generación de
RIA (Rich Internet Applications). Este térmi- > Modelo de negocios ligero esta popular pieza de software que incluye una
no fue acuñado en el 2002 por la empresa > Facilidad de adopción Máquina Virtual (AVM2) que permite ejecutar
Macromedia, y en ese entonces significaba el código significantemente más rápido.
muchas cosas pero todo se veía sintetiza- Flex 2: RIA para Web 2.0 > MXML – Un lenguaje basado en XML que
do en la frase “Experience that matters”. Habiendo dicho todo esto, podemos enfo- permite manipular los componentes de la
Las RIAs proponían una experiencia para carnos en una tecnología que está creando aplicación de una forma eficiente.
el usuario muy diferente a la interacción de bastante eco en la comunidad de desarro- > Compilador y Depurador – Un compilador
cambio de página de las aplicaciones web lladores de aplicaciones web: Adobe Flex. A en línea de comandos así como un modelo
tradicionales, aquellas que en ese momen- grandes rasgos, Flex es un framework para de depuración en tiempo de ejecución.
to se fueron haciendo obsoletas y formaron desarrollar aplicaciones web que son ejecu- > Flex Framework – Una librería de compo-
parte de lo que se conoce como Web 1.0 tadas en la plataforma Adobe Flash. Actual- nentes de interfaz de usuario GUI, tales como
mente, Flex se encuentra en su versión 2, y botones, data grids, acordeon, paneles, con-
Una RIA combina lo mejor de dos mundos: todo lo que mencionamos en este artículo se troles de árbol, etc. Fáciles de personalizar
> Aprovecha las ventajas del web como pla- refiere a esta versión. basándose en CSS o mediante Skins.
taforma para entregar aplicaciones. > LiveCycle Data Services ES Express – Una
> Brinda al usuario una experiencia por lo En su comportamiento, las aplicaciones he- plantilla de aplicación Web entregada en
menos comparable a la de las aplicaciones chas con Flex son similares a las aplicaciones un servidor J2EE para comunicarse con el
de escritorio actuales. Ajax: permiten actualizaciones dinámicas cliente Flash Player mediante una serie de
Edgar Parada es un Adobe Certified Instructor, consultor de Adobe, colaborador de diversos centros de capacitación e instructor activo en la DGSCA/UNAM. Actualmente
dirige Activ (www.activ.com.mx), un Adobe Authorized Training Center especializado en tecnologías como Flex, Flash Lite y Flash Media Server. Es parte del equipo del primer
grupo de usuarios en español enfocado en Flex: MadeInFlex ( www.madeinflex.com) y también es manager de Riactive ( www.riactive.com.mx), el grupo de usuarios oficial en
México para Flex. edgarparada@activ.com.mx
Web 2.0
La Redefinición de la “Caja de Zapatos”
Dr. Raul A. Trejo es Profesor Investigador del Departamento de Sistemas de Información del Tec de Monterrey, campus Estado de México.
Sus áreas de interés incluyen Ingeniería de Software, Negocios Electrónicos e Inteligencia Artificial. El Dr. Trejo participa en proyectos que
involucren de manera activa a sus estudiantes. Es miembro del Sistema Nacional de Investigadores (SNI) y ha presentado sus trabajos de
investigación en diversos foros nacionales e internacionales. El Dr. Trejo es miembro fundador de la Asociación de Sistemas de Información
de América Latina y del Caribe.
Mantenimiento de Software
Todos lo hacemos, pero nadie se acuerda
Por José M. Esquivel
La industria de desarrollo de software mantiene una evolución cons- drá correr durante varios años durante los cuales el sistema debe ser
tante. Antes podíamos ver que los ingenieros en sistemas compu- soportado y mantenido. De la misma forma, aun cuando el manteni-
tacionales, electrónica, o incluso otra especialidad contaban con miento de software es la última etapa del ciclo de vida del software,
todos los conocimientos necesarios para desarrollar y entregar un las actividades de mantenimiento no son las menos importantes. Muy
software. Sin embargo, la creciente complejidad del software y las al contrario, el mantenimiento del software se ha convertido en el
tecnologías y procesos necesarios para su desarrollo y manteni- principal componente en cuanto a costo y recursos invertidos en las
miento ha provocado que los profesionistas tengan que especiali- organizaciones de TI. Esta aseveración responde principalmente a la
zarse. Dentro de estas especializaciones encontramos algunas como relación entre el número de sistemas desarrollados anualmente por la
la programación, el levantamiento y análisis de requerimientos, el industria, comparado con el número de sistemas en funcionamiento
diseño de aplicaciones, el diseño de base de datos, las pruebas de que hacen trabajar a las empresas.
software, y recientemente una actividad que es por mucho, una de
las mas importantes y menos valoradas de la industria: el manteni- Dentro de las actividades del mantenimiento de software ocurre un
miento de software. Según la terminología ANSI-IEEE, el manteni- fenómeno muy interesante, que es algo que denominaremos como la
miento del software es: “la modificación de un producto software barrera del mantenimiento de software, y que en pocas palabras es
después de su entrega al cliente o usuario para corregir defectos, la incapacidad en la que se ven sumergidas las organizaciones para
para mejorar el rendimiento u otras propiedades deseables, o para poder iniciar nuevos proyectos debido al enorme desvió de recursos
adaptarlo a un cambio de entorno”. En este artículo exploraremos necesarios para soportar sistemas que son parte de la operación dia-
los aspectos fundamentales de esta actividad. ria. Se estima que esta barrera se alcanza cuando más de un 90 % de
los recursos se encuentran dedicados a soportar aplicaciones.
Frente a la considerable velocidad con que se ha desarrollado la in-
geniería de hardware, el desarrollo del software ha sufrido un retra- Prácticamente todos los profesionistas de sistemas hemos escuchado el
so histórico en cuanto a la elaboración y disposición de tecnologías comentario de que somos como los bomberos, apagando fuegos. Bue-
(metodologías y herramientas). Esto evidentemente merma la calidad no, pues precisamente ésta es la razón de traer este tema a reflexión. El
de los sistemas liberados y corriendo en ambientes de producción. La mantenimiento de software debe ser una actividad planeada por el área
complejidad del proceso de producción de software se intenta abordar de tecnologías de información de una organización, que debe contar
mediante la descomposición en diversas etapas. Esta descomposición con recursos dedicados y capacitados para desempeñarla.
recibe el nombre de “Ciclo de Vida del Software”. Los diversos mode-
los de ciclo de vida típicamente plantean distintas fases derivadas del Dividiremos entonces nuestra plática en 2 temas importantes: los proble-
modelo de cascada, tales como: mas del mantenimiento de software y las soluciones a estos problemas.
• Análisis y Definición de Requerimientos
• Diseño Problemas del Mantenimiento de Software
• Programación La problemática del mantenimiento de software se resume en realizar
• Prueba el mantenimiento de forma tan rigurosa y controlada que no se de-
• Despliegue teriore la calidad del sistema como resultado de este proceso. Por la
• Operación y mantenimiento. naturaleza del software, existen problemas relacionados con el man-
tenimiento de software que están claramente identificados y sobre los
Las tareas de mantenimiento son las últimas en realizarse en el ciclo cuales hablaré a continuación:
de vida clásico del software. Sin embargo, considerando el total de la
duración del ciclo de vida, la etapa de mantenimiento es la que más La existencia de los llamados “legacy code” (código heredado).
tiempo dura, ya que elaborar un sistema mediano típicamente lleva Con el paso de los años se ha ido produciendo un volumen muy
de 6 meses a 1 año, y posteriormente el sistema en producción po- grande de software en las empresas. En la actualidad, la mayor par-
Jose M. Esquivel es Ingeniero en sistemas computacionales egresado de la Universidad Autonoma de Guadalajara. Actualmente trabaja para Jabil de
Mexico como Ingeniero de soluciones empresariales dando soporte a los sistemas de la compañia asi como impartiendo la clase de “Pruebas y Manten-
imiento de Software” a nivel licenciatura en la Universidad del Valle de Atemajac. Anteriormente laboró en IBM como ingeniero de pruebas, Ingeniero de
desarrollo, arquitecto de producto para clientes como Motorla y Chrysler, entre otros.
te de éste software está formado por código antiguo “heredado”; es Código mantenible.
decir, código de aplicaciones desarrolladas hace algún tiempo, con Como ya lo mencionamos anteriormente, la manera de estructurar
técnicas y herramientas en desuso y probablemente por personas un programa depende de la creatividad y habilidad de los progra-
que ya no pertenecen a la empresa ni al grupo responsable en este madores, sin embargo existen prácticas que contribuyen a mejorar
momento del mantenimiento del software. La situación se complica la facilidad de mantenimiento del código. Estas prácticas se resu-
porque el código heredado ha sido objeto de múltiples actividades men a continuación:
de mantenimiento. La opción de desechar este software y reescri- • Código documentado: Los diferentes segmentos de código que se
birlo para adaptarlo a las nuevas necesidades tecnológicas o a los escriben deben contener comentarios objetivos que expliquen de for-
cambios en la especificación no es viable en la mayoría de las oca- ma adecuada el funcionamiento de éstos. Cada programa, clase y mé-
siones, debido a la gran carga financiera que supuso el desarrollo todo debe incluir documentación sobre su propósito, funcionamiento,
del software original y la necesidad económica de su amortización. entradas y salidas esperadas
• Banderas de cambio: es una práctica poco utilizada en la industria, y
Problemas inherentes al mantenimiento del software. se refiere a la habilidad de establecer un mecanismo de identificación
A pesar de toda la estandarización y modelos de procesos que bus- de cambios a lo largo de la vida de una aplicación. Es decir, si debido a
quemos adoptar, el desarrollo de software es en el fondo un proceso una modificación el día de hoy cambiamos un par de líneas de código,
creativo. Es así que en el software siempre encontraremos patrones es importante marcar esas líneas con alguna bandera que nos permita
no uniformes de programación, ya que dependiendo de su habilidad, identificar en el futuro la razón por la que se modificó el código. Esto
creatividad y experiencia, los programadores generan código de ma- nos permite tener una visión de las versiones y justificaciones que pu-
neras innumerables. Asimismo, es muy común encontrarse con apli- dieron haber inyectado un error a la aplicación.
caciones de software desarrolladas sin seguimiento a metodologías, • Documentación actualizada: esta práctica es poco ejercida debido
procesos, ni lineamientos, que se refleja en código mal escrito, mal a que el tiempo y la forma de documentación no es suficiente en los
documentado, y por lo tanto difícil de mantener. proyectos de desarrollo. Sin embargo, me refiero primordialmente a
tener las especificaciones de las aplicaciones actualizadas, no al ma-
Efectos secundarios o laterales no previstos ni deseados. nual de usuario que si bien es de mucha ayuda, es de más ayuda tener
Estos efectos se dan como consecuencias a las modificaciones no documentación técnica actualizada, tal como diseños, diagramas, dic-
controladas a las aplicaciones de software, que a su vez representan cionarios de datos, etc…
problemas para el mantenimiento posterior del software. Existen tres
tipos de efectos secundarios y se definen por su impacto en las dife- Equipo dedicado de mantenimiento de software
rentes áreas de una aplicación de software: A pesar de la importancia que ya vimos que tiene el mantenimien-
a. Efectos secundarios en el código, en donde el código sufre modi- to de software, muchas organizaciones no justifican la asignación
ficaciones como rediseños, eliminación de procedimientos o subpro- de un equipo dedicado exclusivamente al mantenimiento de soft-
gramas, modificación de macros o dll’s, cambios para mejorar el des- ware. Sin embargo, es primordial tener identificadas a las perso-
empeño, etc... nas que realizarán esta actividad, y no solo identificadas, sino
b. Efectos secundarios en los datos, esto al impacto de los cambios en también capacitadas y calificadas para realizar estas actividades.
los datos de las aplicaciones, tales como modificaciones en catálogos, La justificación para tener a este equipo es muy sencilla, simple-
formularios, cambios en los parámetros de los programas, etcétera. mente basta con cuantificar el costo que tiene que un sistema de
c. Efectos secundarios en la documentación, en donde general- producción deje de funcionar, o que genere problemas en su uso
mente después de un cambio en la aplicación, la documentación debido a un bug.
no es actualizada y esto genera problemas en la “mantenibilidad”
del software.
Conclusión
Soluciones a los problemas de mantenimiento El mantenimiento de software es un área que recibe poca
de software atención, pero no por ello deja de ser sumamente importante,
Existen diversas estrategias y acciones que podemos llevar a cabo especialmente cuando se considera la cantidad de recursos que
para resolver o mitigar los diferentes problemas descritos anterior- se le destinan. Existen muchos aspectos sobre el mantenimiento
mente, y que pueden servirnos de guía sobre la manera en que las or- de software sobre los que vale la pena ahondar, y espero poder
ganizaciones deben de enfrentar el mantenimiento de software. Entre hacerlo en futuras ocasiones.
las principales estrategias están:
Bienvenidos a la tercera y última parte de este caso práctico sobre herramientas tienen ya sus propias variables ambientales y sus
análisis de puntos de función. Como podrán recordar, el objetivo propios criterios de evaluación. Por ello, alimentar puntos de
de este ejercicio es mostrar cómo se utiliza la técnica de puntos función ajustados redundaría el factor ambiental que ya es con-
de función aplicada a un caso real. En nuestro caso, la aplicación siderado en la estimación.
consiste en un sistema para administrar las ventas de automóvi-
les que realiza una empresa de compra-venta de autos usados. 7. Determinar los Puntos de Función Ajustados
En este paso, se aplican fórmulas que en esencia consideran los
En la parte 1, planteamos los requerimientos iniciales en los que puntos de función no ajustados y se multiplican por el factor de
nos basamos para realizar el análisis. Posteriormente, en la parte ajuste. Las fórmulas a ser aplicadas dependen del tipo de conteo
2 llevamos a cabo los pasos necesarios para determinar los puntos (desarrollo, mantenimiento o aplicación). Para el caso de un nue-
de función no ajustados. Ahora, ya solo nos falta realizar el ajuste vo desarrollo, la fórmula es la siguiente:
para obtener los puntos de función ajustados. Por último, daremos
un vistazo a los múltiples usos que le podemos dar al resultado de Puntos de Función Ajustados =
nuestro análisis de puntos función. Comencemos entonces … Puntos de Función no Ajustados x Valor de Ajuste
Para obtener la evaluación más precisa y objetiva, se recomienda • Estimación de Proyectos: El dato de los puntos de función no
que para esta actividad el analista de puntos de función trabaje ajustados, puede ser introducido en algún modelo de estimación
en conjunto con el equipo técnico. estadístico, el cual sea calibrado con información histórica de
proyectos ya terminados y también dimensionados en puntos de
Aplicación al caso función. Los datos históricos de tamaño, esfuerzo, personal, fa-
Debido a que no fue proporcionado el detalle de las caracterís- ses y características ambientales, proveen las tendencias clave
ticas ambientales, y sólo se indicó que los requerimientos y res- que pueden ser utilizadas para estimar proyectos similares. En
tricciones no funcionales son como el “promedio”. Se asumirá un nuestro caso la aplicación mide 35 puntos de función y el cliente
valor de ajuste igual a uno. quiere que terminemos el proyecto en 2 meses. Buscaremos en
la BD historia de proyectos en tamaño y características similares,
Cuando se calculan los puntos de función para realizar una es- y con la ayuda de las herramientas estadísticas, identificaremos
timación mediante el uso de una herramienta estadística, se tendencias y evaluaremos las probabilidades de éxito en diferen-
alimentará únicamente los puntos de función no ajustados. Es tes situaciones, como por ejemplo: ¿Cuál es la probabilidad de
decir, funcionalidad “pura” sin la influencia de características terminar el proyecto en 2 meses?, ¿Cuál es la cantidad adecuada
ambientales o de implementación. Esto es debido a que estas de personas a ser asignadas al proyecto? ¿Cuál es la cantidad de
• Control de Alcance: Una vez aprobado el alcance de 35 Puntos de Función, será ahora
nuestra línea base de tamaño. Debido a que el proyecto se encuentra en fases tempra-
nas, típicamente existirá un crecimiento de tamaño debido a un mayor entendimiento
del negocio y/o aclaración de supuestos. En nuestro caso práctico, hicimos el supuesto
de que la aplicación, no contemplaba funcionalidad para definir usuarios y perfiles de
seguridad. Sin embargo, durante el desarrollo, dicho supuesto podría cambiar cuando
el usuario decidiera que si quiere tal funcionalidad. Como en cualquier administración
de cambios, abriríamos nuestro control de cambios al alcance y en la evaluación del
impacto, incluiríamos el nuevo tamaño funcional para ver si dicho incremento de tama-
ño sobrepasa nuestros límites de capacidad. En caso de ser así, ejecutaríamos alguna
acción de mitigación o contingencia. Por ejemplo, si derivado del análisis, la funcionali-
dad creciera hasta 50 puntos de función, ¿mantendríamos el mismo estimado de dura-
ción/esfuerzo/personal asociado a los 35 puntos de función?, ¿hasta donde podemos
absorber? ¿Sí sólo crece 10 puntos de función, podemos manejar el crecimiento? En este
punto, las opciones típicas para administrar el cambio, podrían ser:
- Priorizar junto con el usuario para acotar de nuevo a los 35 puntos de función y mo-
ver la funcionalidad con menor prioridad a otras fases.
- Incrementar el tamaño del equipo (si es aún factible).
- Incrementar la duración del proyecto.
• Control de producción: Los puntos funcionales nos permiten cuantificar cual es el ta-
maño del proyecto. Es decir, al final del proyecto de nuestro caso práctico esperamos
que se entreguen 35 puntos de función. Ahora bien, durante el ciclo de vida, cada que
es terminado un caso de uso, un diseño, un diagrama de clases, una codificación de un
método o un caso de prueba, etc; nos vamos acercando a estos 35 puntos de función.
Alguna herramienta para el control de producción tomará como entrada estos 35 puntos
de función, y hará visible cuanto se ha construido y cuanto debería tenerse construido
con base a información histórica, y así comparar si el ritmo de producción es similar a las
tendencias esperadas. En caso de que el ritmo de producción fuera menor al esperado,
acciones correctivas o de mitigación sería tomadas. Por ejemplo, quizas, el volumen de
producto es menor debido a que los peer reviews, están siendo sólo de forma y no de
fondo, y los defectos mayores están pasando directamente por el ciclo de vida, sin que
sean tempranamente atendidos. Nuestra acción sería atender esta causa modificando el
proceso de peer reviews para detectar estos defectos tempranamente e incrementar el
• Construcción de base de datos histórica para benchmarks y funcionales, pueden ser relacionados contra los componentes
proyectos de mejora continua: Cuando terminemos nuestro pro- físicos (tablas, pantallas, clases, casos de prueba, etc), lo cual
yecto de 35 puntos de función, como parte de las actividades sienta las bases para la construcción de una matriz de rastreabi-
de cierre del proyecto obtendremos y registraremos métricas y lidad que sea utilizada para evaluar de manera completa y con-
lecciones aprendidas. Entre las métricas que deberán ser reco- sistente el impacto de los cambios, y aumentar la productividad
piladas están: el tamaño funcional, el esfuerzo (horas-hombre, en los mantenimientos debido a curvas de aprendizaje menores.
meses-hombre), duración (días calendario, días hábiles), núme- En nuestro caso, la función de datos: “Vehículo” está implemen-
ro de personas, cantidad de defectos, número de cambios, can- tado en dos tablas: Tb_Vehículos y Tb_Accesorios_Vehículo. Por
tidad de líneas de código, cantidad de casos de uso, número de lo tanto cuando funcionalmente se identifique una modificación
riesgos, número de issues, etc. Estos datos serán almacenados a la función de datos “Vehículo”, el equipo técnico sabrá que es-
en nuestra base de datos de proyectos históricos con el propó- tados dos tablas podrían ser impactadas.
sito de ser analizados y utilizados para realizar benchmarks en
la propia organización y contra el mercado, y derivado de ello, • Identificación de scope creep o inconsistencias en los reque-
arrancar proyectos de mejora con el fin de reducir el costo de rimientos: Cuando se están contando los puntos de función e
nuestros proyectos, incrementar nuestro desempeño y lograr identificando las funciones de datos y transaccionales, el aná-
mejores oportunidades de mercado. Estos proyectos de mejora, lisis es realizado de manera sistemática, por lo cual aparecen
partirían de metas objetivas para disminuir el costo de nuestros preguntas que deben ser resueltas por el equipo de análisis o
proyectos mediante el incremento de productividad y calidad. el cliente. Por ejemplo, en nuestro caso práctico, al momento de
Por ejemplo, si la información de la industria, nos indicara que la contar las funciones transaccionales, vemos que tenemos la fun-
productividad típica de un proyecto es de 15 puntos de función ción de “Insertar Compra”, sin embargo, cabe pensar que pueda
por persona-mes, y en nuestros proyectos tenemos un promedio existir un “Actualizar Compra”, funcionalidad que no está inclui-
de 10 puntos de función por persona-mes, esto nos daría una da en los requerimientos, pero que podría presentarse y debe
meta clara de que por lo menos debemos incrementar la pro- ser evaluado con el cliente si dicha funcionalidad será parte del
ductividad en 5 puntos. De esta forma, los programas de mejora sistema. Así mismo, el análisis de puntos de función ayuda a re-
complementarán sus objetivos y no sólo estarán enfocados a lo- visar los productos derivados de otras técnicas de análisis. En mi
grar tal o cual certificación, o nivel de madurez. Los programas experiencia, ha sido muy útil para identificar defectos presentes
de mejora continua, deben tener objetivos claros y medibles en especificaciones de casos de uso.
para el negocio, y no sólo el objetivo de obtener un papel o re-
conocimiento. Adicionalmente, el ingreso de más información en
nuestra base de datos de proyectos, incrementará la exactitud
Conclusión
de nuestros estimados y nos dará mayor oportunidad y certeza La técnica de análisis de puntos de función es muy valiosa
para dar estimados agresivos pero factibles. para nuestra industria, donde la carencia de métricas de
productividad estándar reduce la madurez con la que
Potenciales usos del Proceso de Análisis de nuestros clientes y nosotros mismos podemos evaluarnos.
Puntos de Función Una industria madura se fundamenta en métricas y no en
Obviamente, el objetivo principal del análisis de puntos de fun- percepción y buenos deseos. Por esto, como consumidores de
ción es obtener los puntos de función para un sistema. Sin em- productos de ingeniería de software debemos exigir y evaluar
bargo, existen beneficios adicionales derivados de la aplicación a nuestros proveedores con métricas de productividad y
del proceso. Como su nombre lo indica el Análisis de Puntos calidad, y como proveedores debemos empujar e incrementar
de Función, es también una técnica de análisis sistemática que nuestro desempeño orientados a la reducción de costos y
aporta beneficios tangibles como: aumento en la satisfacción. A fin de cuentas, el objetivo no
es alcanzar un nivel de madurez o una certificación, ese es
• Rastreabilidad de componentes: Como pudo ser apreciado en sólo el medio. El objetivo real es producir aplicaciones con
nuestro caso práctico, al momento de realizar el conteo de Puntos oportunidad, mínimo costo y alta satisfacción para nuestros
de Función, se identifican componentes funcionales que tienen clientes y nuestros empleados, y en ese camino, los puntos de
una granularidad definida, debido a que seguimos las reglas y función tienen mucho que ofrecer.
definiciones del estándar del IFPUG. Estos componentes lógicos
Aquiles Santana Álvarez es Certified Function Points Specialist por parte del IFPUG y Project Manager Professional por parte del PMI. Ha sido respon-
sable de la estimación de proyectos de software críticos para EDS de México y Latinoamérica. Ha impartido entrenamiento en la técnica de Puntos de
Función y estimaciones a más de 300 personas en 6 países. Actualmente se desempeña como consultor en Project Management e Ingeniería de Software.
Factores Clave
para la Mejora de Procesos
La diferencia para el éxito
Por Rocío García Ocaña
Sin duda alguna, las necesidades y tendencias externas determi- Considerar dichos factores nos permitirá tener una estrategia
nan los cambios en las organizaciones, cambios de toda índole más robusta y con mayores posibilidades de alcanzar los resul-
y tamaño. Desde cambiar un poco la forma de hacer las cosas tados que esperamos. El objetivo de este artículo es explicar en
hasta cambios que implican un programa formal dando pie al qué consisten estos factores y entender su importancia para im-
surgimiento de un programa de mejora cuyos objetivos son el plementar un programa de mejora.
incremento de calidad, disminución de costos, aumento de com-
petitividad, entre otros. La cultura
Al igual que un país, las organizaciones son entes únicos, con
Usualmente, la mejora de procesos se concentra en la definición o una identidad que las diferencia y una serie de valores que las
redefinición de procesos, procedimientos, políticas, mediciones, identifica. A este conjunto de identificadores es a lo que llama-
uso efectivo de herramientas, etcétera. Sin embargo, esto no es mos cultura organizacional. Entenderla es fundamental porque
suficiente para lograr la mejora que buscamos, ya sea en el des- nos ayuda a sensibilizarnos con el ambiente de la organización
empeño o en la calidad. Pensemos que para conseguir resultados y prever un poco su reacción ante la introducción de cambios.
con impacto, es necesario cambiar cosas no sólo en papel o en La importancia de conocer y entender la cultura organizacional
electrónico, sino en hábitos, comportamientos y percepciones, radica en el hecho de que existen elementos imperceptibles a
para conseguir una alineación a los objetivos que perseguimos. simple vista, como hábitos, sentimientos, motivadores, clima
laboral, estilos, etcétera; que pueden convertirse en poderosos
Una de las quejas más frecuentes durante la fase de implemen- obstructores durante una implementación. El plan de mejora
tación de un programa de mejora de procesos, se refiere a la busca incrementar la calidad a través de diseño de procesos,
cooperación limitada o nula de algunos miembros de la organi- pero dichos procesos son ejecutados por personas con una
zación, respecto a seguir los procesos definidos, pero ¿qué hay identidad individual incrustada en una identidad colectiva, por
detrás de ese comportamiento?, ¿y cómo mitigarlo para lograr eso requerimos hacer un alto, y recapacitar antes en el tipo de
que nuestro programa genere verdaderamente los resultados cultura que tenemos. Supongamos por ejemplo, que la ejecu-
que buscamos? ción de los procesos me ayuda en un mediano plazo a hacer
que los integrantes de los equipos de desarrollo trabajen en un
Antes de pensar en introducir mejoras de proceso, lo primero que de- ambiente más controlado, que los trabajos se logren terminar
bemos saber es que, hacerlo implica cambios en la forma de traba- en tiempo y presupuesto, pero ¿qué hay más allá de eso? Pro-
jar, lo cual tiene un impacto directo en esfuerzo y por consiguiente, bablemente parte de la cultura de la empresa, es el valor a los
en tiempos. Es así como caemos en la cuenta que uno de los ries- detalles funcionales del producto que se construye, más aún
gos más grandes es la aparición y permanencia de la resistencia de hablando de software. Tal vez uno de los valores de la empresa
los miembros de la organización, que a la larga, se convierte en un es propiciar la lealtad de los clientes; y la cultura de atención
verdadero dolor de cabeza para una implementación exitosa. ¿Les en los detalles no es sólo cuestión de calidad sino de valores.
suena familiar? Si han implementado y están en la actualidad involu- Todos estos pequeños detalles nos darán la pauta para saber
crados en el mencionado proceso, comprenderán sin lugar a dudas orientar el programa de mejora y hacer que no sólo encajen con
a lo que me refiero. La importancia de considerar otros factores que una estrategia de negocio, sino con la cultura de trabajo de las
contrarresten el efecto de los cambios y se conviertan en aliados personas que forman parte de la organización. Lo que nos dará
para implementar exitosamente nuestro programa, es crítico. Los como resultado: minimizar el shock ocasionado por los cambios,
factores a los que me refiero son: cultura, comunicación, disciplina, facilitar la introducción del cambio, así como lograr un cambio
convencimiento, manejo del cambio, coaching y enfoque. más duradero en la organización.
Rocío García Ocaña labora en Avantare Consultores como Consultora de ingeniería de procesos de software. Su desarrollo profesional la ha llevado a
empresas como Getronics ICT Solutions donde fue Coordinadora de Procesos y Aseguramiento de Calidad del Software, y FORD Motor Company México
donde tuvo a su cargo la definición de procesos de procesos de administración, respaldo y recuperación. Rocío es Licenciada en Sistemas Computacio-
nales Administrativos por el ITESM-CEM, y cuenta además con una Maestría en Administración por la misma institución.
Coaching
El siguiente factor muy íntimamente ligado al manejo del cambio, es el coaching, es
decir, el estar “cerca” de las personas a quienes impactará el cambio. Proporcionar
coaching, significa escuchar y otorgar a las personas que forman parte de la organiza-
ción la oportunidad de expresar las opiniones que soportan sus decisiones; aclarar sus
dudas de manera oportuna y acompañarlos en el proceso de cambio que un programa
de mejora implica. La ausencia del coaching puede provocarnos problemas, desde una
práctica errónea que más tarde puede ser diseminada, una formación inapropiada que
resulta en la generación de resistencia, hasta la pérdida de interés por sentimiento de
ausencia de un guía.
Enfoque
Un elemento más, y no menos importante, es el enfoque, para entender un poco mejor,
imaginemos la nitidez y claridad de la imagen que logramos cuando ajustamos unos
binoculares para ver a cierta distancia. En el contexto de un programa de mejora, el en-
foque se refiere a tener una perspectiva entendible y coherente tanto del mediano como
del largo plazo. Además significa tener claro qué objetivo perseguimos, cuáles son los
pasos definidos y mantenernos avanzando sin perderlo de vista, lo cual nos permitirá
identificar los momentos cuando se requiere hacer un ajuste, que de cualquier modo,
nos permita llegar al objetivo.
La solución parece suficiente. No obstante, nos damos cuenta que estamos en un gran
aprieto: Cantantes de Ópera que cantan como Mariachi… ¡Ah, y bailan!
Hasta ahora no hemos tenido éxito entre clases rígidas y malos diseños, lo que defini-
tivamente nos convierte en presa fácil de un exceso de presupuesto. Es entonces que
uno de los diseñadores sugiere: “intentémoslo con interfaces”.
Esta solución parece correcta. Incluso hasta el trompetista ha deja- de estrategias para cada método con alto potencial de cambio. Para
do de cantar, para dedicarse únicamente a tocar música y bailar. cada una de estas estrategias se construye una interfaz o clase
abstracta que define qué es lo que hacen cada uno de los conjun-
Sin embargo, este diseño tiene un problema muy grave: “reutili- tos de algoritmos, y aplicando el patrón de estrategias obtenemos
zación de código”. Cuando volteamos y vemos que los métodos el resultado en la figura 7.
bailar, tocar música y cantar tienen que ser implementados por
las clases concretas, estamos en aprietos.
Patrón de estrategia
Es en estos momentos, donde el patrón de diseño denominado
“Estrategia” llega a nuestro rescate. Este es uno de los patrones
descritos en el libro “Gang of Four”, que como sabemos, es la
biblia de los patrones de diseño orientado a objetos. De acuerdo
con esto, el patrón estrategia: “Define una familia de algoritmos
encapsulados y los hace intercambiables (…) permite al algorit-
mo cambiar, independientemente del cliente que lo utiliza”
Conclusión
Después de darle muchas vueltas a este problema,
llegamos a una solución que cumple los requerimientos, y
además explota las ventajas de la orientación a objetos.
Figura 6. Solución propuesta por el patrón de estrategia Esta solución es mejor, pues si se desea agregar un nuevo
músico, sólo es necesario heredar de músico y en el con-
Lo que tenemos que hacer entonces es encontrar cuáles son los po- structor, enviar como parámetro sus comportamientos. De
tenciales de cambio, es decir, cuáles clases y/o comportamientos esta forma, nuestro diseño queda abierto para extensión,
tienen una gran probabilidad de ser modificadas y aislar los cambios pero cerrado para modificación y lo mejor de todo, si en un
de las demás clases, y al mismo tiempo, explotar el polimorfismo momento dado, se requiere cambiar el comportamiento de
agregando una clase abstracta o una interfaz para cubrir las diferen- hacer Música, sólo creamos un nuevo comportamiento: Can-
tes estrategias. tar Como Gloria Trevi, y lo asignamos al músico en cuestión,
e incluso lo podemos hacer en tiempo de ejecución, y listo,
Siguiendo este consejo, se detecta que el comportamiento de los mú- ahora tenemos un Mariachi que canta de pelo suelto.
sicos es el que tiende a cambiar, entonces se decide crear un conjunto
Carlos “Fofo” Ordóñez es Ingeniero en Sistemas Computacionales por el ITESO. Actualmente labora como arquitecto de software en Vision Consulting
Occidente, ubicada en el Centro de Software de Guadalajara. Colabora como profesor de asignatura en el ITESO, donde imparte materias de Progra-
mación e Ingeniería de Software. La información en este artículo representa el punto de vista del autor y no necesariamente el de Vision Consulting o
ITESO. fofo@iteso.mx
Luis Daniel Soto es director de Divulgación Tecnológica para América Latina en Microsoft. Entre sus funciones actuales están la de admi-
nistración de la relación con el Gobierno Mexicano para el desarrollo de la industria de software (ProSoft). Es jurado del “Gran Orden del
Honor al Mérito Autoral” en software del INDAUTOR/SEP y fundador de diversas asociaciones de TI. Ganó el primer lugar en el concurso
nacional para software de exportación en 1989. blogs.msdn.com/luisdans
En un inicio, el Web 2.0 era sinónimo del “Web semántico”, con El debate de Web 3.x
contenido altamente definido. Sin embargo, esto ha ido cam- Hay quienes ya se atreven a hablar sobre un Web 3.x. Las espe-
biando, y actualmente la etiqueta de “Web 2.0” puede referirse a culaciones de lo que el futuro depara son ya abundantes, pero
una o más de las siguientes características: hay elementos que parecen ser ineludibles. Entre ellos, destaco
• El web de lectura-escritura. los siguientes:
• Sitios que facilitan la colaboración o creación colectiva. • La transformación del “web en una base de datos” o la “web
• Sitios con una interfaz de usuario visualmente rica, y altamen- del sentido común”. Hoy, las búsquedas en un altísimo por-
te interactiva, a través de tecnologías como Silverlight y Flex, o centaje no conducen al usuario a responder preguntas. Aquí
incluso el web tridimensional (www.web3d.org). algunas normas del “Web semántico” y otras como SPARQL
• El web como plataforma para crear aplicaciones. Con esto me re- (www.w3.org/TR/rdf-sparql-query/) seguramente serán rele-
fiero a servicios web que permiten crear composición de páginas vantes, en conjunto con inteligencia artificial que permita com-
y “mashup”. Algunos de los ejemplos para esto son Yahoo Pipes prender intenciones y agentes en Internet.
(pipes.yahoo.com) , Dapper (dapper.net), Teqlo (www.teqlo.com), • La convergencia de información personal: perfiles de usuario,
y Microsoft Popfly (www.popfly.com), el cual se muestra en la si- historias de navegación realizada, análisis de calendarios y con-
guiente figura. tenido de correo electrónico. Todo esto es explotable para dirigir
y personalizar la publicidad y mercadotecnia en línea.
• La mayor velocidad de acceso a Internet. ¿Qué se podrá hacer
con anchos de banda 10 a 100 veces más veloces que las mejores
conexiones de hoy? Todavía no lo sabemos, pero definitivamente
será mucho más que la composición de videos en tiempo real.
Incluso hay quienes se han atrevido a pronosticar el fin de las
laptops, dado que el 100% de la información personal podrá re-
sidir en Internet.
• La democratización y proliferación del acceso. El porcentaje de la
población mundial que actualmente tiene acceso al Internet es de
tan solo el 17.2% (www.internetworldstats.com/stats.htm). Esto
nos indica que la mayor oportunidad definitivamente está por venir,
así como la definición de mecanismos para alcanzar a más gente.
• Hablando de lo que sucedería hacia el interior de las organiza-
ciones, algo que se espera es el “remix” real entre aplicaciones
y datos de misión crítica. Otro escenario es el de la habilitación
total del auto-servicio, así como el ensamble dinámico y en tiem-
po real de cadenas de suministro.
Las palabras clave, tecnologías y “buzz words” asociados proli- —Luis Daniel Soto
feran, incluyendo RSS, Wiki, SaaS, Ajax, Folksonomies y muchas
otras. El proceso por definir “niveles” dentro de Web 2.0 conti- Referencias adicionales:
nua, y ante ello yo me atrevería a llamar estos diferentes niveles • dsiegel.blogs.com/thoughts/2007/05/defining_web_30.html
como “Web 2.x”. • en.wikipedia.org/wiki/Web_3.0
¡Estoy harto de los procesos y estándares de desarrollo! Ese suele Proceso A. El Más Simple: Requerimientos, el Principio de Todo
ser el grito desesperado de muchos responsables de organizacio- Si actualmente tu proceso consiste en entrevistar a tus usuarios
nes de software que han intentado formalizar sus procesos con re- y con base en dicha información comienzas a programar de inme-
sultados poco eficientes. diato, entonces mi recomendación es que por lo menos agregues
Y no es para menos, pues muchas veces la experiencia de los “gu- casos de uso a tu proceso (diagramas y especificaciones de ca-
rús” que los asesoran en la mejora de sus procesos se reduce a lo sos de uso).
que aprendieron en libros o cursos y no a la realidad de los pro- Básate en estos para planear, para repartir el trabajo, para cotizar,
yectos. No es un secreto que no necesariamente lo que dicen los para desarrollar, así como para diseñar tus pruebas. Verás que este
libros es lo que aplica para todas las organizaciones. simple cambio será un cambio drástico y sumamente beneficioso
El caso de UML entra en esta categoría de estándares incomprendi- en los resultados de tus proyectos.
dos. Y es que intentar usar todo UML, simplemente porque apren-
diste cuáles son los diagramas que lo conforman, no es precisa-
mente el camino que te llevará a obtener los mejores resultados.
Recuerda que UML no es el proceso, sino que es una notación que
puedes utilizar parcial o totalmente en tu proceso.
Selección de Artefactos
La experiencia nos ha demostrado que muchas veces es necesario
seleccionar un mínimo indispensable de artefactos a desarrollar
durante un proyecto. Los clientes quieren calidad, pero también Figura 1. Proceso simplificado al máximo.
necesitan eficiencia. Los recursos son limitados, y sabemos que un
proceso mal utilizado puede traer resultados contraproducentes en Proceso B. El Sencillo: Requerimientos y Diseño.
este sentido. Si estás un poco menos limitado de tiempo (y de motivación) como
El mal uso de UML puede ser una causa para esta frustración por para formalizar un poco más las tareas de tu proyecto entonces
parte de los desarrolladores y un motivo de decepción en el uso aprovecha los beneficios de otro artefacto básico de UML: el
de procesos formales. Así que muchas veces conviene aplicar la diagrama de clases.
filosofía de KISS (“Keep it Simple, Stupid” o “Keep it Short and
Simple”).
Si vas a usar un diagrama de UML asegúrate de obtener un beneficio
en tu proyecto, o mejor no lo uses. Y si tienes una limitante importante
de tiempos y recursos, es mejor que elijas el mínimo indispensable
para poder obtener beneficios de un estándar, pero sin agregarle cos- Figura 2. Proceso sencillo
tos que no puedes absorber por las restricciones del proyecto.
A continuación intentaremos esquematizar diferentes variantes de Si puedes utilizarlo con un enfoque de análisis primero (modelo de
procesos, en cuanto a la selección de artefactos de UML que utili- dominio) y después refinarlo para convertirlo en tu modelo de dise-
zan, desde uno muy simple hasta otro medianamente elaborado. ño, sería ideal. De esta forma obtendrás beneficios al tratar de com-
Imagina que tu forma de desarrollar consiste en entrevistarte con prender los requerimientos y el dominio, así como en las decisiones
el usuario y después programar; actividades elementales que no respecto a cómo construir una aplicación orientada a objetos.
podrían desaparecer. La pregunta que trataré de responder es: Pero, si consideras que no tienes tiempo de usarlo con los dos enfo-
¿qué agrego (de UML) en medio de esas dos actividades? ques mencionados entonces por lo menos úsalo para realizar el di-
Sergio Orozco es director general e instructor senior certificado por la OMG en Milestone Consulting (UML Value Added Training Center), empresa
especializada en capacitación práctica y consultoría en UML, CMMI y orientación a objetos. Milestone Consulting es la primer empresa mexicana miem-
bro de la OMG. info@milestone.com.mx www.milestone.com.mx
Emilio Osorio colabora actualmente como Consultor Asociado para Sun Microsystems México. Ha trabajado en desarrollos basados en Java desde
1996 y actualmente se dedica a ayudar a equipos de desarrollo a aprovechar las ventajas del Software Libre y los métodos ágiles en sus organizaciones.
Ferviente entusiasta de la aplicación social de la tecnología, a ultimas fechas esta involucrado con Organizaciones de la Sociedad Civil. Emilio estará
encantado de recibir sus comentarios y quejas en http://tecnonirvana.org/ y en oemilio@tecnonirvana.org
En los seminarios sobre métodos ágiles que LSD se basa en los siguientes 7 principios: res. Pero si liberan rápido y tienen iteraciones
realizo, típicamente pregunto lo siguiente a la 1. Eliminar el despilfarro. Es decir, evitar todo cortas, entonces sus errores no nos costarán
audiencia: “Levante la mano por favor, aque- lo que no agregue valor al proyecto. ¿Qué es caro, y sobre todo se ampliará el aprendizaje.
lla persona a la cual un diagrama de Gantt le aquello que no agrega valor al proyecto? Sen- Si no pueden resolverlos por ellos mismos, en-
haya sido la diferencia para sacar adelante cillo, todo lo que el cliente no pidió, pero en lo tonces debemos evaluar si tenemos el equipo
un proyecto, o que para darle mantenimien- que invertimos tiempo. En esta categoría entra correcto. El trabajo en equipo ES el desarrollo
to al software de alguien más haya utilizado funcionalidad adicional a la que pidió el usua- de software.
documentación separada al mismo código, rio, o especificación de requerimientos dema- 6. Construir integridad intrínseca: En Japón,
o tal vez aquel líder de proyecto que le haya siado detallada en etapas tempranas del ciclo las mismas máquinas que producen las piezas
funcionado asignar y controlar el avance de de vida. Aprendamos a ver éstas cosas como para manufactura, prueban las piezas que pro-
microtareas por cada miembro del equipo, un despilfarro. ducen, las miden y desechan las que no cum-
para que así se comprometan más con una 2. Ampliar el aprendizaje. Debemos aceptar plen con los requisitos mínimos. No hay una
fecha de entrega. que nunca se sabrá exactamente lo que se inspección o control de calidad separada de la
tiene que construir al principio del proyecto. producción. Nuestros equipos nunca podrán
Sorprendentemente (o no tanto), hasta la fe- Así que cualquier tiempo que ocupemos tra- alcanzar madurez, en un esquema donde el
cha nadie ha levantado la mano. Si todas es- tando de hacer que el cliente nos “firme” el responsable de la calidad sea otro grupo se-
tas prácticas que son la quinta esencia de la requerimiento, rompe con el principio anterior. parado del de desarrollo.
administración de proyectos, y para las cuáles Ampliar el aprendizaje significa aceptar que el 7. Pensar en el todo. “O todos coludos, o todos
invertimos miles de pesos en herramientas y desarrollo es un proceso de aprendizaje, por rabones” decían nuestros abuelos. Al parecer,
cursos no funcionan, entonces ¿por qué lo se- lo tanto tenemos que repetirlo muchas veces antes se entendía mucho cómo hacer que una
guimos haciendo? para aprender. Solución: Muchas iteraciones organización o una familia funcionara como un
cortas, tan cortas como haga sentido. equipo. Abandonemos el modelo de programa-
Al parecer, pensamos que cuando algo no sale 3. Retrasar los compromisos. Cada vez que dor estrella, lo único que producimos son divas
bien lo que necesitamos es una capa más de aceptamos trabajar en un proyecto que tiene y gangsters. En un equipo todos ganan y todos
“control”, un proceso más definido y detallado fecha de entrega pero no tiene requerimientos pierden, así que olvidémonos de las mediciones
que “obligue” a los programadores rebeldes, fijos es como si decidiéramos casarnos con de desempeño individuales. Lo único que esto
negligentes o apáticos, a tener “conformidad” alguien que conocimos hoy mismo. Si no lo provoca es que los que salgan bien se busquen
con el proceso mágico que resolverá todos hacemos en la vida real, entonces ¿por qué un trabajo donde les paguen más, y los que no
nuestros problemas. Anhelamos recetas se- hacerlo en nuestro trabajo? Las iteraciones salgan tan bien, harán lo mismo. Creemos equi-
cretas, pero en realidad lo que necesitamos cortas ayudan a comprometernos con tan solo pos que compartan logros y fracasos y reducire-
es tan solo un conjunto sólido de principios y lo que podemos estimar bien. mos la rotación de personal.
sentido común. 4. Liberar rápido. Todos hacemos desarrollo
por iteraciones, ¿verdad? Bueno, tener itera- ¿Por que hablo con tanta seguridad? Sencillo,
¿Como liberar a nuestros proyectos de balas de ciones no es lo mismo que liberar rápido. Libe- yo mismo he pasado de creer en cosas que
plata que no funcionan? Afortunados somos rar rápido significa que si te piden un sistema no funcionan y sufrir en mi trabajo, a experi-
de tener Lean Software Development (LSD) a que facture, liberes “a producción” la funcio- mentar los frutos de LSD en mi propia prácti-
nuestro alcance; es libre, gratis y simplemente nalidad para facturar lo antes posible, aunque ca. Finalmente, les recomiendo que busquen
funciona. LSD fue desarrollado por Mary y Tom no se haya terminado el resto del sistema. Em- en Internet a Mary Poppiendick y agradecerán
Poppendieck a partir de experiencias en 3M y presas como Google o Yahoo entienden esto y como yo, todo el material gratuito que tiene a
Toyota, y se basa en aplicar al desarrollo de lo aplican en sus desarrollos. Libera funcionali- nuestra disposición para ayudarnos a empe-
software los principios de “lean” que han he- dades, no sistemas. zar. Regalar sus libros a nuestros directores
cho tan exitosas a estas empresas. Se le con- 5. Facultar al equipo. ¿Qué es lo mejor que de sistemas probablemente serán los pesos
sidera parte de los métodos ágiles, pero desde puede hacer un líder de proyecto? No estorbar. mejor invertidos en mucho tiempo en nues-
mi punto de vista está por encima de ellos, ya Tenemos que confiar en que las personas pue- tras carreras.
que LSD nos obliga a pensar, cuestionarnos y den ponerse de acuerdo, trabajar en equipo y
encontrar nuestras propias respuestas. en esencia autodirigirse. Si, cometerán erro- —Emilio Osorio
Los Estándares de TI
¿Qué ofrecen a la Industria Mexicana de Software?
Por Juan Manuel Hernández Jiménez
Ing. Juan Manuel Hernández Jiménez actualmente es el Gerente de la División de Verificación de Software de NYCE. Sus responsabilidades incluyen obte-
ner y mantener la acreditación de NYCE como organismo de verificación de procesos y de certificación de producto de software con base en los estándares
vigentes actuales, administrar las unidades de verificación y certificación, así como participar activamente en los comités técnicos de normalización en los
procesos de desarrollo de nuevos estándares mexicanos de TI.
Administración de la Capacidad
Planeando la Infraestructura
Por Ariel García
Hoy en día, todas las áreas responsables de la administración de querimientos de servicio por parte del negocio.
TI tienen el reto de incrementar su productividad y eficiencia, a la • Administración de la capacidad de servicio (ACS): su enfoque
par de reducir sus costos de operación e inversión. El proceso de es táctico, y se ocupa de la administración de la operación real de
Administración de la Capacidad es uno de varios procesos de ITIL, los servicios de TI acorde a los niveles de servicios acordados con
que define estándares para lograr la eficiencia y optimización de los usuarios.
costos en la entrega de servicios de TI. • Administración de la capacidad de los recursos (ACR): su enfoque
es operacional y consiste en la administración de los componentes
Un poco de teoría individuales de la infraestructura de TI.
Por definición, el proceso de la administración de la capacidad
tiene como objetivo asegurar el óptimo uso de los recursos de TI, Las salidas del proceso de administración de la capacidad son: un
de tal forma que se cumplan los niveles de rendimiento acordados plan de capacidad, líneas base, perfiles, reportes de capacidad, um-
con los usuarios a un costo justificado. Además, debe proporcio- brales y alarmas tanto para servicios como componentes. También
nar información de los recursos actuales y planeados, así como la se realizan recomendaciones en acuerdos de servicios, cambios pro-
utilización de los componentes. La administración de la capacidad activos, mejoras a servicios y componentes, y reportes de auditoria,
permite a la organización decidir acerca de cuáles componentes entre otros. El plan de capacidad es posiblemente el más importante
debe actualizar, cuándo hacerlo y el costo involucrado. de estos productos de salida. Dentro de su contenido destaca el re-
sumen de los servicios, capacidades y costos de la infraestructura.
Dentro del proceso de la administración de la capacidad podemos El plan debe indicar claramente cualquier suposición efectuada, así
encontrar las siguientes actividades: como cualquier recomendación cuantificada en términos de recur-
• Administración de la demanda: se enfoca en el control y la influen- sos requeridos, costos, beneficios e impacto.
cia de la demanda de servicios de TI.
• Dimensionamiento de la solución: generalmente se inicia con un Aterrizándolo un poco
nuevo requerimiento de negocio, o un cambio considerable en la in- Ya echamos un vistazo teórico a la estructura del proceso de adminis-
fraestructura actual. Dura hasta que el nuevo requerimiento o cam- tración de capacidad. Ahora vamos a aterrizarlo en ejemplo sencillo de
bio entra en operación. infraestructura de servidores. Como sabemos, es muy común para el
• Planeación de la capacidad: documenta los niveles reales de uti- área de TI administrar el desempeño de sus servicios de forma reaccio-
lización de los componentes de la infraestructura y el desempeño naria, analizando y resolviendo los problemas conforme los usuarios
de los servicios de TI. los reportan. A través de la ejecución del proceso de administración de
• Almacenamiento de la base de datos de capacidad: documenta la la capacidad, lo que nosotros buscamos es llegar al escenario donde
información de capacidad del negocio. los administradores del sistema sean capaces de evitar cuellos de
• Modelado: se realiza el modelado de la infraestructura de TI para botella en el desempeño de los servicios y, utilizando las herramientas
predecir su comportamiento bajo cambios en su volumen de trabajo. adecuadas, predecir cómo los servidores deberán configurarse para
• Actividades iterativas: análisis, ajuste, implementación y moni- soportar cargas adicionales de trabajo en el futuro.
toreo. El monitoreo se debe establecer en todos los componentes Los pasos que llevaremos a cabo para esto son los siguientes:
y para cada uno de los servicios. Los datos deben ser analizados
de tal forma que puedan compararse contra umbrales preestab- 1. Determinar los niveles de servicio
lecidos. El resultado de los análisis generará reportes y ajustes a El primer paso en el proceso es categorizar el trabajo de los siste-
ser implementados. Estos cambios después serán monitoreados. mas y cuantificar las expectativas de los usuarios en cómo se debe
realizar este trabajo. Para poder realizarlo es necesario entender el
Para ejecutar tales actividades, el proceso de la administración de la concepto de cargas de trabajo. Con este concepto se busca visualizar
capacidad se subdivide en tres subprocesos: el desempeño de un sistema en términos de negocio, en lugar de
términos técnicos. Antes de definir los niveles de servicio, es necesa-
• Administración de la capacidad del negocio (ACN): tiene un en- rio determinar las métricas para medir el trabajo a soportar. Una vez
foque estratégico y consiste en asegurar la consideración, plane- definidas, se establecen los requerimientos de niveles de servicio,
ación e implementación en un tiempo razonable de los futuros re- en otras palabras: el desempeño prometido por el área de TI.
SaWestern Digital
Caviar SE16 750GB
Pensado especialmente para computadoras de escritorio que utilizan aplicaciones con
muchos datos, computación de alto desempeño y sistemas multimedia, el Caviar es una uni-
dad de disco duro interno de gran capacidad que ofrece un índice de transferencia de 3GB
por segundo, cache de 16MB y cola de instrucciones nativas. Incluye la tecnología propietar-
ia de Western Digital, SecurePak que estaciona las cabezas grabadoras fuera de la superficie
del disco mientras gira hacia arriba y hacia abajo cuando la unidad no está operando, de tal
manera que se reduce el desgaste. Por otra parte, con StableTrac se minimiza la vibración
inducida por el sistema y estabiliza el plato para un mejor rastreo durante operaciones de
lectura y escritura. Además ahorra en consumo de energía.
Samsung
B-jack i321n
Black Jack es un smartphone lanzado recientemente bajo el concepto de “oficina móvil”, que cuenta con Win-
dows Mobile 5.0 para ofrecer al usuario potentes aplicaciones de negocios, así como acceso a diversas cuen-
tas de correo electrónico a través de Outlook Mobile. Soporta una extensa variedad de formatos multimedia,
funciones de entretenimiento y comunicación instantánea permitiendo reproducir y almacenar fotografías,
música y videos gracias al Windows Media Player. Entre sus características destacan su diseño ultradelagado;
cámara fotográfica de 1.3 megapixeles, puerto infrarrojo, ranura para memoria, visores de archivos adjuntos
de e-mail (.doc, .xls, .ppt, .pdf .wmf ); agenda, alarma, altavoz integrado, aplicaciones Java; conexión inalám-
brica Bluetooth con gran capacidad de transmisión y recepción de datos que permite conectarse con otros dis-
positivos tales como PDA o computadoras portátiles que se encuentren a una distancia máxima de 10 metros;
y memoria interna de 64MB.
Kilo
Taza personalizada
Definitivamente este no es un dispositivo de alta tecnología, pero no por eso es menos útil. Esta
taza está diseñada para que nadie en la oficina te la robe, ya que queda personalizada con tu
nombre, apodo o gráfico de tu preferencia. Solo necesitas pintar con un plumón indeleble sobre
el recuadro blanco. Esta taza es invención de uno de los diseñadores de SG, y puedes adquirir
la tuya en www.kilo.com.mx
Viewsonic
PJ258D
Incorporando la innovadora tecnología ViewDock hacia otra línea de productos,
nace el primer proyector DLP multifuncional de alta definición con base para
iPod: el PJ258D ofrece nuevas opciones de entretenimiento gracias a la opción
de portabilidad de exhibición para llevar contenidos visuales sin necesidad
de una computadora. Pesa alrededor de 2 kilos; su diseño es versátil y fácil de
usar. La estación base conecta al iPod directamente al proyector para disfrutar
de su contenido, mientras recarga la batería. Este equipo además, soporta otros
medios digitales a través de múltiples opciones de conectividad como video VGA,
haciéndolo compatible con PCs, reproductores de DVD y consolas de videojuegos.
Tiene resolución XGA de 1024X768, 2 mil lúmenes y una proporción de contraste 2000:1,
para una reproducción clara de fotografías y video sin importar el ambiente.
IBM Greenpeace
Power6 Green Electronics Guide
IBM lanzó el microprocesa- Greenpeace genera un reporte trimestral donde califica a
dor de doble core POWER los principales proveedores de computadoras y electróni-
6, que con sus 4.7 GHz du- cos en base a sus políticas y prácticas para eliminar quí-
plica la velocidad de su pre- micos dañinos, así como hacerse responsable de sus pro-
decesor, el POWER 5, pero ductos una vez que termina su vida útil. En la edición más
utilizando prácticamente la reciente de este ranking (junio 2007), Nokia fue la compa-
misma cantidad de energía. ñía considerada “más verde”, mientras que Sony tuvo el
deshonroso último lugar.
La nueva línea de servido-
res IBM System p 570 hace
uso de l POWER 6, y hasta
el momento ha logrado con-
seguir 25 diferentes records
de evaluación de desempe-
ño, además de ser el primer sistema que obtiene el primer
lugar en las categorías de: capacidad de procesamiento de
transacciones, tasa de transferencia de cálculo con ente-
ros, tasa de transferencia de cálculos con punto flotante, y
rendimiento de Java en operaciones por segundo
Logitech
X-530
Es común que las bocinas integradas totales, un moderno subwoofer que
de una computadora no brinden la regula automáticamente los sonidos
calidad de sonido que el usuario graves sin distorsión al producir
desea, por tal razón Logitech más movimiento de aire y lograr
ofrece el sistema X-530 que mayor profundidad. Cinco bocinas
se puede conectar, además, a satélite de montaje giratorio para
cualquier reproductor de CD, pared con tecnología FDD2 que
DVD, MP3; PlayStation o Xbox. elimina irregularidades, brindan-
Entre sus características des- do nitidez, uniformidad y balance
tacan sus 70 watts de potencia perfecto de audio.
En su búsqueda por mejorar la calidad de los Gestión y Aprovisionamiento de dimiento y la disponibilidad de los actuales
servicios que proveen al negocio, las organi- Capacidad servicios de negocio.
zaciones de TI están cambiando su enfoque La gestión de la capacidad se encarga de ase-
para poder reflejar un mayor valor al nego- gurar que las aplicaciones existentes cumplan Gestión del Impacto en Servicios
cio. Una de las estrategias más recurridas con los requerimientos de los usuarios en Refleja el impacto en los servicios de nego-
para lograr esto, es la de Business Service términos de tiempos de respuesta y volumen cio provocado por las condiciones o cambios
Management (BSM). de transacciones soportadas. El aprovisiona- de estatus en la infraestructura de TI. Se
miento de capacidad se preocupa por empa- enfoca en conectar el estatus de un servicio
Forrester Research define BSM como una tar el uso con las necesidades de recursos de de negocio con el estatus de los recursos de
estrategia para “alinear la infraestructura TI de forma que no exista desperdicio. TI relacionados. Esto permite mostrar clara-
de TI, con servicios de TI alineados al ne- mente el impacto al negocio que tiene algún
gocio”. BSM está basado en el concepto Gestión de la Configuración y evento de TI.
de una vista compartida a través de todas el Cambio
las áreas de TI que permita saber cómo los Los cambios no controlados o no probados Gestión de los Niveles de Servicio
recursos de TI soportan directamente al adecuadamente son una de las principales Un aspecto fundamental de la operación del
negocio. Existen diversos proveedores de causas de fallas y “caídas” en sistemas de pro- negocio es la capacidad de establecer ob-
software y servicios BSM, y ésta es un área ducción. Una buena gestión del cambio y con- jetivos de nivel de servicio y cumplir dichos
que está mostrando mucho crecimiento en figuración contribuye a reducir los costos de acuerdos. Desde la perspectiva del negocio,
los últimos meses, ya que a fin de cuentas soporte significativamente, y disminuye la fre- los objetivos de nivel de servicio son, como
está fuertemente relacionada con prácticas cuencia de fallas en sistemas de producción. su nombre lo dice, una medida de qué tantas
como ITIL y COBIT. operaciones de negocio se pueden realizar en
Gestión de la Identidad determinado tiempo.
Existe una gran diversidad de proveedores El principal valor de la gestión de identidad
de software y servicios para BSM, y cada uno es asegurar el uso autorizado y protegido Referencias
sugiere una estrategia o “roadmap” para de los activos y procesos de negocio. Esta • Tim Grieser. “Implementing Business Ser-
implementarlo. BMC Software sugiere una seguridad se basa en la capacidad de saber vice Management: BMC Software’s Routes to
implementación de BSM basada en 8 disci- quién es un usuario en particular, a que ac- Value Approach”. IDC, Enero 2005.
plinas denominadas “Rutas de Valor”. Eva- tivos de TI tiene acceso, y qué nivel de uso • Peter O’Neill. “BSM is Coming of Age: Time
luando la madurez que tiene la organización puede tener. to Define What it is”. Forrester Research, Fe-
en cada una de estas 8 disciplinas, se puede brero 2006.
construir un mapa que ayude a reforzar las Gestión de Incidentes y
necesidades de TI y del negocio. A continua- Problemas
ción explico estas rutas de valor y los proble- Los incidentes de TI tales como fallas en sis- Conclusión
mas con los que lidia cada una. temas de misión crítica tienen un fuerte im- Implementando BSM, las organiza-
pacto en el negocio. Una gestión efectiva de ciones de TI pueden entender las
Gestión y Descubrimiento los incidentes maneja a estos de forma pre- relaciones críticas entre el negocio
de Activos ventiva, más que correctiva, implementando y los servicios de TI, así como detec-
Los activos de TI representan una fuerte in- mecanismos para detectar y resolver anor- tar los cambios y darle prioridad a la
versión, así como costos de operación recu- malidades, antes de que se conviertan en un administración de los componentes
rrentes derivados de soporte y renovación problema que impacte el negocio. de la infraestructura de TI basados
de licencias. Uno de los requerimientos prin- en las métricas y requerimientos
cipales de la alineación de TI con el negocio Gestión de Infraestructura y del negocio. Entender estas relacio-
consiste en el rastreo y gestión de los activos Aplicaciones nes, y darle la prioridad adecuada a
de TI para lograr eficiencias en costos y de- Se preocupa por administrar y controlar distintas situaciones, puede ser de
mostrar que estén generando un retorno de todas las aplicaciones y componentes de gran ayuda al negocio para operar
inversión. La gestión de activos permite eva- infraestructura de la organización desde de forma más efectiva, reduciendo
luar y reasignar recursos de TI de forma efi- una perspectiva de servicios de negocio. costos e incrementando la satisfac-
ciente en base a cambios en las necesidades De esta forma, asegura que los recursos ción del cliente.
del negocio. estén enfocados en la optimización del ren-
Ricardo Rodríguez Bernal es Arquitecto de Soluciones de Business Service Management en BMC Software México
Avantare 13 www.avantare.com
CIAPEM 9 www.ciapem.veracruz.gob.mx
e-Quallity 39 www.e-quallity.net
Gartner 47 www.gartner.com
IDC 49 www.idc-eventos.com
Innevo 35 www.innevo.com
Intersoftware F3 www.intersoftware.com.mx
Itera 41 www.itera.com.mx
Milestone Consulting F4 www.milestone.com.mx
NYCE 31 www.nyce.com.mx
SafeNet 11 www.safenet-inc.com
SG’07 F2-1 www.sg.com.mx/sg07
TENEMOS UN ESPACIO
RESERVADO PARA TI
Si deseas anunciarte contáctanos
en el (55) 5239 5502 o en
ventas@softwareguru.com.mx
01
Addison Wesley, 2006 quien ha trabajado directa o in-
En un mundo donde la mayoría de las discusio- directamente con los conceptos
nes sobre calidad de software están enfocadas en de este libro desde 1985, escri-
administración y otros temas de alto nivel, Diomidis Spinellis biendo y manteniendo mas de
nos invita a analizar este tema partiendo de una perspectiva 250,000 líneas de código para
diferente, calidad del código. En lugar de explicar cómo resolver numerosos proyectos comercia-
proyectos complejos, este libro describe cómo juzgar la calidad les y de software libre.
de lo que estás viendo: código. Code Quality es la continuación
al libro previo escrito por Spine-
Basado en el estándar de calidad ISO 9126, Spinellis descompo- llis titulado “Code Reader”, que
ne su propuesta en las categorías: confiabilidad, seguridad, des- está enfocado en la importancia
empeño de tiempo, desempeño de espacio, portabilidad, y man- que tiene el saber leer código,
tenimiento. Cada una obtiene un capítulo, pero lo más peculiar para aprender a programar con
de este libro, es que cada capítulo muestra docenas de ejemplos calidad.
basados en código fuente de conocidos proyectos de software
libre, tal como Perl, ACE, y NetBSD, donde cada ejemplo confirma Code Quality debería ser una
su punto de una manera clara e irrefutable. lectura requerida para todos los cursos de programación, y de-
bería ser considerado una biblia no solo para los programado-
El libro está saturado de experiencia y observación detallada. res, sino para todos los involucrados en análisis, mantenimien-
Diomidis es un profesor asociado en la Universidad de Atenas, to y control de cambios del software.
02
Addison Wesley Professional, 2006 la refactorización de datos en el
Refactorizar una base de datos consiste en realizar proceso de desarrollo y mante-
pequeños cambios al esquema de una base de datos nimiento de software. Adicional-
existente (y posiblemente en producción) para mejorar su diseño, mente, también dedica atención
pero manteniendo su semántica. El proceso de refactorización se a analizar aspectos culturales,
enfoca en mejorar de forma evolutiva un esquema de datos de tal que de acuerdo a los autores se-
forma que pueda soportar con mayor facilidad nuevas necesidades rán los más difíciles de superar.
de los clientes, incorporar ajustes realizados a las aplicaciones, y co-
rregir problemas de diseño existentes en bases de datos legadas. La refactorización es un concepto
crucial en la práctica moderna de
Este libro enseña diferentes técnicas para poder realizar cambios a desarrollo exitoso, y las bases de
las base de datos de forma ágil. Refactoring Databases está lleno de datos particularmente necesitan
consejos prácticos sobre cómo mejorar el diseño de la base de da- de “agilidad” y “administración
tos, desde que se está creando, hasta cómo manejar las transiciones evolutiva”, fundamentos de la
y migraciones. El contenido revela la experiencia de los autores en refactorización. Tanto gerentes
el tema de desarrollo ágil, demostrando la premisa fundamental de como administradores de bases
este libro: “los datos y las bases de datos deben evolucionar en la de datos necesitan familiarizarse
misma manera que el código evoluciona - de manera incremental”. con este concepto, y aquí es donde Ambler siempre ha sobresalido:
en su habilidad para comunicar abstracciones arquitectónicas que
Refactoring Databases no solo se enfoca en aspectos técnicos o sean entendidas tanto por los tomadores de decisiones, como por
tecnológicos, sino que también aborda el tema de cómo incorporar los programadores.