Está en la página 1de 10

CASO DE ESTUDIO ARCH&SOFT

Solución tecnológica: enfrentándose a las limitantes


de un cliente.
Durante el primer semestre del año 2011, Rubén Feldman, gerente de
desarrollo tecnológico de la empresa Arch&Soft y su principal
colaborador Carlos Amador, enfrentaban el reto de dar respuesta a los
requerimientos de uno de sus clientes más importantes que había
solicitado el desarrollo de sitios o “Portales WEB Dinámicos”, a realizarse
en un tiempo máximo de tres meses. Las especificaciones establecidas
por el cliente demandaban la inclusión de tecnología vanguardista,
novedosa e innovadora pero al mismo tiempo, de fácil adopción y bajo
costo. Rubén y Carlos debían dar respuesta a este requerimiento, sin
embargo, sabían que la tecnología con la que contaba el cliente era
obsoleta y la técnica para su uso no era homogénea. La propuesta debería
garantizar el desarrollo de un producto de software de alta calidad,
optimizando el tiempo de desarrollo y su costo. Además, el nivel de
cumplimiento para las características de mantenibilidad, portabilidad,
usabilidad y seguridad debería ser mantenido o preferentemente
mejorado, respecto a las soluciones que Arch&Soft había ofrecido
anteriormente. Ante este panorama, Rubén y Carlos debían encontrar una
solución que diera respuesta a estos requerimientos, ya que de no
hacerlo, se podría perder una cuenta que representaba cerca de
$20,000,000 de pesos anuales.
1. Antecedentes
Durante el primer semestre de 2011, uno de los clientes más importantes
de la empresa Arch&Soft solicitó el desarrollo de varios sitios o “Portales
Web dinámicos” en un tiempo reducido y con especificaciones
complejas, pero comunes a todos ellos. Tales especificaciones
demandaban la inclusión de tecnología vanguardista, novedosa e
innovadora pero al mismo tiempo, de fácil adopción y bajo costo. Rubén
Feldman, gerente de desarrollo tecnológico, y Carlos Amador,
subgerente de la misma área, debían dar respuesta al requerimiento, sin
embargo, sabían que se contaba con tecnología obsoleta y la técnica para
su uso no era homogénea. La propuesta debía redundar en una mejora
tangible y mesurable en términos de calidad, rapidez de desarrollo y su
consecuente impacto en el costo del desarrollo del producto de software.
Aunado a lo anterior, el nivel de cumplimiento para las características de
mantenibilidad, portabilidad, usabilidad y seguridad debía ser
conservado, y preferentemente mejorado, respecto al que Arch&Soft
había estado ofreciendo anteriormente. Ante este panorama, Rubén y
Carlos debían encontrar una solución que die- ra respuesta a estos
requerimientos, ya que de no hacerlo, se podría perder la cuenta que
representaba cerca de 20 millones de pesos anuales.

