Categories
54cuatro

Herramientas para modelar Arquitecturas Empresariales

Quienes trabajamos como #EnterpriseArchitect sabemos de la necesidad de documentar lo que vamos creando. Necesitamos herramientas UML para poder bajar a detalle y crear un esquema visual de lo que luego se convertirá en un producto.

¿Qué es #UML?

Esquema de UML

UML es una técnica para la especificación sistemas en todas sus fases, un lenguaje para hacer modelos y es independiente de los métodos de análisis y diseño.

Nació en 1994 cubriendo los aspectos principales de todos los métodos de diseño antecesores y, precisamente, los padres de UML son Grady Booch, autor del método Booch; James Rumbaugh, autor del método OMT e Ivar Jacobson, autor de los métodos OOSE y Objectory.

¿Cuales son las herramientas de UML?

Existen algunas herramientas tradicionalmente usadas para este tipo de trabajos. Tradicionalmente el #Visio de #Microsoft es de las más referenciadas.

En la actualidad existen muchas nuevas herramientas, algunas web, algunas open source, que permiten realizar el modelo de Arquitecturas Aplicativas o de IT en general.

El gran auge de la #nube, creó un sinfín de nuevas herramientas de modelado, algunas específicas para cada nube, como el caso de Cloud Craft que permite crear modelos basados en tecnología #AWS, y que además permite conectarse a la calculadora de #Amazon para realizar el presupuesto de lo que está definiendo.

Visual cloud designer
Captura de Cloud Craft

Sin dudas es una herramienta súper potente. Siguiendo dentro de la misma familia, existen algunas como Cloud Skew o Hava que nos permiten realizar el diseño no solo para AWS sino también para #Azure o #GCP.

Modelando en la web

No podemos dejar pasar por alto herramientas de mucha utilidad como LucidChart o Draw.io (ahora renombrada como Diagrams.net), que no solo son de utilidad para Arquitectos, sino para generar todo tipo de gráficos anidados con cierta lógica como Flujos de Procesos u Organigramas, como para mencionar algunos ejemplos.

Nuestra preferida: Archimate

Nuestra preferida es sin dudas #Archimate. Es quizás la herramienta hecha por y para Arquitectos Empresariales o Enterprise Architects, bajo el estándar abierto propuesto por Open Group.

Archi
Captura de Archimate

Archimate es una herramienta #OpenSource, que puede ser usada en #Windows, #Linux y #Mac, y que puede ser descargada desde la web archimatetool.com. Permite a los usuarios de esta tool, crear modelos basados en frameworks de arquitectura como #TOGAF. Dentro de una misma aplicación se pueden crear flujos de negocios, modelos de planificación de tipo Mind Mapping, modelos de interrelación aplicativa, y hasta planificaciones basadas en #Agile.

Sin dudas es la elegida por nuestro equipo, y la que recomendamos para llevar a cabo las tareas de planificación inherentes a un arquitecto.

¿Y tu equipo, qué herramienta utiliza?


[popup_anything id=”2076″]
Categories
54cuatro

Ciclo de vida de proyectos tecnológicos

Este articulo de #ProjectManagement fue escrito por Gonzalo D’Angelo es Medium.

Ciclo de vida de proyectos tecnológicos

Todo #proyecto de tecnología tiene un ciclo de vida delimitado, y al margen de la metodología de gestionarlo, habitualmente el enfoque no cambia.

Empresas con metodologías waterfall o metodologías #agile, indefectiblemente pasan por algunas fases irremplazables y que conllevan mayor o menor esfuerzo.

