{"id":27343,"date":"2017-02-12T19:39:08","date_gmt":"2017-02-12T17:39:08","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=27343"},"modified":"2017-02-12T19:39:08","modified_gmt":"2017-02-12T17:39:08","slug":"modern-software-over-engineering-mistakes","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2017\/02\/12\/modern-software-over-engineering-mistakes\/","title":{"rendered":"Modern Software Over-Engineering Mistakes"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>&#8220;<a href=\"https:\/\/medium.com\/@rdsubhas\/10-modern-software-engineering-mistakes-bc67fbef4fc8#.qhzzeapog\">Modern Software Over-Engineering Mistakes<\/a>&#8221; is a nice collection of examples, results and reviews of over-engineering mistakes of the modern day.<\/p>\n<p><!--more--><\/p>\n<blockquote><p>Few things are guaranteed to increase all the time: Distance between stars, Entropy in the visible universe, and <strong>F*cking business requirements<\/strong> .<\/p><\/blockquote>\n<p>Here&#8217;s the list of things discussed in the article with tl;dr (too long; didn&#8217;t read) summaries:<\/p>\n<p><strong>Engineering is more clever than Business<\/strong><\/p>\n<blockquote><p>TL;DR\u200a\u2014\u200aThe House (Business) Always Wins.<\/p><\/blockquote>\n<p><strong>Reusable Business Functionality<\/strong><\/p>\n<blockquote><p>TL;DR\u200a\u2014\u200aPrefer Isolating Actions than Combining<\/p><\/blockquote>\n<p><strong>Everything is Generic<\/strong><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/02\/perfect-abstraction.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"27345\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2017\/02\/12\/modern-software-over-engineering-mistakes\/perfect-abstraction\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/02\/perfect-abstraction.png?fit=800%2C560&amp;ssl=1\" data-orig-size=\"800,560\" 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=\"perfect abstraction\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/02\/perfect-abstraction.png?fit=660%2C462&amp;ssl=1\" class=\"aligncenter size-medium wp-image-27345\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/02\/perfect-abstraction-500x350.png?resize=500%2C350&#038;ssl=1\" alt=\"\" width=\"500\" height=\"350\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/02\/perfect-abstraction.png?resize=500%2C350&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/02\/perfect-abstraction.png?resize=768%2C538&amp;ssl=1 768w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/02\/perfect-abstraction.png?w=800&amp;ssl=1 800w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<blockquote><p>TL;DR\u200a\u2014\u200aDuplication is better than the wrong abstraction<\/p><\/blockquote>\n<p><strong>Shallow Wrappers<\/strong><\/p>\n<blockquote><p>TL;DR\u200a\u2014\u200aWrappers are an exception, not the norm. Don\u2019t wrap good libraries for the sake of wrapping<\/p><\/blockquote>\n<p><strong>Applying Quality like a Tool<\/strong><\/p>\n<blockquote><p>TL;DR\u200a\u2014\u200aAlways take a step back and look at the macro picture<\/p><\/blockquote>\n<p><strong>Overzealous Adopter Syndrome<\/strong><\/p>\n<blockquote><p>TL;DR\u200a\u2014\u200aTL;DRs should not be used everywhere<\/p><\/blockquote>\n<p><strong>&lt;X&gt;\u2013ity <\/strong><\/p>\n<p>As in configurability, security, scalability, maintainability, extensibility, etc.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/02\/x-ty.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"27344\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2017\/02\/12\/modern-software-over-engineering-mistakes\/x-ty\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/02\/x-ty.png?fit=863%2C204&amp;ssl=1\" data-orig-size=\"863,204\" 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=\"x-ty\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/02\/x-ty.png?fit=660%2C156&amp;ssl=1\" class=\"aligncenter size-medium wp-image-27344\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/02\/x-ty-500x118.png?resize=500%2C118&#038;ssl=1\" alt=\"\" width=\"500\" height=\"118\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/02\/x-ty.png?resize=500%2C118&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/02\/x-ty.png?resize=768%2C182&amp;ssl=1 768w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/02\/x-ty.png?w=863&amp;ssl=1 863w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<blockquote><p>TL;DR\u200a\u2014\u200aDon\u2019t let &lt;X&gt;-ities go unchallenged. Clearly define and evaluate the Scenario\/Story\/Need\/Usage.<\/p><\/blockquote>\n<p><strong>In House \u201cInventions\u201d<\/strong><\/p>\n<blockquote><p>TL;DR\u200a\u2014\u200aReuse. Fork. Contribute. Reconsider.<\/p><\/blockquote>\n<p><strong>Following the Status Quo<\/strong><\/p>\n<blockquote><p>TL;DR\u200a\u2014\u200aRefactoring is part of each and every story. No code is untouchable<\/p><\/blockquote>\n<p><strong>Bad Estimation<\/strong><\/p>\n<blockquote><p>TL;DR\u200a\u2014\u200aBad Estimation destroys Quality even before a single line of code is written<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>&#8220;Modern Software Over-Engineering Mistakes&#8221; is a nice collection of examples, results and reviews of over-engineering mistakes of the modern day.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Modern Software Over-Engineering Mistakes #WebDev #business #engineering","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},"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[1968,1673,1330],"keyring_services":[],"class_list":["post-27343","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-business","tag-software-engineering","tag-web-development"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":28124,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/10\/20\/periodic-table-of-software-engineering\/","url_meta":{"origin":27343,"position":0},"title":"Periodic Table of Software Engineering","author":"Leonid Mamchenkov","date":"October 20, 2017","format":false,"excerpt":"I came across this Periodic Table of Software Engineering, and I think it's an excellent visualization.\u00a0 For those working their way to become software engineers, it provides a nice map of skills, topics, and knowledge areas to cover.\u00a0 For the rest, it clearly explains why software is so much more\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/10\/periodic-table-of-software-engineering-500x350.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27331,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/02\/11\/software-engineering-at-google\/","url_meta":{"origin":27343,"position":1},"title":"Software Engineering at Google","author":"Leonid Mamchenkov","date":"February 11, 2017","format":false,"excerpt":"Fergus Henderson, who has been a software engineer at Google for 10 years, published the PDF document\u00a0entitled \"Software Engineering at Google\", where he collects and describes key software engineering practices the company is using. It covers the following: software development - version control, build system, code review, testing, bug tracking,\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":8106,"url":"https:\/\/mamchenkov.net\/wordpress\/2004\/10\/25\/software-engineering-proverbs\/","url_meta":{"origin":27343,"position":2},"title":"Software Engineering Proverbs","author":"Leonid Mamchenkov","date":"October 25, 2004","format":false,"excerpt":"\"Software Engineering Proverbs\" collected by Tom Van Vleck is an excellent place to pick up a smart thought or two. Many of these are good for email signatures and stuff like that. Another point to note is that these do often apply to people other than software engineers too.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":42682,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/06\/05\/notes-to-myself-on-software-engineering\/","url_meta":{"origin":27343,"position":3},"title":"Notes to Myself on Software Engineering","author":"Leonid Mamchenkov","date":"June 5, 2019","format":false,"excerpt":"I came across these \"Notes to Myself on Software Engineering\", with which I agree wholeheartedly. Some of these I've learned \"the hard way\". For most of these, I wish I knew them earlier. They would make my life a lot easier. Here a few to get you started, but make\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":22162,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/10\/the-architecture-of-open-source-applications\/","url_meta":{"origin":27343,"position":4},"title":"The Architecture of Open Source Applications","author":"Leonid Mamchenkov","date":"July 10, 2014","format":"link","excerpt":"The Architecture of Open Source Applications Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well\u2014usually programs they wrote themselves\u2014and never study the great programs of\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/07\/posa-cover.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":21431,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/04\/02\/why-is-software-engineering-exciting\/","url_meta":{"origin":27343,"position":5},"title":"Why is software engineering exciting?","author":"Leonid Mamchenkov","date":"April 2, 2014","format":false,"excerpt":"Quora runs the question. \u00a0There are some really inspiring and insightful replies. \u00a0Have a look. \u00a0Here are some bits to get you started. \u00a0Robert Love said: Software is the most malleable of media. With just bits\u2014which are nothing, really\u2014a software engineer can build castles out of thin air. Entire businesses,\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/27343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=27343"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/27343\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=27343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=27343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=27343"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=27343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}