martes, 2 de julio de 2013

Arquitectura de Software y Agilidad












ARQUITECTURA DE SOFTWARE Y AGILIDAD
                                  











INTEGRANTES
Álvaro Pinilla
Eduardo López
Alexis Miranda

DOCENTE
Erwin Fischer

CURSO - SECCION
Tecnología Computacional e Informática

FECHA
01-07-2013



Contenido





Introducción

 

En el siguiente trabajo se investigará sobre “arquitectura de software y agilidad”, tema designado a nuestro grupo. Este trabajo corresponde a la prueba número dos del curso “Tecnologías Computacionales e Informáticas”.
Nos enfocaremos principalmente en el artículo publicado por el Sr. Rodrigo Salinas, “Una nueva arquitectura”, el cual ha sido trabajo en clases. Trataremos temas como: cuál es la arquitectura correcta que debe tener un software,  las buenas prácticas para realizar esto, hacia dónde va el enfoque hoy en día, entre otros. Con el objetivo de conocer y entender un poco más lo que realmente significa el término de “agilidad”, y su relevancia en la arquitectura de software, así como también mejorar nuestras capacidades al momento de enfrentarnos al desarrollo de algún software el día de mañana.


Una nueva arquitectura.


Este es el nombre de un artículo publicado por el Sr. Rodrigo Salinas, en el cual nos enfocamos principalmente para realizar nuestra investigación. Gracias al prestigio que este señor ha ganado con el tiempo está realizando constantemente capacitaciones sobre este tema, en el cual recalca como primer punto que no existe ninguna “nueva arquitectura”.

1-   Nombres nuevos, conceptos antiguos.

Como se mencionaba anteriormente, no existe en realidad una “nueva arquitectura, lo que hay es simplemente una mayor claridad respecto de cómo aplicar correctamente conceptos teóricos que llevan por lo menos dos décadas tratando de imponerse en la mente de los profesionales informáticos, desgraciadamente aún no se logra comprender y aceptar de forma esperada estos nuevos conceptos.
Una arquitectura correcta de software debe “gritar” o hacer saltar a la vista su tema principal. El “plano” de cada sistema debe hacer que salte a la vista los elementos más importantes de sus casos de uso. Para lo cual debemos hacer uso de un lenguaje semántico adecuado, como DDD o UML por ejemplo, las principales entidades, junto con sus más importantes operaciones, estarían ubicadas dentro de un modelo que mostrara claramente su relación con el contexto donde existieran.

2-   Qué no debería afectar tu arquitectura.

Lo primero que se debe tener claro es  que lo más importante en cualquier proyecto de desarrollo de software es poder definirlo a un nivel de abstracción independiente de motores de bases de datos, de sistemas operativos, lenguajes de programación o frameworks. Ninguna de estas cosas debe de importar al momento de definir una arquitectura.
La tendencia natural de las personas que trabajan en el área de la informática es “enamorarse” de los frameworks, lenguajes, tecnologías y paradigmas. Aprendemos un conjuntos de herramientas con las que logramos tener un cierto éxito en algún proyecto, para luego, cuando se nos presenta un nuevo proyecto buscar hacer uso de las mismas herramientas una y otra vez. No obstante este no viene siendo el mayor problema, el problema es que tendemos a diseñar nuestras soluciones en función de dichas herramientas.

El enamoramiento tecnológico se produce principalmente por dos razones:
-          Profesionales jóvenes descubren algún framework o herramienta que les permite crear todo aquello que no tenían idea de cómo hacerlo. Se descubren herramientas que nos permiten hacer todo más rápido, de forma más simple y con “buenos” resultados y se hace muy difícil mirar a otro lado.
-          Profesionales con más experiencia se preocupan más por el resto del “ciclo de vida” de la aplicación. Se preocupan que vayan a encontrar, en el mercado, profesionales no muy costosos que puedan mantenerlas, de contar con empresas serias que entreguen un buen soporte. Por lo tanto se seleccionan herramientas ya probadas y que llevan más tiempo implementándose, ya que esto las hace más “confiables”
Lo que termina por ocurrir es que algunas de estas dos visiones mencionadas anteriormente terminan interponiéndose en el camino de la elección de la mejor arquitectura para el desarrollo del software.

3-   Considera la historia.

