Los sistemas difieren en términos de su tamaño y complejidad tecnológica, y en términos de los problemas organizacionales que están diseñados para resolver. Se han desarrollado varias metodologías de creación de sistemas para lidiar con estas diferencias. En esta sección describiremos estos métodos alternativos: el ciclo de vida de los sistemas tradicionales, los prototipos, los paquetes de software de aplicación, el desarrollo del usuario final y la subcontratación (outsourcing).
El índice de temas para este foro es:
Ciclos de vida con los sistemas tradicionales.
Prototipos.
Desarrollo del usuario final.
Paquetes de software de aplicaciones y outsourcing.
CICLO DE VIDA CON LOS SISTEMAS TRADICIONALES.
El ciclo de vida de sistemas es el método más antiguo para crear sistemas de información.
La metodología del ciclo de vida es un enfoque basado en fases para la creación de un sistema, en la cual el desarrollo de sistemas se divide en etapas formales. Los especialistas en desarrollo de sistemas tienen distintas opiniones en cuanto a la forma de particionar las etapas de creación de sistemas, pero corresponden de manera aproximada a las etapas del desarrollo de sistemas que acabamos de describir.
La metodología del ciclo de desarrollo de sistemas mantiene una división muy formal de la labor entre los usuarios finales y los especialistas en sistemas de información. Los especialistas técnicos, como los analistas de sistemas y los programadores, son responsables de gran parte del trabajo de análisis, diseño e implementación de los sistemas; los usuarios finales se limitan a proveer los requerimientos de información y revisar el trabajo del personal técnico. El ciclo de vida también enfatiza las especificaciones formales y los documentos de trabajo, por lo que se generan muchos documentos durante el curso de un proyecto de sistemas.
El ciclo de vida de sistemas aún se utiliza para crear sistemas complejos extensos que requieren de un análisis de requerimientos riguroso y formal, especificaciones predefinidas y controles estrictos sobre el proceso de creación del sistema. Sin embargo, la metodología del ciclo de vida de sistemas puede ser costosa e inflexible, además de requerir de mucho tiempo. Aunque los creadores de sistemas pueden ir y venir entre las etapas del ciclo de vida de sistemas, éste es en primera instancia una metodología de #cascada en donde las tareas en una etapa se completan antes de que empiece el trabajo para la siguiente etapa.
Las actividades se pueden repetir, pero hay que generar volúmenes de nuevos documentos y volver a trazar los pasos si es necesario revisar los requerimientos y las especificaciones. Esto contribuye a que se congelen las especificaciones en una etapa muy temprana del proceso de
desarrollo. Además, la metodología del ciclo de vida no es adecuada para muchos sistemas pequeños de escritorio, que tienden a ser menos estructurados y más individualizados.
PROTOTIPOS.
Los prototipos consisten en crear un sistema experimental con rapidez y a un bajo costo para que los usuarios finales lo evalúen. Al interactuar con el prototipo, los usuarios pueden darse una mejor idea de sus requerimientos de información. El prototipo aprobado por los usuarios se puede usar como plantilla para crear el sistema final.
El prototipo es una versión funcional de un sistema de información o una parte del mismo, pero su único objetivo es ser un modelo preliminar. Una vez operacional, el prototipo se refinará en forma gradual hasta que cumpla de manera precisa con los requerimientos de los usuarios. Una vez finalizado el diseño, el prototipo se puede convertir en un reluciente sistema de producción.
El proceso de crear un diseño preliminar, probarlo, refinarlo y probarlo de nuevo se denomina proceso iterativo del desarrollo de sistemas, debido a que los pasos requeridos para crear un sistema se pueden repetir una y otra vez. Los prototipos son iterativos en un sentido más explícito que el ciclo de vida convencional, además de que promueven de manera activa los cambios de diseño del sistema. Se dice que los prototipos reemplazan la renovación no planeada con la iteración planeada, en donde cada versión refleja de una manera más precisa los requerimientos de los usuarios.
Pasos en la creación de prototipos.
La siguiente figura muestra un modelo de cuatro pasos del proceso de creación de prototipos, que consiste en lo siguiente:
Paso 1: Identificar los requerimientos básicos del usuario. El diseñador del sistema (por lo general un especialista en sistemas de información) trabaja con el usuario sólo el tiempo suficiente para capturar las necesidades básicas de información del usuario.
Paso 2: Desarrollar un prototipo inicial. El diseñador del sistema crea rápidamente un prototipo funcional mediante el uso de herramientas para generar software con rapidez.
Paso 3: Usar el prototipo. Se anima al usuario a que trabaje con el sistema para determinar qué tan bien cumple el prototipo con sus necesidades y para que haga sugerencias sobre cómo mejorar el prototipo.
Paso 4: Revisar y mejorar el prototipo. El creador del sistema anota todos los cambios que solicita el usuario y refina el prototipo en forma apropiada. Una vez que se ha revisado el prototipo, el ciclo regresa al paso 3. Los pasos 3 y 4 se repiten hasta que el usuario queda satisfecho.
Cuando no se requieren más iteraciones, el prototipo aprobado se convierte en un prototipo operacional que proporciona las especificaciones finales para la aplicación. Algunas veces el prototipo se adopta como la versión de producción del sistema.
Ventajas y desventajas de los prototipos.
Los prototipos son más útiles cuando hay cierta incertidumbre sobre los requerimientos o las soluciones de diseño, y se utilizan con frecuencia para diseñar la interfaz del usuario final del sistema de información (la parte del sistema con la que interactúan los usuarios finales, como las pantallas de visualización en línea y de captura de datos, los informes o las páginas Web). Ya que los prototipos fomentan la participación intensa del usuario final durante el ciclo de vida de desarrollo de sistemas, es más probable producir sistemas que cumplan con los requerimientos del usuario.
Sin embargo, la creación rápida de prototipos puede pasar por alto las etapas esenciales en el desarrollo de sistemas. Si el prototipo completo funciona de una manera razonable, tal vez la gerencia no vea la necesidad de reprogramar, rediseñar o realizar los procesos completos de documentación y prueba para crear un reluciente sistema de producción. Algunos de estos sistemas que se crean en forma apresurada tal vez no puedan alojar con facilidad grandes cantidades de datos o un gran número de usuarios en un entorno de producción.
DESARROLLO DEL USUARIO FINAL.
Los usuarios finales pueden desarrollar algunos tipos de sistemas de información con una mínima cantidad o nada de asistencia formal de parte de los especialistas técnicos. A este fenómeno se le conoce como desarrollo del usuario final. Esto es posible gracias a una serie de herramientas de software categorizadas como lenguajes de cuarta generación: herramientas de software que permiten a los usuarios finales crear informes o desarrollar aplicaciones de software con una mínima cantidad o nada de asistencia técnica.
Algunas de estas herramientas de cuarta generación también mejoran la productividad de los programadores profesionales. Los lenguajes de cuarta generación tienden a no tener procedimientos, o a tener menos procedimientos que los lenguajes de programación convencionales. Los lenguajes por procedimientos requieren la especificación de la secuencia de pasos, o procedimientos, que indican a la computadora lo que debe hacer y cómo tiene que hacerlo.
Los lenguajes sin procedimientos necesitan especificar sólo lo que hay que realizar, en vez de proporcionar los detalles sobre cómo llevar a cabo la tarea.
La siguiente tabla muestra que hay siete categorías de lenguajes de cuarta generación.
Las herramientas de software de PC: lenguajes de consultas, generadores de informes, lenguajes de gráficos, generadores de aplicaciones, paquetes de software de aplicación y lenguajes de programación de muy alto nivel. La tabla muestra las herramientas ordenadas en términos de facilidad de uso para los usuarios finales que no son programadores.
Es más probable que los usuarios finales trabajen con herramientas de software de PC y lenguajes de consultas. Los lenguajes de consultas son herramientas de software que proveen respuestas en línea inmediatas a las solicitudes de información que no son predefinidas, como “¿Quiénes son los representantes de ventas con mayor desempeño?”. Los lenguajes de consultas están enlazados con frecuencia al software de administración de datos y a los sistemas de administración de bases de datos.
En general, los sistemas desarrollados por el usuario final se pueden completar con más rapidez que los desarrollados a través del ciclo de vida de sistemas convencional. Al permitir a los usuarios especificar sus propias necesidades de negocios mejora la recopilación de los requerimientos, lo cual conduce con frecuencia a un nivel mayor de participación y de satisfacción del usuario con el sistema. Sin embargo, las herramientas de cuarta generación todavía no pueden reemplazar a las herramientas convencionales para ciertas aplicaciones de negocios, debido a que no pueden manejar con facilidad el procesamiento de grandes cantidades de transacciones o de aplicaciones con extensos requerimientos de lógica de procedimientos y de actualizaciones.
La computación del usuario final también impone riesgos organizacionales, puesto que ocurre fuera de los mecanismos tradicionales para la administración y control de los sistemas de información. Cuando los sistemas se crean con rapidez, sin una metodología de desarrollo formal, los procesos de prueba y documentación pueden ser inadecuados. Se puede perder el control sobre los datos en los sistemas que están fuera del departamento tradicional de sistemas de información. Para ayudar a las organizaciones a maximizar los beneficios del desarrollo de aplicaciones de usuarios finales, la gerencia debe controlar el desarrollo de este tipo de aplicaciones al requerir que se justifique el costo de los proyectos de sistemas de información de usuarios finales y mediante el establecimiento de estándares de hardware, software y de calidad para las aplicaciones desarrolladas por los usuarios.
PAQUETES DE SOFTWARE DE APLICACIONES Y OUTSOURCING.
Las firmas pueden rentar el software de un proveedor de servicios de software, comprar un paquete de software a un distribuidor comercial o subcontratar (outsourcing) a una firma externa para que desarrolle una aplicación personalizada.
Paquetes de software de aplicación.
Durante las últimas décadas se han creado muchos sistemas basados en un paquete de software de aplicación. Muchas aplicaciones son comunes para todas las organizaciones de negocios; por ejemplo, nómina, cuentas por cobrar, libro mayor o control de inventario. Para dichas funciones universales con procesos estándar que no cambian mucho en el transcurso del tiempo, un sistema generalizado puede satisfacer los requerimientos de muchas organizaciones.
Si un paquete de software puede satisfacer la mayoría de los requerimientos de una organización, la compañía no tiene que escribir su propio software. Puede ahorrar tiempo y dinero al utilizar los programas de software escritos, diseñados y probados con anterioridad que contiene el paquete. Los distribuidores de los paquetes proveen gran parte del mantenimiento y soporte continuos para el sistema, como las mejoras para mantener el sistema alineado con los continuos desarrollos técnicos y de negocios.
Si una organización tiene requerimientos únicos que el paquete no tenga considerados, muchos paquetes cuentan con herramientas de personalización. Las características de personalización permiten modificar un paquete de software para cumplir con los requerimientos únicos de una organización sin destruir la integridad del software empaquetado.
Si se requiere un alto grado de personalización, tal vez los procesos de programación adicional y trabajo de personalización sean tan costosos y requieran tanto tiempo que desaparezcan muchas de las ventajas de los paquetes de software. Cuando se desarrolla un sistema mediante un paquete de software de aplicación, el análisis de sistemas integra un esfuerzo de evaluación del paquete. Los criterios más importantes de evaluación son las funciones que provee el paquete, la flexibilidad, facilidad de uso, recursos de hardware y software, requerimientos de la base de datos, esfuerzos de instalación y mantenimiento, documentación, calidad del distribuidor y costo. A menudo el proceso de evaluación del paquete se basa en una solicitud de propuesta (RFP), la cual es una lista detallada de preguntas que se envían a los distribuidores de software empaquetado.
Al seleccionar un paquete de software, la organización ya no tiene el control total sobre el proceso de diseño del sistema. En vez de ajustar las especificaciones de diseño del sistema de manera directa a los requerimientos del usuario, el esfuerzo de diseño consiste en tratar de moldear los requerimientos del usuario para que se conformen a las características del paquete. Si los requerimientos de la organización tienen algún tipo de conflicto con la forma en que funciona el paquete y no es posible personalizarlo, la organización tendrá que adaptarse al paquete y cambiar sus procedimientos.
Outsourcing.
Si una firma no desea usar sus recursos internos para crear y operar sistemas de información, puede subcontratar el trabajo a una organización externa que se especialice en proveer estos servicios. Los proveedores de cómputo en la nube y SaaS, son una forma de outsourcing. Las compañías suscriptoras utilizan el software y el hardware de computadora que proporciona el servicio como la plataforma técnica para sus sistemas. En otra forma de outsourcing, una compañía podría contratar a un distribuidor externo para diseñar y crear el software para su sistema, pero esa compañía operaría el sistema en sus propias computadoras. El distribuidor de outsourcing podría ser nacional o residir en otro país.
El outsourcing doméstico se controla en primera instancia por el hecho de que las firmas de outsourcing poseen habilidades, recursos y activos que sus clientes no tienen. Para instalar un nuevo sistema de administración de la cadena de suministro en una compañía muy grande podría ser necesario contratar entre 30 y 50 personas adicionales con experiencia específica en software de administración de la cadena de suministro, además de obtener las licencias de un distribuidor. En vez de contratar nuevos empleados permanentes (la mayoría de los cuales necesitarían una capacitación extensiva sobre el paquete de software) y despedirlos una vez que finalice la creación del nuevo sistema, tiene más sentido y es a menudo menos costoso subcontratar este trabajo por un periodo de 12 meses.
En el caso de outsourcing fuera del país, la decisión tiende a estar más orientada hacia el costo. Un programador experimentado en India o Rusia gana cerca de USD $9,000 al año, en comparación con $65,000 al año para un programador equiparable en Estados Unidos. Internet y la tecnología de comunicaciones de bajo costo han reducido en forma drástica los gastos y la dificultad de coordinar el trabajo de equipos globales en ubicaciones lejanas. Además de los ahorros en costo, muchas firmas de outsourcing fuera del país ofrecen activos y habilidades de tecnología de primera categoría.
Hace poco la inflación de los sueldos fuera de Estados Unidos mermó algunas de estas ventajas, por lo que algunos empleos han regresado a Estados Unidos. Sin embargo, existe una probabilidad muy alta de que en cierto punto en su carrera, tengas que trabajar con subcontratistas fuera del país o equipos globales. Es muy probable que su firma se beneficie del outsourcing si se toma el tiempo para evaluar todos los riesgos y se asegura de que el outsourcing sea apropiado para sus necesidades específicas. Cualquier compañía que use outsourcing para sus aplicaciones debe comprender por completo el proyecto; sus requerimientos, el método de implementación, los beneficios anticipados, los componentes del costo y la métrica para medir el desempeño.
Muchas firmas subestiman los costos para identificar y evaluar a los distribuidores de servicios de tecnología de la información, de cambiar a un nuevo distribuidor, de mejorar los métodos de desarrollo de software internos para estar a la par con los métodos de los distribuidores de outsourcing, y de monitorear a los distribuidores para asegurarse que estén cumpliendo con sus obligaciones contractuales. Las compañías tendrán que asignar recursos para documentar los requerimientos, enviar solicitudes de propuestas (RFP), los gastos de viáticos, para negociar contratos y la administración del proyecto.
Los expertos afirman que se requieren de tres meses hasta todo un año para transferir el trabajo completo a un socio fuera del país y asegurarse de que el distribuidor comprenda las actividades comerciales de su empresa en forma detallada.
El outsourcing fuera del país incurre en costos adicionales para hacer frente a las diferencias culturales que drenan la productividad y lidian con los aspectos de recursos humanos, como el despido o la reubicación de los empleados nacionales.
Todos estos costos ocultos reducen algunos de los beneficios anticipados del outsourcing. Las firmas deben tener mucho cuidado al usar un subcontratista para desarrollar u operar aplicaciones que le den cierto tipo de ventaja competitiva.
La siguiente figura muestra los escenarios del mejor y del peor caso para el costo total de un proyecto de outsourcing fuera del país. Muestra qué tanto afectan los costos ocultos en el costo total del proyecto. El mejor caso refleja las estimaciones más bajas en cuanto a los costos adicionales, y el peor caso refleja las estimaciones más altas de estos costos. Como puede ver, los costos ocultos aumentan el costo total de un proyecto de outsourcing fuera del país entre 15 y 57 por ciento. Incluso con estos costos adicionales, muchas firmas se beneficiarán del outsourcing fuera del país si administran bien el trabajo. En el escenario del peor caso, una firma de todas formas ahorraría cerca del 15 por ciento.