# data[].attributes.attachment_link.title
Santiago Bilinkis con María Laura: “Quedará tan poco trabajo con la IA, que quizás cobremos un sueldo solo por existir”

# data[].attributes.attachment_link.description
El mundo capitalista discute hoy un salario universal para todos. Por qué la Inteligencia Artificial va a romper todo y cuales son los cambios que se vienen. El crecimiento de los ataques de ansiedad, cómo las redes devastan la psiquis de los adolescentes. Por qué la gente joven nunca tuvo tan poco sexo como ahora. La caída brutal de la natalidad en la ciudad de Buenos Aires, el futuro sin niños y con gente mayor

# data[].attributes.attachment_link.readable_text
La programación es una habilidad esencial en el mundo moderno, impulsando la tecnología que utilizamos a diario. Desde aplicaciones móviles hasta sistemas complejos de inteligencia artificial, la programación es el motor detrás de la innovación y la eficiencia.

Aprender a programar no solo abre la puerta a un sinfín de oportunidades laborales, sino que también fomenta el pensamiento lógico y la resolución de problemas.

Con la demanda de desarrolladores en constante crecimiento, nunca ha habido un mejor momento para adentrarse en el mundo de la programación.

En el vasto ecosistema de lenguajes de programación, Zig se destaca como una opción prometedora para desarrolladores que buscan un lenguaje moderno, eficiente y robusto.

Zig es un lenguaje de programación de bajo nivel, pero con características modernas que lo hacen más seguro y fácil de usar que C.

Fue creado por Andrew Kelley y ha ganado popularidad rápidamente entre los desarrolladores de sistemas gracias a su enfoque en la simplicidad y el rendimiento.

Zig proporciona control directo sobre la memoria, lo que permite a los desarrolladores escribir código extremadamente eficiente sin sacrificar la seguridad.

Ventajas de Zig

1. Simplicidad y Eficiencia: Zig se centra en ser un lenguaje sencillo de entender y utilizar, sin sacrificar el rendimiento. Su sintaxis es clara y directa, lo que reduce la complejidad del código.

2. Seguridad: Zig incluye varias características de seguridad que previenen errores comunes en C, como el manejo de punteros nulos y el desbordamiento de buffers.

3. Compatibilidad: Zig puede interoperar fácilmente con C y C++, lo que facilita la integración con proyectos existentes.

4. Gestión de Paquetes: Zig tiene un sistema de gestión de paquetes integrado que simplifica la inclusión de dependencias y bibliotecas externas.

5. Compilador y Herramientas: Zig incluye un compilador propio que está diseñado para ser rápido y eficiente. Además, ofrece herramientas útiles para la depuración y el análisis del código.

Según una estadística reciente de Stack Overflow, Zig es uno de los lenguajes de programación mejor pagados, con un salario promedio anual de $103,611 dólares.

Este dato resalta la creciente demanda y el valor de los desarrolladores que dominan Zig. A medida que más empresas buscan optimizar sus sistemas y mejorar el rendimiento de sus aplicaciones, la experiencia en Zig se convierte en una habilidad valiosa y rentable.

Zig es una excelente opción para desarrolladores que buscan un lenguaje moderno y eficiente para programación de sistemas.

Con su enfoque en la simplicidad, la seguridad y el rendimiento, Zig está bien posicionado para convertirse en una herramienta esencial en el arsenal de cualquier desarrollador de sistemas.

Si estás interesado en aprender Zig, hay varios recursos gratuitos en línea que pueden ayudarte a comenzar:

Sitio Oficial de Zig: Ofrece documentación completa y tutoriales para aprender el lenguaje.

Zig Learn: Un tutorial interactivo y estructurado para aprender Zig desde lo básico hasta conceptos más avanzados.

GitHub de Zig: Contiene ejemplos y proyectos que pueden ayudarte a aprender.

y Zig Discord: Comunidades donde puedes interactuar con otros desarrolladores y obtener ayuda en tiempo real.

Explora estos recursos, sumérgete en el aprendizaje de Zig y descubre un mundo de posibilidades y recompensas en el campo de la programación de sistemas.

# data[].attributes.attachment_link.title
Descubre el lenguaje de programación que está captando la atención de los mejores desarrolladores - Facialix

# data[].attributes.attachment_link.description
Descubre el lenguaje de programación con un salario promedio de $103,611 y por qué es el secreto mejor guardado de los desarrolladores.