La llegada del internet revoluciono a las empresas, estas empezaron a desarrollar una capa de aplicaciones para la web, con esto se llegaron a probar diversas tecnologías y técnicas hasta encontrar aquellas que más les acomodaban. Estas aplicaciones para la Web fueron, durante al menos los últimos 10 años, un mundo aparte dentro de TI en la mayoría de las empresas, no sintieron nunca que la Web en realidad les iba a tocar el core de sus aplicaciones ya existentes. Siguieron coexistiendo ambos mundos y evolucionando por separado.

4-   Los nuevos clientes/usuarios y la transmedia.

Debemos ser capaces de entender que hoy en día los clientes ya se sienten usuarios y no solo simples clientes. Del mismo modo que años atrás se hizo evidente la necesidad de cada empresa por poseer un sitio en la Web, hoy es mal mirado el que alguna empresa no tenga aplicaciones de auto atención disponibles en la Web. Los clientes lo que quieren es ser usuarios de estas aplicaciones, quieren contar con funcionalidades de consulta de precios o de contratación de servicios o productos, quieren consultar estados de cuenta, quieren ver sus detalles de consumo, quieren pagar sus cuentas, quieren comprar y vender, quieren opinar, quieren consultar bases de datos de conocimiento para descubrir cómo resolver posibles problemas con los productos o servicios contratados. Estos nuevos clientes/usuarios quieren todos estos nuevos servicios disponibles en sus PC’s del trabajo, en sus casas, en sus plasmas y en sus dispositivos móviles. Lo quieren ahora y lo quieren ya.

La transmedia, según Martin Fowler, se refiere a la experiencia del usuario que hace uso de distintos dispositivos, en diferentes contextos, de una misma aplicaciones, ya sea un su escritorio, como en su Tablet o su Smartphone, estos deben ser capaces de proporcionar una experiencia similar con la aplicación, obviamente propias del contexto en el que se encuentre el usuario.

Tenemos hoy en día un cliente/usuario que quiere funcionalidad sobre la Web, que se le proporcione la sensación de “yo tengo el control”. Y en esto tiene razón, vivimos en un mundo globalizado y tecnológico, por lo tanto es justo esperar que los proveedores tradicionales se pongan a la altura de los tiempos modernos.

5-   La arquitectura correcta.

Hoy en día podemos ver sitios Web con funcionalidad pobre e insuficiente, son lentos y a menudo se caen de las maneras menos elegantes posibles, esto debido a que si bien son conscientes de que necesitan de estas funcionalidades en sus Web, sucede que en ambiente de producción han descubierto de que no son capaces de ofrecer un nivel de desempeño aceptable.
Esto se debe a que su arquitectura modular se interpone como una gran limitante, se estima que durante los últimos 15 años se han venido desarrollando el software de negocios bajo premisas y prioridades equivocadas. Se han descuidado dos principios básicos para que una arquitectura sea verdaderamente escalable, fácilmente mantenible y altamente extensible.

a) Arquitectura armada a partir de bloques de abstracción adecuados: Hasta hoy en día la abstracción que más se maneja en la mayoría de las empresas es la DATA, y es un error que la DATA sea el centro del universo.

Ni muy cerca de la DATA: La lógica de negocios muchas veces se ejecuta en el lugar más rápido pero a su vez el menos escalable de todos, el servidor de la Base de Datos. El gran problema de estas BD relacionales es que estas no son capaces de sacarle provecho a la escalabilidad horizontal, y hoy en día se sufren las consecuencias, de toda esa cantidad de información que se ha almacenado por años en las maquinas encargadas de las BD, constantemente se tiene que estar invirtiendo en servidores capaces de atender un nivel de demanda altísimo, y en ocasiones, con poco éxito.
Si sabemos que nuestros servidores de BD son limitados, deberíamos estar preocupados de quitarles responsabilidad, pero ¿qué hacemos entonces con la lógica de negocios?, ¿Dónde la llevamos? Debemos llevarlas a modelos de dominio que pueden ser ejecutados en forma distribuida y replicada en granjas de servidores o Clouds de máquinas baratas y fácilmente administrables.

