<?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>Forem: Alejandro Lazcano</title>
    <description>The latest articles on Forem by Alejandro Lazcano (@alelazcano).</description>
    <link>https://forem.com/alelazcano</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F429803%2F2136307b-029c-4cd9-804a-3a8359c193d1.jpeg</url>
      <title>Forem: Alejandro Lazcano</title>
      <link>https://forem.com/alelazcano</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/alelazcano"/>
    <language>en</language>
    <item>
      <title>Gestión de producto: como planificar incrementos junto con los usuarios</title>
      <dc:creator>Alejandro Lazcano</dc:creator>
      <pubDate>Tue, 02 May 2023 15:15:54 +0000</pubDate>
      <link>https://forem.com/alelazcano/gestion-de-producto-como-planificar-incrementos-junto-con-los-usuarios-5bp3</link>
      <guid>https://forem.com/alelazcano/gestion-de-producto-como-planificar-incrementos-junto-con-los-usuarios-5bp3</guid>
      <description>&lt;p&gt;Cuando se trata de &lt;em&gt;Gestionar Producto&lt;/em&gt;, en ciclos de desarrollo de software, basados en Scrum o alguna otra metodología ágil de ciclos e incrementos, tenemos el permanente desafío de planificar, priorizar y reorganizar el backlog y roadmap.&lt;/p&gt;

&lt;p&gt;Hace tiempo un colega y amigo se refirió a su trabajo, por más apasionante que le resulta, como un tanto amor-odio-tóxico, en el sentido de que "muchas veces el desafío de priorizar nos consume la vida, el tiempo y la paciencia: queremos cumplir con todo y con todos", dijo.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué soluciones hay, entonces, a los incrementos y evolutivos de un producto de software?
&lt;/h2&gt;

&lt;p&gt;Hay que liderar en base a necesidades propias de la plataforma o producto. Y esto compite con los servicios y necesidades del equipo comercial, y además contra reloj con los clientes, partners, project managers e implementadores.&lt;/p&gt;

&lt;p&gt;Entonces, ya no solo alcanza con que el Product Manager tenga en claro el roadmap, y el Product Owner ordenado el backlog, y el Project Manager al día el proyecto, plazos, ceremonias y entregas.&lt;/p&gt;

&lt;h3&gt;
  
  
  ¿Cómo podemos socializar el avance del proyecto y co-gestionar el avance de manera consistente?
&lt;/h3&gt;

&lt;p&gt;Algunas sugerencias:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Disponibilidad a todas las partes involucradas los tableros de alto nivel, actualizados en vivo o de mínimo, al día.&lt;/li&gt;
&lt;li&gt;Gantt abierto, visible, y cuestionable: debemos revisarlo regularmente con los equipos y estar disponibles a atender consultas, reclamos y feedback de todo, en especial sobre los plazos y prioridades.&lt;/li&gt;
&lt;li&gt;El backlog debe entenderse como una gran pila de trabajo futuro, pero al mismo tiempo, limitarlo de forma clara a la capacidad disponible. ¿Por qué solo tomamos estas tareas o cuánto podremos abarcar en este Q? ¿Por qué no entra en sprint?&lt;/li&gt;
&lt;li&gt;Transparentar cambios, prioridades y necesidades. Un comentario sencillo despeja especulaciones: "parece que esta tarea es una tontería, pero lo necesita urgente este proyecto estratégico que nos permitiría duplicar la facturación en el próximo Q", deja claro el por qué esto va sobre el resto.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Gestión del producto compartida con los usuarios y clientes
&lt;/h2&gt;

&lt;p&gt;Recuerdo que hace una década sorprendía que HP tuviera foros donde los usuarios podían plantear consulta de productos, y había además de un equipo de soporte atento a todo ello, también muchos usuarios de diferente nivel de experiencia haciendo aportes, respondiendo, acompañando.&lt;/p&gt;

&lt;p&gt;Pasa también con la recepción de ideas y sugerencia de mejoras con opción a voto. Atlassian, empresa detrás de Jira, Confluence, Bitbucket, y muchas otras, admiten que los usuarios y clientes puedan publicar features, necesidades. Esto queda muchas veces en revisión rápida del equipo de producto y luego se pone a votación.&lt;/p&gt;

&lt;h3&gt;
  
  
  A mí me gusta mucho como lo ha encarado Render:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aXhG-pgQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2f2jnk4omxpa3c2m61i4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aXhG-pgQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2f2jnk4omxpa3c2m61i4.png" alt="Propuesta de features y servicios" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Render es una plataforma de computación en la nube, que de forma moderna, descontracturada y acercándose a un público más de developers, está creciendo muy rápido y fuerte. ¿Cómo lo gestiona?&lt;/p&gt;

&lt;p&gt;Tiene un apartado que denominan &lt;a href="https://feedback.render.com/"&gt;Feedback&lt;/a&gt;. Es sencillo, de interfaz simple y limpia, sin vueltas ni burocracia.&lt;/p&gt;

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

