Conecta con nosotros

Noticias

¿Eres Agile de verdad? Por Rubén González Blanco

Publicado el

elefante_agil

En lo últimos años, palabras como “Agile” o “Lean” se han convertido en buzz words que todo el mundo dice aplicar en sus desarrollos de software y de producto.

Las empresas han hecho grandes inversiones en programas de transformación de procesos y cultura con el objetivo de ser ágiles en el desarrollo de productos y servicios basados en software, tratando de cambiar la forma de trabajo y adoptando “metodologías” ágiles tipo Scrum, XP, Kanban. Incluso la industria se ha profesionalizado, llegando a  aparecer certificaciones  como Scrum Master.

No seré yo quien ponga en cuestión ni la validez de los programas de transformación, ni de las “metodologías” ágiles (que prefiero llamar métodos o buenas prácticas).  Todo lo contrario, bien aplicados pueden ser muy útiles y generar el cambio deseado. Pero más allá de los Manifiestos y de los libros de “metodologías” ágiles (un buen ejemplo es Métodos Agiles y Scrum – Manuales Imprescindibles),  muchas veces se pierde de vista lo que realmente significa ser Agile en el desarrollo de productos basados en software.

Lo primero que hay que entender es la naturaleza del desarrollo de software. Tal como explicábamos en el post “Hay Musica en el Desarrollo de Software”, también en el libro “Historias de Developers”, el desarrollo de software es incierto por naturaleza  y por tanto, no es planificable ni predecible a priori.

En el mundo científico e ingenieril, siempre que en un sistema o problema hay incertidumbre, se aplican técnicas de Gestión Adaptativa. En el fondo estas técnicas se basan en la ejecución de ciclos de hypotesis-sintesis-realization-feedback, hasta que se hace converger el sistema a un determinado estado o se hace emerger una solución al problema.

El equivalente a esos ciclos en el desarrollo software son lo que llamamos ciclos de intention-sintesis-realization-feedback (ISRF), que de una forma tácita se pueden observar en un desarrollador cuando está programando. Para hacer que su código funcione, el desarrollador está inmerso en ciclos continuos y entrelazados de diseño, codificación, ejecución y pruebas que duran desde segundos hasta horas y días. Una dificultad añadida en el desarrollo de software está en que hay que descubrir a la vez tanto el problema a resolver como su solución software. Ambos son inciertos. Ahora bien, mediante la gestión adaptativa basada en la ejecución de ciclos ISRF se puede hacer emerger tanto la especificación  del software como su realización (arquitectura, código, ejecutables).

Podríamos decir que, en el fondo, los métodos ágiles, no son más que una serie de buenas prácticas para la gestión adaptativa del desarrollo software. El fin último es manejar la incertidumbre inherente al desarrollo de software, para hacer que un equipo de personas creativas con altos conocimientos, hagan emerger tanto la especificación del problema como su solución software.

Diría que ésta es la parte fundamental a entender y a aplicar bien. Idealmente en la vida real esta gestión adaptativa se debería llevar a cabo en un espacio de tiempo y con recursos limitados (el coste sería sino infinito), con un equipo totalmente comprometido a llegar al máximo posible en cuanto funcionalidad y calidad del software (el coste es fijo, la calidad y funcionalidad software a la que se llega es variable).

El feedback y la comunicación continua entre el equipo es absolutamente clave para poder ejecutar ciclos ISRF cortos, rápidos y efectivos. Hay equipos, especialmente pequeños y con personas de alta capacidad de desarrollo software, donde las prácticas ágiles se manifiestan de una forma tácita (como ocurre muchas veces en el “garaje” de una startup). En otros casos, los métodos ágiles pueden servir de guía. No obstante,  siempre que se apliquen de una forma explícita,  se deberían adaptar  de acuerdo a los skills y a la naturaleza del equipo, y nunca forzarlos de una forma imperativa. Muchas veces se aplican métodos y  prácticas ágiles religiosamente, perdiendo de vista lo que es verdaderamente importante: llevar a cabo una gestión adaptativa de la incertidumbre inherente al desarrollo de software, sea con un método o sin él.

Firmado:  Rubén González Blanco (@_rubengb) Head of Architecture for Product Innovation and Research at Telefonica I+D y Director del Máster Telefónica en Desarrollo de software avanzado.

¿Quieres aprender a desarrollar el software más avanzado?

Telefónica y U-tad han unido sus fuerzas para lanzar uno de los masters más interesantes del momento: el “Máster Telefónica en desarrollo de software avanzado”, un programa orientado a formar desarrolladores de software de alto nivel técnico que puedan trabajar en startups, compañías de software y en grandes compañías que están abordando la transformación digital de sus negocios.