Ni muy cerca del usuario: No debemos de situar la lógica del negocio en el mismo frontend de las aplicaciones, ni tampoco repetir una y otra vez la lógica del dominio en incontables lugares. Esto puede llevar a la sobre exigencia de una máquina y, en otros casos, se dificulta la mantenibilidad de las reglas del negocio. Cuando TI teme realizar cambios debido a que no conoce los reales impactos, quien sufre es el negocio directamente ya que no cuenta con la versatilidad necesaria para mantenerse en el mundo competitivo en el que nos encontramos hoy.

Entonces ¿Cuál debería ser nuestro centro del universo? Existe un nivel de abstracción mucho más útil, escalable, extensible y reutilizable que tan solo tablas y procedimientos almacenados. Es la abstracción de entidades junto a la lógica encapsulada en ellas, el conjunto de estas abstracciones se conoce como “Modelo del Dominio”, este es un concepto antiguo, pero aun no nos acostumbramos realmente a trabajar a este nivel de abstracción a escala corporativa.

Domain-Driven Desing: Hoy en día es el approach a la Ingeniería de Software que mejor guía ofrece respecto de cómo representar el conjunto completo de sistemas computacionales en una empresa, bajo un modelo de abstracción orientado a las principales entidades y contextos de un dominio.

b) Conceptual y tecnológicamente independiente: Ya vimos que una arquitectura correcta se arma a partir de bloques de abstracción adecuados. El segundo principio básico a cumplir es el desacoplamiento conceptual y tecnológico de nuestra Arquitectura. Los aspectos fundamentales que debe proporcionar un estilo de arquitectura son los siguientes:
- Independiente de frameworks.
- Testeable.
-Independiente de la interfaz de usuario.
-Independiente de la base de datos.

Cabe recalcar de entre todos estos aspectos fundamentales, la importancia de diseñar y construir unidades de software en conjunto con test unitarios automatizados que las ejecuten.

Arquitectura orientada a servicio de cliente (SOA).

 

Primero que todo ¿Qué es SOA?: Es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio.
Permite la creación de sistemas de información altamente escalables que reflejan el negocio de la organización, a su vez brinda una forma bien definida de exposición e invocación de servicios (comúnmente pero no exclusivamente servicios web), lo cual facilita la interacción entre diferentes sistemas propios o de terceros.

Al contrario de las arquitecturas orientado a objetos, las SOAs están formadas por servicios de aplicación débilmente acoplados y altamente interoperables. Para comunicarse entre sí, estos servicios se basan en una definición formal independiente de la plataforma subyacente y del lenguaje de programación. La definición de la interfaz encapsula (oculta) las particularidades de una implementación, lo que la hace independiente del fabricante, del lenguaje de programación o de la tecnología de desarrollo (como Plataforma Java o Microsoft .NET). Con esta arquitectura, se pretende que los componentes de software desarrollados sean muy reutilizables, ya que la interfaz se define siguiendo un estándar; así, un servicio C# podría ser usado por una aplicación Java. En este sentido, ciertos autores definen SOA como una Súper-Abstracción.

Cuando los profesionales de la informática se dieron cuenta de que los mundos del Backoffice y la Web debían comunicarse, empezó la fiebre de SOA. De hecho casi todo el mundo vivió prácticamente lo mismo:
Partieron implementando los populares Web Services SOAP (Simple Object Access Protocol). Esta tecnología les permitió a todos rápidamente hacer que sus mundos interoperaran. Como suele pasar a toda solución simple y económica, evidentemente abusamos de ella. Al poco tiempo pulularon por todas partes estor servicio y se perdió su control. Muchos ya no sabían que realmente hacia un determinado servicio o como reutilizarlo.  

La preocupación general ahora paso a ser la gubernabilidad de los servicios (SOA Governance). Como administrar sus ciclos de vida desde un único lugar. Todos empezaron a mirar a los Enterprise Service Buses de IBM, Oracle y en unos cuantos casos a Microsoft como la solución a todos sus problemas, de alguna u otra manera las empresas lograron controlar sus Web Services.

No obstante superados estos problemas, apareció uno mucho mayor, que las demandas de los clientes estaban en alza respecto a este tema, lo que tratamos anteriormente en el punto “Los nuevos clientes/usuarios y la transmedia”.




