{"id":216,"date":"2019-04-04T09:35:23","date_gmt":"2019-04-04T13:35:23","guid":{"rendered":"http:\/\/soul-repairs.com\/?p=216"},"modified":"2019-04-01T09:21:05","modified_gmt":"2019-04-01T13:21:05","slug":"it-doesnt-have-to-be-perfect","status":"publish","type":"post","link":"https:\/\/soul-repairs.com\/blog\/2019\/04\/04\/it-doesnt-have-to-be-perfect\/","title":{"rendered":"It Doesn\u2019t Have to Be Perfect"},"content":{"rendered":"<p>In a <a href=\"https:\/\/soul-repairs.com\/blog\/2019\/01\/10\/the-five-most-important-ingredients-in-doing-technical-stuff\/\">previous post<\/a>, we talked about how important kitty typing and determination are to technical execution. An important addendum\u00a0to this is that whatever you do <strong>doesn&#8217;t have to be perfect.<\/strong><\/p>\n<p>Now, the first response to that is most likely to be an objection:<\/p>\n<blockquote><p>You: But&#8230;Laine and Josh, quality is <strong>so important<\/strong> to companies! It&#8217;s like, <strong>job #1: don&#8217;t mess it up<\/strong>. How can you say that it doesn&#8217;t have to be perfect? <a href=\"https:\/\/knowyourmeme.com\/memes\/futurama-fry-not-sure-if\"><img loading=\"lazy\" decoding=\"async\" class=\"emoji alignnone wp-image-2665 size-thumbnail\" src=\"https:\/\/soul-repairs.com\/blog\/wp-content\/uploads\/2018\/09\/notsureif-150x150.png\" alt=\"\" width=\"150\" height=\"150\" srcset=\"https:\/\/soul-repairs.com\/blog\/wp-content\/uploads\/2018\/09\/notsureif-150x150.png 150w, https:\/\/soul-repairs.com\/blog\/wp-content\/uploads\/2018\/09\/notsureif.png 168w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/p><\/blockquote>\n<p><!--more--><\/p>\n<h2>Nope. Sorry. Perfection is BAD.<\/h2>\n<p>First of all, <strong>nothing is perfect<\/strong>. Perfection is not a reasonable goal. <em>There is no perfect software.\u00a0<\/em>(for the record, we both tend to fall into the perfectionist trap, so&#8230;we don&#8217;t say this lightly&#8230;)<\/p>\n<p>Second, aiming for perfection before delivering software is a <strong>waste of time<\/strong>. There is a point of diminishing returns inherent in perfectionism &#8211; see also phrases like &#8220;analysis paralysis.&#8221; You need fast feedback, you need to know if what you&#8217;re doing is working, and you can&#8217;t wait until you know it&#8217;s perfect &#8211; because <em>that will be forever<\/em>.<\/p>\n<p>Finally, there&#8217;s an advantage of being imperfect that we&#8217;ve found very valuable &#8211; when people have to fix your code, your processes, your <em>work<\/em>, <strong>they have to learn the systems they&#8217;re fixing<\/strong>. They have to understand what you did and why.<\/p>\n<blockquote><p>You: Well if you did it perfect in the first place, it wouldn&#8217;t need fixing now would it? <a href=\"https:\/\/knowyourmeme.com\/memes\/tommy-lee-jones-with-a-newspaper\"><img loading=\"lazy\" decoding=\"async\" class=\"emoji alignnone wp-image-2666 size-full\" src=\"https:\/\/soul-repairs.com\/blog\/wp-content\/uploads\/2018\/09\/disapprovalstare.jpg\" alt=\"\" width=\"61\" height=\"60\" \/><\/a><\/p><\/blockquote>\n<p>Yes, sassy reader, you would <em>think<\/em> that would be true &#8211; but the problem is that technology and requirements change so quickly, and businesses must respond if they want to remain in business, so&#8230;all code has a shelf life. It will need to be modified, and sometimes fixing someone else&#8217;s mistakes is the best way to learn how the system works.<\/p>\n<h2>Leave behind a smooth road. Also artifacts.<\/h2>\n<p>Since you <em>will<\/em> make mistakes, and <strong>that&#8217;s okay<\/strong>, you should try to leave as smooth a path to success as possible in your wake. You aren&#8217;t going to live forever, and that means that someone will work on your code when you aren&#8217;t there anymore to explain it.<\/p>\n<blockquote><p>Everyone knows that debugging is twice as hard as writing a program in the first place. So if you&#8217;re as clever as you can be when you write it, how will you ever debug it?<br \/>\n&#8211; Brian Kernighan, <a class=\"external text\" href=\"https:\/\/en.wikipedia.org\/wiki\/The_Elements_of_Programming_Style\">The Elements of Programming Style<\/a><\/p><\/blockquote>\n<p>Write simple code that does one thing well, use good design principles, and make it easy for people who have to fix your bugs or modify functionality later.<\/p>\n<p>And since someone&#8217;s going to be maintaining your code, <strong>leave behind entertaining artifacts <\/strong>&#8211; comments and function names, documentation and anecdotes for processes. Brains work better when they&#8217;re amused &#8211; we&#8217;re <em>pretty<\/em> sure this is probably science? It&#8217;s definitely true for both of us &#8211; so leaving behind awesome artifacts helps both the person writing the code\u00a0<em>and<\/em> the person later reading it.<\/p>\n<h2>Mentorship and Community<\/h2>\n<p>One of the best things in the world is to have someone take a thing you love and make it <strong>better<\/strong>. We are none of us as good individually as we are within a community of people with complimentary or supporting skills and talents. Josh likes to do a good job quickly, make it work well, and innovate rapidly. Laine likes to dig into the puzzle of a system, learn how it connects to itself and also other systems, and improve the things that don&#8217;t make sense. We both <em>can <\/em>also do other things and work in other capacities, but eventually we exhaust the value we add. Ideally, we leave the systems we love to people who will continue to love them.<\/p>\n<p>One of the ways that people continue to love the systems we loved is to take what we did and make it better &#8211; clearer, or with a more elegant solution. More functionality, or better performance. <strong>These are nerd love languages<\/strong>. Changes like these can very much mean, &#8220;what I did was worth making better and <em>oh look,<\/em> <em>you did<\/em>.&#8221;<\/p>\n<p>If you teach the people who <a href=\"https:\/\/soul-repairs.com\/blog\/2019\/02\/22\/plan-replace-me\/\">replace you<\/a> the skills they need to do better than you ever did, <strong>that&#8217;s successful leadership<\/strong>. You should be <em>proud<\/em> when someone eclipses you &#8211; it means that you gave the people you lead or mentored permission to stretch to the fullest of their abilities, and that you embraced the ways that <em>they<\/em> made <em>you<\/em> better.<\/p>\n<p>The beauty of working as part of a community is that you <em>don&#8217;t <\/em>have to be perfect. That community, and the people you and they teach, will come along after you and make things even better than Perfect You could have done.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In a previous post, we talked about how important kitty typing and determination are to technical execution. An important addendum\u00a0to this is that whatever you do doesn&#8217;t have to be perfect. Now, the first response to that is most likely to be an objection: You: But&#8230;Laine and Josh, quality is so important to companies! It&#8217;s &hellip; <\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/soul-repairs.com\/blog\/2019\/04\/04\/it-doesnt-have-to-be-perfect\/\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[37,40,4],"tags":[59,54,62],"wf_post_folders":[],"coauthors":[11,26],"class_list":["post-216","post","type-post","status-publish","format-standard","hentry","category-community","category-people","category-technology","tag-execution","tag-kitty-typing","tag-this-is-fine"],"_links":{"self":[{"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/posts\/216","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/comments?post=216"}],"version-history":[{"count":9,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/posts\/216\/revisions"}],"predecessor-version":[{"id":2695,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/posts\/216\/revisions\/2695"}],"wp:attachment":[{"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/media?parent=216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/categories?post=216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/tags?post=216"},{"taxonomy":"wf_post_folders","embeddable":true,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/wf_post_folders?post=216"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/soul-repairs.com\/blog\/wp-json\/wp\/v2\/coauthors?post=216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}