# data[].attributes.attachment_link.readable_text
Agile Inception, o también conocido como Inception Deck, es un conjunto de técnicas orientadas a alinear a todas las personas involucradas en un proyecto.

El objetivo de estas técnicas es el de reducir muchas de las incertidumbres que puedan surgir, ayudando a identificar los riesgos más evidentes y poniendo en común las expectativas de todos los stakeholders. Esto permite reducir considerablemente la falta de consenso, problemas de comunicación y la ambigüedad en ciertas partes del proyecto.

Estas técnicas se publicaron por primera vez en el libro "The Agile Samurai: How Agile Masters Deliver Great Software". Se puede aplicar al iniciar cualquier tipo de proyecto, no sólo de desarrollo software, aunque está pensado especialmente en las fases conceptualización de startups porque facilita la definición de Productos Mínimos Viables (MVP).

ElEstas técnicas se centran en output de Agile Inception nos ayuda considerablemente en la identificación de funcionalidades, roadmapping y definición de una arquitectura de alto nivel. comunicar los objetivos, la visión y el contexto del proyecto al equipo para que se puedan tomar decisiones inteligentes mientras se ejecuta este y proporciona a los stakeholders la información que necesitan para ayudarlos. Ya que estas técnicas son muy colaborativas se requieren de materiales como post-its, pizarras y rotuladores para poder participar y colaborar en un escenario común.

Como he tenido que realizar en el master de "Gestión y Dirección de Proyectos Software" una práctica recorriendo cada una de las técnicas de Agile Inception, vamos a ver una pequeña descripción de cada una de las técnicas y un ejemplo con la aplicación de mensajería instantánea Whatsapp.

