Centro de desarrollos de Software. Un nuevo paradigma.

El desarrollo de software actualmente es una actividad lenta, cara y propensa a errores que generan defectos y problemas de usabilidad, desempeño y seguridad. Según las estadísticas, menos de la tercera parte de los proyectos de software son exitosos en términos de alcance, calidad, tiempo y presupuesto. A lo largo de los años se han dado algunas mejoras en productividad, principalmente a través de la mejora de los lenguajes y herramientas, pero aún así seguimos desarrollando software casi de la misma manera que hace una década. Nuestros métodos y prácticas realmente no han cambiado, como tampoco lo han hecho los costos y riesgos.

La demanda global de software ha aumentado constantemente en los últimos diez años, y aumentará a un ritmo mucho mayor durante la próxima década, dirigida por las fuerzas de la nueva economía, el creciente rol del software en la sociedad moderna y nuevas plataformas como dispositivos móviles y dispositivos inteligentes para el hogar.

Esto nos presenta un problema de capacidad para satisfacer la demanda. No somos la primera industria en enfrentar tal problema, otras ya lo han superado. Lo lograron al evolucionar de la artesanía, donde los productos se hacen desde cero por individuos o pequeños equipos, hacia la manufactura, donde un amplio rango de variantes se ensambla rápidamente de acuerdo a componentes reutilizables creados por diferentes proveedores y a través de máquinas se automatizan las tareas repetitivas. Estas industrias estandarizaron sus procesos, diseños y empacado, utilizando líneas de producción para facilitar la reutilización, y cadenas de suministro para distribuir el costo y riesgo. Esto es a lo que llamamos industrialización.

¿Se Puede Industrializar el Desarrollo de Software?
Este ha sido un tema de amplia discusión desde hace tiempo. ¿Pueden aplicarse a la industria de software los patrones de industrialización comunes? ¿Somos una industria especial o diferente a las demás?

La clave para aclarar esta discusión es entender las diferencias entre las economías de escala y de alcance. La reutilización sistemática puede generar ambas. Estos dos efectos son bien conocidos en otras industrias; aunque reducen el tiempo y costo, y mejoran la calidad de los productos, difieren en la manera en la que producen estos beneficios.

• Las economías de escala surgen cuando se producen varias instancias idénticas o copias de un mismo producto. Se crea un diseño, junto con sus instancias iniciales (prototipos) a través de un proceso intensivo en recursos, llamado desarrollo, que es llevado a cabo por ingenieros. Posteriormente se crean muchas instancias adicionales, llamadas copias, a través de un proceso llamado producción, que es realizado por máquinas o mano de obra barata.

• Las economías de alcance surgen cuando varios diseños similares pero distintos se producen de manera colectiva. En la manufactura de automóviles, por ejemplo, se generan varios modelos de automóvil con ciertas similitudes al combinar diseños existentes de subcomponentes como el chasis, interiores, transmisión, etc. Las variaciones entre modelos se generan por diferencias entre algunas características, como el motor, por ejemplo. Así que las mismas prácticas, procesos, herramientas y materiales se utilizan para diseñar distintos productos. Ahora podemos entender los problemas en la comparación de otras industrias con la de software. No es posible generar economías de escala en el desarrollo de ningún producto, ya sea físico o virtual. Sin embargo, podemos buscar lograr economías de alcance a través de la industrialización del desarrollo de software.

Centros de Desarrollo de Software
Con el objetivo de aumentar la productividad, disminuir los costos y elevar la calidad de los productos y servicios ofrecidos a los clientes, recientemente se ha hecho popular el modelo de operación de “centros de desarrollo de software”. Lo que busca este modelo es generar economías de alcance en el desarrollo y mantenimiento de software.

A continuación les presentamos tres ejemplos de empresas pioneras en México con el modelo de centro de desarrollo de software (CDS). Posteriormente Karla García nos habla sobre los centros de desarrollo globales y la oportunidad que representan para México. Por último, Luis Daniel Soto nos explica el concepto de fábricas de software que Microsoft está impulsando.

Softtek
Con más de 2,500 personas en 10 países, Softtek es la empresa privada de servicios de TI más grande en Latinoamérica. La firma ha estado en operación por más de 20 años y da servicio a clientes corporativos en todos los mercados en los que opera. Softtek se ha convertido en una fuerte alternativa a los servicios offshore en el mercado de Estados Unidos, segmento dominado por empresas de la India. Al explotar el concepto Near Shore®, Softtek es el líder de este segmento en América. Recientemente Softtek concluyó la integración de GE Ddemesis, empresa adquirida a General Electric a finales de 2003, realizó la apertura de un Centro de Entrega de Servicios en Azcapotzalco, D.F., con lo cual suma ya tres centros de desarrollo en México (además de Monterrey y Aguascalientes), dos centros de desarrollo en Brasil y uno más en España, destinado a atender el mercado europeo.

Especialización Los servicios de Softtek están divididos en tres grandes rubros:
• Servicios Relativos a Aplicaciones, como desarrollo a la medida, mantenimiento de sistemas existentes, help desk y testing.
• Servicios de Soporte a Infraestructura, como administración de redes, servidores y seguridad.
• Outsourcing de Procesos de Negocio, que gira alrededor de la mejora y digitalización de procesos de negocio.