2. La institución
Arch&Soft era una institución mexicana de innovación y desarrollo
tecnológico, que contribuía a la competitividad de instituciones públicas
y de las pequeñas y medianas empresas (PYMES), a través del uso
estratégico de las tecnologías de información y comunicaciones (TIC).
Arch&Soft ofrecía servicios de: consultoría; desarrollo de productos y
soluciones tecnológicas para el sector público y privado; formación de
capital humano en el uso estratégico de las TIC e investigación aplicada
en temas relacionados con el desarrollo de Internet, nuevas tecnologías,
gobierno electrónico y sociedad de la información.
Los especialistas con los que contaba Arch&Soft se desempeñaban en
una variedad de disciplinas como:
-  Seguridad en informática (perimetral y software).
-  Infraestructura de redes y telecomunicaciones.
-  Desarrollo de software a la medida.
-  Consultoría en procesos de negocio.
-  Investigadores y académicos en tecnologías de la
información.
Los tipos de proyectos abarcaban una variedad de sectores entre los
cuales se encontraban:
-  Sector Financiero.
-  Sector Salud.
-  Sector Gubernamental.
-  Sector Académico.
Las plataformas de desarrollo soportadas por Arch&Soft eran:
-  Plataforma J2EE.
-  Plataforma .NET.
-  Plataforma mobile (Android, IOS, WinPhone y Blackberry).
3. Perfil de Rubén Feldman
Rubén Feldman contaba con más de 10 años de experiencia en el área de
diseño, evaluación, síntesis y realización de arquitecturas de software.
Había participado en el proceso de desarrollos de sistemas con RUP1,
MSF2, ICONIX3 y las principales metodologías ágiles; Scrum4 y Extreme
Programming5.
Rubén se desarrolló como consultor con UML6, creó varios Framework
para distintos ramos de la industria, poseía conocimiento en las
tecnologías de .NET y J2EE. También tenía experiencia en el análisis y
diseño orientado a objetos con UML.
Desde el 2001, Rubén desempeñó roles que involucraban el diseño,
análisis, evaluación y construcción de sistemas de software. Ayudó
mediante su conocimiento sobre estándares de calidad, a definir nuevos
procesos y metodologías para la empresa. Sus conocimientos permitieron
colaborar en la definición de las arquitecturas de los proyectos de
Arch&Soft. Sus colegas opinaban que su código funcionaba, era muy
bueno y fácil de mantener y que poseía un profundo conocimiento sobre
los atributos de calidad que un sistema de software debía cumplir;
permitiéndole crear soluciones al contexto del proyecto.
En el año 2005 diseñó e implementó el sistema de seguridad nacional
desarrollado en J2EE, mismo que se encuentra operando hasta la fecha
con las mejores prácticas de diseño en seguridad de sistemas de
software.
En el año 2007 dirigió varios sistemas que utilizan tecnologías no
homogéneas, llevando a cabo la solución de interoperabilidad y
operación de los mismos. Definió las políticas y estándares de seguridad
con las que se construyó el sistema.
Durante el año 2009, Rubén impartió diversos cursos, a nivel nacional e
internacional, sobre el diseño, análisis, síntesis y construcción de
sistemas de software de alta criticidad. Su papel como instructor y
consultor de sistemas ha sido apreciado por diversos clientes.
Hasta el año 2012, se desempeñó como arquitecto jefe en el
departamento de arquitectura de soluciones de Arch&Soft.

4. Perfil de Carlos Amador


