<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Judlup Luna</title>
    <description>The latest articles on DEV Community by Judlup Luna (@judlup).</description>
    <link>https://dev.to/judlup</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F132376%2F90260149-815a-4cd8-88bf-176dab076141.jpg</url>
      <title>DEV Community: Judlup Luna</title>
      <link>https://dev.to/judlup</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/judlup"/>
    <language>en</language>
    <item>
      <title>No todos los proyectos se desarrollan con IA igual</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Sat, 11 Jul 2026 15:57:50 +0000</pubDate>
      <link>https://dev.to/judlup/no-todos-los-proyectos-se-desarrollan-con-ia-igual-e2a</link>
      <guid>https://dev.to/judlup/no-todos-los-proyectos-se-desarrollan-con-ia-igual-e2a</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjbi1a25j2gz6tkmxjrb0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjbi1a25j2gz6tkmxjrb0.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Por qué los proyectos nuevos, pre-IA y legacy necesitan estrategias diferentes
&lt;/h2&gt;

&lt;p&gt;La inteligencia artificial está cambiando la forma en que construimos software. Hoy podemos usar asistentes y agentes para generar código, explicar módulos, crear pruebas, revisar errores, proponer arquitecturas o documentar partes de un sistema. Todo eso suena poderoso, y lo es, pero hay una idea que muchas veces se pasa por alto: no todos los proyectos están igual de preparados para trabajar con IA.&lt;/p&gt;

&lt;p&gt;No es lo mismo usar IA en un proyecto que apenas empieza, que usarla en un producto que ya tiene varios años de evolución, o en un sistema legacy donde tocar una línea de código puede romper un comportamiento que nadie entiende del todo. La IA puede acelerar el desarrollo, pero cuando el proyecto no tiene contexto suficiente, también puede acelerar errores, deuda técnica y decisiones mal alineadas.&lt;/p&gt;

&lt;p&gt;Por eso, antes de hablar de desarrollo asistido por IA, necesitamos hablar del estado real del proyecto. No se trata solo de preguntarle mejor a la IA, sino de preparar mejor el conocimiento que la IA necesita para ayudar.&lt;/p&gt;

&lt;p&gt;Ahí es donde entra Kaddo.&lt;/p&gt;

&lt;h2&gt;
  
  
  El error: pensar que la IA funciona igual en todos los proyectos
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7x7mbxf2xbsekswah0fx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7x7mbxf2xbsekswah0fx.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una idea común es asumir que basta con abrir un editor con IA, conectar el repositorio y empezar a pedir cambios. Podemos pedirle cosas como “agrega esta funcionalidad”, “refactoriza este módulo”, “crea una API” o “moderniza este código”. El problema es que esas instrucciones no significan lo mismo en todos los proyectos.&lt;/p&gt;

&lt;p&gt;En un proyecto nuevo, la IA puede ayudar a estructurar desde cero. En un proyecto existente, primero necesita entender qué ya existe antes de proponer cambios. Y en un sistema legacy debe actuar con mucho más cuidado, porque muchas decisiones no están documentadas y parte del conocimiento vive en la cabeza de pocas personas.&lt;/p&gt;

&lt;p&gt;El problema no es usar IA. El problema es usarla sin considerar el estado real del proyecto.&lt;/p&gt;

&lt;p&gt;Para trabajar con IA de forma más responsable, podemos pensar en tres tipos de proyectos: &lt;strong&gt;new&lt;/strong&gt;, &lt;strong&gt;pre-IA&lt;/strong&gt; y &lt;strong&gt;legacy&lt;/strong&gt;. Esta clasificación no busca etiquetar un proyecto para siempre, sino responder una pregunta práctica: &lt;strong&gt;¿qué necesita saber la IA antes de ayudarnos a construir?&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  1. New projects: cuando el conocimiento se puede crear desde el inicio
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7chotjl5zwzpqo2hhvag.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7chotjl5zwzpqo2hhvag.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Un proyecto &lt;strong&gt;new&lt;/strong&gt; es un proyecto que está empezando. Todavía no tiene demasiada deuda técnica, decisiones ocultas o capas históricas difíciles de entender. Eso no significa que sea fácil, pero sí representa una oportunidad muy valiosa: crear una base de conocimiento desde el primer día.&lt;/p&gt;

&lt;p&gt;En este tipo de proyecto, el mayor riesgo no suele ser romper algo existente, sino avanzar rápido sin dejar claridad sobre lo que se está construyendo. Al comienzo todo parece evidente: el equipo sabe qué quiere hacer, las decisiones están frescas, los acuerdos viven en conversaciones recientes y la arquitectura todavía parece simple. Sin embargo, con el tiempo, esa claridad empieza a diluirse.&lt;/p&gt;

&lt;p&gt;Lo que al inicio era una conversación rápida termina convirtiéndose en una decisión invisible. Después llega una nueva persona al equipo, se retoma el proyecto semanas más tarde o se usa un agente de IA para continuar el trabajo, y muchas respuestas empiezan a depender de suposiciones.&lt;/p&gt;

&lt;p&gt;En un proyecto nuevo, la IA puede ser muy útil para ayudar a definir el contexto del negocio, la intención del producto, los primeros módulos, las decisiones iniciales de arquitectura, el roadmap, los work items y los criterios de entrega. Pero la IA no debería inventar el negocio ni decidir sola la arquitectura. Su rol debería ser ayudar a estructurar el pensamiento del equipo.&lt;/p&gt;

&lt;p&gt;En este escenario, la clave no es darle a la IA un repositorio enorme para analizar, porque probablemente ese repositorio todavía no existe o está apenas naciendo. La clave es construir una base mínima de conocimiento que acompañe el crecimiento del proyecto. No hace falta documentarlo todo; hace falta documentar lo suficiente para que el equipo y la IA entiendan qué problema se está resolviendo, para quién se está construyendo, qué decisiones se han tomado, qué restricciones existen y cómo se espera que evolucione el producto.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cómo ayuda Kaddo en proyectos new
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fipmn12ch21tofoupkmxc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fipmn12ch21tofoupkmxc.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En proyectos nuevos, Kaddo ayuda a crear una estructura inicial de conocimiento sin convertir el proceso en una carga innecesaria. La idea no es empezar con una documentación gigante, sino con una base mínima que conecte negocio, producto, tecnología, delivery, roadmap y work items.&lt;/p&gt;

&lt;p&gt;Esto permite que el proyecto nazca con memoria desde el inicio. Y eso cambia mucho la forma en que se usa IA, porque un agente no solo necesita código para ayudar; también necesita intención.&lt;/p&gt;

&lt;p&gt;Un proyecto nuevo bien preparado puede usar IA para acelerar sin perder dirección.&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Pre-IA projects: cuando el proyecto existe, pero no fue preparado para agentes
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw9fv2vibnvxiivfrauxq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw9fv2vibnvxiivfrauxq.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Un proyecto &lt;strong&gt;pre-IA&lt;/strong&gt; es un proyecto que ya existe, pero que fue creado antes de que el equipo pensara seriamente en asistentes, copilotos o agentes de IA. Puede ser un proyecto sano, con buen código, pruebas y documentación parcial, pero probablemente no fue diseñado para responder preguntas como: qué contexto necesita un agente antes de modificar un módulo, qué decisiones arquitectónicas debe respetar o qué partes del código están conectadas con cada capacidad del negocio.&lt;/p&gt;

&lt;p&gt;Este tipo de proyecto es muy común. No necesariamente está roto y no necesariamente es legacy. Simplemente no fue preparado para trabajar con IA de forma consistente.&lt;/p&gt;

&lt;p&gt;El problema aparece cuando cada asistente o agente empieza a explorar el repositorio desde cero. Lee archivos, intenta inferir arquitectura, busca patrones, analiza nombres de carpetas y propone cambios a partir de señales parciales. Esa exploración se repite una y otra vez, porque cada nueva sesión vuelve a descubrir lo mismo.&lt;/p&gt;