Como mencioné anteriormente, independientemente de como gestionemos nuestros proyectos, tenemos algunas fases que impactan por igual. Enumeremos algunas de esas fases:

  1. Definición: sin dudas el paso previo a cualquier actividad es definir el objetivo del proyecto, realizando un análisis detallado del alcance, especificaciones técnicas y financieras, roles y responsabilidades.
  2. Planeamiento: aquí es donde podemos definir alternativas en la gestión, si lo llevaremos con una metodología #PMI o #Scrum, etc. Existe un fundamentalismo extremo en favor de Agile, pero creo que muchos proyectos bien estructurados en esquemas PMI son rotundamente exitosos. Durante la fase de Planning, es donde definiremos el presupuesto asignado, el equipo de trabajo, planificaremos fechas y definiremos entregables. Junto con todo esto, es un buen momento para el análisis de riesgos que comprometan el éxito. Hasta la improvisación debe estar planificada.
  3. Ejecución: sin dudas esta será la fase por la que el proyecto va a ser juzgado. Durante la ejecución, comenzaremos a ejecutar todo lo analizado en las 2 fases anteriores, y cualquier error previo lo vamos a pagar con demoras. En esta fase vamos a tener que mostrar el Avance de lo planificado, los Cambios y Desviaciones que vayan surgiendo, y va a ser sin dudas la fase mas stressante para los equipos de trabajo.
  4. Entregable: Llegado este punto, hemos logrado sortear los obstáculos y estamos listos para entregar el proyecto y laurearnos con nuestro existo. Pasado el skill transfer, la entrega de documentación, la liberación de los recursos asignados al proyecto, y porque no, el momento de la celebración, es un excelente momento para atender las “Lecciones Aprendidas”, donde vamos a generar documentos con todos aquellos condicionantes que surgieron y los cuales pudimos esquivar (o no) pero que su mera aparición nos permitieron aprender de la experiencia para no volver a cometer los mismos errores.

Si consideramos las 4 fases planteadas como parte de un ciclo de vida de proyectos, podemos entender el esfuerzo de cada fase según el siguiente gráfico:

Image for post

Resumen

Soy un fanático de resaltar las bondades de las personas. Y voy a cerrar esta nota, diciendo que en mi experiencia, no importa tanto si la metodología era Scrum o PMI, tampoco Six Sigma o Kaizen. Mucho menos si el proyecto se lleva en Jira o en Project. Lo importante son las personas, siempre. Un proyecto donde se trabaja cada fase con responsabilidad y donde cada integrante tiene potestad, voz propia, y puede brillar con luz propia, tiene el éxito asegurado.

Lo importante es el indio, no la flecha.

Gonzalo D’Angelo

[popup_anything id=”2076″]
Categories
54cuatro

Gobernanza de bases No SQL

Las bases NoSQL han crecido significativamente los últimos años y actualmente casi todas las empresas tienen instalaciones #NoSQL como parte de su programa de datos empresariales. #Gartner calcula que el 90% de los datos es ‘no estructurado’. En un mundo cada vez mas #Agile/#DevOps/#DataOps, la utilización de bases NoSQL para el desarrollo de aplicaciones se considera una gran ventaja para acelerar el tiempo de time to market de software.

Los desarrolladores pueden crear el esquema y diseñar la base de datos a través de su propio código sin la participación de los tradicionales equipos de #DBA. Pero la falta de diseño formal y procesos inadecuados pueden generar problemas para la aplicación y pueden afectar el gobierno general de los datos de la empresa. Por ejemplo, es difícil determinar qué se almacena en qué lugar. También plantea un gran desafío para la auditoría y los informes de cumplimiento para las empresas.

Como habitualmente hay posibilidades de que se use más de un tipo de bd NoSQL junto con una db RDBMS se requiere un marco de gobierno de datos más sólido para comprender los datos que se almacenan en tal variedad de tecnologías de bases de datos.

Finalmente los DBA y otros profesionales de datos ahora pueden tener que revisar el código de la aplicación para comprender el esquema y determinar si el problema está en los datos, el esquema o la infraestructura, lo que hace mas complejo el troubleshooting.

Realmente es muy importante que las organizaciones ‘guiadas por los datos’ o ‘data-driven’ adopten un nuevo pensamiento que involucre el desafío de aprovechar las últimas tecnologías de base de datos NoSQL y también tratando de mantener la integridad, la calidad y gobernanza de los datos subyacentes.

[popup_anything id=”2076″]

Categories
54cuatro

Algunas ideas sueltas sobre containers

No es novedad que los #containers ya son un standard de la industria, habilitan desarrollos ágiles, mejoran el #TimetoMarket, mejoran la analítica y generan un #ROI rápidamente comprobable.

Estamos en un momento HYPE de la era #Microservicios. Y vemos mucha adopción de esta arquitectura pero existe mucho camino por recorrer, y aún hay muchos que no pudieron a avanzar en este sentido y ya estamos hablando de #ServiceMesh, un nuevo componente que facilita la comunicación.

Pero que es Service Mesh?

El Service Mesh es una capa que mejora el formato en que las aplicaciones construidas en Microservicios se comunican entre sí. Anteriormente en desarrollos #Monolíticos o #SOA, las llamadas se hacían dentro de cada una aplicación o en comunicación entre capas. Pero en el nuevo esquema, las llamadas son reemplazadas por se realizan a través de comunicaciones #API.

