{"id":36212,"date":"2017-06-29T11:26:01","date_gmt":"2017-06-29T11:26:01","guid":{"rendered":"http:\/\/www.flubu.com\/blog\/?p=36212"},"modified":"2017-06-29T11:26:01","modified_gmt":"2017-06-29T11:26:01","slug":"empathy-for-the-coder","status":"publish","type":"post","link":"https:\/\/www.flubu.com\/blog\/2017\/06\/29\/empathy-for-the-coder\/","title":{"rendered":"Empathy for the coder"},"content":{"rendered":"<p><a href=\"https:\/\/www.flubu.com\/blog\/wp-content\/uploads\/2016\/04\/it-doesnt-work-why.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"26665\" data-permalink=\"https:\/\/www.flubu.com\/blog\/2016\/04\/25\/programmers-at-work\/it-doesnt-work-why\/\" data-orig-file=\"https:\/\/www.flubu.com\/blog\/wp-content\/uploads\/2016\/04\/it-doesnt-work-why.png\" data-orig-size=\"800,1178\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"it-doesnt-work-why\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.flubu.com\/blog\/wp-content\/uploads\/2016\/04\/it-doesnt-work-why-543x800.png\" src=\"https:\/\/www.flubu.com\/blog\/wp-content\/uploads\/2016\/04\/it-doesnt-work-why-272x400.png\" alt=\"\" width=\"272\" height=\"400\" class=\"alignright size-medium wp-image-26665\" srcset=\"https:\/\/www.flubu.com\/blog\/wp-content\/uploads\/2016\/04\/it-doesnt-work-why-272x400.png 272w, https:\/\/www.flubu.com\/blog\/wp-content\/uploads\/2016\/04\/it-doesnt-work-why-768x1131.png 768w, https:\/\/www.flubu.com\/blog\/wp-content\/uploads\/2016\/04\/it-doesnt-work-why-543x800.png 543w, https:\/\/www.flubu.com\/blog\/wp-content\/uploads\/2016\/04\/it-doesnt-work-why.png 800w\" sizes=\"auto, (max-width: 272px) 100vw, 272px\" \/><\/a><\/p>\n<p>You read through the code. You read it again to make sure you understand what it\u2019s doing. Your left eye starts twitching. You read the code a third time.<\/p>\n<blockquote><p>\u201cWTF was wrong with the person who wrote this?\u201d<\/p><\/blockquote>\n<p>I hate how often I react this way. It\u2019s a quick default that\u2019s hard to reset\u200a\u2014\u200aimmediate annoyance as if the developer or engineer responsible for writing whatever I\u2019ve come across was scattering landmines. It\u2019s easy to shit on the people who came before you. They\u2019re usually not around to defend themselves or provide context. It\u2019s much harder to calm down, and think things through. An initial reaction of \u201cWTF?!\u201d is entirely valid (You\u2019re gonna feel what you\u2019re gonna feel.), but getting stuck on the frustration and not going further is unfair to your predecessors and causes you to miss out on learning.<\/p>\n<p>\u201cHow\u201d a problem was solved\/band-aided\/kicked-down-the-road is usually the root of those frustrations, but the next step is thinking through the \u201cWhy\u201d of the solution, which is often the source of useful information.<\/p>\n<p>The code might be stupid, but there\u2019s usually a reason. Maybe:<\/p>\n<ul>\n<li>Something stupid upstream brought its stupid with it. Alternatively, something stupid downstream needed more stupid.<\/li>\n<li>The dev\/engineer was told to do it that way.<\/li>\n<li>The dev\/engineer was getting pulled in 1000 different directions and needed to make a fast band-aid.<\/li>\n<li>The dev\/engineer was doing the best they knew how.<\/li>\n<li>It\u2019s actually not stupid. You just think you know more than you do.<\/li>\n<\/ul>\n<p>That doesn\u2019t rule out laziness or malice, but they\u2019re much rarer and shouldn\u2019t be the default assumption. When we run across goofy looking code and configs, we need to respect the constraints and context the person who wrote them faced. Note: That the person might actually be an idiot is a real, intractable constraint. How would you have fixed that? <\/p>\n<p>Thinking through and learning the \u201cwhys\u201d that caused the stupid will help you understand the context of the problem you\u2019re currently facing. You\u2019ll learn about not only technical pitfalls, but cultural ones as well. A lot of the stupid that shows up in code has nothing to do with the technical competence of the person who wrote it and everything to do with their manager or the company at large.<\/p>\n<p>How many times has the past version of you done something stupid that harmed future you? How many times have you looked at something you made a year ago and thought \u201cWhat was I thinking?\u201d Like any skill, if you\u2019re not embarrassed by some of the code and configs you\u2019ve written in the past you\u2019re 1.) an egotistical monster, and 2.) not getting better. Knowing that, allow some grace for yourself and the people who came before you.<\/p>\n<p>I can\u2019t say I\u2019ve mastered this skill yet. Sometimes, in moments of frustration, I flat out suck at it. But I\u2019m trying and that\u2019s kind of the crux to all this. Everyone is trying, no one has arrived, and the more we empathize with the unknown constraints of those who came before us, the better off we\u2019ll be.<\/p>\n<p>Adapted from <a href=\"https:\/\/dev.to\/liquid_chickens\/empathy-in-dev-and-ops\">original link<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>You read through the code. You read it again to make sure you understand what it\u2019s doing. Your left eye starts twitching. You read the code a third time. \u201cWTF was wrong with the person who wrote this?\u201d I hate how often I react this way. It\u2019s a quick default that\u2019s hard to reset\u200a\u2014\u200aimmediate annoyance&#8230;<\/p>\n<p class=\"more-link-wrap\"><a href=\"https:\/\/www.flubu.com\/blog\/2017\/06\/29\/empathy-for-the-coder\/\" class=\"more-link\">Read More<span class=\"screen-reader-text\"> &ldquo;Empathy for the coder&rdquo;<\/span> &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[24,543,17,40],"class_list":["post-36212","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-computers-are-evil","tag-essay","tag-geek","tag-work"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p3u9vK-9q4","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/posts\/36212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/comments?post=36212"}],"version-history":[{"count":1,"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/posts\/36212\/revisions"}],"predecessor-version":[{"id":36213,"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/posts\/36212\/revisions\/36213"}],"wp:attachment":[{"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/media?parent=36212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/categories?post=36212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flubu.com\/blog\/wp-json\/wp\/v2\/tags?post=36212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}