{"id":9180,"date":"2012-08-16T23:08:50","date_gmt":"2012-08-17T04:08:50","guid":{"rendered":"http:\/\/blog.kenperlin.com\/?p=9180"},"modified":"2012-08-16T23:08:50","modified_gmt":"2012-08-17T04:08:50","slug":"a-way-forward","status":"publish","type":"post","link":"https:\/\/blog.kenperlin.com\/?p=9180","title":{"rendered":"A way forward"},"content":{"rendered":"<p>Today I needed to put together two pieces of software, each of which had its own gnarly quirks and peculiarities.  The task seemed daunting &#8212; I couldn&#8217;t see a way forward that would not immediately result in one or the other piece breaking.<\/p>\n<p>So I created a little toy version of one of the two pieces of software &#8212; just a few lines of code pretending to be the real thing &#8212; and stuck it inside the other one.  In this way I got a little of it to work, and then a little more, and then after that a little more still.<\/p>\n<p>Finally, I was able to bring in the real code, since by now &#8212; by working with my little toy version &#8212; I had layered on the little tweaks and adjustments that made it play well with others.<\/p>\n<p>I am reminded of the old days when bridges would be built by flying a kite across a river.  Once the kite was on the other side, the bridge builders would use that string to pull across a slightly thicker string, and then use <i>that<\/i> string to pull across an even thicker string, and so on.  Eventually there would be a strong rope across the river, and bridge building could begin in earnest.<\/p>\n<p>Maybe there is some generalizable lesson here.  When a task seems too formidable, start out by solving a manageable toy version of that task, and then gradually level up until you get to the real thing.  Once you look at problems in this light, there is always a way forward.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today I needed to put together two pieces of software, each of which had its own gnarly quirks and peculiarities. The task seemed daunting &#8212; I couldn&#8217;t see a way forward that would not immediately result in one or the other piece breaking. So I created a little toy version of one of the two &hellip; <a href=\"https:\/\/blog.kenperlin.com\/?p=9180\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;A way forward&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/9180"}],"collection":[{"href":"https:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9180"}],"version-history":[{"count":1,"href":"https:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/9180\/revisions"}],"predecessor-version":[{"id":9181,"href":"https:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/9180\/revisions\/9181"}],"wp:attachment":[{"href":"https:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}