Carlos contaba con más de cuatro años de experiencia en el diseño, y
evaluación de sistemas de software. Había participado en desarrollos de
sistemas como RUP y Extreme Programming. Se había desarrollado
como programador en J2EE y .NET. y se enfocaba a crear soluciones
técnicas y poseía suficiente conocimiento en UML.
Desde el 2006, Carlos desempeñó roles que involucraban el diseño y
construcción de sistemas de software. Aprovechando sus conocimientos
tecnológicos, Carlos ayudó a definir el diseño detallado en plata- formas
J2EE y .NET. Sus conocimientos le permitieron colaborar en la definición
de las arquitecturas de los proyectos de Archi&Soft. Sus compañeros
opinaban que su código funcionaba, era bueno y fácil de mantener y que
poseía conocimientos sobre los principales atributos de calidad que un
sistema de software debía cumplir y cómo los debía cumplir.
Durante el año 2009, impartió cursos de programación en java a nivel
básico, intermedio y avanzado. Sus conocimientos tecnológicos le
ayudaron a capacitar al personal de desarrollo.
Hacia el año 2012, se preparó como líder técnico en el área de desarrollo
con tecnología java.
5. Descripción de la problemática
La problemática inicial del cliente de Arch&Soft incluía diversos
elementos a considerar, anunciando de manera anticipada la solicitud del
desarrollo de más de diez sistemas que en su conjunto deberían ser
desarrollados con la misma tecnología, facilitando su mantenibilidad y
vigencia tecnológica por al menos cinco años más. Aunado a lo anterior,
estos sistemas tendrían que ser desarrollados en su totalidad, en un
tiempo no mayor a ocho meses.
Una de las mayores expectativas del cliente de Arch&Soft era poder dar
(de manera autónoma y personal) mantenimiento a cada uno de los
nuevos sistemas que, adicionalmente, estarían desplegados en sus propias
instalaciones.
El cliente de Arch&Soft argumentaba que todos los sistemas tenían una
base en común, dado que todos ellos (además de estar desarrollados con
la misma tecnología) poseían interfaces idénticas de registro, in- greso y
administración de los datos de los usuarios de cada sistema.
El personal del cliente de Arch&Soft había trabajado durante más de
ocho años con las tecnologías que, en su tiempo, eran de vanguardia, sin
embargo, al paso de los años, no se realizó ningún tipo de inversión en la
modernización de las mismas. Tampoco se promovieron programas
internos de capacitación ni se concedió tiempo para la auto capacitación.
De lo expuesto anteriormente, el personal del cliente desarrolló una
dependencia a las tecnologías que en un inicio adoptaron y expresaron
que no tenían el deseo de adoptar nuevas, ya que consideraban que esto
sería una pérdida de tiempo.
Por otro lado, al igual que en el aspecto tecnológico, los temas
relacionados con la infraestructura y las telecomunicaciones habían sido
poco atendidos en los últimos años, por lo que el equipo que se utilizaba
carecía de capacidades físicas que impedían la instalación de software
demandante de recursos como memoria, procesador y almacenamiento.
Una característica adicional que fue solicitada por el cliente de
Arch&Soft era que, con excepción del software para bases de datos, todo
el restante debía ser gratuito y de código abierto. Lo anterior también
incluía el sistema operativo, los servidores de aplicaciones y el servidor
de contenido estático.
Finalmente, el cliente de Arch&Soft comentó que, aunque la
infraestructura sería mejorada, ello no ocurriría en el corto plazo y que
por ello, los desarrollos deberían tener la capacidad de funcionar
correctamente con independencia de la plataforma en la cual fueran
desplegados. De antemano no se sabía cómo podría evolucionar la
plataforma y la gama de posibilidades cubría todo el espectro de
plataformas, es decir, Windows, LINUX, Solaris de 32 o 64 bits, etcétera.

6. Resumen de retos a resolver


Con base en el conjunto de características requeridas por el cliente de
Arch&Soft, Rubén y Carlos tenían el reto de identificar un conjunto de
problemáticas a resolver con la finalidad de atender tales necesidades. En
resumen, los retos a enfrentar eran los siguientes:
1)  El estado técnico-tecnológico que el cliente poseía no estaba
actualizado y muchas de sus tecnologías habían caído en desuso.
2)  Los recursos humanos que el cliente tenía contratados, conocían
únicamente las tecnologías legadas que habían estado trabajando
los últimos diez años y para la adopción de nuevas tecnologías
requerían no sólo de una transferencia de conocimientos sino que
también se necesitaba tiempo para madurar tales conocimientos.
3) La infraestructura del cliente (servidores físicos y de software)
soportaba versiones antiguas que poseían de manera inherente muchos
puntos vulnerables, haciéndolos presa fácil de ataques informáticos e
impidiendo la instalación de software moderno.
Rubén en posición reflexiva, le señaló a Carlos: “ante este panorama tan
complicado, me pregunto ¿cómo podremos diseñar una solución
adecuada para nuestro cliente, cumpliendo con sus expectativas para los
portales Web dinámicos, pero, ajustándonos a las limitantes que hemos
identificado?”