&lt;p&gt;El resultado es que la IA puede ayudar, pero no siempre de forma alineada. Un agente puede entender el proyecto de una manera hoy y de otra forma mañana. Un desarrollador puede explicarle el contexto de una forma y otro desarrollador de otra. Así, el proyecto empieza a depender demasiado de prompts individuales, en lugar de tener una base compartida de conocimiento.&lt;/p&gt;

&lt;p&gt;En un proyecto pre-IA, el primer paso no debería ser pedirle a la IA que cambie código. El primer paso debería ser entender el proyecto.&lt;/p&gt;

&lt;p&gt;Antes de implementar, conviene reconstruir capacidades del producto, arquitectura actual, módulos principales, dependencias, convenciones, roadmap, ownership, riesgos y decisiones existentes. La IA puede ayudar mucho en esa exploración, pero necesita trabajar sobre un contexto preparado, no sobre piezas sueltas.&lt;/p&gt;

&lt;p&gt;La pregunta cambia. Ya no es solo: “¿qué puede generar la IA?”. La pregunta correcta es: &lt;strong&gt;¿qué necesita entender la IA antes de generar algo?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cómo ayuda Kaddo en proyectos pre-IA
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdr43wivpw6k5878f3yh5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdr43wivpw6k5878f3yh5.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En proyectos pre-IA, Kaddo ayuda a pasar de un repositorio existente a una capa de conocimiento más clara. El flujo puede iniciar escaneando señales técnicas del repositorio, preparando un context pack para agentes LLM y usando agentes especializados para interpretar capacidades, arquitectura, roadmap y posibles work items.&lt;/p&gt;

&lt;p&gt;Después, ese conocimiento puede conectarse con ownership, decisiones y partes reales del código. Además, comandos como &lt;code&gt;guard&lt;/code&gt; ayudan a detectar cuando el código cambia pero el conocimiento relacionado no se actualiza, mientras que &lt;code&gt;explain&lt;/code&gt; permite entender qué sabe Kaddo del proyecto y qué falta por completar.&lt;/p&gt;

&lt;p&gt;Esto cambia la dinámica. La IA deja de trabajar solo desde archivos sueltos y empieza a trabajar desde conocimiento estructurado.&lt;/p&gt;

&lt;p&gt;Kaddo no pretende “entender mágicamente” el proyecto. Su valor está en ordenar señales, preparar contexto y facilitar que humanos y agentes trabajen mejor sobre una base compartida.&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Legacy projects: cuando cambiar código implica riesgo real
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiqwpnbdo0bn5isvicn9z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiqwpnbdo0bn5isvicn9z.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Un proyecto &lt;strong&gt;legacy&lt;/strong&gt; no es simplemente un proyecto viejo. Un sistema legacy es un sistema donde el cambio es riesgoso porque el conocimiento está incompleto, disperso o concentrado en pocas personas.&lt;/p&gt;

&lt;p&gt;Puede tener código antiguo, poca documentación, dependencias frágiles, reglas de negocio escondidas, módulos que nadie quiere tocar y procesos que funcionan en producción aunque nadie se atreva a modificarlos. También puede seguir generando mucho valor para la organización. De hecho, muchos sistemas legacy son críticos precisamente porque llevan años sosteniendo procesos importantes.&lt;/p&gt;

&lt;p&gt;En este tipo de proyecto, la IA puede ser útil, pero también puede ser peligrosa si se usa con demasiada confianza. Una sugerencia aparentemente correcta puede romper una regla invisible. Una refactorización elegante puede ignorar una decisión histórica. Una recomendación de modernización puede desconocer dependencias operativas que nunca fueron documentadas.&lt;/p&gt;

&lt;p&gt;En legacy, el problema no es solo técnico. Es un problema de conocimiento.&lt;/p&gt;

&lt;p&gt;Antes de cambiar, hay que entender. Antes de modernizar, hay que mapear riesgos. Antes de automatizar, hay que identificar zonas frágiles.&lt;/p&gt;

&lt;p&gt;Por eso, en un proyecto legacy, la IA no debería entrar como “desarrollador rápido”, sino como apoyo para una exploración controlada. El objetivo inicial no es producir más código, sino reducir incertidumbre.&lt;/p&gt;

&lt;p&gt;En este escenario conviene identificar riesgos, unknowns, módulos críticos, ownership, dependencias ocultas, reglas de negocio implícitas, candidatos de modernización y zonas que no deberían tocarse sin validación humana. La IA puede ayudar a analizar, resumir, comparar y proponer hipótesis, pero las decisiones deben seguir bajo control del equipo.&lt;/p&gt;

&lt;p&gt;En legacy, la velocidad sin contexto es una amenaza.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cómo ayuda Kaddo en proyectos legacy
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhvols6anl4x3dlvmm7hz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhvols6anl4x3dlvmm7hz.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En proyectos legacy, Kaddo ayuda a trabajar con más cuidado. No promete modernizar un sistema con magia ni reemplazar el criterio del equipo. Su valor está en ayudar a estructurar señales, riesgos y conocimiento antes de cambiar código.&lt;/p&gt;

&lt;p&gt;En un proyecto legacy, Kaddo puede ayudar a construir artefactos como riesgos, unknowns, candidatos de modernización, arquitectura actual, capacidades del producto, roadmap, work items pequeños y ownership asociado al código. Esto permite que la evolución del sistema sea más trazable.&lt;/p&gt;

&lt;p&gt;En lugar de pedirle a la IA “moderniza este sistema”, el equipo puede avanzar por piezas más pequeñas, con contexto, con riesgos visibles y con mayor control.&lt;/p&gt;

&lt;h1&gt;
  
  
  La diferencia no está en la IA, está en el contexto
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjem642amu929l4xztw34.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjem642amu929l4xztw34.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Los tres tipos de proyecto pueden beneficiarse de la IA, pero no de la misma forma. Un proyecto nuevo necesita crear conocimiento desde el inicio. Un proyecto pre-IA necesita reconstruir y estructurar contexto antes de evolucionar. Un proyecto legacy necesita reducir incertidumbre antes de cambiar código.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tipo de proyecto&lt;/th&gt;
&lt;th&gt;Qué necesita primero&lt;/th&gt;
&lt;th&gt;Riesgo principal&lt;/th&gt;
&lt;th&gt;Enfoque recomendado&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;New&lt;/td&gt;
&lt;td&gt;Crear base de conocimiento&lt;/td&gt;
&lt;td&gt;Avanzar sin dirección&lt;/td&gt;
&lt;td&gt;Estructurar intención, roadmap y decisiones desde el inicio&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pre-IA&lt;/td&gt;
&lt;td&gt;Reconstruir contexto&lt;/td&gt;
&lt;td&gt;Que la IA interprete desde señales parciales&lt;/td&gt;
&lt;td&gt;Escanear, empaquetar contexto y alinear agentes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Legacy&lt;/td&gt;
&lt;td&gt;Reducir incertidumbre&lt;/td&gt;
&lt;td&gt;Romper reglas invisibles&lt;/td&gt;
&lt;td&gt;Mapear riesgos, ownership y cambios pequeños&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;La idea central es simple: &lt;strong&gt;la IA no debería abordar todos los proyectos igual porque no todos los proyectos tienen el mismo nivel de conocimiento disponible.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Kaddo como capa de conocimiento para IA
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiagj1zo39v8u1o4gk42g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiagj1zo39v8u1o4gk42g.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kaddo parte de una idea muy concreta: los proyectos ya tienen conocimiento, pero suele estar disperso. Parte vive en el código, parte en tickets, parte en documentos, parte en conversaciones, parte en decisiones que nadie escribió y parte en personas que han estado cerca del sistema durante años.&lt;/p&gt;

&lt;p&gt;El objetivo de Kaddo es acercar ese conocimiento al repositorio y convertirlo en contexto útil para humanos y agentes de IA. No se trata de hacer documentación pesada, sino de crear una capa mínima, viva y accionable de conocimiento.&lt;/p&gt;