Esto tiene ventajas importantes, ya que permite a los #desarrolladores concentrarse en la lógica del negocio y no tener que trabajar sobre la capa de comunicaciones. Pero existe un faltante de estandarización de la comunicación API, dado que no existe un protocolo definido para la creación de API.

En este punto es cuando Service Mesh se vuelve importante. Porque?

Porque es una malla de servicios que se para por encima de los microservicios, siendo una solución de baja latencia de comunicaciones que nos brindara descubrimiento para nuevos servicios, y con ello la posibilidad de crear reglas de load balancer, autenticación, cifrado, entre otras cosas, y permitiéndonos además tener un monitoreo que asegure la disponibilidad de nuestras API.

Existen muchos Service Mesh en el mercado como #Istio o #Envoy, y a partir de la versión 4 de #OpenShift existe el servicio OSMO (Openshift Service Mesh Operator) que habilita la posibilidad mejor seguimiento, enrutamiento y optimización de la comunicación de las aplicaciones.openshift y service mesh

Si necesitas modernizar la arquitectura escribime o llamame, así podemos determinar el nivel de madurez si tu empresa como para adoptar microservicios, el nivel de práctica #Agile/#DevOps y que con un #assessment podamos acompañarte al próximo nivel.

Publicado por nuestro Sales Director, Rodrigo Yañez en https://www.linkedin.com/pulse/algunas-ideas-sueltas-sobre-containers-microservicios-rodrigo-ya%C3%B1ez/

[popup_anything id=”2076″]

Categories
54cuatro

Es el momento de DataOps. Conoce los detalles

#DataOps , es una metodología surgida de las culturas #Agile que busca cultivar prácticas y procesos de gestión de datos para mejorar la velocidad y precisión de los análisis, incluido el acceso, calidad, automatización, integración y modelos de datos. 

#DataOps se trata de alinear la forma en que administra sus datos con los objetivos que tiene para esos datos.

No esta mal recordar parte del Manifiesto DataOps:

  1. Personas e interacciones en lugar de procesos y herramientas
  2. Soluciones de analítica eficientes en lugar de documentación comprensiva
  3. Colaboración con el consumidor en lugar de negociaciones contractuales
  4. Experimentación, interacción y retroalimentación en lugar de un diseño extensivo directo
  5. Titularidad multidisciplinar de las operaciones en lugar de responsabilidades aisladas.

Vamos a poner un ejemplo claro de DataOps aplicado a la reducción de la tasa de rotación de clientes. Puede aprovechar los datos de sus clientes para crear un motor de recomendaciones que muestre productos que sean relevantes para sus clientes, lo que los mantendría comprando por más tiempo. Pero eso solo es posible si su equipo de ciencia de datos tiene acceso a los datos que necesitan para construir ese sistema y las herramientas para implementarlo, y puede integrarlo con su sitio web, alimentar continuamente nuevos datos, monitorear el rendimiento, etc. Para eso necesita un proceso continuo que requerirá incluir información de sus equipos de ingeniería, TI y negocios.

Para poder implementar soluciones que aporten valor, es necesario de la gestión de datos saludables. Una mejor gestión de datos conduce a mejores datos, y más disponibles. Más y mejores datos conducen a un mejor análisis, lo que se traduce en mejores conocimientos, estrategias comerciales y una mayor rentabilidad.

DataOps se esfuerza por fomentar la colaboración entre científicos de datos, ingenieros y expertos de TI para que cada equipo trabaje sincronizado en aprovechar los datos de la manera más adecuada y en menor tiempo.

DataOps es una de las muchas metodologías nacidas a partir de DevOps. El éxito de #DevOps radica en eliminar los silos de la TI tradicional: uno que maneja el trabajo de desarrollo y otro que realiza el trabajo operativo. En una configuración de DevOps, la implementación del software es rápida y continua porque todo el equipo está unido para detectar y corregir problemas a medida que ocurren.dataops

DataOps se basa en esta idea, pero aplicándola en todo el ciclo de vida de los datos. En consecuencia, los conceptos de DevOps como CI/CD ahora se están aplicando al proceso de producción de ciencia de datos. Los equipos de ciencia de datos están aprovechando soluciones de control de versiones de software como GitHub para rastrear cambios de código y tecnología de contenedores como Kubernetes y Openshift para crear entornos para Análisis y despliegue de modelos. Este tipo de enfoque de ciencia de datos y DevOps a veces se denomina “análisis continuo”.