Modelo de Entrega
Los servicios del Centro de Desarrollo de Softtek están orientados primordialmente a atender las necesidades de empresas globales, mediante el modelo Near Shore®.

Modelo de Calidad
Los tres elementos de calidad de Softtek (CMM Nivel 5, Six Sigma y Digitalización) interactúan de manera tal que permiten entregar al cliente elementos de control, confiabilidad, predictibilidad y mejora continua. Las organizaciones CMM Nivel 5 son altamente maduras, debido a que sistemáticamente utilizan procesos cuantificables y controlables, analizando los resultados para mejorar continuamente. El resultado es software de muy alta calidad, desarrollado en tiempo y costo. A nivel mundial, menos de 10% de las organizaciones evaluadas han alcanzado el nivel 5. La cultura Six Sigma, que se encuentra incrustada en Softtek, consiste en un método de administración orientado al cliente y sustentado en datos que permite lograr excelencia en procesos de negocio. La digitalización de los procesos se logra al utilizar la suite de productos de IT Governance Center de Mercury, lo cual permite tener consistencia en todos los procesos de la organización.

Principales Retos
La sola idea de una empresa mexicana de servicios de TI proporcionando servicios a empresas Fortune 100 en Estados Unidos, es una novedad. Softtek ha hecho frente exitosamente a las preocupaciones de sus clientes con respecto a la disponibilidad de recursos calificados en México, las barreras idiomáticas, entregas a tiempo y calidad. Los principales retos que Softtek enfrenta son:
• Disponibilidad de profesionales con dominio del idioma inglés y el grado de especialización que se requiere en un ambiente globalizado.
• Carencia de más jugadores en México con los niveles requeridos para competir en un mercado global, ya que esto se ve reflejado en una baja percepción de México como jugador en la industria.

Asimismo, Softtek está aprendiendo a aprovechar el hecho de que México es el segundo socio comercial de Estados Unidos, comprando productos y servicios con un valor superior a $100 mil millones de dólares al año, lo que representa más de veinte veces lo que adquiere la India.

Perspectiva a Futuro
Alejandro Camino, alto ejecutivo de Softtek, nos comenta lo siguiente: “Softtek continuará la estrategia de fortalecimiento de su modelo Near Shore, mediante el robustecimiento del modelo de calidad, y la apertura de más centros de desarrollo en los polos que proporcionen las condiciones de disponibilidad y fortalecimiento de recursos humanos competitivos a nivel mundial. Asimismo, continuaremos ampliando nuestro portafolio de servicios, principalmente en el segmento de outsourcing de Procesos de Negocio, donde vemos la mayor oportunidad de crecimiento. Nuestro objetivo es continuar el rol de liderazgo de una nueva generación de profesionistas mexicanos altamente competitivos y con mentalidad global.”

certum
certum es una empresa mexicana con más de dieciocho años de experiencia en desarrollo de software a la medida. Nació en la ciudad de Puebla en 1986 bajo el nombre de Servicios en Informática y Desarrollo de México. En 1988 cambió su domicilio a la ciudad de México, ya que sus clientes se encontraban en esta ciudad. En 1994 comienza a participar en un proyecto de la ISO llamado SPICE (Software Process Improvement and Capability dEtermination). El Director General, Arnoldo Díaz, fue nombrado ISO Project Editor y Miembro del Consejo de Administración del consorcio. Asimismo, la Herramienta de Evaluación de Procesos de Software desarrollada por esta empresa fue denominada Official SPICE Assessment Instrument. Esta iniciativa a través del tiempo dio como resultado la creación del estándar internacional para la evaluación de procesos de software ISO/IEC 15504. En 1997 lanza la marca certum, que significa “certeza” en latín. El nombre obedece a la intención de atacar uno de los problema fundamentales de la industria del desarrollo de software: la incertidumbre. Incertidumbre alrededor de lo que llaman el trinomio: calidad, tiempo de entrega y costo.

Especialización
certum se ha enfocado desde su fundación al desarrollo de software a la medida, lo que los ha llevado a trabajar en diversos sectores tanto en el mercado nacional como en el extranjero. La forma de trabajo es a través de proyectos, los cuales son cuidadosamente seleccionados, ya que siempre buscan se encuentren alineados a la estrategia de sus clientes expresada en su Red de Servicios. Sus soluciones son independientes de la plataforma, y cuentan con experiencia en una gran diversidad de tecnologías.

Modelo de trabajo
Existen tres dimensiones de componentes estructurales: • Operación - planta física, herramientas de desarrollo y herramientas de soporte.
• Control - procesos estándar para el desarrollo de los productos.
• Desarrollo de Personas - evaluaciones de desempeño, planes de carrera y compensación.

certum ha desarrollado diversas herramientas propietarias para diseño de servicios, repositorio de activos, seguimiento a proyectos y administración de incidentes, por mencionar algunas.

