{"id":260,"date":"2021-11-14T12:31:59","date_gmt":"2021-11-14T15:31:59","guid":{"rendered":"http:\/\/desarrollo-agil.ml\/blog\/?p=260"},"modified":"2021-11-14T12:32:00","modified_gmt":"2021-11-14T15:32:00","slug":"la-belleza-de-lo-simple","status":"publish","type":"post","link":"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/","title":{"rendered":"La belleza de lo simple"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">El problema: Nosotros<\/h2>\n\n\n\n<p>Somos programadores. Modelamos problemas de la vida real y los escribimos en un lenguaje que la m\u00e1quina pueda entender. Lo probamos, y cuando funciona, lo ponemos al alcance del usuario. Todos felices.<\/p>\n\n\n\n<p>Pero la historia no termina ah\u00ed. Algunos meses despu\u00e9s producto viene con una idea nueva. Quiere agregar una funcionalidad que antes no estaba. Repetimos el ciclo anterior. Pero esta vez no es tan f\u00e1cil. Porque nos tenemos que asegurar no romper lo que hicimos antes. Si fuimos medianamente vivos, tenemos tests automatizados de la aplicaci\u00f3n que nos van a ayudar. Tiempo despu\u00e9s vemos en el log un error 500.  Nos metemos de nuevo en el c\u00f3digo. Lo entendemos de nuevo. Encontramos el error. \u00bfC\u00f3mo no vimos esto antes?\u00bb Repetimos el proceso anterior. <\/p>\n\n\n\n<p>Hasta ac\u00e1, como el shampoo: Lave, enjuage, repita. Pero cada ciclo es m\u00e1s complejo. Y el principal problema somos nosotros. Somos humanos, no m\u00e1quinas. El tiempo pasa, y no nos acordamos del todo en qu\u00e9 est\u00e1bamos pensando cuando hicimos el dise\u00f1o original. Tenemos un mont\u00f3n de clases, m\u00e9todos y abstracciones. Nos tenemos que meter de nuevo mentalmente en el problema. Tenemos que leer el c\u00f3digo. \u00abNo lo entiendo, vamos de nuevo\u00bb. Y lo volvemos a leer. \u00ab\u00bfPor qu\u00e9 hice A y no B, que era mejor? Lo leemos de nuevo. Y caemos. \u00abAh&#8230; cierto, era por esto\u00bb. Logramos repetir el ciclo anterior. Todos felices.<\/p>\n\n\n\n<p>-\u00abM\u00e1s funcionalidad es mejor.\u00bb<\/p>\n\n\n\n<p>&#8211; \u00abPor las dudas, agregalo\u00bb.<\/p>\n\n\n\n<p>-\u00abNo va a pasar nunca, pero por las dudas, considero este caso.\u00bb<\/p>\n\n\n\n<p>&#8211; \u00abAgrego esta abstracci\u00f3n.\u00bb<\/p>\n\n\n\n<p>&#8211; \u00abExtiendo esto, porque en realidad conceptualmente&#8230;\u00bb<\/p>\n\n\n\n<p>&#8211; \u00abPor las dudas, dejalo configurable.\u00bb <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u00a1Basta!<\/strong><\/h2>\n\n\n\n<p>Cada d\u00eda que pase, cada feature que agreguemos, cada abstracci\u00f3n que hacemos, el problema se agranda. Cada l\u00ednea de c\u00f3digo que agregamos ahora, es una l\u00ednea de c\u00f3digo que vamos a tener que leer ma\u00f1ana. O que va a tener que leer otra persona que no soy yo. <\/p>\n\n\n\n<p>Pensemos en esta situaci\u00f3n cuando vamos a dise\u00f1ar. Mantengamos simples las cosas. No hagamos abstracciones que no sabemos si vamos a necesitar. Si, hagamos flexibles las cosas, pero hag\u00e1moslas flexibles en la direcci\u00f3n en la que creemos que es m\u00e1s probable que crezcan, no en todas las direcciones. No tenemos la bola de cristal, no sabemos para d\u00f3nde puede llevarnos la aplicaci\u00f3n y nuestros usuarios, pero podemos intuir. <\/p>\n\n\n\n<p>En la facultad, en los cursos, en los tutoriales, nos ense\u00f1an c\u00f3mo escribir c\u00f3digo. Pero no nos ense\u00f1an cuando NO escribirlo. Cu\u00e1ndo parar. Eso lo tenemos que aprender nosotros, y es un problema casi tan complejo como aprender a escribirlo. Y tambi\u00e9n, es igual de importante. Desarrollar la capacidad de ir al punto, de solucionar el problema, y de ser flexible en la direcci\u00f3n necesaria, y no en todas las direcciones.<\/p>\n\n\n\n<p>-\u00bfQu\u00e9 pasar\u00eda si NO hiciera esto?<\/p>\n\n\n\n<p>&#8211; \u00bfCu\u00e1nto tiempo me costar\u00eda hacerlo configurable, si fuera necesario? <\/p>\n\n\n\n<p>-\u00bfY si tuviera que redesplegar la app, cu\u00e1nto me costar\u00eda?<\/p>\n\n\n\n<p>Est\u00e1 bueno hacernos esas preguntas a la hora de agregar una l\u00ednea de c\u00f3digo. Ah, y ya se lo que est\u00e1s pensando. Si. Este problema no lo descubrimos ahora. Ya mucha gente se top\u00f3 con esto antes, y le pusieron nombre: <a href=\"https:\/\/es.wikipedia.org\/wiki\/Principio_KISS\">KISS. <\/a>(<em>Keep It Simple, Stupid!<\/em>) (mantenlo simple, est\u00fapido) y <a href=\"https:\/\/martinfowler.com\/bliki\/Yagni.html\">YAGNI<\/a> (You ain&#8217;t gonna need it) (No vas a necesitarlo). Recomiendo fuertemente leer estos principios. Les prometo que los autores de esas ideas las explican mejor que yo. <br><br><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>El problema: Nosotros Somos programadores. Modelamos problemas de la vida real y los escribimos en un lenguaje que la m\u00e1quina pueda entender. Lo probamos, y cuando funciona, lo ponemos al alcance del usuario. Todos felices. Pero la historia no termina ah\u00ed. Algunos meses despu\u00e9s producto viene con una idea nueva. Quiere agregar una funcionalidad que\u2026 <span class=\"read-more\"><a href=\"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/\">Leer m\u00e1s &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>La belleza de lo simple - Desarrollo \u00c1gil<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"La belleza de lo simple - Desarrollo \u00c1gil\" \/>\n<meta property=\"og:description\" content=\"El problema: Nosotros Somos programadores. Modelamos problemas de la vida real y los escribimos en un lenguaje que la m\u00e1quina pueda entender. Lo probamos, y cuando funciona, lo ponemos al alcance del usuario. Todos felices. Pero la historia no termina ah\u00ed. Algunos meses despu\u00e9s producto viene con una idea nueva. Quiere agregar una funcionalidad que\u2026 Leer m\u00e1s &raquo;\" \/>\n<meta property=\"og:url\" content=\"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/\" \/>\n<meta property=\"og:site_name\" content=\"Desarrollo \u00c1gil\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-14T15:31:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-11-14T15:32:00+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@emilianotebes\" \/>\n<meta name=\"twitter:site\" content=\"@emilianotebes\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Emiliano\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"http:\/\/52.201.184.187\/blog\/#website\",\"url\":\"http:\/\/52.201.184.187\/blog\/\",\"name\":\"Desarrollo \\u00c1gil\",\"description\":\"Sofware por y para humanos\",\"publisher\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/52.201.184.187\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/#webpage\",\"url\":\"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/\",\"name\":\"La belleza de lo simple - Desarrollo \\u00c1gil\",\"isPartOf\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/#website\"},\"datePublished\":\"2021-11-14T15:31:59+00:00\",\"dateModified\":\"2021-11-14T15:32:00+00:00\",\"breadcrumb\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"http:\/\/desarrollo-agil.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"La belleza de lo simple\"}]},{\"@type\":\"Article\",\"@id\":\"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/#webpage\"},\"author\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851\"},\"headline\":\"La belleza de lo simple\",\"datePublished\":\"2021-11-14T15:31:59+00:00\",\"dateModified\":\"2021-11-14T15:32:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/#webpage\"},\"wordCount\":615,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851\"},\"articleSection\":[\"experiencias\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/#respond\"]}]},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851\",\"name\":\"Emiliano\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/52.201.184.187\/blog\/#personlogo\",\"inLanguage\":\"es\",\"url\":\"http:\/\/2.gravatar.com\/avatar\/e2997f02fe4216c2cce9e5a88e3e3726?s=96&d=mm&r=g\",\"contentUrl\":\"http:\/\/2.gravatar.com\/avatar\/e2997f02fe4216c2cce9e5a88e3e3726?s=96&d=mm&r=g\",\"caption\":\"Emiliano\"},\"logo\":{\"@id\":\"http:\/\/52.201.184.187\/blog\/#personlogo\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/emilianotebes\/\",\"https:\/\/twitter.com\/emilianotebes\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"La belleza de lo simple - Desarrollo \u00c1gil","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/","og_locale":"es_ES","og_type":"article","og_title":"La belleza de lo simple - Desarrollo \u00c1gil","og_description":"El problema: Nosotros Somos programadores. Modelamos problemas de la vida real y los escribimos en un lenguaje que la m\u00e1quina pueda entender. Lo probamos, y cuando funciona, lo ponemos al alcance del usuario. Todos felices. Pero la historia no termina ah\u00ed. Algunos meses despu\u00e9s producto viene con una idea nueva. Quiere agregar una funcionalidad que\u2026 Leer m\u00e1s &raquo;","og_url":"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/","og_site_name":"Desarrollo \u00c1gil","article_published_time":"2021-11-14T15:31:59+00:00","article_modified_time":"2021-11-14T15:32:00+00:00","twitter_card":"summary_large_image","twitter_creator":"@emilianotebes","twitter_site":"@emilianotebes","twitter_misc":{"Escrito por":"Emiliano","Tiempo de lectura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"http:\/\/52.201.184.187\/blog\/#website","url":"http:\/\/52.201.184.187\/blog\/","name":"Desarrollo \u00c1gil","description":"Sofware por y para humanos","publisher":{"@id":"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/52.201.184.187\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"es"},{"@type":"WebPage","@id":"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/#webpage","url":"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/","name":"La belleza de lo simple - Desarrollo \u00c1gil","isPartOf":{"@id":"http:\/\/52.201.184.187\/blog\/#website"},"datePublished":"2021-11-14T15:31:59+00:00","dateModified":"2021-11-14T15:32:00+00:00","breadcrumb":{"@id":"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"http:\/\/desarrollo-agil.com\/blog\/"},{"@type":"ListItem","position":2,"name":"La belleza de lo simple"}]},{"@type":"Article","@id":"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/#article","isPartOf":{"@id":"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/#webpage"},"author":{"@id":"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851"},"headline":"La belleza de lo simple","datePublished":"2021-11-14T15:31:59+00:00","dateModified":"2021-11-14T15:32:00+00:00","mainEntityOfPage":{"@id":"http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/#webpage"},"wordCount":615,"commentCount":0,"publisher":{"@id":"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851"},"articleSection":["experiencias"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/52.201.184.187\/blog\/experiencias\/la-belleza-de-lo-simple\/#respond"]}]},{"@type":["Person","Organization"],"@id":"http:\/\/52.201.184.187\/blog\/#\/schema\/person\/d3f309d88ee70165de93b55560c9f851","name":"Emiliano","image":{"@type":"ImageObject","@id":"http:\/\/52.201.184.187\/blog\/#personlogo","inLanguage":"es","url":"http:\/\/2.gravatar.com\/avatar\/e2997f02fe4216c2cce9e5a88e3e3726?s=96&d=mm&r=g","contentUrl":"http:\/\/2.gravatar.com\/avatar\/e2997f02fe4216c2cce9e5a88e3e3726?s=96&d=mm&r=g","caption":"Emiliano"},"logo":{"@id":"http:\/\/52.201.184.187\/blog\/#personlogo"},"sameAs":["https:\/\/www.linkedin.com\/in\/emilianotebes\/","https:\/\/twitter.com\/emilianotebes"]}]}},"_links":{"self":[{"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/posts\/260"}],"collection":[{"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/comments?post=260"}],"version-history":[{"count":5,"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/posts\/260\/revisions"}],"predecessor-version":[{"id":318,"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/posts\/260\/revisions\/318"}],"wp:attachment":[{"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/media?parent=260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/categories?post=260"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/52.201.184.187\/blog\/wp-json\/wp\/v2\/tags?post=260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}