A lo largo del máster se abordarán temas como la optimización de algoritmos y estructuras de datos, sistemas distribuidos, desarrollo sobre plataformas cloud, DevOps, patrones avanzados de diseño y arquitectura, prácticas ágiles o técnicas avanzadas en C++, Python y node.js junto con lenguajes del siglo XXI como Scala o Go.

También se verán técnicas de programación avanzada en Linux o desarrollo para las principales plataformas móviles (iOS, Android, Windows Phone y Firefox OS). De la misma forma, se estudiará el diseño e implementación de interfaces de usuario, escalabilidad, alta disponibilidad y distintos paradigmas de programación (lógica, concurrente, funcional, reactiva, orientada a objeto, orientada a aspectos, etc.) El máster está impartido por expertos en la materia que proporcionarán los fundamentos que permiten al alumno avanzar más rápidamente en su carrera profesional como desarrollador software.

El Máster Telefónica en Desarrollo de Sotware Avanzado tiene una duración de 600 horas y cuenta con el reconocimiento del departamento I+D de Telefónica.

¡Si quieres conocer más de cerca todo lo que te puede ofrecer, te recomendamos que te descargues su folleto informativo!

Descargar

Imagen: Shutterstock

 

 




Noticias

El uso de Flash en la web sigue en descenso: está ya sólo en el 4,9% de las páginas

Publicado

el

El uso de Flash en la web sigue en descenso: está ya sólo en el 4,9% de las páginas

El uso de Flash en las web lleva cayendo poco a poco desde 2011. A principios de ese año estaba presente en el 28,4% de las páginas desarrolladas en todo el mundo, mientras que a mediados de este mes de abril sólo se encuentra en el 4,9% de las webs en funcionamiento. Así queda de manifiesto en un informe de la compañía de encuestas sobre tecnología W3Tech, en la que se ve que la mayor caída en su uso tuvo lugar entre 2013 y 2014, cuando bajó del 21,1% al 15,7%.

Este descenso en su uso puede ser uno de los motivos por los que Adobe ha decidido retirar su soporte a esta tecnología, algo que está previsto para finales de 2020. Para entonces, es más que probable que Flash sea ya sólo un recuerdo lejano para muchos internautas, puesto que cada vez es menos visible.

Es posible que a muchos no les parezca una caída tan pronunciada, pero si tenemos en cuenta que, por un lado, se trata de resultados en  función el total de las webs y no sólo sobre un pequeño porcentaje de estudio, y que en la actualidad hay muchas páginas que están completamente abandonadas, el descenso sí es bastante notable.

Según Bleeping Computer, las cifras de W3Tech coinciden con los datos que expuso Parisa Tabriz, experta en seguridad que trabaja como Directora de ingeniería en Google, en una de conferencia de seguridad celebrada en San Diego el pasado mes de febrero. Tabriz manifestó en una charla que dio en el marco de dicha conferencia que el porcentaje de usuarios de Chrome que abren al menos una web con contenidos Flash al día ha descendido del 80% en 2014 a una cifra inferior al 8% a principios de este año.

Para ella, que tiene entre sus responsabilidades en Google el cuidado de la seguridad de Chrome, la culpa de esta caída en el uso de Flash en las páginas la tienen el auge de tecnologías basadas en web, como HTML5 y CSS3. También la tienen diversos cambios de configuración realizados por Chrome y otros navegadores. A día de hoy, casi todos han desactivado el renderizado Flash, para centrarse más en una experiencia que ella denomina “HTML5 por defecto”.

Foto: Espen Klem




Continuar leyendo

Noticias

Tim Cook descarta la unificación de iOS y macOS

Publicado

el

Tim Cook ha descartado la rumoreada unificación de iOS y macOS, sus sistemas operativos para dispositivos móviles y ordenadores personales. “No creo que sea eso lo que quieren los usuarios”, ha comentado el jefe de Apple en una entrevista a The Sydney Morning Herald.

La tendencia hacia la unificación en el desarrollo de sistemas operativos parece imparable. Lo hemos visto con el Windows 10 de Microsoft y la apuesta final con el proyecto Andrómeda; con los intentos de Canonical con Ubuntu o con los movimientos de Google llevando las apps de Android bajo Google Play a Chrome OS y desarrollando Fuchsia OS como sistema definitivo para ambos.

El objetivo final de esta convergencia es el mismo para todos: correr el mismo núcleo y shell del sistema operativo y/o aplicación en cualquier dispositivo, ordenador personal, móvil, tablet, wearable, casco de realidad virtual o consola de videojuegos, con las evidentes ventajas para el desarrollo de aplicaciones, la posibilidad de una tienda única, las facilidades en el terreno del marketing y la flexibilidad de uso para el cliente final.