Mucho de los ejemplos se han construido con una herramienta online Realtime Board ( https://realtimeboard.com) que nos permite construir los distintos tipos escenarios simulando el uso de post-its.

1. Why are we here?

La primera de las preguntas que debemos hacernos en Agile Inception es encontrar los motivos por los que este proyecto tiene sentido para el cliente preguntándonos ¿por qué estamos aquí? Descubriendo los motivos principal de nuestro proyecto, nos va a dar el conocimiento suficiente para ayudarnos en la toma de decisiones y entender el contexto de uso. Para que la comunicación fluya en esta fase de discovering, se utilizan técnicas como World Coffee, donde los interlocutores interactúan potenciando la comunicación en distintos espacios de conversación. Otra técnica útil es el Impact Mapping el cual hablamos en posts anteriores.

El producto que se desea construir es una aplicación de mensajería instantánea para smartphones. Cada día nos encontramos más conectados, y el objetivo es lanzar un producto que permita a millones de personas poder comunicarse. El target principal de consumo de esta aplicación es cualquier persona física con un smartphone, pero también señalar la importancia de las herramientas de comunicación dentro de las empresas.

El impulsor principal del proyecto no es otro que mejorar la comunicación de las personas de una manera sencilla, accesible y segura para todos.

Las funcionalidades principales son la mensajería vía chat, la privacidad de la comunicación, la compartición de contenido multimedia y la facilidad de uso

Los objetivos de negocio son los de tener la mayor cuota del mercado respecto otras aplicaciones de mensajería instantánea y llegar a cualquier tipo de dispositivo

Entre los requisitos no funcionales principales destacan la disponibilidad, la seguridad y la usabilidad

Entre los riesgos principales han destacado la gran competencia del sector,

2. Elevator Pitch

En este apartado el objetivo es construir un briefing de 45 segundos que resuma el proyecto y se centre en el valor real del producto. Es importante que en este discurso nos centremos en los elementos principales que queremos transmitir. Por ello debemos de centrarnos en las necesidades, la solución propuesta, como se encuentra el mercado, cuales son los competidores y cual es nuestra propuesta de valor.

Para los usuarios habituados al uso del smartphone

Quienes desean poder comunicarse con su círculo social estén donde estén

Whatsapp es una aplicación móvil

Que pretende posicionarse como aplicación de mensajería instántanea principal

En lugar de alternativas como Telegram, Line o Skype

Con el valor diferenciador de ofrecer una experiencia sencilla para todo tipo de consumidor y con una privacidad absoluta de las comunicaciones.

3. Product Box

En este apartado el objetivo es construir una caja de producto como si la ofreciéramos en un centro comercial, junto a sus slogans principales. Diseñar una caja de producto es un concepto relacionado con marketing que nos invita a imaginar la caja de un producto con los mensajes e imágenes necesarias como si nuestro producto estuviera empaquetado y fuera a estar expuesto de forma que resulte lo más atractivo posible para el cliente.

Para ello se ha construido la siguiente caja, jugando con simplicidad y con un slogan con sus tres claves "comunicación instantánea y segura".

Una lista de Noes lo que hace es establecer las fronteras del producto a la hora de empezar a hablar, estableciendo un punto de referencia a las expectativas sobre lo que no se va a considerar como parte del proyecto. Esto es importante por qué es lo que nos va a determinar el alcance del proyecto.

Para ello se ha construido el siguiente tablero con tres zonas principales: En Alcance, Fuera de Alcance y Por decidir:

Como vemos, hemos diferenciado entre aquellas funcionalidades que no entran dentro del desarrollo de producto, las que están claras que son necesarias y aquellas que deben de resolver si entran o no entran en el alcance. Esto proporciona una primera aproximación de las funcionalidades principales del producto que se abordarán en el desarrollo del MVP.

5. Meet your neighbors

Es importante que todos los stakeholders del proyecto tengan en su radar al resto. Los entornos empresariales suelen ser grandes, y habitualmente no somos capaces de identificar cuantas personas están involucradas para lograr que el proyecto sea un éxito.

Es mejor establecer pronto las relaciones entre los miembros y generar un nexo confianza entre los mismos, esto implica que a la hora de enfrentar ciertos problemas la comunicación y el compañerismo será mejor

En nuestro caso vamos a identificar a todos los actores involucrados en el proyecto.

Como vemos, existe un equipo core formado por los equipos de desarrollo, UX y diseño, liderados por el product owner y luego stakeholders interesados en medida en la evolución del proyecto como pueden ser el equipo de marketing, de analítica y de finanzas. Hemos identificado cuanto de importante son los equipos para lograr el éxito del proyecto.

6. Show the solution

En este apartado se debe de trabajar en conjunto para mostrar una primera aproximación de la solución, planteando arquitectura, tecnología y herramientas que serían necesarias para la construcción del producto.

Esto conlleva generar expectativas, visualizar suposiciones, que todo los involucrados tengan claro el producto y sus principales escenarios.

Para lograr esto, se ha trabajado junto con unas plantillas móviles para diseñar entre todos un prototipado de baja fidelidad que represente cómo sería la interacción del usuario final con nuestro producto

7. Keep us at night

En este apartado debemos detectar aquellas cosas que nos pueden mantener despiertos por la noche. Es el lugar adecuado para que salgan a la luz aquellos riesgos que puedan influir en el desarrollo del producto, desde todas las perspectivas posibles. De tal manera que detectando estos riesgos podremos manejarlos y tenerlos en mente durante la evolución del proyecto, siendo consciente de las posibles desviaciones que puedan conllevar.

Para ello se ha construido una matriz de riesgo a partir de una dinámica de post its donde todos los involucrados han expuesto los posibles riesgos y etiquetados entre todos entre Bajo, Medio y Alto riesgo.

En esta dinámica se trata de lograr una estimación de alto nivel de cuándo esfuerzo en recursos y tiempo puede conllevar el proyecto. No se trata de dar una estimación exacta, pero si de algo aproximado teniendo en cuenta todas las implicaciones que conlleva. Esto proporciona a los stakeholders una idea de cuánto de grande es lo que se desea construir. El objetivo no es la precisión pero si aproximar el posible tamaño.

Para llevar a cabo esta técnica se ha construido un Gantt en el que han colaborado todos los equipos marcando ciertos hitos del proyecto con entregas funcionales.

El producto podría estar listo para lanzarse en el Q4 de 2019 aproximadamente en Septiembre. Y las funcionalidades más prioritarias tras el MVP, podrían lanzarse en dos paquetes de funcionalidades cada 3 meses.

A continuación se muestra en diagrama de Gantt de alto nivel en el que se detallan los distintos posibles hitos del proyecto. Se considera con la estimación que el desarrollo del producto abarca aproximadamente entre 9 y 15 meses.

9. Be clear on What's going to give

En esta dinámica se trata de establecer ciertas prioridades en los factores claves de ejecución del proyecto, y si entran en conflicto cuales son más prioritarios. Se deben establecer estas palancas, siempre teniendo en cuenta las 4 más importantes: Presupuesto, Alcance, Tiempo y Calidad. Además en este proyecto en cuestión entran en juegos dos factores adicionales claves para el éxito del proyecto que son la experiencia de usuario y la seguridad.

Para ello todos los involucrados han priorizado del 1 al 6 los factores que entran en juego sin poder repetir la prioridad, de tal orden que queda un orden de factores.

1. Seguridad (El factor más importante es la seguridad, ya que el valor principal debe ser el servicio de mensajería instantánea más seguro, debido a los problemas de privacidad y la legislaciones surgidas en los últimos años

2. Calidad (Para tener un valor diferenciar el producto debe ser robusto y de calidad

3. Tiempo (Es importante no desviarse de la estimación realizada en el Size it Up por posibles competidores

4. Experiencia de Usuario (La experiencia de usuario debe de ser buena, pero tampoco se requiere reinventar la rueda

5. Alcance (El alcance no preocupa siempre que existan ciertas actualizaciones planificadas tras el lanzamiento, se podría prescindir de alguna funcionalidad que no sea core

6. Presupuesto (Ha entrado un fuerte inversor, y el presupuesto a día de hoy no hay problema para añadir más recursos al proyecto.

10. Show what it's going to take

En esta dinámica se trata de calcular aproximadamente el número de personas involucradas para cumplir con las necesidades en el tiempo establecido y estimar el coste que pueda conllevar.

Tras el recorrido de las distintas dinámicas se ha establecido que el equipo podría establecerse de esta manera:

3 analistas programadores (2 senior y 1 junior)

1 diseñador senior

1 Product Owner

Aportaciones puntuales del equipo de analítica y marketing

Con el equipo disponible y la estimación de tiempo de 1 año de media aproximado (9 a 15 meses), podemos dar la siguiente estimación:
7 personas -> 12 meses -> 250K
Conclusión de Agile Inception

Como hemos podido ver, todas las técnicas de Agile Inception tienen un nexo, ya que están focalizadas en visibilizar a todos los involucrados el alcance y necesidades del proyecto. Las 5 primeras técnicas se centran en el QUÉ mientras que las otras 5 se centran en el COMO. Este tipo de sesiones son caras de llevar a cabo ya que requiere de un día entero de todos los involucrados pero las ventajas que se logran cara al producto son notables.

Si has participado en algún tipo de workshop en el que has aplicado Agile Inception me gustaría que colaboraras en los comentarios de este post y nos contaras tu experiencia.

# Bonus Track

La siguiente formación de Elena Naranjo en el canal de youtube de CICE me ha parecido realmente útil e interesante. Os recomiendo que le echéis un vistazo para profundizar en las dinámicas y en la técnica de Agile Inception y User Story Mapping

Referencias
The Agile Inception Deck https://www.autentia.com/wp-content/uploads/2018/07/Mazo_Inception_Deck.pdf
Publicaciones Relacionadas

# data[].attributes.attachment_link.title
Recorrido por las 10 dinámicas de Agile Inception

# data[].attributes.attachment_link.description
Agile Inception, o también conocido como Inception Deck, es un conjunto de técnicas orientadas a alinear a todas las personas involucradas en un proyecto. El objetivo de estas técnicas es el de reducir muchas de las incertidumbres que puedan surgir, ayudando a identificar los riesgos más evidentes y poniendo en común las expectativas de todos los stakeholders.

# data[].attributes.attachment_link.readable_text
Opera acaba de anunciar una nueva versión de su navegador principal, Opera One. Esta actualización, bautizada R2, apuesta fuerte por la IA y mejora el control multimedia, pero en su gestión de las pestañas está su mejor avance.

Por qué es importante. Opera es el mayor de los navegadores que no son una opción por defecto para nadie, como Chrome, Safari o Edge. Planta cara a los grandes con funciones innovadoras centradas en la navegación, y esta actualización puede atraer a más usuarios interesados en la IA y en la productividad.

Lo más destacado.

Controles multimedia flotantes y personalizables.

Pestañas divididas para trabajar con dos páginas en una misma ventana.

Integración profunda de la IA generativa con su asistente, Aria.

Nuevo diseño con temas personalizables.

Los controles multimedia. Son flotantes y se pueden redimensionar y mover libremente por la ventana del navegador. Esto permite controlar la música o el vídeo que estemos escuchando sin cambiar de pestaña, similar al picture in picture.

Pestañas divididas. Algo que hace poco comentamos como grandes bondades de Arc y Edge, y que reclamábamos al resto de navegadores. Opera ya lo ha incorporado.

Es algo que mejora mucho la productividad al facilitar tareas como comparar información o referenciar varias fuentes. O trabajar sobre una pestaña y documentarnos en otra.

IA potenciada. Opera ha profundizado en la IA que ya integraba con Aria:

Genera imágenes a partir de texto.

Salida de voz para leer respuestas en alto, más cómodo para algunos usuarios y mucho más decisivo para quien tiene alguna discapacidad visual.

Análisis y comprensión de imágenes subidas por el usuario.

Modo de contexto de la página para resumirla, encontrar información o traducirla.

La personalización. El nuevo diseño de Opera One R2 es un lavado de cara, pero también un guiño a la personalización. Incluye algo que ya habíamos visto en Opera GX, el navegador para gamers: efectos de sonido en ciertas interacciones de la interfaz.

El contexto. Esta actualización llega en un momento en el que los navegadores están evolucionando más allá del papel de ventanas a la Web. Se están convirtiendo en centros de productividad y creatividad impulsados por la IA.

Con R2, Opera busca posicionarse como un navegador moderno y versátil, con la vocación de cumplir con quien pide productividad y funciones avanzadas, y manteniendo la orientación hacia quien no ve en un navegador un simple puente hacia la Web, sino quien disfruta de ese recorrido y las funciones que le pueden aportar.

Imagen destacada | Opera

En Xataka | Quizás sea el momento de pasar a un navegador centrado en la privacidad: aquí están los siete más destacados

# data[].attributes.attachment_link.title
Las pestañas divididas llegan a Opera. El nuevo Opera One R2 se centra en la productividad impulsada por IA

# data[].attributes.attachment_link.description
Opera acaba de anunciar una nueva versión de su navegador principal, Opera One. Esta actualización, bautizada R2, apuesta fuerte por la IA y mejora el control...

# data[].attributes.attachment_link.description
Choosing the Right Database for Your Needs

# data[].attributes.attachment_link.readable_text
Git is an essential tool for developers, enabling efficient version control and collaboration. However, with its vast array of commands, it can be overwhelming for beginners to grasp their usage and implications fully.

This blog post aims to demystify six crucial Git commands by categorizing and explaining their functionalities.

Now lets dive into each command.

Please note some still images really make more sense with animation.

The fetch command downloads objects and refs from another repository. It updates your remote-tracking branches but doesn't merge these changes into your working files. This allows you to review changes before integrating them into your project.
Usage:
The pull command is essentially a combination of fetch and merge. It downloads objects and refs from another repository and immediately merges them into your current branch. This is a more straightforward approach but doesn't offer the same level of control as using fetch followed by a manual merge.
Usage:
The revert command creates a new commit that undoes the changes made by a previous commit. It's useful for reversing changes in a project while keeping a record of these reversals.
Usage:
The reset command is used to move the current branch to a different commit. Depending on the mode used ( --soft, --mixed, --hard), it can also modify the index and the working directory to match the specified commit. This command is powerful but can be dangerous as it can rewrite history.
Usage:
git reset --soft|--mixed|--hard <commit>

The rebase command is used to reapply commits on top of another base tip. It's a powerful tool for maintaining a linear project history by moving or combining a sequence of commits to a new base commit.
Usage:
The merge command joins two or more development histories together. It takes the contents of a source branch and integrates them with the current branch, creating a new merge commit in the process.
Usage: Click Here To Join Waiting List

Introduction To Git

Anatomy of Git Commands

Creating Your First Git Repository

Tracking Changes In Git

Working With Remote Repositories

Practical Exercises

Excluding Files And Folders In Git

Taking A Closer Look At Commits

Undoing Changes In Git

Force Pushing In Git

Working With Branches

Synchronizing Changes With Remote Repositories

Working With Pull Requests

Collaborating On Pull Requests

Managing Merge Commits

Rebasing In Git

Squashing Commits In Git

Resolving Merge Conflicts

Real-World Examples Of Rebase And Conflicts

Using Git Stash

Advanced Git Techniques And Best Practices

Using Visual Studio Code With Git

Git Clients (VSCode, IntelliJ and Others)

Open Source And Collaborative Workflows

Markdown And Documentation

Using Codespaces

Continuous Integration And Deployment (CI/CD)

Enhancing Security In Git

Agile Project Management And Planning

AI-Powered Development With GitHub Copilot

Click Here To Join Waiting List

See you on the next post 🤝

# data[].attributes.attachment_link.title
Master Git: Understanding Key Commands for Effective Version Control

# data[].attributes.attachment_link.description
Fetch, Pull, Revert, Reset, Rebase, and Merge Explained