&lt;p&gt;Esa capa ayuda a responder preguntas clave: qué sabemos del proyecto, qué falta por entender, qué decisiones existen, qué partes del código están relacionadas, qué work items están activos, qué ownership existe y qué debería revisar el equipo antes de cambiar algo.&lt;/p&gt;

&lt;h1&gt;
  
  
  CLI determinístico, interpretación humana y agentes LLM
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhsl22u4s2y5mjswv9x2j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhsl22u4s2y5mjswv9x2j.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una parte importante de Kaddo es la separación de responsabilidades. El CLI hace trabajo determinístico: escanea, empaqueta contexto, crea estructura, detecta señales, relaciona cambios con conocimiento y explica el estado del proyecto.&lt;/p&gt;

&lt;p&gt;Pero Kaddo no intenta reemplazar la interpretación humana. La interpretación ocurre con humanos y agentes LLM externos, usando el contexto que el proyecto ha preparado.&lt;/p&gt;

&lt;p&gt;Esto es importante porque evita una falsa sensación de autonomía. Kaddo no dice: “yo entiendo tu proyecto, confía en mí”. La propuesta es más responsable: “aquí está el contexto estructurado; úsalo con tu equipo y tus agentes para tomar mejores decisiones”.&lt;/p&gt;

&lt;p&gt;Esa diferencia importa mucho cuando hablamos de proyectos reales.&lt;/p&gt;

&lt;h1&gt;
  
  
  El ciclo de Kaddo
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjorjr6n239sq6h8f9mjz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjorjr6n239sq6h8f9mjz.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kaddo puede verse como un ciclo de conocimiento que acompaña la evolución del proyecto. Primero se escanean señales técnicas, luego se prepara contexto para agentes, después se interpreta el estado del proyecto y se crean artefactos como roadmap, work items y ownership. A partir de ahí, &lt;code&gt;guard&lt;/code&gt; ayuda a detectar posibles desalineaciones entre cambios de código y conocimiento, mientras que &lt;code&gt;explain&lt;/code&gt; permite entender qué sabe Kaddo, qué falta y cómo está evolucionando el proyecto.&lt;/p&gt;

&lt;p&gt;Este ciclo no busca crear más proceso por deporte. Busca evitar que cada interacción con IA empiece desde cero.&lt;/p&gt;

&lt;h1&gt;
  
  
  Por qué esto importa para equipos reales
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flh32z2b5x33hy1x9ez10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flh32z2b5x33hy1x9ez10.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En equipos reales, el problema no es solo escribir código. El reto está en coordinar conocimiento: saber qué se decidió, por qué se decidió, qué no se debe romper, qué partes del sistema son críticas, quién entiende cada módulo y qué cambios requieren más cuidado.&lt;/p&gt;

&lt;p&gt;La IA puede ayudar mucho en ese escenario, pero solo si trabaja con contexto real. Sin contexto, la IA puede sonar segura y estar equivocada. Con contexto, puede convertirse en una herramienta mucho más útil para explorar, construir, revisar y evolucionar.&lt;/p&gt;

&lt;h1&gt;
  
  
  No se trata de IA-first, se trata de knowledge-first
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgite20a2twao33lgcps3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgite20a2twao33lgcps3.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Muchos equipos están intentando volverse AI-first. Eso puede sonar atractivo, pero antes de ser AI-first, muchos proyectos necesitan ser knowledge-first.&lt;/p&gt;

&lt;p&gt;La IA necesita una base sobre la cual razonar. Un proyecto sin conocimiento estructurado obliga a la IA a adivinar; un proyecto con conocimiento vivo le permite colaborar.&lt;/p&gt;

&lt;p&gt;Esa es la diferencia, no se trata de usar menos IA. Se trata de usarla mejor.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusión
&lt;/h1&gt;

&lt;p&gt;No todos los proyectos se desarrollan con IA igual, un proyecto nuevo necesita crear conocimiento desde el inicio. Un proyecto pre-IA necesita reconstruir y estructurar contexto antes de evolucionar. Un proyecto legacy necesita reducir incertidumbre antes de cambiar código.&lt;/p&gt;

&lt;p&gt;La IA puede ser útil en los tres casos, pero la estrategia debe cambiar. Kaddo propone una forma de abordar esa diferencia: construir una capa viva de conocimiento cerca del código, preparar contexto para humanos y agentes de IA, y mantener trazabilidad entre decisiones, trabajo y evolución del sistema.&lt;/p&gt;

&lt;p&gt;Porque el futuro del desarrollo asistido por IA no depende solo de mejores modelos. Depende también de mejores proyectos para trabajar con IA.&lt;/p&gt;

&lt;p&gt;Y un mejor proyecto no es solo el que tiene más código, es el que recuerda por qué ese código existe.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>You Don't Know JS: Up &amp; Going: Una guía esencial para principiantes</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Mon, 16 Oct 2023 21:25:56 +0000</pubDate>
      <link>https://dev.to/judlup/you-dont-know-js-up-going-una-guia-esencial-para-principiantes-1l8o</link>
      <guid>https://dev.to/judlup/you-dont-know-js-up-going-una-guia-esencial-para-principiantes-1l8o</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I9940aAN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hkladpslntj85fkax0ii.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I9940aAN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hkladpslntj85fkax0ii.jpg" alt="You Don't Know JS: Up &amp;amp; Going" width="667" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si estás comenzando tu viaje en el mundo de la programación o simplemente quieres adentrarte en el universo de JavaScript, es probable que alguien te haya recomendado el libro &lt;em&gt;"You Don't Know JS: Up &amp;amp; Going"&lt;/em&gt; de Kyle Simpson. Pero, ¿de qué trata este libro y cómo puede ayudarte en tu proceso de aprendizaje? Aquí te lo explicamos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿De qué trata "You Don't Know JS: Up &amp;amp; Going"?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"You Don't Know JS: Up &amp;amp; Going"&lt;/em&gt; es el primer libro de la serie &lt;em&gt;"You Don't Know JS"&lt;/em&gt;. Esta serie tiene como objetivo proporcionar una comprensión completa de JavaScript, profundizando en sus mecanismos centrales y matices. El libro está diseñado para aquellos con experiencia limitada en programación, presentándoles los bloques básicos de la programación y los mecanismos centrales de JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Características clave:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aprende los bloques esenciales de programación, incluyendo operadores, tipos, variables, condicionales, bucles y funciones.&lt;/li&gt;
&lt;li&gt;Familiarízate con los mecanismos centrales de JavaScript, como valores, cierres de funciones, "this" y prototipos.&lt;/li&gt;
&lt;li&gt;Obtén una visión general de otros libros de la serie y comprende la importancia de captar todos los aspectos de JavaScript.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://amzn.to/3M5ofdU"&gt;&lt;strong&gt;Comprar el libro&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Cómo leer "&lt;em&gt;"You Don't Know JS: Up &amp;amp; Going"&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Si bien puedes leer el libro de principio a fin, también puedes optar por leer las partes que sean más relevantes para tu nivel actual de conocimiento y experiencia. Te recomendamos comenzar con los bloques esenciales de programación para tener una base sólida. Luego, puedes adentrarte en los mecanismos centrales de JavaScript para entender cómo funciona el lenguaje en profundidad.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Partes recomendadas&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Si eres un principiante, te sugerimos comenzar con los bloques básicos de programación para obtener una comprensión fundamental. A medida que te sientas más cómodo, puedes explorar los mecanismos centrales de JavaScript, lo que te proporcionará una visión más profunda del lenguaje.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusión&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"You Don't Know JS: Up &amp;amp; Going"&lt;/em&gt; es una herramienta invaluable para aquellos que desean comprender JavaScript en su totalidad. Aunque puede parecer un poco desafiante al principio, su enfoque detallado y su explicación clara de los conceptos lo convierten en una lectura esencial para cualquier aspirante a desarrollador de JavaScript.&lt;/p&gt;