No podemos hablar de Arquitectura de Software Corporativo hoy en día sin explicar su relación con el Movimiento Ágil. Una de las personas no informáticas que más ha influenciado el actual pensar de la Ingeniería de Software, o del diseño en general, es Christopher Alexander. Él ha propuesta teorías originales aplicables al diseño y a la arquitectura. Las ideas de este arquitecto civil austriaco han proporcionado un fundamento teórico potente para nuevas prácticas relacionadas con la construcción de software. A diferencia de las metodologías tradicionales donde el software es diseñado completo al principio, para luego ser construido a partir de la documentación del diseño, estas nuevas prácticas apuntan a ciclos incrementales, orgánicos y coherentes de construcción de software, con una fase de diseño por cada una de estas iteraciones. Debemos ser capaces de diferenciar entre un diseño incremental versus uno iterativo.

El movimiento ágil ha transformado completamente la manera de hacer Arquitectura de Software, este movimiento no ha eliminado el diseño, lo que ha eliminado es la ilusión de que es posible diseñar completamente un sistema antes de empezar su construcción. La arquitectura ya no es una especificación a priori, sino una visión de un estado futuro del sistema.

Esta nueva visión sirve de guía para cada iteración de diseño-construcción-entrega. Se habla de iteración porque, especialmente en un sistema complejo, no es práctico pretender realizar un único salto desde el estado inicial hacia el estado final deseado. Debe haber pasos o estados intermedios pequeños pero completos a la vez. En cada uno de estos pasos o ciclos se añade al sistema funcionalidad útil y verificable por el usuario, al empezar el siguiente ciclo, diseñaremos a partir de lo anterior que construimos, tomando en consideración las lecciones aprendidas, realizando los ajustes necesarios, pero jamás olvidando la visión que nos proporciona la Arquitectura del Sistema que nos dice hacia donde nos dirigimos.

El diseño evolutivo, cuando es enmarcado en una estricta disciplina y es realizado por todo el equipo de desarrollo e conjunto con testers y usuarios, produce éxito.

Agilidad en las empresas.

 

Los críticos del desarrollo ágil suelen tener la opinión que enfoques iterativos como Scrum no pueden ser aplicados a grandes empresas, pues consideran que los proyectos de software de estas requieren de cientos de personas que sólo pueden gestionarse en una estructura jerárquica centralizada.

Sin embargo, a pesar de esta opinión existen ejemplos de grandes empresas que han aplicado con éxito la agilidad, uno de esos casos es el de Amazon.com

Amazon comenzó como una sola aplicación comunicándose con un Backend, pero eventualmente creció hasta convertirse en una plataforma de servicios totalmente distribuida y centralizada, prestando servicios a diferentes aplicaciones.

Hoy en día, la arquitectura de Amazon tiene bajo grado de acoplamiento y está construida alrededor de servicios. Está arquitectura orientada a servicios es la que les permite construir muchos componentes de software, de forma rápida e independiente.

La arquitectura de Amazon ha crecido hasta tener cientos de servicios y múltiples servidores de aplicaciones. Estos servidores de aplicaciones son los que proporcionan estos servicios. Por ejemplo, la aplicación que presenta la página Amazon.com es uno de esos servidores de aplicaciones. Asimismo, existen otros servidores, específicamente: Servidores para interfaces de servicios web (Web Servers), la aplicación de servicio al cliente y la interfaz para vendedores.
 

Conclusiones.


Para todo lo que tenga que ver con el Software Estratégico de una compañía, aquel que soporta las funciones de negocio que la diferencian de su competencia, es imprescindible que desde ya esa empresa, si pretende ser líder en su rubro de aquí a 5 años, esté invirtiendo en evolucionar su Arquitectura actual hacia lo que hemos definido en este post como una Arquitectura Correcta.

Correcta no desde el punto de vista académico solamente, no por moda o por capricho, sino por los evidentes beneficios prácticos que he intentado explicar brevemente en este post: mejorar el desempeño al aprovechar el escalamiento horizontal (más máquinas pero a la vez más económicas), reducir costos al desarrollar y mantener los sistemas (modelos de dominio centralizados más simples de modificar y extender) y facilitar la implementación de nueva funcionalidad al separar responsabilidades en el software a nivel corporativo.