La planta física fue diseñada bajo el paradigma de líneas de producción. A cada cliente se le dedica una línea, organizada siempre a través de proyectos, y trabajando bajo sistemas y herramientas comunes. Esta organización trabaja bajo el concepto de puertas abiertas (no hay privados ni para los Directores), lo que facilita la comunicación y crea un ambiente mucho más integrado.

Modelo de calidad
Desde 1993 certum adoptó el paradigma de modelos de capacidad de procesos. A lo largo de su historia ha obtenido certificaciones ISO 9001 y una evaluación Bootstrap - equivalente a SW-CMM nivel 3 gracias al estándar ISO 15504, siendo la primera empresa en Latinoamérica en obtenerlo. Su modelo de calidad se basa en métricas de: productividad (puntos de función por persona mes), calidad (defectos por puntos de función), satisfacción de cliente, costos, etc. Esto es un elemento clave para lograr la mejora sostenible de sus procesos y productos.

Retos y Perspectiva a Futuro
certum ha tenido una trayectoria complicada y retadora pero muy interesante y enriquecedora, que finalmente los ha posicionado con resultados exitosos, y por esta razón piensa continuar en la misma línea. Entre sus retos presentes está superar la lucha cultural alrededor de los procesos y métricas, continuar la búsqueda por mejorar aún más la capacidad de sus procesos, a fin de poder ver esto reflejado en valor superior para sus clientes a través de implementar con éxito los servicios que ofrecen.

IBM Centro de Diseño y Desarrollo de Software
Una de las mayores concentraciones de ingenieros de software del país se encuentra en el Centro de Diseño y Desarrollo de Software de IBM, el cual tiene más de 950 profesionistas dedicados al diseño, desarrollo y pruebas de software. Este centro tiene oficinas tanto en la ciudad de México como en Guadalajara y desde ellas atiende a múltiples clientes nacionales e internacionales. Esta historia comenzó hace quince años, cuando solamente había ocho personas desarrollando software de bajo nivel en la división de laboratorios de IBM. Los resultados que dieron, así como el aprendizaje de desarrollar software en base a una metodología con gran énfasis en calidad, provocaron que esta operación creciera poco a poco tanto en cantidad como en alcance. Desde hace cinco años operan dentro de la organización de AMS (Application Management Services), que a su vez es parte de la división IBM Global Services, ofreciendo una amplia variedad de servicios de TI.

Oferta
La oferta del centro de desarrollo de IBM es muy amplia. Aquí se diseña, desarrolla y da mantenimiento tanto a software para productos de IBM, como aplicaciones para clientes externos. Entre los servicios provistos están:
• Servicios profesionales especializados
• Desarrollo de software a la medida
• Integración de aplicaciones
• Mantenimiento
• Outsourcing de infraestructura, administración de aplicaciones y soporte técnico
• Consultoría en desarrollo de software

Una parte vital de la oferta de valor de IBM es la red mundial que tiene a su disposición. Esto le permite conseguir recursos altamente especializados, así como acceso a la base de conocimiento de proyectos de todo el mundo.

Modelo de Entrega
El modelo de entrega realmente es una oferta muy flexible que se adapta a lo que los clientes necesitan. En algunos casos IBM se encarga por completo de los proyectos, mientras que en otros solamente realiza funciones específicas como la coordinación, desarrollo o pruebas. En el caso de servicios como help desk, IBM puede hacerse cargo de todo el manejo, o solamente a partir de cierto nivel (por ejemplo, el cliente maneja el primer nivel de soporte y los niveles posteriores son realizados por IBM).

Red de servicios

Modelo de Calidad
IBM es reconocida como una empresa pionera en modelos de calidad y procesos, y el Centro de AMS México no es la excepción. Fueron la primera organización en México en alcanzar el nivel 5 de SW-CMM, y en diciembre de 2004 fueron reconocidos con el nivel 5 de CMMi. La mejora continua es parte fundamental de la operación diaria de IBM. Como comenta Carlos Cevallos, Gerente del Centro de Desarrollo: “lo difícil no es desarrollar software, sino hacerlo con un proceso repetible y mejorarlo continuamente”.

Retos y Perspectiva a Futuro
Uno de los principales retos de IBM es responder a los requerimientos de la economía globalizada. Para lograrlo, los centros de desarrollo de IBM en todo el mundo se integran bajo una misma forma de trabajo para ofrecer a sus clientes globales un mismo servicio en cualquier lugar del mundo.

Acerca de AMS Latinoamérica
La organización de AMS se dedica al desarrollo, mantenimiento y pruebas de aplicaciones de software, ayudando a complementar los múltiples ofrecimientos del área de servicios, enfocada tanto a clientes nacionales como internacionales. En Latinoamérica, AMS cuenta con aproximadamente 3 mil profesionistas de TI trabajando en diferentes áreas de productos, aplicaciones y servicios de Software: 950 localizados en México, 1,200 en Brasil, y el resto en Argentina y la Región Andina. El Centro de AMS en México obtuvo el nivel CMMI 5 el pasado diciembre 2004, Brasil espera obtener el nivel CMMI 5 para el segundo cuarto del 2005, y Argentina y la Región Andina buscan obtener el nivel CMMI 4 durante el 2005.