&lt;p&gt;Recuerda, no tienes que entender todo de inmediato. Tómate tu tiempo para digerir la información y no dudes en volver a las secciones que encuentres más desafiantes. Con paciencia y perseverancia, descubrirás que &lt;em&gt;"You Don't Know JS"&lt;/em&gt; puede llevarte a un nuevo nivel de comprensión y habilidad en el mundo de JavaScript.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>books</category>
      <category>softwaredevelopment</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Buenas prácticas en desarrollo de software</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Sat, 04 Feb 2023 07:01:23 +0000</pubDate>
      <link>https://dev.to/judlup/buenas-practicas-en-desarrollo-de-software-34cb</link>
      <guid>https://dev.to/judlup/buenas-practicas-en-desarrollo-de-software-34cb</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F42u1v36wzvkg9dy9hwo4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F42u1v36wzvkg9dy9hwo4.png" alt="Image description" width="800" height="534"&gt;&lt;/a&gt;&lt;br&gt;
El desarrollo de software es un proceso complejo y requiere de mucha planificación y ejecución adecuada para garantizar un producto de alta calidad. Aquí hay algunas buenas prácticas que deben seguirse para lograr un buen desarrollo de software:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Planificación: Antes de comenzar el desarrollo, es importante tener un plan claro y detallado de lo que se desea lograr. Este plan debe incluir los objetivos, el alcance, los requisitos del usuario, el plazo de entrega y el presupuesto.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Documentación: La documentación es esencial para un buen desarrollo de software. Todos los procesos y decisiones importantes deben ser documentados para que sea fácil de seguir y mantener.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pruebas: Las pruebas son una parte esencial del desarrollo de software. Todos los componentes del software deben ser probados exhaustivamente para asegurarse de que cumplen con los requisitos y funcionan correctamente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Codificación limpia: Es importante escribir código limpio y bien estructurado. Esto ayuda a mantener el software fácil de leer y de mantener, y a reducir los errores y los problemas de compatibilidad.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Control de versiones: El control de versiones es esencial para el desarrollo de software. Permite realizar un seguimiento de los cambios realizados en el código y hacer copias de seguridad fáciles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Colaboración: La colaboración es clave en el desarrollo de software. Es importante trabajar en equipo y compartir ideas para lograr un producto de alta calidad.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Seguridad: La seguridad es un aspecto crítico en el desarrollo de software. Es importante tomar medidas para proteger los datos y asegurarse de que el software sea seguro y cumpla con los estándares de seguridad.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Siguiendo estas buenas prácticas, se puede lograr un desarrollo de software eficiente, de alta calidad y con una buena documentación. Al final, esto asegurará un producto final sólido y satisfactorio para los usuarios.&lt;/p&gt;

</description>
      <category>announcement</category>
      <category>devto</category>
      <category>web3</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Generando equipos de desarrollo de software competitivos</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Wed, 18 Jan 2023 22:20:13 +0000</pubDate>
      <link>https://dev.to/judlup/generando-equipos-de-desarrollo-de-software-competitivos-199k</link>
      <guid>https://dev.to/judlup/generando-equipos-de-desarrollo-de-software-competitivos-199k</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TzKgJqku--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s17fjcn0u1omq1h53bft.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TzKgJqku--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s17fjcn0u1omq1h53bft.png" alt="Title" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La industria de la tecnología hoy en día está en un constante crecimiento acelerado, lo que ha generado que se requiera mucho más talento para contribuir a la construcción de los retos que surgen en cada una de las compañías; con este proceso acelerado surgen muchos problemas ligados, de los más comunes es el proceso de adaptación de nuevos miembros al equipo (del cuál luego hablaré), cómo ayudar a desarrollar la carrera de cada miembro, los retos técnicos, mantener el equipo alineado y motivado, entre muchos más.&lt;/p&gt;

&lt;p&gt;Precisamente ahí es donde el desarrollo de un equipo que tenga una serie de características intangibles pero esenciales para alcanzar los objetivos propuestos en el colectivo son importantes, dentro de las características que se pueden destacar de un equipo que logra lo que se propone tenemos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Comunicación&lt;/li&gt;
&lt;li&gt;Independencia&lt;/li&gt;
&lt;li&gt;Participación activa&lt;/li&gt;
&lt;li&gt;Visión compartida&lt;/li&gt;
&lt;li&gt;Know-how colectivo&lt;/li&gt;
&lt;li&gt;Ownership&lt;/li&gt;
&lt;li&gt;Colaboración&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3tvHJ0AB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gub1d3r3iodsgavee8az.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3tvHJ0AB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gub1d3r3iodsgavee8az.png" alt="Support 1" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para lograr cada una de estas características es importante que el equipo haga consciencia de que cada paso es necesario para cultivar esa cultura que en un corto/mediano plazo les permitirá llegar a tener un proceso que facilite el desarrollo del día a día.&lt;/p&gt;

&lt;p&gt;Los siguientes aspectos permititen la construcción de un equipo competitivo:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reglas claras&lt;/strong&gt;&lt;br&gt;
Establecer unas reglas claras, y con un enfoque a promover la participación, la comunicación y el respeto por las diversas ideas es fundamental cuando el objetivo en todos los miembros es el mismo y está claro en todo momento.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Todos viendo el mismo horizonte&lt;/strong&gt;&lt;br&gt;
Difundir la visión dentro del equipo es algo esencial, la información es un privilegio, pero un equipo que no tiene la información que le permita saber hacía dónde se dirigen genera mucha penumbra y hace que todo sea difícil de avanzar, invertir tiempo en que cada miembro del equipo tenga claros los objetivos facilitará mucho el poder avanzar sin tantas trabas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;El problema es de todos, la solución también&lt;/strong&gt;&lt;br&gt;
Permitir que cada miembro del equipo participe de manera activa sin temor a ser señalado o cuestionado y reconociendo cada participación incrementa y fomenta el espíritu de comunicación en los miembros del equipo, además de que hacer esto facilita la construcción de soluciones con muchos más puntos de vista pero con el mismo enfoque, el resultado, una solución robusta, contundente y eficaz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Una persona que decide todo solo no es funcional&lt;/strong&gt;&lt;br&gt;
Un equipo donde un miembro lleva total y arbitrariamente las decisiones puede denotar un autoritarismo que puede generar un mal ambiente, una desmotivación que crece constantemente dentro de los miembros del equipo al solo limitarse a recibir porciones de trabajo para realizar sin un objetivo claro en su mente, sin entender el impacto del mismo en el equipo y en el proyecto, de ahí que la delegación de las actividades sea una clave en el éxito de un equipo productivo y competitivo, un colectivo que puede expresar sus opiniones y aportar soluciones en la construcción del proyecto sabiendo que no siempre se podrán implementar todas las posibilidades, pero si siempre serán escuchadas y se implementarán en aras de la conveniencia del proyecto y no de un interés particular va a mantener motivado al equipo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O todos en la cama, o todos en el piso&lt;/strong&gt;&lt;br&gt;
También hay que tener un sacramento importante dentro del equipo, como un código de la calle que reza: "No señalar en público, reconocer en público, corregir en privado" esto facilita la construcción de un equipo que no tiene miedo a equivocarse, por lo que lo hará más rápido y le permitirá aprender de ello lo más pronto, el nivel de madurez es superior al de un equipo monosílabo centrado en el líder y no en el equipo, bien dicen, si sale todo bien, felicidades a todos, y si sale algo mal, nos sale mal a todos, no particularizar los errores y asumirlos como equipo facilita el aprendizaje y superar situaciones complejas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;La confianza en todos los aspectos es esencial&lt;/strong&gt;&lt;br&gt;
Como en todo proceso, el desarrollo de procesos independientes se da con confianza, pero el líder es quién da el primer paso encomendando tareas con un alcance global claro, pero dejando el camino despejado para que el miembro del equipo desarrolle la habilidad de planear, identificar, ejecutar y sobre todo equivocarse sin reproches, incrementando su nivel de confianza a la par que sus habilidades van creciendo de manera que el equipo se va consolidando desde lo individual.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conocer el equipo es fundamental&lt;/strong&gt;&lt;br&gt;
Conocer a cada miembro del equipo, esto es fundamental, conocer sus objetivos, deseos, debilidades va a facilitar al asignación acertada de las tareas, por otra parte, conociendo los anhelos profesionales de cada miembro del equipo es más fácil identificar oportunidades en el día a día que les permita bien sea hacer una actividad en un enfoque en el que esa persona quiere crecer, de allí la importancia de que el interés y escucha por parte del líder es fundamental y debe ser siempre genuino.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Todo se centra en la comunicación&lt;/strong&gt;&lt;br&gt;
Cuando el equipo puede comunicarse mejor, empieza la etapa en la que los obstáculos que se presentan se pueden resolver más rápido mediante la intervención de los diferentes miembros, una característica de un equipo sólido que puede llegar tan lejos como se lo propongan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SCRUM ayuda, y&amp;nbsp;mucho…&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HTy3z-MP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/93537vomnn4x8bha81i5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HTy3z-MP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/93537vomnn4x8bha81i5.png" alt="Support 2" width="800" height="534"&gt;&lt;/a&gt;&lt;br&gt;
Ahora, como medir si todo funciona, personalmente trabajo utilizando metodologías ágiles, particularmente SCRUM, dentro de esta metodología existe una ceremonia que muchos obvian, pero desde el punto de vista de equipo es la más importante, la retrospectiva, esta ceremonia no debería ser opcional; hace un tiempo, trabajando con un equipo de desarrollo de Estados Unidos vi que utilizaban una herramienta llamada Easy Retro, lo que me llamó la atención de esta herramienta y cómo la utilizaban era que era: anónima, concreta, daba un golpe de confianza, reconocimiento y visibilizaba lo que muchos piensan, pero pocos dicen, así luego de esto, esta herramienta me ha acompañado en mis experiencias como líder.&lt;/p&gt;

&lt;p&gt;En esta plataforma se crean tableros en tiempo real que permiten a los miembros del equipo escribir de manera anónima diferentes tarjetas que he repartido en cuatro columnas sencillas: "¿Qué hicimos bien?", "¿Qué podemos mejorar?", "Reconocimientos" y "Preguntas", la siguiente imagen es una refererencia de cómo luce la plataforma:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oc4ywIQ8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/en8lq8yqs03vzgmwmsx6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oc4ywIQ8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/en8lq8yqs03vzgmwmsx6.png" alt="Support 3" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El valor de estas cuatro preguntas:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"¿Qué hicimos bien?"&lt;/strong&gt;&lt;br&gt;
Permite identificar las cosas que se lograron por parte del equipo, en lo técnico o en las habilidades del equipo, este es el espacio para escribir de lo que todo el equipo se siente orgulloso de haber logrado en el último sprint, visibilizar cuanto se puede conseguir si todos trabajan en conjunto y cómo los aportes individuales ayudan a todo el equipo a lograr lo comprometido.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"¿Qué podemos mejorar?"&lt;/strong&gt;&lt;br&gt;
Siempre reconocer lo bueno es fácil en estos casos, decir en qué se falla sin temor a ser identificado o sufrir alguna represalia o presión es clave, en un comienzo el equipo se toma un tiempo en escribir aquí, luego de que el primero se anima, la magia ocurre, problemas técnicos, de alcance, de comunicación, o cualquier problema que surgió durante el sprint aparecerá en el tablero de manera anónima, todos ven y entienden el problema, pero lo más importante, pueden expresarlo, cómo líder poder ver esta información, entenderla, y adoptarla potencializa y acelera la consolidación del equipo, fortaleciendo al equipo a decir cosas incómodas de una manera segura, el día que una situación realmente se pone tensa, el equipo la podrá soportar llegando a soluciones objetivas y sin fricciones que se tornen personales.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Reconocimientos"&lt;/strong&gt;&lt;br&gt;
Esta sección cuando trabajé con el equipo de Estados Unidos, fue una de las que más me llenó de confianza y me gustó, apesar de que en un comienzo se me hacía un poco innecesaria, luego entendí el valor que tiene en lo individual y para todo el equipo; en esta sección el equipo escribe agradecimientos o reconocimientos a personas del equipo por su labor o por un reto encarado durante el sprint que facilitó la obtención de los resultados, dan la bienvenida a los nuevos miembros o los felicitan por sus primeros "pinitos", ver como el nombre de todos empieza a aparecer llena de mucha satisfacción y por ende cada miembro del equipo sabrá que todo esfuerzo no pasará en desapercibido en el equipo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Preguntas"&lt;/strong&gt;&lt;br&gt;
Esta última sección está dedicada a las preguntas que se mantienen en silencio o que por pena no se hacen en público o en privado, algo particular de esta sección es que termina siendo la sección más graciosa de la retrospectiva, allí propuestas de viajes, preguntas irreverentes o bromas con los logros de alguien en particular o del equipo amenizan la reunión y saca una sonrisa en cada miembro del equipo.&lt;/p&gt;

&lt;p&gt;Luego de unos 10 minutos de silencio de ver como aparecen mensajes en el tablero, el líder procede a leer tarjeta tras tarjeta, sección tras sección y dará respuesta o reflexión a cada punto, será la voz del grupo para y por el grupo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cultura, lo es&amp;nbsp;todo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OezWumax--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e5tnttkfhiy5vr8r9po0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OezWumax--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e5tnttkfhiy5vr8r9po0.png" alt="Support 4" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Un equipo competitivo es algo que se dice fácil, pero que cuesta mucho construirlo, esto surge desde el proceso de selección, desde allí el enfoque a la cultura del equipo como punto decisorio por encima de lo técnico garantiza que las personas van a compartir los mismos valores y cultura facilitando los procesos de integración al equipo del nuevo miembro, así como el onboarding técnico al encontrar un equipo sólido, que se comunica y siempre está dispuesto a ayudar a los demás.&lt;/p&gt;

&lt;p&gt;Un equipo competitivo se construye desde el mindset, no desde lo técnico, no caer en micromanagement, no ser invasivo, dejar opinar, equivocarse, participar, delegar, dejar liderar micro procesos, animar, dar confianza y seguridad a los miembros les permitirá sprint tras sprint construir lo que a mediano plazo será el equipo ideal, nada como que un miembro sugiera algo y en los siguientes sprints vea al menos parcialmente que su sugerencia fue tomada en cuenta y está siendo implementada, ese incentivo motiva y motiva muchísimo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paciencia, todo es un proceso..&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BxDu9luF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5xs0bi0mx2rxg1b31ezf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BxDu9luF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5xs0bi0mx2rxg1b31ezf.png" alt="Support 5" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si pensáramos en como se da este proceso diría que es por etapas de la siguiente manera:&lt;/p&gt;

&lt;p&gt;La primer etapa del proceso de formación de un equipo competitivo es de mucha paciencia, identificar puntos a mejorar, iterarlos y entender que los resultados no se ven de forma instantánea sino al paso de los sprints (en el caso que se trabaje con metodologías ágiles).&lt;/p&gt;

&lt;p&gt;La segunda etapa es enfocarse con mayor contundencia en cumplir con compromisos más exigentes con la mayor disposición del equipo y con todo el interés por cada miembro del equipo.&lt;br&gt;
El liderazgo de equipos competitivos es un reto que hoy en día da réditos a quienes están involucrados en este proceso, no solo al líder del equipo; Los retos de la industria tech cada día son más exigentes, por lo tanto crear y ser parte de un equipo competitivo que va más allá de las hard skills o habilidades técnicas es fundamental para la obtención de los objetivos, allí es donde las soft skills y la cultura hacen parte importante del éxito de un equipo élite.&lt;/p&gt;

