IMPLEMENTACIÓN DEL MODELO INTEGRAL COLABORATIVO (MDSIC) COMO FUENTE DE INNOVACIÓN PARA EL DESARROLLO ÁGIL DE SOFTWARE EN LAS EMPRESAS DE LA ZONA CENTRO - OCCIDENTE EN MÉXICO

IMPLEMENTACIÓN DEL MODELO INTEGRAL COLABORATIVO (MDSIC) COMO FUENTE DE INNOVACIÓN PARA EL DESARROLLO ÁGIL DE SOFTWARE EN LAS EMPRESAS DE LA ZONA CENTRO - OCCIDENTE EN MÉXICO

José Luis Cendejas Valdéz (CV)

Volver al índice

2.14 Desarrollo de software en proyectos tecnológicos

Como ya lo hemos mencionado el desarrollo de proyectos tecnológicos es importante para un país. Los proyectos de investigación, posibilitan la obtención de resultados científicos y tecnológicos que pueden redundar en la elevación de las capacidades científicas y del nivel tecnológico de los organismos y de las empresas de la región o del país. Además,  de que tienen un carácter pre-competitivo. Las redes temáticas, facilitan las relaciones científicas y la transferencia de conocimientos entre las unidades de investigación de los diferentes países.
La capacidad para el desarrollo de una tecnología no es sinónimo de que la empresa que la ha generado sea capaz o pueda valorizarla mediante su introducción directa en el mercado.
En la mayoría de los casos estas tecnologías no alcanzan el mercado debido a diversos motivos entre los que pueden destacarse los cambios en las expectativas o requisitos de potenciales usuarios que limitan el mercado potencial, pérdida de competitividad por la existencia de una tecnología alternativa, o la inexistencia de una cultura de comercialización. Todo ello hace necesario que la empresa que genera una tecnología potencialmente útil para ser comercializada desarrolle lo que se denomina estrategia de valorización específica. Los procesos por los que las tecnologías avanzadas se comercializan y llegan al mercado son variados y están muy relacionados con los mecanismos de transferencia de tecnología utilizados (Kruth, 2000).
Desde 1968 se comenzó con el desarrollo de proyectos dentro del sector informático, se han detectado graves problemas para cumplir las premisas principales de un proyecto: cumplir con los objetivos de calidad dentro de un tiempo predefinido y con costos prefijados, tal como ocurre en cualquier otro sector. Este fenómeno se conoce como “Crisis del software” y se define como la dificultad existente en desarrollar programas sin errores o defectos, fácilmente comprensibles y que sean verificables. Las causas de la crisis del software parecen ser, entre otras, la complejidad que supone la tarea de programar y los cambios a los que se tiene que ver sometida una aplicación para ser continuamente adaptada a las necesidades de los usuarios.
Conocer, prevenir e intentar mitigar cualquier riesgo al que pueda estar sometido un proyecto de software es probablemente, una tarea inabordable, debido principalmente a la enorme cantidad de amenazas y diversas naturalezas de las mismas que se encuentran presentes desde antes del comienzo del proyecto. No obstante de lo anterior, la realización de un modelo que permita a los directores de proyectos software conocer los principales riesgos a los que puede estar sometido el proyecto, así como la gravedad de los mismos, desde antes del comienzo del proyecto en función de cierta información básica y en la mayor parte de los casos, disponible, permitiría emplear los pocos recursos normalmente asignados a la gestión de riesgos en los problemas potenciales con mayor probabilidad de ocurrencia teniendo en consideración a su vez la gravedad de los mismos.
Los resultados de las investigaciones de CHAOS-Standish group son los más contrastados a nivel mundial en la industria de las tecnologías de la información y representan una década de datos que incluyen más de 50.000 proyectos y que indican los niveles de éxito o fracaso de los proyectos informáticos, como se muestra en la figura 2.31 El objetivo de estas investigaciones es proporcionar una comprensión de las razones por las que fracasan los proyectos, así como de los principales factores de riesgo y analizar las claves que pueden reducir los fracasos. El objeto de investigación del grupo Standish Group se centra en identificar el alcance de los fracasos del software, los factores principales que causan el fracaso de los proyectos software y los ingredientes clave que pueden reducir el fracaso de los proyectos.
Por otra parte se determina que los proyectos se cancelan debido, entre otras, a las siguientes causas:

  • Requisitos incompletos.
  • Falta de participación de los usuarios.
  • Falta de recursos.
  • Expectativas no realistas.
  • Falta de apoyo de los directivos.
  • Incompetencia tecnológica.
  • Falta de gestión de las TIC.
  • Desconocimiento de la tecnología.