Glosario 1. RUP
Rational Unified Process en inglés, habitualmente resumido como RUP
es un proceso de desarrollo de software creado por la empresa Rational
Software, actualmente propiedad de IBM. Junto con el Lenguaje
Unificado de Modelado UML, constituye la metodología estándar más
utilizada para el análisis, diseño, implementa- ción y documentación de
sistemas orientados a objetos.
2. MSF
Microsoft Solutions Framework (MSF) es un conjunto de principios,
modelos, disciplinas, conceptos y lineamientos para el desarrollo de
tecnologías de la información a partir de soluciones de Microsoft. MSF no
se limita sólo al desarrollo de aplicaciones, también es aplicable a otros
proyectos de TI como proyectos de implementación de redes o
infraestructura. MSF no obliga al desarrollador a utilizar una determinada
me- todología (Waterfall , Agile ), pero les permite decidir qué método
utilizar.
3. ICONIX
Iconix es una metodología de desarrollo de software que es anterior al
Rational Unified Process (RUP), Programación Extrema (XP) y el
desarrollo ágil de software. Como RUP, su proceso está basado en UML y
casos de uso pero es más ligero que RUP. A diferencia de los enfoques XP
y Agile, ICONIX promueve la captura de suficientes requisitos y
documentación de diseño, pero sin abundar en el análisis. El Proceso de
esta metodología utiliza sólo cuatro diagramas UML basados en un
proceso de cuatro pasos que convierten casos de uso en código de
trabajo.
4. SCRUM SCRUM es un marco de trabajo para la gestión y desarrollo de
software basada en un proceso iterativo e incremental utilizado
comúnmente en entornos basados en el desarrollo ágil de software.
5. Extreme Programming
La programación extrema o eXtreme Programming (XP) es una
metodología de desarrollo de la ingeniería de software formulada por
Kent Beck, autor del primer libro sobre la materia, Extreme
Programming Explained: Embrace Change (1999). Es el más destacado
de los procesos ágiles de desarrollo de software. Al igual que és- tos, la
programación extrema se diferencia de las metodologías tradicionales
principalmente en que pone más énfasis en la adaptabilidad que en la
previsibilidad. Los defensores de XP consideran que los cambios de
requisitos sobre la marcha son un aspecto natural, inevitable e incluso
deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse a
los cambios en cualquier punto de la vida del proyecto es una
aproximación mejor y más realista que intentar definir todos los
requisitos al comienzo del proyecto e invertir esfuerzos después en
controlar esos cambios.

6. UML
UML, por sus siglas en inglés, Unified Modeling Language, es el lenguaje
de modelado de sistemas software más conocido y utilizado en la
actualidad; está respaldado por el OMG (Object Management Group). Es
un lenguaje gráfico para visualizar, especificar, construir y documentar
un sistema. UML ofrece un estándar para describir un “plano” del sistema
(modelo), incluyendo aspectos conceptuales tales como procesos de
negocio, funciones del sistema y aspectos concretos como expresiones de
lenguajes de programación, esquemas de bases de datos y compuestos
reciclados.
7. RAD
RAD, por sus siglas en inglés, Rapid Application Development, es una
metodología de desarrollo de software que utiliza una planeación mínima
que favorezca la realización rápida de prototipos. El desarrollo RAD
envuelve métodos de desarrollo iterativo y prototipado de software.

Anexo
Este anexo describe el detalle de la infraestructura de software del cliente
de Arch&Soft.
La plataforma, de manera invariable, era J2EE soportada por sistemas
operativos LINUX con distribución Redhat 6. La base de datos era Oracle
10g y no estaba permitido utilizar la tecnología de Hibernate, sin em-
bargo, el cliente estaba abierto a evaluar y en su caso, adoptar otras
tecnologías asociadas a la plataforma J2EE.
El servidor de aplicaciones que el cliente poseía era Glassfish 2.0 y en
ocasiones llegaba a utilizar Tomcat 7. No existían posibilidades de
utilizar un servidor de aplicaciones de paga, como lo es WebLogic.
Respecto a los servidores físicos, éstos poseían una memoria (cada uno)
de 24 Gigas en RAM y dos procesadores Xeon Cuad Core de 3.5 GHz
cada uno. El cliente poseía un total de 18 servidores que, si era necesario,
podían ser dispuestos en modo de alta disponibilidad, balanceados por un
F5.

También podría gustarte