Se suele definir como sistema a un conjunto relacionado de partes que operan en combinación para obtener un resultado deseado. Este resultado se denomina propósito. Esto significa que esta compuesto de partes que se conectan de manera definida o determinada; y que cada parte ejecuta una tarea específica. Por ejemplo, un reloj.
Todo sistema tiene una estructura y una lógica interna, como también mecanismos que permite la comunicación entre los elementos constituyentes.
Para controlar un sistema, se debe trabajar con cada uno de las partes que lo constituyen, de manera “local”; y se debe trabajar en la forma en que se interrelacionan todas estas partes, de manera general. Siguiendo nuestro ejemplo, esta tarea la realiza el relojero.
En un sistema, la alteración de uno de los elementos afecta a todas las partes. Esto se llama globalismo o totalidad; y el conjunto final resultante es diferente. Es decir, se modifica el propósito.
Una de las estrategias mas usadas para el gerenciamiento y control de empresas, se basa en el correcto uso de la informática como herramienta principal, modelando un sistema donde “la gerencia es el relojero” y “las partes son los procesos de negocios” de la empresa.
El propósito de estos sistemas es producir negocios (la empresa existe para producir dinero) y toda la estructura se conforma para lograr este objetivo; por eso es importante entender algunos conceptos básicos de la teoría general de sistemas.
Las características principales de todos los sistemas (sistemas mecánicos, económicos, biológicos, etc.) son:
Todos los sistemas tienen parámetros en común:
Conociendo los conceptos más elementales de la teoría general de sistemas, podemos comenzar a introducirnos en sistemas informáticos de empresas.
Los sistemas empresariales tienen por propósito el modelado de sus procesos internos de producción, gestión y administración. Son sistemas mixtos, abiertos, que requieren de:
Se dice que el software para empresas tiene tres características esenciales
El software se desarrolla
Las diferencias entre la producción de un objeto y el desarrollo de un software son notables, y la falta de percepción de esto hace que muchos de los proyectos sean mal administrados.
El costo de un producto se centra en su fabricación; no así para el caso del software. Puede decirse que es económico de hacer, pero tiene grandes costos en sus procesos de ingeniería.
Existen aplicativos de software que se asemeja en su proceso de elaboración, a cualquier otro producto industrial, a los cuales puede imitar en su fabricación para lograr el éxito.
Las mayores similitudes se dan con aquellos que tienen un alto grado de innovación. Por ejemplo, aplicaciones para teléfonos inteligentes, software de gestión de componentes electrónicos, sistemas operativos, etc.
Al mencionar que el costo de fabricación es despreciable, hacemos referencia a la tendencia que considera la elaboración del software como el proceso de creación del ejecutable, que como todos sabemos es casi gratuito.
El verdadero costo del software empresarial se ubica mucho antes, en el proceso de creación y tiene que ver con los conocimientos, tiempos, personas y recursos que deben destinarse a él.
El software no se estropea
Los errores de software tienen distinto impacto y su manifestación no es igual que en el hardware. Generalmente, el software no es susceptible a los males del entorno que si provocan destrucción o deterioro en otros elementos.
La posibilidad de corrección de fallas en el software no lo deja exento de volver a sufrir problemas, ya sea por viejos errores no conocidos o por los nuevos creados en su mantenimiento correctivo.
Veamos, una vez más, que la necesidad de un software desacoplado es indispensable para evitar la introducción de elementos basura en el código. La alta cohesión de los componentes es vital para que el desacople se de cómo un proceso natural del desarrollo.
A medida que iteremos en el ciclo de vida aparecerán nuevos detalles de construcción, que pueden ser mejor identificados y ubicados en aquel software cuyos desarrolladores se han tomado el trabajo, desde un principio, de pensar en un diseño susceptible de ser mantenido.
La mayor parte del software se hace a medida
Casi todo el software empresarial se desarrolla para situaciones muy específicas y, por lo tanto, se hace a medida o se lo modifica para adaptarlo a la realidad.
No existen los componentes estándar a los que la gerencia pueda recurrir y de los cuales se tienen referencias y especificaciones aceptables.
Esto transforma el proceso de desarrollo en un conjunto de pasos casi artesanales donde un líder con mayor capacidad puede marcar una diferencia entre el éxito y el fracaso.
Actualmente, todas las metodologías y tendencias de desarrollo apuntan y preparan un escenario para tener un conjunto de componentes que pueda ser altamente reutilizable. El desarrollo orientado a objetos ha sido uno de los pilares de este tipo de premisas.
Estas características son los factores principales que provocan la alta tasa de fracasos en el desarrollo de software a nivel empresarial. Teniendo presente estos elementos, se corren menos riesgos y se puede alterar el circuito sin insertar posibles puntos débiles.
El software empresarial se caracteriza por sus grandes dimensiones y por la ejecución de múltiples tareas críticas. Son aplicaciones que tienen un conjunto muy amplio de comportamientos, que deben ser tratados particularmente y de manera global, en forma simultánea.
Para esta integración se deben realizar muchas tareas que caracterizan este tipo de desarrollos:
Una característica del software empresarial es que resulta sumamente difícil para el programador comprender todas las sutilezas de su diseño.
La capacidad intelectual humana se ve desbordada por los pequeños mecanismos necesarios existentes dentro de una empresa, imprescindibles para que el software funcione y lo haga realmente como los usuarios lo esperan.
Para minimizar los problemas que comienzan a aparecer ante estas dificultades, se han creado disciplinas que nos permiten analizar, gestionar, desarrollar y entregar sistemas de software de forma eficiente.
La ingeniería de software resuelve la problemática del programador; una ves que comprende el dominio del sistema.
La gestión de proyectos resuelve la problemática de la empresa para transmitir el dominio del sistema el equipo de desarrollo.
La complejidad inherente al software obliga a que el desarrollo se realice a través de un proyecto formal; liderado y gestionado con técnicas precisas y especializadas para el cumplimiento de metas.
El proceso de creación de software es cíclico. Todo software tiene su propio ciclo de vida, que se define en función del proyecto. Los ciclos dependen del paradigma de desarrollo seleccionado. Por ejemplo, el paradigma clásico de los años sesentas
El software empresarial se desarrolla de manera cíclica dentro de un proyecto. Este proyecto es el nexo operativo entre dos entidades: la empresa que requiere el sistema y la que lo desarrolla.
Cada ciclo de vida da por resultado “una versión del sistema”.
La diferencia entre el software, el proyecto y los procesos es notoria y fundamental.
Entenderlas es vital para el éxito de un software; porque las nuevas técnicas de ingeniería están pensadas para que en un mismo proyecto (mismos tiempos y misma inversión) las empresas resuelvan, simultáneamente, la formulación, elaboración y perfeccionamiento de sus procesos.
Los procesos son la vista de más alta abstracción bajo la cual se organizan todas las tareas de ingeniería para obtener software de calidad, como también todas las reglas de negocios que rigen al funcionamiento de los negocios de la empresa.
Los procesos son un mapa conceptual que indican sin ambigüedad “cómo se hacen las cosas” en la empresa.
Establecen mecanismos de trabajo y definen relaciones entre las diferentes áreas. Se usan para representar un modelo de “cómo hacemos las cosas actualmente” y evaluar “cómo quiero que se hagan a partir de este proyecto”.
El Proyecto de desarrollo incluye estos procesos y también otros que pueden tener que ver con tareas relacionadas, o ser procesos externos a la empresa, necesarios para el cumplimiento de metas.
El software empresarial tiene un ciclo de vida que esta dividido en fases. Cada fase debe ser completada mediante la aplicación de tareas, técnicas y herramientas de ingeniería de software.
Existen innumerables metodologías para gestión de proyectos y ejecución del ciclo de vida del software.
Cada una posee sus ventajas y desventajas; y conviene usar lo mejor de cada una, en función de lo que más le convenga al proyecto en general. Pero lo más importante a destacar es la necesidad de establecer un proyecto de desarrollo de software.
El éxito de un software empresarial depende estrictamente de
Desarrollar sistemas para empresas implica planificar, organizar y controlar una gran cantidad de recursos de manera simultanea; recursos que generan gastos; y que requieren de una inteligente y firme coordinación durante el desarrollo.
Las actividades de desarrollo se contraponen con las operaciones normales de la empresa, agregándole a esto que el recurso más valioso de estos proyectos, es el tiempo de la gerencia invertido en transformar know how interno en elementos constitutivos del sistema.
Controlar el desarrollo, simultáneamente con las actividades cotidianas de la empresa, requiere de habilidades técnicas variadas, y de un gerenciamiento estratégico eficiente, que deben convivir durante todo el proceso, en perfecta armonía entre las partes participantes.
Se dice que el éxito de un proyecto se corresponde con la consecución de sus objetivos de plazos, coste, tiempo y calidad. Por suerte, la gestión de proyectos es hoy en día (casi) una ciencia exacta donde no hay mucho por inventar. Solo hay que seguir ciertos lineamientos, establecidos y mas que demostrados como eficientes.
Existen incontables herramientas y bibliografía a consultar. Se han desarrollado estándares muy eficientes. La industria ha invertido años de investigación y desarrollo buscando la disminución de riesgos de un proyecto.
A la fecha, podemos decir que en proyectos de desarrollo de sistemas empresariales, el éxito reside en tres puntos esenciales.
Porque es en la “Gestión por Procesos” donde se resumen todas las herramientas y técnicas que unifican estos tres puntos.