Factores que Impactan el Costo del Software y Principios de Diseño de Interfaces

Enviado por Programa Chuletas y clasificado en Otras materias

Escrito el en español con un tamaño de 4,23 KB

Factores Clave en los Costos de la Evolución del Software

Los costos relativos de mantenimiento y de nuevo desarrollo varían de un dominio de aplicación a otro. En sistemas empresariales, los costos de mantenimiento son a menudo comparables con los costos de desarrollo inicial. Por ello, invertir esfuerzo en el diseño y la implementación del sistema es una estrategia efectiva para reducir los costos de cambios futuros. En general, resulta más costoso agregar funcionalidad después de que un sistema está en operación que implementar la misma funcionalidad durante el desarrollo. Las razones principales son las siguientes:

1. Estabilidad del equipo

Después de que un sistema se entrega, es normal que el equipo de desarrollo se disuelva y sus integrantes trabajen en nuevos proyectos. El nuevo equipo o los individuos responsables del mantenimiento no comprenden el sistema ni los fundamentos de las decisiones de diseño originales. Esto les obliga a invertir tiempo en comprender el sistema existente antes de poder implementar cualquier cambio.

2. Prácticas de desarrollo deficientes

Generalmente, el contrato para mantener un sistema es independiente del contrato de desarrollo original y puede otorgarse a una compañía diferente. Este factor, junto con la falta de estabilidad del equipo, elimina el incentivo para que el equipo de desarrollo escriba software mantenible. Si el equipo puede tomar atajos para ahorrar esfuerzo durante el desarrollo, es probable que lo haga, aunque esto dificulte las modificaciones futuras del software.

3. Habilidades del personal

En muchos casos, se subestima la importancia del mantenimiento, asignando esta tarea a personal sin la experiencia necesaria. Idealmente, debería ser personal experto quien se encargue de esta labor, analizando qué se debe modificar, qué aspectos mejorar y cuáles serán los costos asociados, buscando siempre optimizarlos.

4. Antigüedad y estructura del programa

A medida que los programas envejecen, su comprensión y modificación se vuelven más difíciles. Algunos sistemas se desarrollaron sin técnicas modernas de ingeniería de software; es posible que nunca hayan estado bien estructurados y quizá se optimizaron para la eficiencia en lugar de la comprensibilidad. Además, la documentación del sistema puede haberse perdido o ser inconsistente.

Las 8 Reglas de Oro de Shneiderman para el Diseño de Interfaces

Las ocho reglas de oro de Ben Shneiderman son principios fundamentales para el diseño de interfaces de usuario:

  1. Buscar siempre la coherencia: Un buen software debe presentar una estructura de comandos, pantallas, menús y terminología coherentes en cualquier situación.
  2. Permitir el uso de atajos: Ofrecer shortcuts a los usuarios frecuentes para reducir el número de interacciones y agilizar el uso, mediante abreviaturas, teclas de función, comandos ocultos, etc.
  3. Ofrecer retroalimentación informativa: Para cada acción del usuario, el sistema debe proporcionar una respuesta clara e informativa.
  4. Diseñar diálogos que tengan un fin: Al completar una secuencia de acciones, el sistema debe comunicar al usuario que ha finalizado la tarea, proporcionando una sensación de cierre.
  5. Facilitar un manejo simple de los errores: Diseñar el sistema para prevenir errores graves. Si un error ocurre, el sistema debe detectarlo y ofrecer mecanismos sencillos y comprensibles para su resolución.
  6. Permitir deshacer las acciones con facilidad: Esta funcionalidad reduce la ansiedad del usuario, ya que sabe que sus acciones son reversibles.
  7. Fomentar un centro de control interno: Los usuarios experimentados desean sentir que tienen el control del sistema. El diseño debe promover que sea el usuario quien inicie las acciones y no el sistema.
  8. Reducir la carga de la memoria a corto plazo: Debido a las limitaciones de la memoria humana, las interfaces deben ser simples, presentando la información de manera clara y organizada para minimizar el esfuerzo cognitivo del usuario.

Entradas relacionadas: