{"id":1466,"date":"2024-04-15T14:54:57","date_gmt":"2024-04-15T14:54:57","guid":{"rendered":"https:\/\/kalkus.dev\/?p=1466"},"modified":"2024-04-15T14:54:58","modified_gmt":"2024-04-15T14:54:58","slug":"working-code-isnt-enough","status":"publish","type":"post","link":"https:\/\/kalkus.dev\/blog\/2024\/04\/15\/working-code-isnt-enough\/","title":{"rendered":"Working code isn\u2019t enough"},"content":{"rendered":"\n<p>In a great book \u201cA philosophy of software design\u201d John Ousterhout points out that software engineering is not only about quick delivery of digital products. He stresses the importance of long-term perspective \u2013 strategic programming. This idea is well known at least since Clean Code, but still somehow ignored. For some reason, many view refactoring or improving code structure as merely a fanciful dream of coders chasing perfection.<\/p>\n\n\n\n<p>It&#8217;s the opposite. It\u2019s a necessity if we don\u2019t want the project to collapse.<\/p>\n\n\n\n<p>\u201cThe most important thing is the long-term structure of the system. (\u2026) Your primary goal must be to produce a great design, which also happens to work\u201d \u2013 says Ousterhout.<\/p>\n\n\n\n<p>It doesn\u2019t mean we should chase beauty and not deliver. It means we must remember that delivering poorly structured code will soon \u2013 much sooner than most of us think \u2013 cause issues.<\/p>\n\n\n\n<p>POCs become MVPs, MVPs become products, products start earning money, they need scaling, and new features\u2026 and boom \u2013 suddenly company needs 5 developers to slowly implement new functionalities and perform basic maintenance of an application which was written by one intern in two months.<\/p>\n\n\n\n<p>The inception of a project should always be the most appreciated and well-planned stage. Like pregnancy. We don\u2019t drink, smoke and party in the 1st trimester just to eat whole foods in 8<sup>th<\/sup> month \u2013 but it\u2019s exactly what we do with code of our IT projects often. We do whatever in the first stage, and then when it\u2019s too late we bring the best engineers to save it.<\/p>\n\n\n\n<p>Remember, engineers: strive to create the best designs possible. Our lives depend on it!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In a great book \u201cA philosophy of software design\u201d John Ousterhout points out that software engineering is not only about quick delivery of digital products. He stresses the importance of long-term perspective \u2013 strategic programming. This idea is well known at least since Clean Code, but still somehow ignored. For some reason, many view refactoring [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[207,209],"_links":{"self":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/1466"}],"collection":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/comments?post=1466"}],"version-history":[{"count":1,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/1466\/revisions"}],"predecessor-version":[{"id":1469,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/1466\/revisions\/1469"}],"wp:attachment":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/media?parent=1466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/categories?post=1466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/tags?post=1466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}