{"id":177,"date":"2021-08-26T10:07:43","date_gmt":"2021-08-26T15:07:43","guid":{"rendered":"https:\/\/lafilosofiadelsoftware.com\/?p=177"},"modified":"2021-08-26T13:45:56","modified_gmt":"2021-08-26T18:45:56","slug":"entendiendo-el-valor-de-refinar-y-tecnicas-para-ejecutarlo","status":"publish","type":"post","link":"https:\/\/lafilosofiadelsoftware.com\/index.php\/2021\/08\/26\/entendiendo-el-valor-de-refinar-y-tecnicas-para-ejecutarlo\/","title":{"rendered":"Entendiendo el valor de Refinar y t\u00e9cnicas para ejecutarlo"},"content":{"rendered":"\n<p>Veamos primero lo que nos dice la<a href=\"https:\/\/scrumguides.org\/docs\/scrumguide\/v2020\/2020-Scrum-Guide-Spanish-Latin-South-American.pdf\"> gu\u00eda oficial de scrum<\/a> \u201cEl refinamiento del Product Backlog es el acto de dividir y definir a\u00fan m\u00e1s los elementos del Product Backlog en elementos m\u00e1s peque\u00f1os y precisos. Esta es una actividad continua para agregar detalles, como una descripci\u00f3n, orden y tama\u00f1o. Los atributos suelen variar seg\u00fan el \u00e1mbito del trabajo\u201d<\/p>\n\n\n\n<p>Con lo anterior vemos dos temas importantes \u201ces una actividad continua\u201d y \u201cencontrar especificaciones del desarrollo a realizar\u201d. \u00bfEs necesario refinar? por supuesto que s\u00ed, si algo tiene esta carrera es una incertidumbre tremenda. Incluso una de las razones principales por las qu\u00e9 fracasan o se demoran los proyectos de ingenier\u00eda es por la incertidumbre que se debe ir sorteando en cada etapa del proyecto.&nbsp;<\/p>\n\n\n\n<p>As\u00ed como existe incertidumbre en grandes proyectos tambi\u00e9n ocurre en intervalos m\u00e1s cortos del proyecto como puede ser un Sprint; por experiencia propia, no saben lo frustrante que es a dos d\u00edas de finalizar un sprint encontrarse con una sorpresa\/problema para desarrollar y ver c\u00f3mo se incumple el compromiso del sprint por falta de refinamiento.<\/p>\n\n\n\n<p>Lo primero que debemos entender es que el refinamiento es una actividad que se realiza para tener los \u00edtems del backlog listos para ser trabajados en el sprint siguiente, es decir, refinamos el trabajo que va a ocurrir en el futuro no el que est\u00e1 aconteciendo en el sprint actual. Recuerda que con un buen refinamiento es posible dar una visi\u00f3n de lo que estamos buscando impactar al negocio<\/p>\n\n\n\n<p>Veamos diferentes t\u00e9cnicas para hacer refinamiento en las que he trabajado y despu\u00e9s unos tips de cual elegir para tu equipo agile:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Subequipos y luego una sincronizaci\u00f3n: Consiste en que el PO del equipo se re\u00fane con una parte del equipo los d\u00edas 2,4 y 6 para hacer los refinamientos en tiempos aproximados de 1 hora con los developers. Despu\u00e9s en el d\u00eda 8 se realiza una reuni\u00f3n con todos los miembros del equipo para hacer una sincronizaci\u00f3n de las historias refinadas con los diferentes subequipos<br><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/nfMxHAK_X_LavdveY_JS_V-XZ8iqJGkWf_MZomUhmjcnQek-dz5lduXx6uC9lus8h0sYlKa3uQLgCe3QhQBMR8zKRm2CCm-lMz74ncQea_s-YzBzXY-XbhrvMrjd-ky0lkAsQq5K=s0\" width=\"569\" height=\"186\"><br><\/li><li>Nos juntamos todos y refinamos: Esta \u00faltima con la que he trabajado consiste en que todos los miembros del equipo se re\u00fanen para hacer refinamiento los d\u00edas 3 y 6. Se deja este intervalo para en caso de encontrar temas que se deban investigar o hacer validaciones externas se tenga tiempo para realizarlo y se traigan para el pr\u00f3ximo refinamiento.<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/xIHiByIaJjFK-N-e1tKxFzm78A4sDXc9HO-jIVV2GkspsOuyFIa09byy_m5Q_RL77xjQBDn2egeUqHMg6j9GIqRff3dMO80m4kmmlI3HOJYC6wd0z9fhgL0sz-uwE1brK9W3Wg4N=s0\" width=\"602\" height=\"197\"><br><\/li><li>Refinamiento del backlog de forma individual: Consiste en que todos los miembros del equipo al conocer las historias que se van a trabajar en los siguientes sprint se autoasignan las historias a refinar y durante el daily informan cu\u00e1l historia est\u00e1n refinando o si hay alguna novedad importante, a su vez, en el momento que informen una historia fue refinada todos los miembros de manera individual revisa el refinamiento que se hizo y comenta en la herramienta que se trabajen (ej: jira) si tiene alguna dudas.<\/li><li>Coordinamos, Dividimos, Compartimos y Conquistamos: El refinamiento comienza el d\u00eda 3 del sprint (de 2 semanas) se re\u00fane el equipo 30 minutos, se da una peque\u00f1a introducci\u00f3n de las historias a refinar y se reparten las historias a los diferentes miembros del equipo. Cada miembro del equipo hace una refinamiento de las historias y el d\u00eda 6 del sprint se re\u00fane el equipo nuevamente en una sesi\u00f3n aproximada de 2 horas en las que se sincronizan las historias refinadas y se resuelven dudas y en caso de quedar temas por refinar se reparten para ser refinadas previo al pr\u00f3ximo planning.<\/li><\/ul>\n\n\n\n<p>Hagamos un cuadro y comparemos estas cuatro opciones.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>T\u00e9cnica&nbsp;<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>\u00bfAplica para equipos maduros?<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>\u00bfAplica para equipos nuevos?<\/strong><\/td><td><strong>Observaciones<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Refinamiento del backlog de forma individual<\/td><td class=\"has-text-align-center\" data-align=\"center\">Recomendada<\/td><td class=\"has-text-align-center\" data-align=\"center\">No<\/td><td>Esta t\u00e9cnica es super recomendada en equipos maduros por la velocidad que puede aportar&nbsp;<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Coordinamos, Dividimos, Compartimos y Conquistamos<\/td><td class=\"has-text-align-center\" data-align=\"center\">Si<\/td><td class=\"has-text-align-center\" data-align=\"center\">No<\/td><td>Aplica para equipos que ya tienen una madurez previa de refinamiento<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Subequipos y luego un sincronizaci\u00f3n<\/td><td class=\"has-text-align-center\" data-align=\"center\">Si<\/td><td class=\"has-text-align-center\" data-align=\"center\">Si<\/td><td>Recomendada para equipos nuevos y que sus miembros superan m\u00e1s de 8 personas. Las personas que no participan en el equipo de refinamiento deben revisar de manera individual las historias refinadas para estar al tanto.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Nos juntamos todos y refinamos<\/td><td class=\"has-text-align-center\" data-align=\"center\">No recomendable<\/td><td class=\"has-text-align-center\" data-align=\"center\">Recomenda<\/td><td>Recomendada para equipos nuevos que no superen los 5 o 6 miembros porque a mayor cantidad de miembros se pierde efectividad.<\/td><\/tr><\/tbody><\/table><figcaption>La madurez de tu equipo es algo que se logra con el tiempo y practicas para mejorarla.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfEn qu\u00e9 consiste un buen refinamiento?<\/h2>\n\n\n\n<p>Sabes que una historia de usuario o \u00edtem del backlog estuvo bien refinada cuando no present\u00f3 sorpresas durante el desarrollo. Para llegar a esto debemos:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Validar que la historia aporta valor al producto&nbsp;<\/li><li>Verificar que es viable tecnicamente.<\/li><li>En caso de requerir comunicaci\u00f3n con sistemas o servicios externos se debe validar acceso, validar inputs\/outputs, tener todo lo necesario para realizar ese consumo.<\/li><li>Hacer un desglose de las tareas t\u00e9cnicas que se deben ejecutar.<\/li><li>Si se dispone del tiempo, llegar a especificar qu\u00e9 clases, m\u00e9todos o archivos deber\u00e1s modificar para cumplir con el objetivo.<\/li><\/ol>\n\n\n\n<p>Opcional: Existir\u00e1n casos en los que se tenga que hacer una prueba de concepto (peque\u00f1o desarrollo para validar el funcionamiento o prueba de algo) para validar X o Y cosa, estas pruebas de concepto no se realizan en los espacios de reuni\u00f3n grupales sino en los tiempos entre una reuni\u00f3n de refinamiento y otra.<\/p>\n\n\n\n<p>Nota: No hacer refinamiento de las historias ocasionar\u00e1 que la reuni\u00f3n de Planning se haga eterna al no tener definido el QU\u00c9 y dar\u00e1 un alto porcentaje de probabilidad de fallo del sprint.<\/p>\n\n\n\n<p>Tips:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>El backlog debe estar priorizado para conocer de antemano cu\u00e1les ser\u00e1n las historias siguientes a trabajar.<\/li><li>Tener el backlog ahead, consiste en lograr disponer en el backlog las suficientes historias refinadas para 2 sprint de trabajo.<\/li><li>Por supuesto que debe haber otras t\u00e9cnicas para ejecutarlo, si conoces una genial, te invito a compartirla.<\/li><li>No llamen al refinamiento \u00abGrooming\u00bb, sino saben porque, busquen la palabra en google.<\/li><\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Veamos primero lo que nos dice la gu\u00eda oficial de scrum \u201cEl refinamiento del Product Backlog es el acto de dividir y definir a\u00fan m\u00e1s los elementos del Product Backlog en elementos m\u00e1s peque\u00f1os y precisos. Esta es una actividad continua para agregar detalles, como una descripci\u00f3n, orden y tama\u00f1o. Los atributos suelen variar seg\u00fan &#8230; <a title=\"Entendiendo el valor de Refinar y t\u00e9cnicas para ejecutarlo\" class=\"read-more\" href=\"https:\/\/lafilosofiadelsoftware.com\/index.php\/2021\/08\/26\/entendiendo-el-valor-de-refinar-y-tecnicas-para-ejecutarlo\/\" aria-label=\"Leer m\u00e1s sobre Entendiendo el valor de Refinar y t\u00e9cnicas para ejecutarlo\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[24],"tags":[4,5,9,17,19],"class_list":["post-177","post","type-post","status-publish","format-standard","hentry","category-agilismo","tag-agile-coach","tag-agilismo","tag-estimaciones-agiles","tag-scrum-master","tag-software-engineer"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/lafilosofiadelsoftware.com\/index.php\/wp-json\/wp\/v2\/posts\/177"}],"collection":[{"href":"https:\/\/lafilosofiadelsoftware.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lafilosofiadelsoftware.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lafilosofiadelsoftware.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lafilosofiadelsoftware.com\/index.php\/wp-json\/wp\/v2\/comments?post=177"}],"version-history":[{"count":3,"href":"https:\/\/lafilosofiadelsoftware.com\/index.php\/wp-json\/wp\/v2\/posts\/177\/revisions"}],"predecessor-version":[{"id":181,"href":"https:\/\/lafilosofiadelsoftware.com\/index.php\/wp-json\/wp\/v2\/posts\/177\/revisions\/181"}],"wp:attachment":[{"href":"https:\/\/lafilosofiadelsoftware.com\/index.php\/wp-json\/wp\/v2\/media?parent=177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lafilosofiadelsoftware.com\/index.php\/wp-json\/wp\/v2\/categories?post=177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lafilosofiadelsoftware.com\/index.php\/wp-json\/wp\/v2\/tags?post=177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}