&lt;p&gt;Gracias por tomarse el tiempo de leer este contenido, espero les sea de utilidad 😊✌&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>developerteam</category>
      <category>softskil</category>
      <category>leadership</category>
    </item>
    <item>
      <title>Roadmap del consultor tecnológico</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Sun, 01 May 2022 23:50:29 +0000</pubDate>
      <link>https://dev.to/judlup/roadmap-del-consultor-tecnologico-275e</link>
      <guid>https://dev.to/judlup/roadmap-del-consultor-tecnologico-275e</guid>
      <description>&lt;p&gt;En la actualidad el mundo de la tecnología avanza a pasos agigantados, desde que apareció el COVID-19, a pesar de lo devastador que ha sido y el daño causado, algunos sectores productivos se han visto beneficiados en medio de todo lo malo, este ha sido el caso particular del sector de la tecnología, sector el cual ha crecido y avanzado en tiempo record lo que se esperaba pasaría en al menos el próximo quinquenio, esto ha permitido que empresas como Zoom hayan crecido exponencialmente, con este boom también es normal que muchas personas de diversas profesiones empiecen a ver en la programación una vía de desarrollo profesional y personal, las comodidades del trabajo remoto, los excelente beneficios y los salarios han provocado un gran éxodo de personas al área de la tecnología.&lt;/p&gt;

&lt;p&gt;Ahora, gracias a esta escalada también la demanda de mentes con capacidades extraordinarias que puedan encaminar y conseguir los retos que se viene presentando son apetecidas en todo el mundo, ahí es donde roles como el de consultoría empiezan a ser trascendentes y se empieza a hablar de transformación digital, muchas compañías empezaron a moverse por integrar procesos tecnológicos en sus procesos, ya no como método de competencia, sino  como vía de supervivencia.&lt;/p&gt;

&lt;p&gt;Es claro que ante estas oportunidades de un magnífico momento muchas personas pueden optar por empezar a hacerse llamar “consultores” que se terminan aprovechando de empresarios con un afán por no desaparecer y con un mundo de desconocimiento e incertidumbres y terminan accediendo ante estas personas que, por el contrario de llegar a facilitar el proceso, pueden terminar siendo la estocada que le faltaba a la empresa al encaminar erradamente las estrategias y generar un desangre de recursos de una compañía sin ningún resultado.&lt;/p&gt;

&lt;p&gt;Un consultor no es precisamente alguien que recién egresa o domina una tecnología para realizar una implementación, un consultor es una persona que tiene la preparación y conocimiento para asumir retos, pero lo más importante es que tiene una amplia experiencia en procesos complejos en donde la toma de decisiones es clave para el éxito u obtener los resultados esperados.&lt;/p&gt;

&lt;p&gt;Una ruta para ser consultor empieza sin siquiera pensar en que ese será el fin, un consultor no es más que alguien que es un apasionado por lo que hace, que para llevarlo a un ejemplo, veamos alguien que empieza como programador, su inicio se fundamenta en los primeros años de adolescencia, el gusto por entender cómo funciona un computador puede llevarlo a tomarse horas y horas buscando acerca de esto, lo cual con el tiempo terminará preguntándose cómo puedo hacer mi propio software y cuales son los recursos necesarios para llevar a cabo el cometido, de esa manera termina aprendiendo un lenguaje de programación, digamos, JavaScript, luego de un tiempo termina su bachillerato y decide ingresar a la universidad a estudiar ingeniería de sistemas, allí solidifica sus hipótesis y empieza a ir por un camino más amplio, sus límites se amplían, participa de proyectos en los que adquiere más conocimientos y expertise en otras tecnologías que no conocía, cerca de finalizar su carrera ya tiene varios proyectos en su mochila, de esa manera consigue su primer trabajo que le permite pagarse sus estudios y lo más importante, empezar la vida profesional, tiempo después obtiene su título y continúa su proceso en la compañía que confió en sus capacidades y le brindó la oportunidad de iniciar como desarrollador junior, de esa manera pasó por un proceso de varios proyectos en los que no solo interactuó como desarrollador, si no se interesó por aportar en la construcción de la solución generando diálogos no técnicos con los clientes internos y externos de los proyectos, lo cuál le permitió adquirir uno de los soft skills más importantes, la comunicación, con el paso del tiempo sus contribuciones al equipo subieron tanto de calidad y precisión, que la empresa decide nombrarlos desarrollador semi  senior, su pasión lo llevó a dar más de lo que debía estar dando en su cargo, su carrera continuó avanzando y años más tarde con mucho conocimiento de negocio, contacto con clientes, resolución de problemas y ponencias sobre implementación de buenas prácticas, la empresa decide ascender al desarrollador senior, camino donde empieza a dar mentorías a sus compañeros, a asumir tareas complejas y a ser un referente de su equipo, adicional en su tiempo libre decide hacer certificaciones y estudios complementarios que le permitan adquirir nuevas habilidades, luego de esto la compañía lo cita y le plantea 3 caminos para su carrera, desarrollador senior con un grado superior, arquitecto de software junior o technical lead, cada uno tiene implicaciones distintas a futuro, opta por arquitecto junior, allí empezó a aportar de la mano de arquitectos con una mayor experiencia en la construcción de nuevas soluciones de clientes, sus skills de negociación, entendimiento, dimensionamiento y toma de decisiones fueron creciendo, un tiempo después la empresa decide otorgarle un ascenso como arquitecto senior, allí empieza a tomar las riendas de un proyecto grande en el cuál él decide la tecnología y tiene la capacidad de asesorar a un cliente en cuanto a qué es lo mejor para su implementación, sustentar sus decisiones con el equipo no técnico de la compañía, generar los reportes, traducir todo el proceso al equipo técnico y velar por la correcta construcción de la solución, así como el seguimiento en los ajustes en vivo que iban ocurriendo durante el proceso, debido a esta gran labor la empresa recibe una serie de reconocimientos y otras empresas empiezan a buscar la mente detrás de este logro, en ese punto la decisión moral es ofrecer servicios de consultoría a través de la compañía, entra a otro mercado donde pasa a ser un referente público en temas especializados, luego de un tiempo toma la decisión de dejar la compañía con el mayor agradecimiento y luchando por un sueño propio se convierte en un consultor.&lt;/p&gt;

&lt;p&gt;En el anterior ejemplo se denotan habilidades del tipo “hard” como lo son los conocimientos técnicos en una tecnología, los cuales le permitieron avanzar en su carrera profesional, pero dentro de los procesos que también supo entender fue la consecución de habilidades del tipo “soft”, como la comunicación, el liderazgo, el entendimiento de los procesos en ambientes técnicos y no técnicos, además de poder llevarlos de un extremo a otro de manera clara y acertada, de acuerdo al libro &lt;a href="https://drive.google.com/file/d/1u6RpjeY2kuk4Lqj2nS14-Q_K8vHRVBb7/view?usp=sharing"&gt;Leadership Today&lt;/a&gt;, algunos los soft skills que se evidencian en esta persona y que en últimas le facilitaron construir una carrera que se consolidó fueron:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Liderazgo&lt;/li&gt;
&lt;li&gt;Comunicación&lt;/li&gt;
&lt;li&gt;Confianza&lt;/li&gt;
&lt;li&gt;Responsabilidad&lt;/li&gt;
&lt;li&gt;Honestidad&lt;/li&gt;
&lt;li&gt;Asertividad&lt;/li&gt;
&lt;li&gt;Visión&lt;/li&gt;
&lt;li&gt;Escuchar&lt;/li&gt;
&lt;li&gt;Inteligencia emocional&lt;/li&gt;
&lt;li&gt;Sustentabilidad técnica y personal&lt;/li&gt;
&lt;li&gt;Conciencia&lt;/li&gt;
&lt;li&gt;Empatía&lt;/li&gt;
&lt;li&gt;Motivación&lt;/li&gt;
&lt;li&gt;Superación&lt;/li&gt;
&lt;li&gt;Creatividad&lt;/li&gt;
&lt;li&gt;Iniciativa&lt;/li&gt;
&lt;li&gt;Auto confianza&lt;/li&gt;
&lt;li&gt;Resiliencia&lt;/li&gt;
&lt;li&gt;Perseverancia&lt;/li&gt;
&lt;li&gt;Estimación&lt;/li&gt;
&lt;li&gt;Coherencia&lt;/li&gt;
&lt;li&gt;Cohesión &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;De todo lo anterior podemos evidenciar como el proceso no es una cuestión de meses, es el resultado de una vida de dedicación, enfoque y pasión hacia lo que se hace, lo cual termina convirtiéndose en un profesional que puede contribuir con sus conocimientos y experiencias a otras compañías que tienen diferentes retos y que de no resolverlos de manera oportuna y eficiente, podrían terminar desencadenando una serie de consecuencias que incluso podrían terminar con la compañía, de allí la importancia de realmente contar con profesional con una trayectoria que les facilite la toma de decisiones y las mejores vías de implementación de soluciones que los lleve al siguiente nivel.&lt;/p&gt;