La industria del software es una industria joven, de gran tamaño y muy dinámica, donde los motivos que conducen a la creación de software difieren entre los actores que se encuentran involucrados en esta industria (Steinmueller, 2004). Una forma de analizar la interacción entre los actores involucrados en los procesos y actividades de innovación del software es en sistemas sectoriales de innovación (SSI) (Malerba, 2004), ya que este enfoque hace énfasis en la necesidad de identificar a los actores que contribuyen de manera relevante en el desarrollo de conocimiento industrial dentro de un sector.
El software puede ser considerado como un producto o servicio y puede ser de propósito general o especializado, la naturaleza del mercado para la creación de software y el intercambio de actividades y tecnologías le dan soporte. Si se tomara en cuenta la penetración tecnológica de una aplicación como medida para denominar la innovación, en el caso de la tecnología se obviaría la cantidad de innovaciones que se producen concretamente en el mundo del software libre, que no han tenido hasta ahora una penetración de mercado importante (Romeo, 2003). El software empaquetado constituye un componente importante del mercado TIC y este mercado puede ser subdividido en tres grandes segmentos (Chudnovsky, 2001):
1. Software de sistema y utilitarios: incluyen sistemas operativos, lenguajes de programación, herramientas de medición de los sistemas, programas de mantenimiento y seguridad, convertidores, sistemas para el manejo de redes, entre otros.
2. Herramientas de aplicación: abarca todos los programas que les permiten a los usuarios recuperar, organizar, administrar y manipular datos y bases de datos. Incluye también sistemas de administración de base de datos, sistemas de soporte e información para la toma de decisiones, planillas de cálculo y herramientas CASE (Computer-Aided Software Engineering). Este grupo se divide en cuatro grandes categorías:

  • Recuperación y acceso a datos.
  • Administración de datos.
  • Manipulación de datos.
  • Diseño y desarrollo de programas.

3. Soluciones de aplicación: son programas diseñados para ofrecer soluciones a problemas propios de una industria, o bien para desempeñar una función específica de los negocios. Este software puede ocuparse de funciones “cross industry” (contabilidad, manejo de recursos humanos, nómina, administración de proyectos, procesamiento de texto y otras actividades de oficina) como también brindar soluciones específicas para mercados verticales (por ejemplo, bancos y sector financiero, manufactura, salud, exploración y explotación de recursos naturales, ...). Algunos de estos programas (procesadores de texto, por ejemplo) pueden ser usados también por usuarios particulares.

En el sector servicios, lo primero a destacar es que, en contraste con lo dicho anteriormente sobre la elaboración de productos, los costos marginales que enfrentan las firmas son elevados. Aún para grandes empresas que hacen desarrollos a medida para dos clientes con requerimientos similares no implica una reducción significativa en el costo del segundo proyecto, ya que el software desarrollado para uno sólo limitadamente puede ser reusado en otros. Se ha estimado que el mayor conocimiento y la experiencia ganada al trabajar en proyectos similares permite ahorrar no más de un 30% del costo total (McKinsey, citado en (Hoch, 1999)).
También hay que tener en cuenta que cuando se trata de hacer desarrollos a medida en proyectos tecnológicos, y a diferencia de lo que ocurre con los productos estandarizados, los riesgos de posibles sobrecostos, demoras, fallas en el desarrollo, por citar algunos, son soportados usualmente por los clientes (Chudnovsky, 2001). Estos pueden quedar “atados” al proveedor original del software por los gastos incurridos en concepto de servicios de capacitación, actualización y corrección de fallas, ampliaciones y modificaciones, que suelen sucederse a la instalación del sistema. Por todo lo anterior se conoce que el software que se usa en proyectos de investigación y en proyectos académicos son basados en software libre por la falta de recursos que son necesarios para el desarrollo de los proyectos. El software libre, en todos sus aspectos, se encuentra asociado con el uso de software de código abierto.