&lt;p&gt;¿Lo bueno? Ya no depende de que un asistente de la cuenta, un newsletter llegue, sino que está publicado parcialmente el roadmap/backlog para que los diferentes stakeholders puedan interactuar, proponer, votar, priorizar.&lt;/p&gt;

&lt;p&gt;También, además de las features, servicios de infraestructura, Render lo usa para proponer nuevas regiones de servicio, nuevos puntos de presencia de red:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--o6iOTCUg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/02xb1aubz2p6cps5v7kj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--o6iOTCUg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/02xb1aubz2p6cps5v7kj.png" alt="Puedes sugerir nuevas localizaciones en Render" width="800" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;¿Cómo gestionas tu o tus equipos el ciclo de incrementos y evolutivos? ¿Qué te parecen estas ideas?&lt;/p&gt;




&lt;p&gt;Puedes ver más sobre &lt;a href="https://lazcano.com.ar"&gt;product owner, scrum, project manager y analista funcional&lt;/a&gt; en mi blog, además de comprender formas de &lt;a href="https://ayudaecommerce.com"&gt;escalar proyectos ecommerce de manera consistente y con resultados increíbles&lt;/a&gt; en diferentes plataformas.&lt;/p&gt;

</description>
      <category>scrum</category>
      <category>programming</category>
      <category>productmanagement</category>
      <category>productowner</category>
    </item>
    <item>
      <title>Mantenimiento de la base de datos en WordPress</title>
      <dc:creator>Alejandro Lazcano</dc:creator>
      <pubDate>Fri, 26 Aug 2022 22:09:15 +0000</pubDate>
      <link>https://forem.com/alelazcano/mantenimiento-de-la-base-de-datos-en-wordpress-2c4</link>
      <guid>https://forem.com/alelazcano/mantenimiento-de-la-base-de-datos-en-wordpress-2c4</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmrcqfxjcyw7xbohd7z6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmrcqfxjcyw7xbohd7z6.jpg" alt="WordPress y MySQL" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tengo la suerte de mantener sitios web basados en WordPress con una década de trayectoria. Algunos con muchísimos post, además de abundante tráfico, y en consecuencia donde hay que darles cierta atención y mantenimiento regular.&lt;/p&gt;

&lt;p&gt;Aquí una sugerencia pequeña pero poderosa y muy necesaria de atender con regularidad.&lt;/p&gt;

&lt;p&gt;Tabla de contenidos &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Mantener la salud de WordPress&lt;/li&gt;
&lt;li&gt;
Mantener la salud de la base de datos con un click

&lt;ul&gt;
&lt;li&gt;Cuidar los datos: política de backup para la base de tu WordPress&lt;/li&gt;
&lt;li&gt;Cuidar la integridad de esos datos en la base de datos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Caso práctico: eliminando el overhead en una base de datos WordPress

&lt;ul&gt;
&lt;li&gt;¿Cómo limpiamos esos datos de overhead?&lt;/li&gt;
&lt;li&gt;Resumen y conclusiones:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Mantener la salud de WordPress
&lt;/h2&gt;

&lt;p&gt;En el paso de los años es inevitable que, aún persiguiendo una cultura de «pocos plugins, sólo los necesarios», se vayan cambiando algunos por otros, se desinstalen los que ya no son útiles, etc. Y en ellos, muchas veces quedan tablas o configuraciones sin eliminarse completamente.&lt;/p&gt;

&lt;p&gt;En contrapunto a esta buena práctica, de elegir los plugins, están quienes instalan decenas de complementos por cosas que podrían resolverse en 5 líneas de código. Incluso se ha popularizado la reventa de plugins pagos «crackeados» o denominados &lt;em&gt;plugins nulled&lt;/em&gt; o plantillas truchas y/o clonadas para evadir la licencia, etc.&lt;/p&gt;

&lt;p&gt;Para mantener la salud de WordPress, más allá de mantener al día sus actualizaciones, versión de PHP, etc; es oportuno pensar en tener una instalación de pruebas/sandbox que pueda romperse, reconstruirse, borrarse y volver a comenzar de cero o desde un backup o punto de restauración. Algo similar y más práctico son las &lt;a href="https://www.wnpower.com/blog/como-hacer-staging-wordpress-plugin/" rel="noopener noreferrer"&gt;instalaciones staging, que crean un clon del WordPress en el que vamos a trabajar&lt;/a&gt; y podemos romperlo sin problemas, luego replicar eso mismo sobre el original en caso de necesitarlo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mantener la salud de la base de datos con un click
&lt;/h2&gt;

&lt;p&gt;Decía que mantengo como servicio freelance algunos WordPress que iniciaron conmigo hace más de 10 años, y en ellos hay que tener otros cuidados. Pero uno fundamental es el optimizar la base de datos, todo en cuanto tengamos a nuestro alcance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cuidar los datos: política de backup para la base de tu WordPress
&lt;/h3&gt;

&lt;p&gt;El código de WordPress, de los plugins y plantillas, son relativamente sencillos de hacer backup y recuperar. Las bases de datos tienen otras implicancias: crecen en tamaño (peso) y longitud (cantidad de registros), cambian los motores de procesamiento, la codificación, etc… Sufren un poco más que «el código». Entonces, además de ser enfático en una buena política de Backups, vamos a una observación interesante.&lt;/p&gt;

