3/27/2007

Necesitamos jugadores que hagan avanzar la innovación!

Las ciencias son el principal motor para iniciar la transformación de una nación en una sociedad moderna e interconectada, donde el ciudadano tiene una mayor compresión de las tecnologías de información y comunicaciones y el estado provee todos los servicios necesarios para mejorar su nivel de vida.Dentro de este escenario, la Ingeniería de software es uno de los pilares más importantes para el desarrollo de la nación, su principal producto es el conocimiento habilitado.

Son conocidas las oportunidades del país, si se incluye como un competidor en el escenario mundial y sus proyección en la industria del software.

La Realidad
La nación ha creado una infraestructura de organizaciones para afianzar e implementar el Plan Nacional de Ciencia y Tecnología. Desde mi punto de vista existen muchas brechas en la visión y en los lineamientos hay esbozados.

El plan debería orientarse en la necesidad de desarrollar otras industria de carácter estrategico, y definitivamente el software proporciona los mayores niveles de implementación, debido a una de sus principales características : No son un commodity.

La realidad, es que no existen programas serios que apoyen a empresas e innovadores que deseen cambiar este escenario, solo existen interés económicos que están por encima de los interés nacionalistas.

Todavía existen grandes oportunidades de mejora!

Venezuela es un país cuyo principal producto de exportación es el petróleo, el país necesita encausar y producir una revolución digital, que permita a la nación desarrollar una nueva industria sobre las tecnologías de la información y comunicaciones. Existen en el mundo muchos países industrializados que han optado por formar una industria digital.

El estado necesita realizar un cambio de políticas para poder adaptarse y responder a las nuevas tendencias mundiales de la industria que se encuentra en constante evolución y fomentar la creación de otra industria que surja como alternativa a la petrolera. Necesitamos cambiar la tendencia actual en la cual somos consumidores y no productores de tecnología.

Necesitamos producir patentes, necesitamos poder adaptarnos a la velocidad del cambio tecnológico, necesitamos formar una economía del conocimiento, innovación, tendencia a la exportación, en conclusión necesitamos jugadores que hagan avanzar la innovación.

El estado venezolano debe formar un conjunto de estrategias para acelerar la infraestructura del gobierno electrónico, su posicionamiento dentro del mercado mundial como proveedor de software, y la creación de una base de conocimiento y su distribución.

Una Salida?

Nuestra organizacion, ha desarrollo un proyecto de estado para revertir esta situación, y aprovechar nuevas oportunidad con una visión nacionalista y de independencia. Mijao formula estrategias, aceleradores y visores que permitirá transformar la infraestructura tecnológica de la nación con un modelo innovador de producción nacional.

Mijao

Mijao es un proyecto estratégico de estado, cuyo objetivo es iniciar en la nación una revolución digital efectiva y abierta, que transforme y sustente los pilares en el área de las tecnologías de información y comunicaciones en los próximos años; contribuyendo con el desarrollo integral de la nación, apoyando sus procesos, aumentando sus niveles de eficiencia, fortaleciendo su capacidad y desarrollo tecnológico, y proporcionando un modelo productivo, social e integracionista.

Este proyecto desarrolla un anillo de estrategias que permitirán a la nación adoptar medidas concretas y aplicables para lograr la construcción de un framework nacional.

En las proximas entregas, conversaremos sobre este tema. Saludos.

3/19/2007

El espíritu emprendedor y el Territorio Creativo.

Cada día requerimos de nuevas prácticas de innovación y diversas maneras de pensamiento. El desarrollo de estas capacidades tiene que comenzar con la incubación del espíritu emprendedor, una energía creativa vital, que surge en un ambiente donde la dirección es un arte, con equipos con grandes atributos o habilidades como el talento, la perseverancia, la diligencia, la integridad, etc.
La innovación debe estar basada en una visión inspiradora del futuro, de lo que puede ser, sobre lo que podemos cambiar o revolucionar. Dentro de este escenario el espíritu emprendedor nace de una energía creativa, con un fin último: mejorar los aspectos de la vida diaria y cotidiana de la sociedad.
El espíritu empresarial debe penetrar en todos los estratos de la sociedad y en sus diversas áreas, es necesario crear un territorio creativo con alta energía emprendedora que nos permita desarrollar una visión de futuro.

3/13/2007

Venezuela líder mundial en tecnología e innovación. La siembra petrolera?


Estudiando el progreso de países como la china y estados unidos, su historia, su cultura y modelos de desarrollo, he recopilado un conjunto de conceptos e ideas que pienso pueden contribuir con el logro de este sueño: “Venezuela líder mundial en tecnología e innovación”.