Todo esto sin olvidar que la Arquitectura no es una especificación congelada sino una Visión que evoluciona en el tiempo, con la participación colectiva de todas las personas involucradas en los procesos del negocio: desarrolladores, testers, ejecutivos y usuarios. Todos trabajando para la felicidad de estos últimos.


Propuestas de Preguntas.


1)     ¿Cuál es el rol del arquitecto de software, en agilidad?
R: Dentro de la agilidad este rol se pierde un poco, ya que el equipo completo debe estar integrado dentro de este proceso, aportando ideas y mejoras en la App. Deben aportar con nuevas tecnologías que permiten la escalabilidad de la aplicación y la fácil integración de nuevos cambios dentro del software, sin la necesidad de hacer refactorización, lo que puede resultar costoso.

2)      ¿Es necesario “inventar” una arquitectura de software nueva para cada sistema de información?
R: No, lo habitual es adoptar una arquitectura conocida en función de sus ventajas e inconvenientes para cada caso en concreto. Dado esto existen ciertas arquitecturas universales como: Cliente-servidor, modelo vista y controlador, arquitectura de tres niveles, entre otras.

3)      ¿SOA es lo mismo que Cloud Computing?
R: Aunque hay algunas ideas que subyacen en la definición de ambos términos, como el uso del concepto de servicio o la idea de la independencia de localización de los mismos, queda claro que los ámbitos de aplicación son distintos, relacionándose SOA con el ámbito del desarrollo de aplicaciones TI con claro significado de negocio, mientras que Cloud se refiere más a la forma de ofertar recursos TI a cliente final, a su entrega, provisión, y posterior gestión y operación.


Referencias.

 






Siglas.


DDD: Domain-driven desing; Diseño orientado al dominio.

UML: Unified Modeling Language; Lenguaje de Modelado Unificado.

TI: Tecnologías de información.

SOA: Service-oriented architecture; Arquitectura orientada al servicio.





miércoles, 15 de mayo de 2013

Estandar BPMN

¿Que es BPMN?

Business Process Modeling Notation o BPMN (en español Notación para el Modelado de Procesos de Negocio) es una notación gráfica estandarizada que permite el modelado de procesos de negocio, en un formato de flujo de trabajo (workflow). BPMN fue inicialmente desarrollada por la organización Business Process Management Initiative (BPMI), y es actualmente mantenida por el OMG (Object Management Group), después de la fusión de las dos organizaciones en el año 2005. Su versión actual, a abril de 2011, es la 2.0.
El principal objetivo de BPMN es proporcionar una notación estándar que sea fácilmente legible y entendible por parte de todos los involucrados e interesados del negocio (stakeholders). Entre estos interesados están los analistas de negocio (quienes definen y redefinen los procesos), los desarrolladores técnicos (responsables de implementar los procesos) y los gerentes y administradores del negocio (quienes monitorizan y gestionan los procesos). En síntesis BPMN tiene la finalidad de servir como lenguaje común para cerrar la brecha de comunicación que frecuentemente se presenta entre el diseño de los procesos de negocio y su implementación.
Actualmente hay una amplia variedad de lenguajes, herramientas y metodologías para el modelado de procesos de negocio. La adopción cada vez mayor de la notación BPMN como estándar ayudará a unificar la expresión de conceptos básicos de procesos de negocio (por ejemplo procesos públicos y privados, orquestación, coreografía, etc.) así como conceptos avanzados de modelado (por ejemplo manejo de excepciones, compensación de transacciones, entre otros).

 ¿Por que es importante el estandar BPMN 2.0?

El papel del BPM exige un nuevo lenguaje común en el mundo de los negocios y el TI (Tecnología de la información), que es BPMN (Business Process Modeling Notation) el estándar de OMG.
BPMN es lo suficientemente simple y fácilmente comprensibles para ser aplicado en cualquier negocio, sin embargo, es suficientemente rico como para apoyar la aplicación ejecutable, sin cambiar el metamodelo subyacente. Como resultado, se ha convertido en el estándar de facto o la dirección del futuro de BPM Suite los vendedores que van de Lombardi, Savvion, y Apia, a TIBCO, Oracle, IBM y SAP. Por lo tanto, la comprensión de cómo modelar procesos con eficacia en BPMN se ha convirtiendo en una habilidad que cualquier experto en el tema de procesos de negocio debe conocer.
Durante años las herramientas de BPM que tenían alguna noción de cajas y flechas estaban apoyadas en BPMN, y no hay duda de que muchos Suites BPM ahora dicen apoyar BPMN 2.0 en sus herramientas de diseño ejecutable.

