{"id":35405,"date":"2026-03-03T14:34:40","date_gmt":"2026-03-03T13:34:40","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=35405"},"modified":"2026-03-03T14:34:41","modified_gmt":"2026-03-03T13:34:41","slug":"best-practices-dogma","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/","title":{"rendered":"The Engineering of the Possible: Beyond the &#8220;Best Practices&#8221; Dogma"},"content":{"rendered":"\n<p>When we face a programming problem, we often hear reassuring yet limiting phrases:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\"><span class=\"hljs-string\">\"This has already been solved by &#91;insert guru name here], just follow the best practices.\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>On one hand, these words should reassure me: my problem has already been decoded and solved by enlightened minds. On the other hand, they make me feel inadequate, as if I were a heretic unable to see the &#8220;light&#8221; of the perfect solution, repeating errors long surpassed by hundreds of years of computer history.<\/p>\n\n\n\n<p>Such phrases lead us to believe that computer science is an exact science, like mathematics, where 2+2 always equals 4. They suggest that if the project is in chaos, if technical debt is suffocating us, or if the client is furious, the fault is exclusively ours: we didn&#8217;t correctly apply &#8220;The Recipe&#8221;. But after years of worn-out keyboards, I start asking myself an uncomfortable question: what if the Gurus&#8217; recipes were a north star, useful for navigation, but dangerous if mistaken for the destination port?<\/p>\n\n\n\n<p>To paraphrase Accountant Ugo Fantozzi:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\"><span class=\"hljs-string\">\"After three months of cursed readings, Fantozzi saw the truth and was slightly disturbed, or rather, he got pissed off like a beast. So they've always taken me for a ride!\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>It&#8217;s not about belittling the giants of IT, but understanding that they describe excellence in ideal conditions. Our mission, instead, is the engineering of the possible. A Senior is not someone who survives the mud, but someone who designs a way to reclaim the land, one step at a time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-mirage-of-greenfield-and-strategy-in-brownfield\">The Mirage of &#8220;Greenfield&#8221; and Strategy in &#8220;Brownfield&#8221;<\/h2>\n\n\n\n<p>The &#8220;sacred books&#8221;, from Extreme Programming to Clean Code, flourish in the &#8220;Greenfield&#8221;: green meadows where you build from scratch, with top-level teams, elastic budgets, and a culture of failure. Kent Beck, Martin Fowler, Dave Farley, and Robert C. Martin (Uncle Bob) are brilliant minds, but their theories assume a context that in reality is rarer than a unicorn. Memes like<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\"><span class=\"hljs-string\">\"It must be ready for yesterday\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>are not just jokes, they are the boundaries of our playing field. The reality for most of us is the Brownfield: monoliths layered since 1995, databases with fields named field1, field2, field3 (with a manual explaining the meaning of each) and documentation &#8220;in the heads&#8221; of former colleagues.<\/p>\n\n\n\n<p>I remember a project where a trickle of blood came out of my eyes every time I had to understand what was happening in the database. We often work on systems that cannot be touched because &#8220;no one knows what happens if you delete that column&#8221;. Seniority here is not resignation, it is strategy. Saying &#8220;the problem is solved&#8221; by citing a book is like suggesting a laser to a surgeon under bombardment. The true professional knows that the goal is not just to save the patient today, but to improve the conditions of the field hospital so that tomorrow the intervention will be easier.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-tax-on-complexity\">The Tax on Complexity<\/h2>\n\n\n\n<p>Test Driven Development is a powerful tool, but if used uncritically it generates convoluted architectures, saturated with useless interfaces used by a single class and fragile mocks that break only because the internal functioning of the program has changed, which remains consistent, but the mock does not.<\/p>\n\n\n\n<p>The risk is &#8220;testable&#8221; but unreadable code. For juniors, this pyramid of abstractions is often a source of pride: &#8220;Wow, what a fantastic architecture!&#8221;. For a Senior, however, there is the bitter awareness that whoever wrote that code might have already left the company before it is necessary to spend nights in production debugging an incomprehensible bug. It is the moment of escape: the code was written to enhance the CV, not to be maintained.<\/p>\n\n\n\n<p>And Clean Code? The obsession with three-line functions can become a nightmare. I worked on projects where to understand a submission you had to open 18 different files made up of 60% comments inherited like this one taken from the Linux core codebase:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">FIXME: <span class=\"hljs-keyword\">this<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">is<\/span> <span class=\"hljs-title\">never<\/span> <span class=\"hljs-title\">used<\/span>, <span class=\"hljs-title\">why<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The hope here lies in quality as efficiency: 50 lines of sequential code are often more maintainable than a puzzle of abstract micro-functions scattered everywhere, each with a name as long as a sentence and a test that mocks three levels of dependencies. The client doesn&#8217;t pay for elegance, they pay for it to work.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-continuous-delivery-vs-compliance-office\">Continuous Delivery vs. Compliance Office<\/h2>\n\n\n\n<p>Dave Farley teaches us that we should release to production multiple times a day. Deployment should not be an event, but a stress-free &#8220;non-event&#8221;. Beautiful. But then try saying that to the compliance office of a bank or the security manager of a company handling sensitive data.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Ah, you would like to deploy every hour?\nHere is the A<span class=\"hljs-number\">-38<\/span> pass to be filled out <span class=\"hljs-keyword\">for<\/span> each release, signed by the department head, the CISO, and the DPO.\nA validated rollback plan is needed and the deployment <span class=\"hljs-built_in\">window<\/span> is Tuesday between <span class=\"hljs-number\">2<\/span> and <span class=\"hljs-number\">4<\/span> AM.<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The Guru will tell you it&#8217;s a cultural problem. But the developer doesn&#8217;t have the power to rewrite European banking laws or convince the auditor that &#8220;our tests cover everything&#8221;. Those rules were born from the blood of real disasters: someone deployed on a Friday night deleting the data of ten thousand clients. Strategic seniority accepts these rubber walls and tries to automate what is possible, without ignoring the constraints of bureaucratic reality.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-microservices-scalability-vs-simplicity\">Microservices: Scalability vs Simplicity<\/h2>\n\n\n\n<p>&#8220;Monoliths don&#8217;t scale&#8221;. And so we break efficient systems into 47 microservices communicating with each other with seven different protocols (or direct calls to someone else&#8217;s database because there was no time for the API). The dependency graph looks like my son&#8217;s drawing at kindergarten when &#8220;he liked making circles&#8221;.<\/p>\n\n\n\n<p>Debugging becomes a treasure hunt among desynchronized logs on multiple containers, where tail and grep are considered stuff for poor people. But in my company, we have 100 concurrent users: ONE HUNDRED. A volume of traffic that even a monolith in Visual Basic 6 would handle without sweating. We created immense complexity to solve a problem we didn&#8217;t have, just because &#8220;Netflix does it like this&#8221;. You are not Netflix; you don&#8217;t have 10,000 engineers. Seniority is knowing how to say &#8220;no&#8221; to useless complexity.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-agile-from-manifesto-to-bureaucracy\">Agile: from manifesto to bureaucracy<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-string\">\"Individuals and interactions over processes and tools\"<\/span>.<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"366\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-2-nanobanana.png\" alt=\"\" class=\"wp-image-35401\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-2-nanobanana.png 700w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-2-nanobanana-300x157.png 300w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/figure>\n\n\n\n<p>Then you find yourself in 45-minute daily standups where no one starts speaking, and when it&#8217;s your turn you invent some &#8220;gobbledygook&#8221; because you&#8217;re ashamed to say you lost eight hours of life for a misaligned DB table codepage. We transformed a manifesto of freedom into an industry of certifications, Scrum Masters, SAFe, and KPIs.<br>Agility transforms into bureaucracy with a different vocabulary. The hope is that the essence of Agile lies in the team that truly talks, protecting itself from &#8220;ad personam features&#8221; dictated by managers asking for estimates based on nothing (or on the feature name itself). Agility is an attitude, not a board on Jira.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-managing-debt-beyond-the-todo-syndrome\">Managing Debt: Beyond the TODO Syndrome<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\"><span class=\"hljs-string\">\"Leave the code better than you found it\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>A golden rule, but one that must not become a justification for infinite refactoring that slips deadlines. The Senior knows that adding an &#8220;ugly if&#8221; is not a defeat if done methodically. It&#8217;s not enough to write a TODO that no one will ever read.<\/p>\n\n\n\n<p>Managing debt means negotiating it: you insert the patch to meet the deadline, open a refactoring ticket, and agree that the technical &#8220;loan&#8221; must be repaid. Maybe in August, when you have time to think because everyone is at the beach (and you&#8217;ll go in September). This is the difference between a Senior and an amateur: the first contracts a conscious debt, the second creates an involuntary disaster.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"366\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-3-nanobanana.png\" alt=\"\" class=\"wp-image-35402\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-3-nanobanana.png 700w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-3-nanobanana-300x157.png 300w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-tavernello-metaphor-scope-vs-quality\">The Tavernello Metaphor: Scope vs Quality<\/h2>\n\n\n\n<p>Once they told me:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json\"><span class=\"hljs-string\">\"If you have 3 euros in your pocket, you buy a Tavernello, not a Barolo.\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>It&#8217;s a powerful analogy. In IT, using a product that doesn&#8217;t correctly cover requirements can cause bigger problems than those you&#8217;d have buying a high-end product. The true compromise shouldn&#8217;t be about intrinsic quality (the code must be correct, secure, and tested), but scope (what we do). If you have a low budget, don&#8217;t cook a lousy wedding lunch: prepare an excellent pasta with tomato sauce. Simplify the requirements, not the care with which you write lines of code.<\/p>\n\n\n\n<p>I remember a video where Luca Mezzalira spoke about DAZN: to change the year in the site footers, they edit 4 files by hand. Dirty solution? Maybe. But in 5 minutes it&#8217;s done, zero risk, and very low impact. If microservices Gurus do it, maybe it&#8217;s not so wrong. That &#8220;ugly&#8221; code often survives years generating value, while &#8220;beautiful&#8221; over-engineered code is rewritten after six months because no one knows how to touch it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-gurus-sell-books-we-sell-solutions\">The Gurus sell books, we sell solutions<\/h2>\n\n\n\n<p>The Gurus are starred chefs who buy top-choice ingredients. We are the cooks who have to feed 200 people in an hour. If you try to replicate the Tiramisu recipe of Iginio Massari without having the time for homemade ladyfingers, you&#8217;ll end up with people going home annoyed by the wait. Use supermarket cookies and concentrate on a decent cream.<\/p>\n\n\n\n<p>We must create solutions based on reality. The Gurus point to the peak, but we are the ones who have to trace the path through the brambles. Excellence is providing the maximum possible quality within the given constraints, not complaining about the constraints themselves.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-so-are-we-old-or-senior\">So are we old or senior?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"447\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-en-infografica.png\" alt=\"\" class=\"wp-image-35406\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-en-infografica.png 800w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-en-infografica-300x168.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-en-infografica-768x429.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-en-infografica-400x225.png 400w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>The difference is that the old one has stopped learning, the senior has stopped being a fanatic. The senior has studied the rules so well that they know exactly when to break them to save the project, transforming that exception into a conscious act of engineering.<\/p>\n\n\n\n<p>They have learned that &#8220;it depends&#8221; is the most honest answer. That perfect code is the enemy of working code. That delivering 90% on time is better than 100% late. And if this means passing for someone who &#8220;lives in the comfort zone&#8221; in the eyes of those doing vibe coding with the latest framework advertised on X: I&#8217;ll get over it.<\/p>\n\n\n\n<p>See you in the trenches. We wallow in the mud, keep monoliths standing, and build bridges. Because in the end, the fault is not with the Gurus who made us believe in perfection, but ours if we stopped looking for possible excellence to chase the imaginary one.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When we face a programming problem, we often hear reassuring yet limiting phrases: On one hand, these words should reassure me: my problem has already been decoded and solved by enlightened minds. On the other hand, they make me feel inadequate, as if I were a heretic unable to see the &#8220;light&#8221; of the perfect&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/\">Read more<\/a><\/p>\n","protected":false},"author":246,"featured_media":35400,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[3],"tags":[11464,13877],"collections":[],"class_list":{"0":"post-35405","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-dev-life","8":"tag-best-practices","9":"tag-matteo-baccan-en","10":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Beyond the &quot;Best Practices&quot; Dogma<\/title>\n<meta name=\"description\" content=\"We wallow in the mud, keep monoliths standing, and build bridges. Because in the end, the fault is not with the Gurus who made us believe in perfection, but ours if we stopped looking for possible excellence to chase the imaginary one.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Engineering of the Possible: Beyond the &quot;Best Practices&quot; Dogma\" \/>\n<meta property=\"og:description\" content=\"We wallow in the mud, keep monoliths standing, and build bridges. Because in the end, the fault is not with the Gurus who made us believe in perfection, but ours if we stopped looking for possible excellence to chase the imaginary one.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-03T13:34:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-03T13:34:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png\" \/>\n\t<meta property=\"og:image:width\" content=\"700\" \/>\n\t<meta property=\"og:image:height\" content=\"366\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Matteo Baccan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matteo Baccan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/\"},\"author\":{\"name\":\"Matteo Baccan\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/58743a83113a6ac22788ab19bea03ad1\"},\"headline\":\"The Engineering of the Possible: Beyond the &#8220;Best Practices&#8221; Dogma\",\"datePublished\":\"2026-03-03T13:34:40+00:00\",\"dateModified\":\"2026-03-03T13:34:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/\"},\"wordCount\":1579,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png\",\"keywords\":[\"best practices\",\"matteo baccan\"],\"articleSection\":[\"Dev Life\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/\",\"name\":\"Beyond the \\\"Best Practices\\\" Dogma\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png\",\"datePublished\":\"2026-03-03T13:34:40+00:00\",\"dateModified\":\"2026-03-03T13:34:41+00:00\",\"description\":\"We wallow in the mud, keep monoliths standing, and build bridges. Because in the end, the fault is not with the Gurus who made us believe in perfection, but ours if we stopped looking for possible excellence to chase the imaginary one.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png\",\"width\":700,\"height\":366},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dev Life\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/dev-life\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"The Engineering of the Possible: Beyond the &#8220;Best Practices&#8221; Dogma\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/58743a83113a6ac22788ab19bea03ad1\",\"name\":\"Matteo Baccan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/02\/matteo-baccan-100x100.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/02\/matteo-baccan-100x100.jpg\",\"caption\":\"Matteo Baccan\"},\"description\":\"Matteo Baccan is a professional software engineer and trainer with over 30 years of experience in the IT industry. He has worked for several companies and organizations, dealing with design, development, testing, and management of web and desktop applications, using various languages and technologies. He is also a passionate computer science educator, author of numerous articles, books, and online courses aimed at all levels of expertise. He runs a website and a YouTube channel where he shares video tutorials, interviews, reviews, and programming tips. Active in open-source communities, he regularly participates in programming events and competitions. He defines himself as a \\\"realistic dreamer\\\" who loves to experiment, innovate, and share his knowledge and passions, following the motto: \\\"Never stop learning, because life never stops teaching.\\\"\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/matteo-baccan\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Beyond the \"Best Practices\" Dogma","description":"We wallow in the mud, keep monoliths standing, and build bridges. Because in the end, the fault is not with the Gurus who made us believe in perfection, but ours if we stopped looking for possible excellence to chase the imaginary 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:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/","og_locale":"en_US","og_type":"article","og_title":"The Engineering of the Possible: Beyond the \"Best Practices\" Dogma","og_description":"We wallow in the mud, keep monoliths standing, and build bridges. Because in the end, the fault is not with the Gurus who made us believe in perfection, but ours if we stopped looking for possible excellence to chase the imaginary one.","og_url":"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2026-03-03T13:34:40+00:00","article_modified_time":"2026-03-03T13:34:41+00:00","og_image":[{"width":700,"height":366,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png","type":"image\/png"}],"author":"Matteo Baccan","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Matteo Baccan","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/"},"author":{"name":"Matteo Baccan","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/58743a83113a6ac22788ab19bea03ad1"},"headline":"The Engineering of the Possible: Beyond the &#8220;Best Practices&#8221; Dogma","datePublished":"2026-03-03T13:34:40+00:00","dateModified":"2026-03-03T13:34:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/"},"wordCount":1579,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png","keywords":["best practices","matteo baccan"],"articleSection":["Dev Life"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/","url":"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/","name":"Beyond the \"Best Practices\" Dogma","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png","datePublished":"2026-03-03T13:34:40+00:00","dateModified":"2026-03-03T13:34:41+00:00","description":"We wallow in the mud, keep monoliths standing, and build bridges. Because in the end, the fault is not with the Gurus who made us believe in perfection, but ours if we stopped looking for possible excellence to chase the imaginary one.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png","width":700,"height":366},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/dev-life\/best-practices-dogma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Dev Life","item":"https:\/\/www.codemotion.com\/magazine\/dev-life\/"},{"@type":"ListItem","position":3,"name":"The Engineering of the Possible: Beyond the &#8220;Best Practices&#8221; Dogma"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/58743a83113a6ac22788ab19bea03ad1","name":"Matteo Baccan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/02\/matteo-baccan-100x100.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/02\/matteo-baccan-100x100.jpg","caption":"Matteo Baccan"},"description":"Matteo Baccan is a professional software engineer and trainer with over 30 years of experience in the IT industry. He has worked for several companies and organizations, dealing with design, development, testing, and management of web and desktop applications, using various languages and technologies. He is also a passionate computer science educator, author of numerous articles, books, and online courses aimed at all levels of expertise. He runs a website and a YouTube channel where he shares video tutorials, interviews, reviews, and programming tips. Active in open-source communities, he regularly participates in programming events and competitions. He defines himself as a \"realistic dreamer\" who loves to experiment, innovate, and share his knowledge and passions, following the motto: \"Never stop learning, because life never stops teaching.\"","url":"https:\/\/www.codemotion.com\/magazine\/author\/matteo-baccan\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana-600x366.png","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana-600x366.png","author_info":{"display_name":"Matteo Baccan","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/matteo-baccan\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png",700,366,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana-150x150.png",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana-300x157.png",300,157,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png",700,366,false],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png",700,366,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png",700,366,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png",700,366,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana-100x100.png",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana-180x128.png",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana.png",700,366,false],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana-400x225.png",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana-600x366.png",600,366,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/03\/19-ingannobestpractice-1-nanobanana-600x366.png",600,366,true]},"uagb_author_info":{"display_name":"Matteo Baccan","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/matteo-baccan\/"},"uagb_comment_info":0,"uagb_excerpt":"When we face a programming problem, we often hear reassuring yet limiting phrases: On one hand, these words should reassure me: my problem has already been decoded and solved by enlightened minds. On the other hand, they make me feel inadequate, as if I were a heretic unable to see the &#8220;light&#8221; of the perfect&#8230;&hellip;","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/35405","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/246"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=35405"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/35405\/revisions"}],"predecessor-version":[{"id":35422,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/35405\/revisions\/35422"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/35400"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=35405"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=35405"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=35405"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=35405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}