&lt;p&gt;Por último, es importante ser bueno técnicamente, pero es aún más importante ser bueno como ser, crecer en valores y llevarlos al plano profesional con el objetivo de engrandecer a quienes confían en las habilidades técnicas, por otra parte el desarrollo de habilidades blandas o “soft skills” les permitirá crecer mucho más rápido en todos los aspectos, en ese punto es donde muchos profesionales se quedan y no encuentran una vía para llevar su carrera profesional al siguiente nivel.&lt;/p&gt;

</description>
      <category>consultor</category>
      <category>tecnologia</category>
      <category>transformaciondigital</category>
    </item>
    <item>
      <title>Serverless Community Call 18/11 Serverless Console</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Wed, 17 Nov 2021 13:40:25 +0000</pubDate>
      <link>https://dev.to/judlup/serverless-community-call-1811-serverless-console-32c5</link>
      <guid>https://dev.to/judlup/serverless-community-call-1811-serverless-console-32c5</guid>
      <description>&lt;p&gt;Serverless Community Call será el día 18 de noviembre, allí se dará a conocer los nuevos cambios de este gran Framework, la actualización más importante es Serverless Console, la cuál está enfocada en potencializar la administración de los recursos, equipos, integraciones (PagerDutty, Slack, DataDog, New Relic, etc), alertas y logs, de esta manera pasa de ser un Framework a una potente herramienta Cloud.&lt;/p&gt;

&lt;p&gt;Personalmente he utilizado Serverless Framework y me ha gustado su versatilidad y la manera en que administra facilmente los recursos, por otra parte, la documentación es amplia, y en casos particulares en opciones de configuración muy específicas, se puede acudir a la documentación de CloudFormation de AWS y se puede hacer uso de parámetros no definidos en la documentación.&lt;/p&gt;

&lt;p&gt;¿Ya han tenido experiencia con este Framework? &lt;/p&gt;

&lt;p&gt;Comparte este post, probablemente sea útil para alguien en tu red, si tienes alguna duda o comentario, no dudes en dejarlo en la parte de abajo.&lt;/p&gt;

&lt;p&gt;Regístrate: &lt;a href="https://app.livestorm.co/serverless/serverless-community-call-november-2021"&gt;https://app.livestorm.co/serverless/serverless-community-call-november-2021&lt;/a&gt;&lt;/p&gt;

</description>
      <category>swd</category>
      <category>community</category>
      <category>serverless</category>
      <category>console</category>
    </item>
    <item>
      <title>🤯Aprende a fácilmente a programar para la web con estos 2 sitios</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Thu, 28 Oct 2021 13:42:22 +0000</pubDate>
      <link>https://dev.to/judlup/aprende-a-facilmente-a-programar-para-la-web-con-estos-2-sitios-2l18</link>
      <guid>https://dev.to/judlup/aprende-a-facilmente-a-programar-para-la-web-con-estos-2-sitios-2l18</guid>
      <description>&lt;p&gt;Para quienes se están preguntando, ¿cómo puedo empezar a programar para web? quiero compartirles estos dos sitios bastante útiles:&lt;/p&gt;

&lt;p&gt;En este sitio pueden encontrar amplia cantidad de tutoriales y lo mejor, organizado y con casos prácticos, mi sugerencia es que inicien por la sección "Programación Web"&lt;br&gt;
&lt;a href="https://www.tutorialesprogramacionya.com/"&gt;https://www.tutorialesprogramacionya.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Otra herramienta muy útil es W3 School, en inglés, pero con un contenido organizado, lleno de casos prácticos y fácil para tener como guía de referencia.&lt;br&gt;
&lt;a href="https://www.w3schools.com/"&gt;https://www.w3schools.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si conocen algún otro sitio que recomienden, por favor, coméntenlo para que así otras personas puedan obtener este valioso conocimiento. #programacion&lt;/p&gt;

</description>
    </item>
    <item>
      <title>DynamoDB Data Modeling (Single Table)</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Mon, 20 Sep 2021 22:17:01 +0000</pubDate>
      <link>https://dev.to/judlup/dynamodb-data-modeling-single-table-48ag</link>
      <guid>https://dev.to/judlup/dynamodb-data-modeling-single-table-48ag</guid>
      <description>&lt;p&gt;&lt;strong&gt;Source:&lt;/strong&gt; &lt;a href="https://youtu.be/OfZgHXsYqNE"&gt;https://youtu.be/OfZgHXsYqNE&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Steps of the process
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Draw an entity diagram&lt;/li&gt;
&lt;li&gt;Identify the relationships between entities (1:1, 1:N, N:M)&lt;/li&gt;
&lt;li&gt;List down all the access pattern for each entity&lt;/li&gt;
&lt;li&gt;Identity the primary key ( Hash + Sort) for each entity&lt;/li&gt;
&lt;li&gt;Identify the secondary indexes for additional access patterns if required&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Example | Project Management Tool
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;SAAS Tool&lt;/li&gt;
&lt;li&gt;Multi-Tenant Support&lt;/li&gt;
&lt;li&gt;Manage Projects and Employees&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 01 - Draw and ERD
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--O6UA2JzX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/Bnw97jbX/1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--O6UA2JzX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/Bnw97jbX/1.png" alt="Diagram ERD" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 02 - Identify Relationships
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Nn7NdalS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/7ZLrN3xF/2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Nn7NdalS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/7ZLrN3xF/2.png" alt="Relationships" width="685" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 03 - Identify Access Patterns
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Organization&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organization CRUD operations&lt;/li&gt;
&lt;li&gt;Find all the projects of an organization&lt;/li&gt;
&lt;li&gt;Find all the employees of and organization&lt;/li&gt;
&lt;li&gt;Find all projects and employees of an organization&lt;/li&gt;
&lt;li&gt;Find an organization by name&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Project&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project CRUD operations&lt;/li&gt;
&lt;li&gt;Find a project by name&lt;/li&gt;
&lt;li&gt;Find the employees assigned to a project&lt;/li&gt;
&lt;li&gt;Find agile projects&lt;/li&gt;
&lt;li&gt;Find fixed-bid projects&lt;/li&gt;
&lt;li&gt;Find on hold projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Employee&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Employee CRUD operations&lt;/li&gt;
&lt;li&gt;Find all the projects an employee is part of&lt;/li&gt;
&lt;li&gt;Find an employee by name&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Project-Employee&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Assign an employee to a project&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 04 - Identify Primary Key
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GGQQsRi0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/RFKk0GRH/3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GGQQsRi0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/RFKk0GRH/3.png" alt="Identify primary key" width="800" height="242"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pk must be unique&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Example Queries
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Organization (org-id=1234)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KOwDTZp6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/MGCkxgyw/4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KOwDTZp6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/MGCkxgyw/4.png" alt="Organization" width="718" height="125"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Organization CRUD operations&lt;/strong&gt; - PK=ORG#1234, SK=#METADATA·1234&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find all the projects of an organization&lt;/strong&gt; - PK=ORG#1234, SK begins_with(PRO#)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find all the employees of an organization&lt;/strong&gt; - PK=ORG#1234, SK begins_with(EMP#)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find both employees and projects&lt;/strong&gt; - PK=ORG#1234&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find organization by name&lt;/strong&gt; - Not satisfied yet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Project (org-id=1234, project-id=100)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_nYEVkQE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/NFtW2TJP/5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_nYEVkQE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/NFtW2TJP/5.png" alt="Project" width="722" height="133"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Project CRUD operations&lt;/strong&gt; - PK= ORG#1234, SK=PRO#agile#100&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find a project by name&lt;/strong&gt; - Not yet satisfied&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find the employees assigned to a project&lt;/strong&gt; - PK=ORG#1234#PRO#100&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find agile projects&lt;/strong&gt; - PK=ORG#1234, SK begins_with(PRO#agile)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find fixed-bid projects&lt;/strong&gt; - PK=ORG#1234, SK begins_with(PRO#fixed-bid)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find on-hold projects&lt;/strong&gt; - Not yet satisfied&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Employee(org-id=1234, emp-id=300)&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Employee CRUD operations&lt;/strong&gt; - PK= ORG#1234, SK EMP#300&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find all projects an employee is part of&lt;/strong&gt; - No yet satisfied&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find all employees by name&lt;/strong&gt; - No yet satisfied&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 05 - Identify Secondary Indexes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Find all projects an employee is part of - &lt;strong&gt;Use an inverted index&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9_XI-3B3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/XNcMSHXM/6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9_XI-3B3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/XNcMSHXM/6.png" alt="Project" width="800" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Query on GSI - &lt;strong&gt;PK = ORG#1234#EMP#300&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find all organizations, projects, employees by name - GSI Overloading&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hxRiK93o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/dt4zDh84/7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hxRiK93o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/dt4zDh84/7.png" alt="Filter by name" width="800" height="238"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Find by org name - PK=ORG#1234, filterName=ORG#HappyInc&lt;/p&gt;