Elementos de BPMN.

El modelado en BPMN se realiza mediante diagramas muy simples con un conjunto muy pequeño de elementos gráficos. Con esto se busca que para los usuarios del negocio y los desarrolladores técnicos sea fácil entender el flujo y el proceso. Las cuatro categorías básicas de elementos son:
1) Objetos de flujo: Eventos, Actividades, Rombos de control de flujo (Gateways) 
2) Objetos de conexión: Flujo de Secuencia, Flujo de Mensaje, Asociación 
3) Swimlanes (Carriles de piscina): Pool, Lane 
4) Artefactos: Objetos de Datos, Grupo, Anotación
Estas cuatro categorías de elementos nos dan la oportunidad de realizar un diagrama simple de procesos de negocio (en inglés Business Process Diagram o BPD). En un BPD se permite definir un tipo personalizado de Objeto de Flujo o un Artefacto, si con ello se hace el diagrama más comprensible.

Objetos de flujo y de conexion.

Son los elementos principales descritos dentro de BPMN y consta de tres elementos principales; Eventos, Actividades y Compuertas (Control de Flujo).
A. Eventos:
 
Están representados gráficamente por un círculo y describen algo que sucede (lo contrario de las Actividades que son algo que se hace). Los eventos también pueden ser clasificados como Capturado o Lanzado.
1.- Evento Inicial: Actúa como un disparador de un proceso. Se representa gráficamente por un círculo de línea delgada y dentro del círculo esta relleno de color verde. Este evento permite Capturar 

2.- Evento Final:Indica el final de un proceso. Esta representado gráficamente por un círculo de línea gruesa y dentro del círculo esta relleno del color rojo. Este evento permite Lanzar

3.- Evento intermedio: Indica que algo sucede entre el evento inicial y el evento final. Esta representado gráficamente por un círculo de doble línea simple y dentro del círculo relleno de color naranja. Este evento puede Capturar o Lanzar.



B. Actividades 
 
Se representan por un rectángulo con sus vértices redondeados y describe el tipo de trabajo que será realizado.
1.- Tarea: Una tarea representa una sola unidad de trabajo que no es o no se puede dividir a un mayor nivel de detalle de procesos de negocio sin diagramación de los pasos de un procedimiento.

2.- Subproceso: Se utiliza para ocultar o mostrar otros niveles de detalle de procesos de negocio - cuando se minimiza un subproceso se indica con un signo más contra de la línea inferior del rectángulo, cuando se expande el rectángulo redondeado permite mostrar todos los objetos de flujo, los objetos de conexión, y artefactos. Tiene, de forma auto-contenida, sus propios eventos de inicio y fin; y los flujos de proceso del proceso padre no deben cruzar la frontera.

3.- Transacción: Es una forma de subproceso en la cual todas las actividades contenidas deben ser tratadas como un todo. Las transacciones se diferencian de los subprocesos expandidos por estar rodeando por un borde de doble línea.






C. Compuertas (Control de Flujo):
 
 Se representan por una figura de diamante y determinan si se bifurcan o se combinan las rutas dependiendo de las condiciones expresadas. 
 
 
D. Conexiones:
 
Los objetos de flujo permitirán conectar cada uno de los objetos de conexión. Hay tres tipos: Secuencias, Mensajes y Asociaciones.
1.- Flujo de Secuencia: Está representado por línea simple continua y flechada; y muestra el orden en que las actividades se llevarán a cabo. El flujo de secuencia puede tener un símbolo al inicio, un pequeño diamante indica uno de un número de flujos condicionales desde una actividad, mientras que una barra diagonal (slash) indica el flujo por defecto desde una decisión o actividad con flujos condicionales.
2.- Flujo de mensaje: Está representado por una línea discontinua con un círculo no relleno al inicio y una punta de flecha no rellena al final. Esto nos dice, que el flujo de mensaje atraviesa la frontera organizativa (por ejemplo, entre piscinas). Un flujo de mensaje no puede ser utilizado para conectar actividades o eventos dentro de la misma piscina.
3.- Asociaciones: Se representan por una línea punteada. Se suele usar para conectar artefactos o un texto a un objeto de flujo y puede indicar muchas direccionabilidades usando una punta de flecha no rellena (hacia el artefacto para representar a un resultado, desde el artefacto para representar una entrada, y los dos para indicar que se lee y se actualiza). La No Direccionabilidad podría usarse con el artefacto o un texto est asociado con una secuencia o flujo de mensaje (como el flujo muestra la dirección).