Cada proyecto de desarrollo de software resuelve un problema de características únicas y por lo tanto la forma de resolver estos problemas debe ser analizada de acuerdo al contexto de cada proyecto. Por esta razón surge la necesidad de planificar de qué manera será resuelto el problema, considerando diferentes aspectos como el tamaño y complejidad del proyecto, el nivel de criticidad del producto, la forma de comunicación dentro y fuera del proyecto y la volatilidad de los requisitos, entre otros. Un factor importante a la hora de poder procesar un conjunto de datos, es la calidad de la información que se va a procesar. Cuando se habla del concepto de calidad de información se hace referencia a que se ha de disponer de la información necesaria para el objetivo; por eso la medición de las variables ha de recoger las características propias del atributo que se pretende medir, en este caso, número de defectos y gravedad de los mismos en los resultados de un proyecto software.

De ahí la necesidad de contar con un modelo que permita el desarrollo de software de calidad en proyectos de empresas desarrolladoras de tecnología. Que les permita orientar dicho software hacia las tendencias que se analizan en este capitulo y con las mejores tendencias, que no solo se desarrolle el software por conocer un lenguaje de programación sino lograr los objetivos de las organizaciones a través de sus procesos. Siempre tomando como base el recurso humano que es el que conoce los procesos y va a interactuar directamente con la herramienta tecnológica.

2.15 Tendencias en desarrollo de software

A lo largo de este capitulo se han estado revisando diferentes temas que infieren directa e indirectamente con el desarrollo del software y de como éste influye en nuestro diario vivir. Sabemos que la tecnología está siendo día a día reinventada. Pero en este mundo en el que la tecnología crece de manera exponencial, podemos preguntarnos, ¿Cuales son las ultimas tendencias del software y del desarrollo de su industria. Si bien existen muchas y diversas publicaciones que se enfocan en la parte metodológica y de desarrollo de software, las tendencias y la práctica parecen indicar que para tener éxito en el mercado del desarrollo de software, las empresas y profesionales de este sector necesitan apreciar no sólo el aspecto técnico y metodológico, sino también el contexto del software como negocio y como generador de recursos dentro de la economía tanto local, nacional como mundial (Messerchmitt, 2003).

Las tendencias indican que, así como en el año 2004 en la Industria del Software se destacó el offshore, en el 2006 se destaca el inicio de la formación del complejo ecosistema de la Industria del Software, donde formará una parte importante la relación entre desarrolladores de software, clientes, proveedores (de contenidos y servicios) y socios comerciales (denominados en inglés como: stakeholders) (SandHill, 2006a; Messerchmitt, 2003). La dificultad de la formación de este ecosistema radica, principalmente, en que la industria del software es por naturaleza compleja, ya que existen infinidad de productos complementarios necesarios para desarrollar soluciones, así como procesos complejos de formación de alianzas y establecimiento de estándares, trayendo con ello la necesidad de satisfacer las necesidades de numerosos y diversos stakeholders (Messerchmitt, 2003).