&lt;p&gt;De más decir que TODO backup que hagamos debe almacenarse en otro lugar, no en el mismo servidor. Puedes bajarlo o transferirlo automáticamente a Dropbox, GoogleDrive, un FTP o casilla de mails externa, bajarlo a tu computadora, tenerlos en un Pendrive o disco externo, etc. Si algo se daña gravemente en el hosting o servidor, no podrás luego conseguir los backups. Tremenda enseñanza que algunos aprendimos ante una urgencia.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cuidar la integridad de esos datos en la base de datos
&lt;/h3&gt;

&lt;p&gt;Las bases de datos son como un «excel», nada más que sin colores, ni negritas, ni nada que las haga bonitas. Son un archivo de texto que cumple cierto parámetro estandarizado y, a través de un «motor» cobra vida, es posible ejecutar consultas, procesar operaciones, etc.&lt;/p&gt;

&lt;p&gt;Los archivos .sql son un archivos de texto plano (.txt) enorme, literalmente. También similar al CSV, que es un Excel pero sin superpoderes (estilos). Abajo un ejemplo de SQL, puro texto que sigue una sintaxis particular…&lt;/p&gt;

&lt;p&gt;Dentro de taaanto texto, entre instalaciones, desinstalaciones de temas, plugins, actualización de post, de versiones, cambios en el motor, hay una especie de «polvillo» que se va juntando. Es un poco de residuo que no se borra de inmediato, además de que muchas veces en las bases de datos hay cosas que no se borrar, más sólo se ocultan al usuario…&lt;/p&gt;

&lt;p&gt;También queda algo de ese «polvillo» y un poco de «estática» o suciedad por otras razones, como consultas en memoria, indexado, reproceso, etc. &lt;strong&gt;Todo esto técnicamente se denomina overhead&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Caso práctico: eliminando el overhead en una base de datos WordPress
&lt;/h2&gt;

&lt;p&gt;Este sitio WordPress es antiguo, con más de 3000 post, algo más de 80.000 líneas en el archivo SQL si lo exportamos, y tomando de ejemplo dos tablas, encontramos una con un excesivo Overhead (22.2Mb de 57.3Mb) y otra con una acumulación importante.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Futw8dbtgdhqmeiov0h65.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Futw8dbtgdhqmeiov0h65.png" alt="captura de pantalla en phpmyadmin para una base de datos wordpress" width="563" height="471"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;PHP MyAdmin de una base de datos WordPress con elevado overhead&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ¿Cómo limpiamos esos datos de overhead?
&lt;/h3&gt;

&lt;p&gt;En PHP MyAdmin es muy sencillo y basta ejecutar la «optimización» de las tablas, con 4 click lo tenemos resuelto.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ingresamos a PHP MyAdmin&lt;/li&gt;
&lt;li&gt;Seleccionamos la base de dato donde vamos a trabajar&lt;/li&gt;
&lt;li&gt;Seleccionamos todas las tablas&lt;/li&gt;
&lt;li&gt;Del desplegable buscamos «optimizar tablas»&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjw0i9s4mlfa62wnu41ui.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjw0i9s4mlfa62wnu41ui.png" alt="paso a paso en phpmyadmin para optimizar tablas mysql" width="422" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esto ejecutará de forma sencilla el comando OPTIMIZE TABLE &lt;code&gt;table_name&lt;/code&gt;... y nos mostrará el resultado con un OK en caso que se haya logrado limpiar algo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fda6ab4dr6x5liulivywc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fda6ab4dr6x5liulivywc.png" alt="PHP MyAdmin" width="800" height="676"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Resumen y conclusiones:
&lt;/h4&gt;

&lt;p&gt;Mantener la salud de WordPress, más allá de los beneficios en velocidad, optimización de la experiencia de usuario, ahorro de espacio, etc, en algunos casos pueden ser notorios.&lt;/p&gt;

&lt;p&gt;El eliminar el overhead en bases de datos, de forma regular, es parte de la limpieza necesaria. Como decía, es quitar el polvillo con un paño húmedo antes que se hagan cortezas gruesas de mugre y haga falta refregar con cepillo de alambre y espátula.&lt;/p&gt;

&lt;p&gt;Es a veces difícil de «medir» el impacto inmediato en performance, pero de manera teórica te imaginas que en una base de datos de ~80/100Mb tener ~25Mb de basura, de seguro esforzará menos la búsqueda de datos.&lt;/p&gt;

&lt;p&gt;Consulta a tu empresa de hosting cualquier duda adicional. Si buscas una empresa con excelentes prestaciones, diferentes localizaciones y un soporte de maravillas, puedes confiar en mi proveedor de hosting principal para proyectos propios y de clientes, &lt;a href="https://wnpower.link/wkx6y" rel="noopener noreferrer"&gt;WN POWER&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>programación</category>
      <category>wordpress</category>
      <category>mysql</category>
      <category>phpmyadmin</category>
    </item>
  </channel>
</rss>