A lo largo de los años, los países en desarrollo han definido estrategias para ascender en la escala tecnológica, pasando por tres etapas o escalas: agricultura, manufactura, y servicios. Cada unas de las etapas, esta acompañada de políticas claras y constantes que han convertido a estos países en los lideres actuales en tecnología e innovación mundial.

En América latina, nos enfrentamos a un futuro incierto; continuamos siendo el gran proveedor de materia prima (agricultura, extracción minera) para los países desarrollados, sin tener una participación significativa en la generación de tecnología. Extraemos hierro, y luego compramos barcos hechos con la misma materia prima.

Si queremos cambiar este modelo, es vital que nuestra operación económica este sustentada sobre las industrias de uso intensivo de conocimiento, esta debe ser el área de mayor peso estratégico, sin abandonar las áreas de agricultura y manufactura. Debemos construir una infraestructura humana, educativa y organizacional para sustentar una producción compleja y crear capacidades que permitan convertirnos en una fuerza política de primer orden.

Como venezolano me he preguntado, que estrategias podemos implementar para que nuestro país pueda incursionar en las áreas de uso intensivo de tecnología, y convertirnos en un líder mundial en tecnología e innovación, y llegar a ser exportadores netos de tecnología.

Una base importante la iniciar la transformación de la nación, es exigir la transferencia tecnológica como condición para la inversión extranjera, fomentar la originalidad y crear una infraestructura que estimule la inventiva desde todos los niveles de educación; por ende debemos modernizar el plan de estudios y realizar cambios significativos en los modelos para proporcionar conocimiento a toda la población, Convertir los centros de educación superior, en incubadoras de conglomerados tecnológicos con alto espíritu empresarial, maximizar el empleo de centros de investigación y financiar proyectos y productos donde se demuestre la capacidad de aplicación en circunstancias practicas de negocio, establecer incentivos para evitar la repatriación de talentos, apoyar la investigación independiente, crear conglomerados globales y diversificados de tecnología, desarrollo de un sistema financiero y de capitales de riesgo, a fin de fomentar la innovación, apoyar las empresas estratégicas que son insumos claves para otros sectores.

Ahora mas que nunca vemos la vigencia del celebre articulo escrito por Arturo Uslar Pietro “Siembra Petrolera”,y me pregunto como venezolano si las políticas en este sentido no llevan por el camino correcto, la nación estas sembrando el petróleo?, hemos logrado crear una base que nos permita especializarnos en otras áreas?, Estamos enfocados en las industrias de carácter estratégico?

Para finalizar, como dice un proverbio chino no importa de qué color sea el gato, lo importante es que case ratones, esta hermosa visión de país debe ser compartida por el estado, e implementada por los gobiernos.

Saludos.

12/22/2006

El Software Factory y la Investigacion


Muchas empresas hoy en día, quieren construir un software factory (fabrica de software) que les permita ser más competitivos y eficientes en la construcción de artefactos de software y cumplir con las tres variables: tiempo, costos y esfuerzo de forma óptima, y todo esto sin encarecer la calidad de sus productos.
Una vía para lograr estos objetivos gerenciales es contar con estándares, modelos de implementación, y productos generados a través de una profunda y constante línea de investigación. La investigación es muy necesaria, debido al dinamismo y el desarrollo constante de la ingeniería de software. Cada día surgen tecnologías, arquitecturas, estándares, especificaciones, componentes que mejoran y disminuyen en conjunto el número de líneas de código y el esfuerzo.

Las organizaciones deben adaptarse, y los arquitectos deben asumir su rol: mantenerse en constante vigilia tecnológica y permear esos conocimientos a todos los estratos tecnológicos.

La realidad, es que no todos los clientes están dispuestos a pagar la investigación. Ese es el gran problema, la mayoría de las empresas por lo general tienen métodos de desarrollo de software de muy bajo nivel comparado con las empresas que ven en la investigación un mecanismo para decrementar sus costos y proteger su inversion.
Hace poco, nuestro grupo desarrollo, creo un framework llamado Jerano, cuyo objetivo era implementar nuestro primer software factory. Hoy quiero hablar sobre nuestra experiencia en su realización y todos los inconvenientes que tuvimos que enfrentar.
En primer lugar tuvimos que seleccionar cuales eran las tecnologías Open Source que deberían ser parte de nuestro framework, quisimos seleccionar las tecnologías con mayor presencia en el area y una madurez comprobada.
Para armar un software factory, es importante en primer lugar establecer lineamientos de arquitectura de software, por ejemplo cuales son las capas que serán utilizadas y que tecnología debe implementar un servicio especifico. Decidimos utilizar spring como framework para la inyección de dependencias, el madurísimo Struts para el control de las capas de presentación, negocio y modelo (MVC). Unos de los problemas a los cuales nos enfrentamos en sobre el tema de seguridad. Acegi fue definitivamente el framework con mayores características y funcionalidades, además ya viene integrado con spring.
En la capa de presentación, utilizamos tecnologías Web 2.0 ajax, a traves de un framework llamado prototype.