Las organizaciones desarrolladoras de IT han mostrado preocupación por el concepto de “Green IT”, el cual tiene el objetivo de desarrollar tecnologías más amables con el medio ambiente y que buscan promover el uso de la energía de manera más eficiente, empleando materiales biodegradables y menos contaminantes. Según Jhon Bates(1998), director del laboratorio de ingeniería y de comunicaciones de la Universidad de Cambridge en Inglaterra, genero un documento denominado “The state of the art in distributed and dependable computing”, en el cual propuso un modelo sobre las tendencias en el desarrollo del software y de las TI.
El modelo anterior pone especial énfasis en las áreas de los servicios como las transacciones, sistemas multimedia, software para la administración de los procesos de las organizaciones, además de la informática móvil. De acuerdo a Hegering (2001), podemos distinguir cuatro tipos de movilidad informática:

  • Movilidad terminal, es aquella que hace referencia al dispositivo de acceso que permite la conexión.
  • Movilidad personal, es aquella que hace referencia al usuario del sistema de información móvil.
  • Movilidad de servicio, es aquella que permite la continuidad, adaptabilidad y personalización del servicio según el contexto y el usuario. Todo ello en condiciones de variabilidad de la localización y el acceso.
  • Movilidad de sesión, es aquella que implica la independencia de la sesión respecto al tiempo y el lugar de acceso. Se define sesión como las condiciones de personalización y autentificación que el usuario o la red en su defecto establecen para configurar el acceso y el servicio.

Con este modelo se realizó un análisis sobre las tendencias del software ya que el anterior hace mención de distintas arquitecturas de IT y de software que se han venido utilizando en la ultima década. 

Este modelo permite identificar las tendencias. Podemos comenzar con su descripción y como base requiere de algunos elementos como una arquitectura de red que permita la comunicación  a los sistemas operativos y que brinde soporte a los lenguajes de programación que generen sistemas y/o aplicaciones de tipo distribuido, esto es, que permita almacenar, clasificar y generar la información desde diferentes lugares y no de manera centralizada. Es importante mencionar que en las últimas décadas ha existido una necesidad de estandarización de los procesos y etapas que se llevan a cabo para el desarrollo de software, además de que con su implementación les permitirá desarrollar una madurez y poder trabajar sobre metodologías agiles en el desarrollo del software.

Los sistemas distribuidos son contemplados en este modelo de tendencias, ya que permiten a través de grids, clústers y supercomputadoras, mejorar los tiempos de ejecución de los procesos, agilizando así la toma de decisiones. Impactando así directamente a los procesos de minería de datos, comercio electrónico y negocios electrónicos ejecutados desde cualquier dispositivo móvil. Por ultimo el punto que engloba a todas estas tendencias es el uso del green computing, es decir, el uso de tecnologías que impacten de manera positiva al planeta sin contaminar ni usar energía de más que genere contaminantes y afecte a nuestro planeta. A continuación se describe de manera breve las tendencias más importantes contempladas en el modelo anterior.

  • Aplicaciones móviles

El teléfono móvil es un dispositivo inalámbrico electrónico basado en la tecnología de ondas de radio, que tiene la misma funcionalidad que cualquier teléfono de línea fija. Su principal característica es su portabilidad, ya que la realización de llamadas no es dependiente de ningún terminal fijo y no requiere ningún tipo de cableado para llevar a cabo la conexión a la red telefónica. Aunque su principal función es la comunicación de voz, como el teléfono convencional, su rápido desarrollo ha incorporado funciones adicionales como mensajería instantánea (sms), directorio, juegos, cámara fotográfica, acceso a internet, reproducción de video e incluso GPS y reproductores de música.

Inicialmente los teléfonos móviles sólo permitían realizar llamadas de voz y enviar mensajes de texto. Conforme la tecnología fue avanzando se incluyeron más aplicaciones. Conforme la tecnología ha ido avanzando se han incluido nuevas opciones a este servicio se le conoce como aplicaciones multimedia para dispositivos móviles. Entre los sistemas operativos mas conocidos para dispositivos móviles, podemos encontrar:

    • Android.
    • Symbian.
    • Windows mobile.
    • iPhone OS.
    • Blackberry OS.
    • Linux.
    • Palm OS.
  • Aplicaciones distribuidas para la generación del comercio y del negocio electrónico, datamining y datacenters.