Planificación Estrategica TI








¿Que es planificacion estrategica?

La Planificación Estratégica es un proceso a través del cual la organización define sus objetivos de mediano y largo plazo, identifica metas y objetivos cuantitativos, desarrolla estrategias para alcanzar dichos objetivos y localiza recursos para llevar a cabo dichas estrategias.
La planificación estratégica es al mismo tiempo una poderosa herramienta de diagnóstico, análisis, reflexión y toma de decisiones colectivas, en torno al quehacer actual y al camino que deben recorrer en el futuro las instituciones, para anticiparse a los cambios y a las demandas que les impone el entorno, logrando el máximo de eficiencia y calidad en sus resultados.
En este siglo XXI, en el que se avecinan importantes avances científicos, tecnológicos y sociales que no dejarán de asombrar a la humanidad, la Universidad de Concepción tiene la obligación de anticiparse y liderar los procesos de cambios asociados. Para ello ha elaborado como instrumento de gestión su Plan Estratégico 2006-2010, que define las directrices centrales de la Institución, las prioridades y los fundamentos prácticos y teóricos, debidamente evaluados para promover, dentro de una fecha de término claramente definida, la dinámica y las transformaciones necesarias que permitan a la Universidad implementar las estrategias en pos del logro de los objetivos Institucionales.



¿Por que desarrollar un plan estrategico?

1) Porque la planificacion estartegica mejora el desempeño de la institucion.
2) Permite enfrentar los principales problemas de las organizaciones.
2) Introduce una forma moderna de gestionar las instituciones.


Etapas de un plan estrategico.

A. Diagnostico de la situacion actual:
    1) Identificacion de clientes externos y determinacion de su demanda.
    2) Identificacion de clientes internos y determinacion de sus demandas.

B. Analisis interno de la organizacion.

C. Analisis externo de la organizacion.

Estructura de un plan estrategico.

A. Misión: La misiñon organizacional es como una declaracion duradera de propositos que distingue a una institucion de otras similares. Es un compendia de la razon de ser de una organizacion, esencial para determinar objetivos y formular estrategias.

B. Visión: Es la definicion de la razon de ser de la empresa. Declaracion amplia y suficiente de donde quiere que su organizacion este en el futuro. Conjunto de ideas generales que proveen el marco de referencia de lo que una organizacion es y quiere ser en el futuro.

Cosas que se deben tener en cuenta para lograr una buena planificacion estrategica.

1.- Comprender la estrategia.

Si no esta seguro sobre la estrategia de su organizacion, consulte a su superior. Es necesario que comprenda por que una estrategia posee usted y otra la organizacion.

2.- Examinar el Proceso.

Involucre a todos los miembros del equipo en la recopilacion de informacion. 
Aliente al personal a considerar los hechos con objetividad.

3.- Planificar la Estrategia

Programe tiempo suficiente para evitar apresurar la etapa de planificacion.
Preparese para escuchar a su equipo durante el proceso.

4.- Pensar a corto y largo plazo.

Tenga confianza en el futuro pero sea realista con respecto a lo que puede lograr.
Esfuercese por cumplir las metas a largo plaza y alcanzar resultados inmediatos.

5.- Lograr equilibrio.

Esfuercese por integrar el pensamiento estrategico en su vida cotidiana.
Dia con dia, tome decisiones considerando las implicaciones a largo plazo.

6.- Comunicar con claridad.

Si las personas no saben lo que intenta hacer, no podran ayudarle.
Sea tan franco y abierto con sus colegas como sea posible.
Mantenga enterados a todos de los cambios propuestos.

Factores de planificacion

-Tiempo.

-Recopilacion y analisis de datos.
-Niveles de planificacion.
-Flexibilidad.
-Responsabilidad.