Ahora bien. Hasta acá toda la teoría. Pero… ¿Cómo empiezo a implementar DataOps?

Aquí es donde debes comenzar:

  • #Democratice sus datos. Elimine las barreras burocráticas que impiden el acceso a los datos de la organización, cualquier empresa que se esfuerza por estar a la vanguardia necesita conjuntos de datos que estén disponibles.
  • #Aproveche las plataformas y las herramientas de código abierto. Plataformas para movimiento de datos, orquestación, integración, rendimiento y más.
  • Parte de ser ágil es no perder el tiempo construyendo cosas que no tiene que hacer o reinventar la rueda cuando las herramientas que su equipo ya conoce son de código abierto. Considere sus necesidades de datos y seleccione su pila tecnológica en consecuencia. 
  • #Automatizar, automatizar, automatizar. Este viene directamente del mundo de DevOps, es imprescindible que automatice los pasos que requieren innecesariamente un gran esfuerzo manual, como pruebas de control de calidad y monitoreo de canalización de análisis de datos.
  • Habilitar la autosuficiencia con #microservicios. Por ejemplo, dar a sus científicos de datos la capacidad de implementar modelos como #API significa que los ingenieros pueden integrar ese código donde sea necesario sin #refactorizar, lo que resulta en mejoras de productividad.
Si quiere saber mas, recomendamos entrar a nuestro grupo de Linkedin, DataOps en Español.
[popup_anything id=”2076″]
Categories
54cuatro

Preciado Time to Market (en español)

Este articulo fue publicado en linkedin 

#Agile, #DevOps, #Cloud, #Microservicios, pusieron en foco optimizar el Time to Market (o sus derivados #TTM, #T2M, #Time2Market).

¿Pero que es realmente Time to Market y porque es tan importante?

El TTM se relaciona directamente con la velocidad con la que un producto puede ser lanzado o en el caso de la tecnología, en la rapidez con la que se puede entregar valor (ya sea un nuevo producto, una nueva característica de algo existente, una mejora, etc).

El TTM es importante por motivos varios. En la actualidad, los clientes, tanto internos como externos, se han vuelto más exigentes. Exigen mayor calidad y mayor velocidad. Es también importante porque la agilidad con que se crean nuevos productos, se agregan nuevas características o se genera valor es un diferencial respecto a competidores más lentos, por lo tanto, una ventaja competitiva.

Focalizando en lo que hace a productos tecnológicos, años atrás cuando el modelo de desarrollo estaba basado en una metodología de cascada, los ciclos de vida de desarrollo eran muy altos, lo que generaba cancelaciones de proyectos, mayor tasa de errores, y hasta la depreciación de lo que se estaba construyendo antes de conocer la luz. Todo esto representaban perdidas económicas significativas.

En la actualidad, con metodologías ágiles de trabajo y la automatización de las cadenas de desarrollo, se logró que la entrega de software sea más rápida y regular, lo que genere una ventaja competitiva, aumentando la calidad y optimizando tiempos, algo que se torna importante tanto para el #Time2Market como para la optimización del #ROI, promueve la mejora continua y por lo tanto existe un notorio aumento del rendimiento y la rentabilidad.

Optimizar el TTM trae aparejado aspectos muy positivos. Al tener toda nuestra cadena de desarrollo automatizada, es más simple recolectar los resultados del testing, e incluso del feedback de los usuarios, lo que permite no solo mejorar la calidad del software sino incluso re-adaptar las estrategias empresariales. También, a partir del desarrollo SOA y ahora Microservicios, se logró reducir la tasa de errores, ya que desarrollos chicos suelen tener menos complicaciones que aquellas implementaciones gigantes (monolíticas) que requerían muchos cambios, muchas personas, mucha burocracia.

Resumiendo: la capacidad de entregar desarrollos de forma ágil, cumpliendo con estándares de calidad, eficiencia y seguridad, nos permite crear valor en las compañías, mejorar los costos operativos y marcar diferenciales competitivos de mercado que se terminan traduciendo en mejor imagen de la compañía, mayores ventas y ahorros operativos.

Entonces… ¿Es importante mejorar el time to market? 

[popup_anything id=”2076″]