Es una tecnología que, apoyada en el concepto de Business Intelligence, promueve el uso sistemático y organizado de los datos históricos de una empresa mediante la gestión de grandes volúmenes de datos y modernas técnicas estadísticas. Al gestionar el rendimiento, se pone en marcha una estrategia de control y seguimiento, a través de indicadores de gestión, de los objetivos y estrategias de la organización, de forma que se garantiza su cumplimiento y el ajuste de cualquier desviación de las metas establecidas. Es un concepto que se nutre de tecnologías robustas como gestores de bases de datos, herramientas de elevada capacidad analítica, etcétera.
La gestión de activos digitales (Digital Asset Management, DAM) es el proceso de identificar, clasificar, digitalizar, almacenar y recuperar datos e información no estructurada de todo tipo, con el fin de incrementar la productividad de las organizaciones que manejan grandes volúmenes de información: imágenes, vídeos, libros, documentos legales, mapas, etc. DAM ha irrumpido con fuerza gracias a la robustez de los sistemas de gestión de bases de datos, la potencia de las CPUs, la consolidación de XML como estándar y el aumento de las capacidades de almacenamiento. Destacan en este segmento de mercado IBM, EMC, Open Text, Oracle, Microsoft, Interwoven, Vignette, Hyland Software, Xerox o HP, entre otras.

  • Cloud computing

Cloud computing es un modelo en el que, ya no sólo el software, sino las capacidades tecnológicas flexibles y escalables se proporcionan a los clientes mediante tecnologías Web, con ventajas que ofrecen valor al negocio como movilidad, reducción de riesgos y costos, procesos de negocio prácticamente estandarizados, etcétera. El cloud computing nos presenta las siguientes ventajas:

  • Disminución de costos – Cloud Computing ofrece ventajas a las empresas pequeñas y medianas en términos de reducción de costos. Ya que solamente pagan por lo que utilizan.
  • Opciones de almacenamiento escalable – Se puede ampliar sus opciones de almacenamiento para cubrir sus necesidades sin problema, en lugar de tener que salir a comprar hardware costoso.
  • Actualizaciones automáticas – No hay necesidad de que el departamento de TI tenga que preocuparse por el pago de actualizaciones futuras en términos de software y hardware.
  • Acceso remoto – Los empleados pueden tener acceso a información donde quiera que estén, en lugar de obligarlos a mantenerse en un solo lugar la mayor parte del tiempo para acceder a lo que necesitan.
  • Servicio ecológico – Cloud Computing utiliza menos energía que los centros de datos tradicionales lo cual es importante para hoy en día.
  • Facilidad de implementación – No hay necesidad de implementar hardware y componentes que pueden tardar varias horas en instalarse.
  • Vendedores calificados – ¿Quién preferiría que gestione y proteja sus datos? ¿Microsoft, Google, IBM, Yahoo, Amazon y Saless Force o personal de TI incompetente?
  • El tiempo de respuesta – Cloud Computing logra un mejor tiempo de respuesta en la mayoría de los casos que en su hardware de servidor estándar.
  • Igualdad de condiciones para nuevas empresas pequeñas – esto permite que las pequeñas empresas compitan más eficazmente con algunas de las empresas más grandes. Esto equilibra el campo de juego.
  • Rendimiento y Durabilidad – Ejecute sus sitios web y aplicaciones a un ritmo mucho más rápido con los beneficios de usar un servicio mucho más duradero.

Con todo el análisis realizado podemos decir que las tendencias en el desarrollo de software están enfocadas a desarrollar aplicaciones que trabajen en dispositivos móviles, con interfaces dinámicas y que contengan elementos que puedan ser utilizados con ese tipo de hardware (multimedia para móviles). Además de que dichas aplicaciones trabajan de forma distribuida, generando así la minería de datos y teniendo presente la utilización de tecnología que proteja el medio ambiente y la contaminación del mismo. Así mismo la necesidad de desarrollar software a la medida (fijo o en móvil) basado en instrumentos metodológicos que coadyuven a la sistematización de procesos y al cumplimiento de las metas de las organizaciones y fortalecer así su desarrollo además de brindar un crecimiento económico de la región.