1.1 Conceptos generales
Para empezar, hay que tener claros algunos conceptos que analizarás en este curso. Según la Real Academia de la Lengua Española (2014), software es el “conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en una computadora”. En otras palabras, es la parte que permite aprovechar los recursos de una computadora para realizar diferentes acciones.
El software es elaborado por un equipo de personas, al que se le conoce como equipo desarrollador. Este equipo lleva a cabo un proyecto al que se le asignan recursos determinados (tiempo y presupuesto), con el objetivo principal de cubrir alguna necesidad de un cliente, un grupo de usuarios o una empresa. El tamaño del proyecto dependerá de la cantidad de necesidades o requerimientos, el tiempo asignado y el presupuesto disponible. Es posible que el proyecto se lleve a cabo para un cliente en particular o bien se cree un software de uso genérico que pueda ser utilizado por más de un cliente.
El desarrollo del software debe estar basado en los requerimientos del cliente o usuario final, es decir, en una necesidad claramente expresada o bien en la interpretación de una necesidad del cliente por el equipo de desarrollo. Se hace esta distinción porque habrá ocasiones en las que el mismo cliente no tiene claras las condiciones o capacidades que necesita para resolver un problema o alcanzar un objetivo. En ese caso será trabajo del analista encontrar lo que el cliente o persona interesada (stakeholder) verdaderamente necesita.
En un proyecto de desarrollo intervienen varios actores, que son responsables de diferentes partes del proyecto. Algunos de éstos son los siguientes:
Haz clic en cada uno de los actores para revisar su descripción
En opinión de Pressman (2010) en algunos proyectos de software el usuario final y el cliente son la misma persona. Sin embargo, también pueden ser personas diferentes.
Un cliente es la persona que toma la decisión de crear un proyecto de desarrollo de software, que determina de forma general los objetivos y metas que debe cumplir; incluso quien pone los recursos necesarios para el proyecto.
Un usuario final es la persona que estará operando el producto de software ya terminado. En la mayoría de los proyectos de desarrollo de software, los usuarios finales determinan los detalles operativos que deberá realizar el software para cumplir con su propósito.
Según Pohl y Rupp (2011) la ingeniería de requerimientos es un enfoque sistemático y disciplinado para la especificación y gestión de requisitos que debe tener el software que se desarrollará.
Sus principales actividades son las siguientes:
- Obtención: conocer los requisitos del software del cliente y los stakeholders, aplicando diversas técnicas de recopilación de información.
- Documentación: detallar las funciones y reglas de operación necesarias, de tal forma que no haya riesgo de tergiversación de requerimientos.
- Negociación:
- Lograr el consenso de los stakeholders acerca de la prioridad, inclusión o exclusión de requerimientos.
- Acotar el alcance del proyecto de desarrollo de software en relación a las prioridades y recursos (tiempo y presupuesto) asignados al proyecto, de tal forma que aclare las expectativas al cliente.
- Determinar las métricas y atributos que tendrá el software como mecanismo de validación y evaluación de la calidad del producto.
- Gestión:
- Administrar los posibles cambios de propuestos por las personas interesadas (stakeholders) o por solicitud del equipo de desarrollo en relación complementar la descripción que evite errores de interpretación.
- Asegurar la consistencia de las especificaciones y requerimientos.
- Reducir al mínimo el riesgo de entregar un sistema que no cumpla con los deseos y necesidades del cliente.
1.2 Estudio de factibilidad / viabilidad
La factibilidad de un proyecto es una actividad que debe ser realizada antes de iniciar el desarrollo del sistema y tiene por objetivo revisar a detalle si es posible llevar a cabo el proyecto.
“El estudio de factibilidad determina si se espera que el sistema propuesto sea una buena inversión, si está disponible la tecnología necesaria para el sistema, si los especialistas en sistemas de información de la firma pueden operarlo y si la organización puede manejar los cambios introducidos por el sistema” (Laudon y Laudon, 2012).
Esta actividad es parte de la planeación del proyecto y es la oportunidad que tiene la organización de identificar los posibles riesgos a los que se puede enfrentar, antes, durante y después de realizar la construcción del software. Los resultados de esta evaluación serán si es factible o no es factible.
Factible: Se determina que un proyecto es factible cuando se han calculado los recursos necesarios (tiempo, presupuesto y personal) tanto para llevar a cabo su construcción, como la implementación y soporte.
No factible: Un proyecto de desarrollo de software puede no ser factible en un momento determinado, y el cliente puede decidir revisarlo en un futuro, con una situación diferente a la actual. Cuando un proyecto no es factible se dice que los riesgos de llevarlo a cabo son tan altos que podría llevar el proyecto a un fracaso inminente, con todo lo que ello implica: Gasto innecesario de recursos (económicos y tiempo), desgaste del equipo de trabajo, impacto psicológico en el personal involucrado.
El estudio de factibilidad o viabilidad es un análisis que se realiza bajo tres dimensiones: técnica, operativa y económica.
Pasa el puntero sobre cada dimensión para revisar en qué consiste.
Factibilidad técnica
La factibilidad técnica es un análisis de la capacidad tecnológica que tiene la empresa para llevar a cabo el proyecto. Consiste en realizar un levantamiento de la tecnología existente en la organización (equipamiento y licenciamiento de software) para ser utilizada en el proyecto; analizar si será necesaria una actualización tecnológica o la adquisición de nueva infraestructura para el desarrollo del software (que puede ser en compra o en arrendamiento).
Factibilidad operacional
- Este análisis determina si la organización cuenta con personal suficiente y con las competencias necesarias para operar, mantener y realizar ajustes necesarios al software. Puede que se requiera la contratación de personal extra o bien que el personal existente sea capacitado para lograr administrar el software. Cabe aclarar que esta capacidad operativa puede ser un servicio subrogado a un tercero
- Tanto la factibilidad técnica como la factibilidad operativa pueden generar costos que deben ser tomados en cuenta y que se agregan al costo directo del proyecto de desarrollo de software.
Factibilidad económica
En esta revisión se analizan el alcance del proyecto, los beneficios que traerá para el negocio, el tiempo estimado de desarrollo, el presupuesto o inversión requerida y finalmente los medios de financiamiento. En ésta participan el director general o dueño de la empresa, el director de finanzas y el project manager o administrador del proyecto, que conforman un comité de evaluación financiera.
Un proyecto de desarrollo de software puede traer varios beneficios a la empresa. Algunos de éstos son los siguientes:
- Eficiencia operativa: le permite a la empresa aprovechar mejor los recursos que ya tiene, suministrar insumos eficientemente o incluso reducir costos de operación.
- Integración informativa: es decir, tener a la mano información que permita tomar decisiones acertadas y dar un mejor servicio al cliente.
- Actualización tecnológica: consiste en hacer frente a los nuevos retos que traen consigo las tecnologías de la información.
- Generar valor al cliente: esto es, agregar valor a los productos y servicios existentes, para que provoquen un diferenciador competitivo.
Estos beneficios pueden ser analizados por el comité de evaluación financiera para establecer el costo / beneficio de un proyecto de software. Si los beneficios superan por mucho el costo, entonces se pasa a una segunda etapa: Análisis de financiamiento y retorno de la inversión.
Fondos de inversión y ROI (Return of Investment)
Cualquier tipo de proyecto requiere de una fuente de recursos financieros y la seguridad de que será una inversión y no un gasto. Por lo tanto se deben analizar alternativas de financiamiento, ya sea fondos propios, crédito bancario o crédito del proveedor.
El retorno de la inversión suele ser un estimado basado en el incremento de la productividad (ahorros de horas-hombre por una eficiencia operativa o reducción de errores) o bien mayores ingresos por nuevos clientes.
Una vez realizado todo el análisis anterior, se procederá a documentar el resultado del estudio de factibilidad/viabilidad. Es importante que se especifiquen con claridad las recomendaciones generadas por los diferentes comités de evaluación. Esta información puede ser tomada en cuenta para otros proyectos de software similares y podrían generar un estándar de análisis.
El estudio de factibilidad se realiza para un proyecto de desarrollo a la medida (que puede ser desarrollado con recursos propios o a través de un tercero) o bien para la adquisición de software comercial que contiene las mejores prácticas operativas.
1.3 Adquisición del software
Las organizaciones tienen dos opciones a la hora de planear el desarrollo de un software: hacer un sistema de información basado en computadoras a la medida de sus necesidades o bien adquirir licencias de un software, que prometen haber incluido las mejores prácticas para llevar a cabo los procesos internos de administración con pocas adecuaciones.
Si deciden realizar un software a la medida, pueden hacerlo in-house (con recursos propios) o contratar a un tercero al que se le asigne el proyecto. En cambio si deciden adquirir el software, lo que requieren es evaluar con sumo cuidado los detalles técnicos de implementación, los servicios de soporte y las funciones que abarca.
En el mercado existen un sinnúmero de aplicaciones o sistemas completos a los que se les han dado las mejores prácticas operativas. Muchas organizaciones los prefieren porque evita idear una forma de operación que las haga perder tiempo y las desvíe de sus propias metas. Por ejemplo, imagina una empresa dedicada a la fabricación de autos de lujo. Su principal preocupación es enfocar toda su energía y creatividad en producir autos con altos estándares de calidad. Lo que menos espera es que aparezcan problemas internos de administración de la información por la falta de un sistema robusto y que los distraiga de su principal objetivo.
Aspectos a considerar para adquirir un software
Para tomar una adecuada decisión al adquirir un software es necesario evaluar la siguiente información:

Características del proveedor
- Prestigio y reputación a nivel nacional o internacional.
- Cartera de clientes a los que atiende.
- Tiempo que ha estado dando soporte a sus clientes.
- Ofrece facilidades de pago o financiamiento.
- Ofrece garantías de instalación y soporte
- Se apoya de un tercero para la implementación.
Condiciones de la implementación
- Tiempo del proyecto de implementación.
- Costos de la implementación.
- Costos de mantenimiento (renovación de licencias).
- Soporte en sitio y soporte remoto especializado.
- Tiempo de atención (telefónica, correo
electrónico o registro en su página web).
- Considera ofrecer capacitación y entrenamiento
al personal operativo.
- Capacidad de usuarios concurrentes y activos.
- Condiciones del SLA (Service Level Agreement).
- Incluye la migración de datos de sistemas existentes.
Características del software
- Abarca todas las funciones que busca la organización.
- Es un software especializado al giro de la empresa.
- Software abierto: existe la posibilidad de hacer algunas adecuaciones posteriores.
- Software cerrado: se vende en términos de WYSIWYG.
- Flexibilidad en la integración con sistemas existentes de la organización.
- El sistema se vende por módulos
La organización podría tomar una decisión informada, si realiza un ejercicio de evaluación de criterios con base en los aspectos antes mencionados, asignándole cierta ponderación a cada uno según lo considere más crítico para su negocio.
En el siguiente ejemplo Laudon y Laudon (2012) hacen una modelo de puntuación para elegir un sistema de planificación de recursos empresariales (o ERP por sus siglas en inglés), considerando la cobertura de las funciones del sistema en relación con los procesos operativos internos de la organización:

Fuente: Laudon, K. y Laudon J. (2012). Sistemas de información gerencial.