Próximamente incluiré un marco de arquitectura mas detallado para contribuir con la comunidad.
Saludos Mijanautas!!!!.

10/13/2006

Arquitectura, Mapa y un Blueprint


Uno de los problemas más comunes en la ejecución de proyectos de software, es la ausencia de arquitectos y documentos de diseño, que establezcan las políticas y lineamientos que deben ser adoptados durante todo el proceso.

El establecimiento de estas políticas, contribuye con la disminución de riesgos, y el control de brechas funcionales y no funcionales, que podrían impactar el proyecto en variables como el costo, el tiempo de despliegue y la productividad.

Dentro de este contexto, es vital, establecer un marco de arquitectura que permitirá gobernar el proyecto de forma eficiente, proporcionando las bases para el desarrollo de una arquitectura desacoplada, ágil, adaptable, y de tecnología neutral, la cual; no se vea afectada ante cambios de tecnologías.

Pero que significa gobernar?, gobernar significa establecer políticas claras para el inicio del proyecto, la comunicación, la gestión del proyecto, control, mantenimiento, adaptación, etc. del ciclo de vida del proyecto, en tiempo de diseño, ejecución y cambios.

Dentro de este contexto, el primer paso para iniciar un proyecto, es la creación de un documento de diseño, también denominado Blueprint. Un blueprint es un documento que establece los lineamientos, políticas, y estándares que deberían ser adoptados para asegurar una correcta implementación y disminuir los riesgos de su ejecución.

Para armar el blueprint es recomendable crear un árbol de ideas base que contengan todos los elementos o nodos que deben ser gobernados. Aquí les anexo un documento que contiene un árbol de ideas, con el cual podemos comenzar para armar el bluerpint.
Vamos ahora a describir algunos de sus nodos:
  1. Ambiente: Se establecen los artefactos de software que seran necesarios, variables de ambiente, estructura de directorios y posibles dependencias.
  2. Lineamientos: Los lineamientos pueden estar orientados en tres áreas: Control de Proyecto, diseño de la solución y las tecnologías.
  3. Agilidad: La agilidad significa como el proceso de construcción de software debe ser ejecutado para proporcionar agilidad y buenas prácticas con el objetivo fundamental de mejorar la productividad, un ejemplo de ello es XP y TDD.
  4. Modelo de Implementación: En este punto, se establecen un modelo de implementación que deberá incluir por ejemplo (modelo de dominio, capas, modelo de persistencia, modelo de pruebas, modelo de servicios, Reglas de negocio, patrones de diseño , etc. ).
  5. Pruebas: En este nodo, se establecen los distintos tipos de prueba que deben ser considerados durante las fases de construcción y cambios.
  6. Otros: Glosario y términos de negocio.
Espero haber contribuido con este modelo de referencia para la construccion de documentos de diseño. Cualquier comentario es bienvenidos.

9/26/2006

Adelante Web 2.0 en la Empresa

Web 2.0 se ha convertido en la palabra de moda, en estos dias, pero que es Web 2.0?
Web 2.0 es una plataforma que aprovecha la inteligencia colectiva y el concepto de software como servicio. Este sistema esta basado en actividades colectivas que incentivan la creación de plataformas para la cooperación transparente. Este concepto es propicio para un modelo organizacional, donde puede distribuirse el conocimiento en tres areas fundamentales: Las Personas, los Procesos y Productos.
Esta definición de Web 2.0 que he orientado hacia la organización es muy atractiva, Web 2.0 puede fortalecer en primer lugar, los nexos existentes entre los empleados y la empresa, y proporcionar un mayor nivel de participación colectiva, en áreas estratégicas para la organización como por ejemplo la calidad, su identificación con la empresa, sus objetivos y metas.
Ahora, debemos conocer algunos principios de Web 2.0:
  1. El Software no necesita ser distribuido sino ejecutado.
  2. El Software debe tener la capacidad de recoger y de gestionar los datos de forma dinámica y especializada.
  3. El sistema es: "poder e inteligencia Colectiva".
  4. El Autoservicio del empleado es la base que sustenta la comunidad.
  5. El servicio mejora mas, cuanto más se usa.
