{"id":1179,"date":"2026-04-11T10:00:00","date_gmt":"2026-04-11T09:00:00","guid":{"rendered":"https:\/\/wade.one\/blog\/?p=1179"},"modified":"2026-04-11T10:00:00","modified_gmt":"2026-04-11T09:00:00","slug":"the-best-engineering-decisions-usually-remove-work","status":"publish","type":"post","link":"https:\/\/wade.one\/blog\/2026\/04\/11\/the-best-engineering-decisions-usually-remove-work\/","title":{"rendered":"The Best Engineering Decisions Usually Remove Work"},"content":{"rendered":"<p>Most of the time, the best engineering decision is not to add something. It is to remove something that is already costing you time.<\/p>\n<p>That sounds obvious, but teams still drift toward the opposite. When something feels hard, the instinct is often to add another layer: another service, another workflow, another approval, another abstraction, another dashboard. Sometimes that is necessary. More often, it is just a way of moving the discomfort around.<\/p>\n<p>I have found that the decisions that really improve a system are usually the ones that make future work smaller.<\/p>\n<h2>Remove the thing first<\/h2>\n<p>If a piece of code, a process, or a dependency no longer earns its keep, deleting it is often the best outcome.<\/p>\n<p>That is not dramatic. It is just efficient.<\/p>\n<p>Unused code still has to be read, reviewed, deployed, monitored, and explained. A stale process still makes people stop and ask, &#8220;Do we still need this?&#8221; A half-useful abstraction still forces everyone to understand its rules before they can change anything else.<\/p>\n<p>Removing those things does not just clean up the repository. It reduces the number of decisions people have to carry around.<\/p>\n<h2>Simpler boundaries beat clever ones<\/h2>\n<p>One thing I keep seeing is that complexity hides at the edges.<\/p>\n<p>You can make a module look neat on its own and still end up with a system that is painful to change because the boundaries are vague. The work spreads out. Everyone starts knowing just enough to be dangerous. Nobody is fully responsible for the seam where things meet.<\/p>\n<p>Clear boundaries are better than clever design because they make ownership obvious.<\/p>\n<p>If a boundary is clear, you know where the logic lives, where the data changes, and where failures belong. That is the kind of design that makes the next change cheaper.<\/p>\n<h2>Fewer steps matter more than fancier steps<\/h2>\n<p>I think a lot of engineering process grows because people are trying to compensate for confusion.<\/p>\n<p>If the system is hard to reason about, people add more review steps. If releases are scary, they add more gates. If mistakes are common, they add more ceremony. Some of that is reasonable. But if the root cause is unnecessary complexity, then more process just turns one kind of waste into another.<\/p>\n<p>The better question is usually: what can we remove so the work becomes obvious again?<\/p>\n<p>That might mean:<\/p>\n<ul>\n<li>deleting a feature that does not matter<\/li>\n<li>collapsing two similar code paths into one<\/li>\n<li>removing a manual deployment step<\/li>\n<li>narrowing the number of ways a thing can be configured<\/li>\n<li>cutting a layer that only exists because somebody was worried about a future problem<\/li>\n<\/ul>\n<p>That list is not glamorous, but it is where a lot of the real value lives.<\/p>\n<h2>Good architecture usually looks boring<\/h2>\n<p>I trust architecture more when it makes the system easier to explain in plain language.<\/p>\n<p>If the design requires a long apology, that is usually a sign. If the only reason for a layer is that it sounds scalable, that is also a sign. If the main benefit of a change is that it will let the team keep adding more things later, but the current work gets harder right away, I would want a stronger reason.<\/p>\n<p>Good architecture should remove uncertainty.<\/p>\n<p>It should make it easier to see what changed, easier to test the right thing, easier to roll back, and easier to hand off. If it does not do that, it is probably just another kind of work.<\/p>\n<h2>The useful question<\/h2>\n<p>When I am looking at a decision, I try to ask a simple question:<\/p>\n<p>What work disappears if we do this?<\/p>\n<p>Not what looks smarter. Not what sounds more robust. Not what would be impressive in a diagram.<\/p>\n<p>What work disappears.<\/p>\n<p>If the answer is that we remove repeated steps, reduce support burden, shorten the path to a fix, or make the next change easier to understand, I am usually interested. If the answer is just that we added more machinery, I am much less interested.<\/p>\n<p>That is probably the clearest rule I have for this kind of work. The best engineering decisions usually make the system smaller in the ways that matter.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The best engineering decisions usually do not add more process or more code. They remove work, shorten paths, and make the remaining system easier to understand.<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"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":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[13,25],"tags":[58,50,88,90,48],"class_list":["post-1179","post","type-post","status-publish","format-standard","hentry","category-programming","category-software-engineer","tag-architecture","tag-delivery","tag-engineering","tag-simplification","tag-technical-debt"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The Best Engineering Decisions Usually Remove Work - wade.one<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wade.one\/blog\/2026\/04\/11\/the-best-engineering-decisions-usually-remove-work\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Best Engineering Decisions Usually Remove Work - wade.one\" \/>\n<meta property=\"og:description\" content=\"The best engineering decisions usually do not add more process or more code. They remove work, shorten paths, and make the remaining system easier to understand.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wade.one\/blog\/2026\/04\/11\/the-best-engineering-decisions-usually-remove-work\/\" \/>\n<meta property=\"og:site_name\" content=\"wade.one\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-11T09:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/Wade-Logo-cropped.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1518\" \/>\n\t<meta property=\"og:image:height\" content=\"1506\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@wadewomersley\" \/>\n<meta name=\"twitter:site\" content=\"@wadewomersley\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/11\\\/the-best-engineering-decisions-usually-remove-work\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/11\\\/the-best-engineering-decisions-usually-remove-work\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"The Best Engineering Decisions Usually Remove Work\",\"datePublished\":\"2026-04-11T09:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/11\\\/the-best-engineering-decisions-usually-remove-work\\\/\"},\"wordCount\":699,\"publisher\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\"},\"keywords\":[\"architecture\",\"delivery\",\"engineering\",\"simplification\",\"technical-debt\"],\"articleSection\":[\"Programming\",\"Software Engineer\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/11\\\/the-best-engineering-decisions-usually-remove-work\\\/\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/11\\\/the-best-engineering-decisions-usually-remove-work\\\/\",\"name\":\"The Best Engineering Decisions Usually Remove Work - wade.one\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#website\"},\"datePublished\":\"2026-04-11T09:00:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/11\\\/the-best-engineering-decisions-usually-remove-work\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/11\\\/the-best-engineering-decisions-usually-remove-work\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/04\\\/11\\\/the-best-engineering-decisions-usually-remove-work\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wade.one\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Best Engineering Decisions Usually Remove Work\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/\",\"name\":\"wade.one\",\"description\":\"wade womersley - york based software engineer\",\"publisher\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wade.one\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\",\"name\":\"Wade Womersley\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"contentUrl\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"width\":202,\"height\":200,\"caption\":\"Wade Womersley\"},\"logo\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Best Engineering Decisions Usually Remove Work - wade.one","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":"https:\/\/wade.one\/blog\/2026\/04\/11\/the-best-engineering-decisions-usually-remove-work\/","og_locale":"en_GB","og_type":"article","og_title":"The Best Engineering Decisions Usually Remove Work - wade.one","og_description":"The best engineering decisions usually do not add more process or more code. They remove work, shorten paths, and make the remaining system easier to understand.","og_url":"https:\/\/wade.one\/blog\/2026\/04\/11\/the-best-engineering-decisions-usually-remove-work\/","og_site_name":"wade.one","article_published_time":"2026-04-11T09:00:00+00:00","og_image":[{"width":1518,"height":1506,"url":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/Wade-Logo-cropped.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_creator":"@wadewomersley","twitter_site":"@wadewomersley","twitter_misc":{"Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wade.one\/blog\/2026\/04\/11\/the-best-engineering-decisions-usually-remove-work\/#article","isPartOf":{"@id":"https:\/\/wade.one\/blog\/2026\/04\/11\/the-best-engineering-decisions-usually-remove-work\/"},"author":{"name":"","@id":""},"headline":"The Best Engineering Decisions Usually Remove Work","datePublished":"2026-04-11T09:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/wade.one\/blog\/2026\/04\/11\/the-best-engineering-decisions-usually-remove-work\/"},"wordCount":699,"publisher":{"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3"},"keywords":["architecture","delivery","engineering","simplification","technical-debt"],"articleSection":["Programming","Software Engineer"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/wade.one\/blog\/2026\/04\/11\/the-best-engineering-decisions-usually-remove-work\/","url":"https:\/\/wade.one\/blog\/2026\/04\/11\/the-best-engineering-decisions-usually-remove-work\/","name":"The Best Engineering Decisions Usually Remove Work - wade.one","isPartOf":{"@id":"https:\/\/wade.one\/blog\/#website"},"datePublished":"2026-04-11T09:00:00+00:00","breadcrumb":{"@id":"https:\/\/wade.one\/blog\/2026\/04\/11\/the-best-engineering-decisions-usually-remove-work\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wade.one\/blog\/2026\/04\/11\/the-best-engineering-decisions-usually-remove-work\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wade.one\/blog\/2026\/04\/11\/the-best-engineering-decisions-usually-remove-work\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wade.one\/blog\/"},{"@type":"ListItem","position":2,"name":"The Best Engineering Decisions Usually Remove Work"}]},{"@type":"WebSite","@id":"https:\/\/wade.one\/blog\/#website","url":"https:\/\/wade.one\/blog\/","name":"wade.one","description":"wade womersley - york based software engineer","publisher":{"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wade.one\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3","name":"Wade Womersley","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","url":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","contentUrl":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","width":202,"height":200,"caption":"Wade Womersley"},"logo":{"@id":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png"}}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1158,"url":"https:\/\/wade.one\/blog\/2026\/03\/26\/why-senior-engineers-still-matter-more-in-the-ai-era\/","url_meta":{"origin":1179,"position":0},"title":"Why Senior Engineers Still Matter More in the AI Era","author":"","date":"March 26, 2026","format":false,"excerpt":"AI can generate code faster, but that only makes direction, judgment, and accountability more important. Senior engineers still matter because the expensive mistakes are rarely typing mistakes.","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/wade.one\/blog\/category\/ai\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1178,"url":"https:\/\/wade.one\/blog\/2026\/04\/10\/what-actually-slows-software-delivery-down\/","url_meta":{"origin":1179,"position":1},"title":"What Actually Slows Software Delivery Down","author":"","date":"April 10, 2026","format":false,"excerpt":"Software delivery usually slows down because of decisions, handoffs, fear, and bad environments, not because developers are typing too slowly.","rel":"","context":"In &quot;Software Engineer&quot;","block_context":{"text":"Software Engineer","link":"https:\/\/wade.one\/blog\/category\/software-engineer\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1175,"url":"https:\/\/wade.one\/blog\/2026\/04\/07\/what-good-kotlin-code-feels-like-after-too-much-java\/","url_meta":{"origin":1179,"position":2},"title":"What Good Kotlin Code Feels Like After Too Much Java","author":"","date":"April 7, 2026","format":false,"excerpt":"Kotlin feels good when it removes friction instead of adding ceremony. After enough Java, that difference becomes obvious very quickly.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1159,"url":"https:\/\/wade.one\/blog\/2026\/03\/26\/why-most-software-projects-do-not-need-a-rewrite\/","url_meta":{"origin":1179,"position":3},"title":"Why Most Software Projects Do Not Need a Rewrite","author":"","date":"March 26, 2026","format":false,"excerpt":"Most rewrite discussions are really a sign that the team is frustrated, not that a full rebuild is the smartest technical decision. In most cases, incremental change is the better call.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1163,"url":"https:\/\/wade.one\/blog\/2026\/03\/30\/what-clients-actually-need-from-a-software-consultant\/","url_meta":{"origin":1179,"position":4},"title":"What Clients Actually Need From a Software Consultant","author":"","date":"March 30, 2026","format":false,"excerpt":"Clients do not really need a consultant who just says clever technical things. They need someone who can reduce risk, create clarity, and help them make better decisions.","rel":"","context":"In &quot;Software Engineer&quot;","block_context":{"text":"Software Engineer","link":"https:\/\/wade.one\/blog\/category\/software-engineer\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1168,"url":"https:\/\/wade.one\/blog\/2026\/04\/01\/why-i-still-like-serverless-for-small-teams\/","url_meta":{"origin":1179,"position":5},"title":"Why I Still Like Serverless for Small Teams","author":"","date":"April 1, 2026","format":false,"excerpt":"Serverless has real tradeoffs, but for small teams I still think it usually wins. The operational overhead stays low, the first version ships faster, and the mistakes are easier to afford early on.","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/wade.one\/blog\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/comments?post=1179"}],"version-history":[{"count":1,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1179\/revisions"}],"predecessor-version":[{"id":1202,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1179\/revisions\/1202"}],"wp:attachment":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/media?parent=1179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/categories?post=1179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/tags?post=1179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}