&lt;p&gt;Find by emp name - PK=ORG#1234, filterName=EMP#Manoj&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find On-hold projects - Use a Sparse Index&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qWUywzfT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/0jChYQh5/8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qWUywzfT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/0jChYQh5/8.png" alt="On hold project " width="800" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can Query or scan the GSI to find all the on-hold projects&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Using Filter Conditions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;These are used after the run queries and is necessary to add an extra filter with fields that aren't indexes nor keys.&lt;/li&gt;
&lt;li&gt;A filter query is applied after the query finished, but before the results are returned. A query consumes the same amount of read capacity, it not been affected if a filter condition exist&lt;/li&gt;
&lt;li&gt;Use filter conditions if the &lt;strong&gt;secondary indexes cost more than the filter conditions&lt;/strong&gt; due to low query velocity or frequency.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Inverted Index
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--00zcJver--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/KvZ6ZPg1/9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--00zcJver--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/KvZ6ZPg1/9.png" alt="Inverted index" width="800" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Query on GSI - &lt;strong&gt;PK=ORG#1234#EMP#300&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The reason to use an inverted index is because of the value to filter that I need is the SK value, so, I can't use a query method without specified a PK, in this way we can swap the PK and SK to become SK in PK and now is possible to do the query.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; It's necessary create an index table&lt;/p&gt;

&lt;h3&gt;
  
  
  GSI
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nkkxGpn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/wjMnN92H/10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nkkxGpn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.postimg.cc/wjMnN92H/10.png" alt="GSI" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's used when you need to make a search using a field different to SK to complement the search keys, so, you can create a GSI to make possible it query, in above example, the GSI is created for enable the filter by name query using PK + a new field called Data&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find by org name - PK=ORG1234, Data=ORG#HappyInc&lt;/li&gt;
&lt;li&gt;Find by emp name - PK=ORG#1234, Data=EMP#Manoj&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; It's necessary create an index table&lt;/p&gt;

</description>
      <category>dynamodb</category>
      <category>singletable</category>
      <category>aws</category>
    </item>
    <item>
      <title>.Net Core 3.0 near to real world ;)</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Mon, 30 Sep 2019 04:17:09 +0000</pubDate>
      <link>https://dev.to/judlup/net-core-3-0-near-to-real-world-27eg</link>
      <guid>https://dev.to/judlup/net-core-3-0-near-to-real-world-27eg</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w90oqnJv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/lrvxhef0093fq6uh2eqd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w90oqnJv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/lrvxhef0093fq6uh2eqd.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The past 4th septembre, Microsoft released dotnet 3.0, this is most stable &lt;br&gt;
 version(Microsoft expectancy to world developers),  with It Microsoft show their interest into participated actively in real world development environment with their C# (v 8.0), obviousely all this is a nice dream ( for their and their development community), and It's a result to a great and strong work, Microsoft with .Net Core, ASP and Xamarin show us their interest in became in a main tool to real world developers, now with Dotnet Core 3.0 her compatibility with others operative systems as Linux (mainly) and Mac OS, close the existent gap around of developer world.&lt;/p&gt;

&lt;p&gt;At this point is necessary remember that the top of OS use in Azure after Microsoft integrate Linux in their platform is Linux OS in differente flavours, with the arraived of Dotnet Core open the opportunities to C# community and potentializes It, this time at difference when Microsoft launched Windows Mobile and their OS, at these moment this iniciative was a great mistake for Microsoft and their community.&lt;/p&gt;

&lt;p&gt;Although Microsoft isn't my preferer development environment, this time I think that this is the best success of Microsoft to the next years, open the possibilities to the community is the smarter decition for this company.&lt;/p&gt;

&lt;p&gt;dotnet build &lt;br&gt;
dotnet run &lt;br&gt;
dotnet publish&lt;/p&gt;

&lt;p&gt;Is a nice cli interface, but as all, always exist some to improve, the management of final product is some confused, the management of different versions or integration of severals architectures, and the compatiblity with 64 bits libraries. Other point less is the visual studio requirements and size of updates.&lt;/p&gt;

&lt;p&gt;As a plus point the documentation at site is grow, their structure is nice and this is oriented to practical and quick exercises to ease to curve learn, making interactive the learning.&lt;/p&gt;

&lt;p&gt;This references can help you to learn .Net Core:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/intro"&gt;https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/intro&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?list=PLdo4fOcmZ0oWoazjhXQzBKMrFuArxpW80&amp;amp;v=eIHKZfgddLM"&gt;https://www.youtube.com/watch?list=PLdo4fOcmZ0oWoazjhXQzBKMrFuArxpW80&amp;amp;v=eIHKZfgddLM&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dowload center:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dotnet.microsoft.com/download"&gt;https://dotnet.microsoft.com/download&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Remember update Visual Studio to use Dotnet core 3.0&lt;/li&gt;
&lt;li&gt;Remember you only can use Dotnet 3.0 with Visual Studio 2019 &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dotnet</category>
      <category>30</category>
      <category>netcore</category>
      <category>linux</category>
    </item>
    <item>
      <title>React Native VS Ionic</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Thu, 31 Jan 2019 16:46:17 +0000</pubDate>
      <link>https://dev.to/judlup/react-native-vs-ionic-55jc</link>
      <guid>https://dev.to/judlup/react-native-vs-ionic-55jc</guid>
      <description>&lt;p&gt;What's the best React Native or Ionic? put below your opinion &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxhbokfhazht2rm2gthdl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxhbokfhazht2rm2gthdl.png" title="React Native VS Ionic" alt="React Native VS Ionic"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;13! :]&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>ionic</category>
      <category>angular</category>
      <category>jsx</category>
    </item>
    <item>
      <title>Hola Mundo</title>
      <dc:creator>Judlup Luna</dc:creator>
      <pubDate>Wed, 30 Jan 2019 00:09:28 +0000</pubDate>
      <link>https://dev.to/judlup/hola-mundo-1fi9</link>
      <guid>https://dev.to/judlup/hola-mundo-1fi9</guid>
      <description>&lt;p&gt;Hola  Mundo&lt;/p&gt;

</description>
      <category>helloworld</category>
      <category>holamundo</category>
    </item>
  </channel>
</rss>