Para finalizar, de que manera las empresas, pueden comenzar a utilizar Web 2.0?

  1. Los actores de una empresa pueden constituir conocimiento (Actividad Colectiva), como por ejemplo la Calidad. Se puede crear una red de hipervínculos, contenidos y sitios Web internos (intranet) entrelazados. De esta forma se disemina el concepto de calidad en la organización.
  2. Realización de búsquedas, basado en una estructura de enlaces diseminados en diversos sites internos (intranet), proporcionan un valor incalculable de información y diseminación del conocimiento.
  3. El desarrollo de un Wikipedia, con todos los conceptos del negocio de la organización, en la cual los empleados puedan contribuir con entradas (Confianza Radical) que pueden ser agregadas, desde diversos roles y responsabilidades (dominios).
  4. Promoción de la inteligencia colectiva, para la generación de innovadoras propuestas de negocio como iniciativas de los empleados en la organización.
  5. Ejecución de proyectos, basado en un proceso orgánico de adopción del software.
  6. El desarrollo de portales como por ejemplo Drupal, darían poder de decisión al empleado, promoviendo un sistema de control y gestión de las personas, de los productos y de los procesos (Foros, Blogs, Wiki, etc.).
Para mas información:

9/13/2006

Acción y Reacción: Bienvenido EJB 3.0!!!

En este momentos, según mi apreciación, esta comenzando la era de la simplificación en el desarrollo de soluciones empresariales. Cada vez más, las arquitecturas que soportan soluciones se simplifican, ahora los arquitectos deben seleccionar que tecnología es la más apropiada para un contexto de negocio determinado, basado en criterios como: la estandarización, la especificación, etc. La tecnología cada vez más esta distanciada del negocio.

Actualmente dos de las principales tecnologías para el desarrollo de soluciones empresariales son el framework Spring y EJB 3.0.

Que tecnología debemos seleccionar? Que criterios de comparación usar? . Los arquitectos y desarrolladores, saben que spring surge como reacción a un modelo EJB bastante distanciado de la simplificación, pero ahora, se ha lanzado la nueva especificación EJB 3.0, que contiene características muy similares a Spring. Ahora la especificación EJB 3.0 surge como reacción a Spring y a su éxito.

Estamos en un escenario donde las reacciones ante el éxito de tecnologías, son el motor de cambios importantes y cruciales para la simplificación.

Pero fuera del análisis de las reacciones, es interesante conocer las nuevas características técnicas de EJB, por ejemplo las anotaciones, el manejo opcional de descriptores de componentes, la simplificación del modelo de construcción de artefactos, la nueva especificación Java Persistence API (JPA), etc.

Para finalizar, los invito a conocer esta nueva especificación y a evaluar su uso dentro de un modelo de negocio.

En hora buena. Bienvenido EJB 3.0!!!

8/20/2006

Bienvenidos!

Bienvenidos al Blog Mijao!

En Mijao nos dedicamos a innovar en el area de las tecnologias de informacion y comunicaciones. Nuestra meta es proporcionar a la comunidad hispanoparlante conocimiento para incentivar la innovacion en diversas areas de la ciencia moderna.

Escribiremos sobre nuestra experiencia en el area TIC, temas de actualidad, arquitecturas emergentes, y puntos de vista. En general aqui estan algunos temas que pensamos incluir en el blog: Arquitecturas Emergentes (SOA, Web 2.0, SAAS, ESB), MDA, NGOSS y las especificaciones para la industria de las Telecomunicaciones, Plataforma Java - J2EE - Java EE 5, Software Open Source, Software Libre, Robotica y Nanotecnologia, Energias Alternativas, Electronica, y otros temas de la ciencia moderna.
Esperamos que disfruten nuestro blog.

8/09/2006

Como Instanciar SOA (Arquitectura Orientada en Servicios) en una organización

SOA, ha surgido como una arquitectura emergente, un paradigma enfocado en el negocio y no en la tecnología. Sus beneficios, están orientados en necesidades de negocio como: protección de la inversión, disminución de costos en proyectos de integración, adaptabilidad ante un mercado TIC tan cambiante, etc. Esta visión la hace muy atractiva para los CIO (Gerentes) de las organizaciones.

Estas promesas de negocio, están sustentadas en la utilización del reuso como pieza clave, mientras mas reuso, menos recursos se dispondrán para el desarrollo de nuevas aplicaciones y funcionalidades en la organización, por ende; se disminuyen los costos, y hay un mayor nivel de proteccion en inversiones y recursos.