Apple no es ajena a la tendencia hacia a la convergencia a pesar del comentario de Cook. La mayor integración de los últimos macOS X con iOS, un gran parecido en sus apps e inclusión directa de algunas de las móviles en su sistema para ordenadores personales, son prueba de ello.

De esta forma, se ofrecería una única experiencia de usuario y una mejora importante en el trabajo de desarrollo. Los programadores que trabajan con el ecosistema de Apple se han quejado de la poca atención de las aplicaciones destinadas a Mac. Mientras que la App Store es la tienda móvil más rentable del planeta, Mac App Store está a un nivel muy inferior, limitado número de aplicaciones y poco actualizadas. La unificación de aplicaciones iOS y MacOS ayudaría a crecer y evolucionar a ambas plataformas y no una a expensas de otra.

ARM en Macs

Por otro lado, sigue coleando una información de Bloomberg que citando fuentes internas de Apple aseguraba la existencia de un proyecto de nombre interno ‘Kalamata’ para el lanzamiento de ordenadores Mac con chips ARM en 2020. Este tipo de chips permitirían a Apple una mayor integración entre el hardware y el software y una mejora de la eficiencia energética para aumentar la autonomía de los portátiles.

Obviamente, la llegada de ARM a los Mac tendría implicaciones directas en el sistema operativo y en las aplicaciones. Tim Cook niega la mayor en la creencia que “no es lo que quieren los usuarios”, pero la realidad es que la tendencia del desarrollo de software mundial va por el camino de la convergencia.




Continuar leyendo

Noticias

Oracle anuncia Oracle Linux 7 Update 5

Publicado

el

oracle

Una semana después de la publicación de Red Hat Enterprise Linux 7.5, se anuncia el lanzamiento de Oracle Linux 7 Update 5, una derivada íntegra de la anterior, en este caso únicamente para arquitecturas x86_64.

Oracle Linux se caracteriza por estar construida a partir del código fuente de Red Hat Enterprise Linux (RHEL), ofreciendo un clon a nivel binario totalmente compatible con el ecosistema de aplicaciones de esta, pero con la diferencia de permitir su descarga y distribución de manera gratuita, incluyendo todas las actualizaciones que se publiquen durante el ciclo de vida de cada versión.

Oracle Linux es similar a otras derivadas directas de RHEL como Scientific Linux o CentOS, esta última como proyecto sostenido por la propia Red Hat, con el añadido de ofrecer planes de soporte opcionales. Así, la propuesta de Oracle intentar aunar lo mejor de ambos mundos: gratuidad y accesibilidad inmediatas en lo relativo al software, pero siempre con la posibilidad de contratar asistencia según se necesite.

Otra diferencia entre RHEL y Oracle Linux es que esta incluye un núcleo Linux denominado Unbreakable Enterprise Kernel, modificado de manera específica por Oracle para obtener mayor estabilidad y rendimiento, si bien mantiene un segundo compatible con su distro base, así como mantiene compatibilidad con el espacio de usuario con independencia del kernel utilizado, eliminando la necesidad de requerir nuevas certificaciones para aplicaciones ya certificadas en uno u otro sistema.

En cuanto a las novedades de esta nueva versión, lo principal viene directamente heredado de RHEL 7.5 y las actualizaciones que recibió, excluyendo servicios asociados e incluyendo ciertos detalles propios, como soporte completo del sistema de archivos Btrfs, que a partir de la salida de RHEL 7.4 fue añadido a la lista de funcionalidades en desuso.

Otras características de Oracle Linux 7 Update 5 se centran en la seguridad del sistema, destacando soporte para llaves de protección de memoria en procesadores recientes de Intel, una nueva opción para desbloquear dispositivos cifrados conectados a una red durante el proceso de arranque, mejoras en las conexiones SSL / TLS y aleatorización del espacio de direcciones kernel (KASLR) para invitados KVM.

Para ampliar la información acerca de las novedades de Oracle Linux 7 Update 5, es recomendable consultar las notas de lanzamiento.

Las opciones de descarga de Oracle Linux 7 Update 5 incluyen imágenes de instalación, imágenes Docker y los binarios individuales en formato RPM a través de Oracle Software Delivery Cloud, Oracle Container Registry, Docker Hub y Unbreakable Linux Network (ULN), respectivamente.




Continuar leyendo

Lo más leído

Suscríbete gratis a MCPRO

La mejor información sobre tecnología para profesionales IT en su correo electrónico cada semana. Recibe gratis nuestra newsletter con actualidad, especiales, la opinión de los mejores expertos y mucho más.

¡Suscripción completada con éxito!