Por ejemplo, la organización A tendría un directorio de aplicaciones y funciones ya existentes, que están en cierto grado desacopladas de las aplicaciones que las alimentan. Este desacoplamiento es lo que permite que la compañía A pueda realizar un cambio en la aplicación proveedora sin que sus servicios expuestos sean afectados. Todos los servicios son reusables.

Cuando se pretende iniciar un proyecto SOA, es verdaderamente difícil buscar un equilibrio entre un modelo anterior de desarrollo de proyectos de integración y un modelo que ciertamente no representa una visión pragmática, pero a la larga son innumerable los beneficios que este tipo de arquitecturas proporciona.

Actualmente, en el mercado existen muchas empresas que están desarrollando proyectos bajo este nuevo modelo de arquitectura; la dificultad mas importante para su implantación, es la gran cantidad de especificaciones alrededor y las pocas empresas que las han adoptado dentro de sus soluciones de integración. Otro problema importante es la madurez de las especificaciones y sus implementaciones.
En conclusion, un modelo de agilidad operacional y totalmente desacoplado de las tecnologías, es un norte posible, pero se necesitan un conjunto de estrategias para asegurar el éxito. Basado en mi experiencia en proyectos de integración bajo SOA, les presento algunas recomendaciones para disminuir los riesgos y asegurar una implementación exitosa en su organización:

Recomendaciones:
  1. Internalizar y comprender los conceptos detrás de SOA y transmitirlo a todos los niveles de la organización.
  2. Crear un documento de diseño de alto nivel (Blueprint), antes de emprender un proyecto piloto, donde se incluya por ejemplo: modelo vertical, capas, formato de mensajes, protocolo de transporte, formas de interaccion (sincronía / asíncrona), reglas y políticas, atomimicidad transaccional, etc.
  3. Alinear los servicios con los procesos de negocio, no hay que olvidar que la meta no es tecnología.
  4. No es suficientes adoptar las tecnologías SOA, es importante conocer las mejores practicas para asegurar, la viabilidad, la visibilidad de las operaciones, y un mínimo esfuerzo ante los cambios.
  5. Definir un lenguaje común para la organización, es decir un modelo de objetos que representen todos o un conjunto de los conceptos de la organización basado en un modelo canónico, por ejemplo “cuenta, debito, ajuste, etc.”.
  6. Establecer conversiones de nombrado para la empresa: por ejemplo, como nombrar los servicios, interfaces, endpoint de sistemas legados, o cualquier otro componente que ayuden a los arquitectos, administradores, y desarrolladores en proporcionar servicios consistentes.
  7. Definir las interfaces de servicios, las implementaciones después: Las interfaces de servicios web son más importantes que las implementaciones.
  8. Establecer una categorización de servicios: Una organización debe decidir una taxonomia de servicios.
  9. Categorizar las reglas (reglas de procesos versus reglas de negocio.
  10. Definir estrategias de interoperabilidad para sistemas basados en plataformas heterogéneas.
  11. Incluir estrategias para pruebas de carga, stress y monitoreo de recursos.
  12. Para proporcionar mayor agilidad y propiedades de configuración, la utilización de un ESB y un UDDI es vital.

Albert Einstein: A proposito de la Crisis

iHola a todos mijanautas!, hace poco me conseguí con unas palabras sabias y llenas de reflexión, que quiero compartir con todos ustedes: “Sobre las crisis”.

Aquí les dejo las palabras del señor Albert Einstein:

"No pretendamos que las cosas cambien si siempre hacemos lo mismo. La crisis es la mejor bendición que puede sucederle a personas y países porque la crisis trae progresos. La creatividad nace de la angustia como el día nace de la noche oscura. Es en la crisis que nace la inventiva, los descubrimientos y las grandes estrategias. Quien supera la crisis se supera a sí mismo sin quedar "superado".
Quien atribuye a la crisis sus fracasos y penurias violenta su propio talento y respeta más a los problemas que a las soluciones. La verdadera crisis es la crisis de la incompetencia. El inconveniente de las personas y los países es la pereza para encontrar las salidas y soluciones. Sin crisis no hay desafíos, sin desafíos la vida es una rutina, una lenta agonía. Sin crisis no hay méritos. Es en la crisis donde aflora lo mejor de cada uno, porque sin crisis todo viento es caricia. Hablar de crisis es promoverla, y callar en la crisis es exaltar el conformismo. En vez de esto trabajemos duro. Acabemos de una vez con la única crisis amenazadora que es la tragedia de no querer luchar por superarla."