<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Engineering-Philosophy on Vishal Bhoriwal</title><link>https://www.vishalbhoriwal.me/tags/engineering-philosophy/</link><description>Recent content in Engineering-Philosophy on Vishal Bhoriwal</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 20 Mar 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://www.vishalbhoriwal.me/tags/engineering-philosophy/index.xml" rel="self" type="application/rss+xml"/><item><title>The Simplest Thing That Could Possibly Work</title><link>https://www.vishalbhoriwal.me/blog/simplicity/</link><pubDate>Wed, 20 Mar 2024 00:00:00 +0000</pubDate><guid>https://www.vishalbhoriwal.me/blog/simplicity/</guid><description>&lt;p&gt;There&amp;rsquo;s a question from Extreme Programming that I keep returning to:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;What is the simplest thing that could possibly work?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It sounds almost naive. But it&amp;rsquo;s one of the most useful filters I&amp;rsquo;ve found when designing systems.&lt;/p&gt;
&lt;h2 id="the-complexity-trap"&gt;The Complexity Trap&lt;/h2&gt;
&lt;p&gt;Engineers — myself included — tend to over-engineer. We anticipate scale, future requirements, and edge cases that may never materialize. We reach for distributed systems before we&amp;rsquo;ve saturated a single machine. We add abstraction layers before we have two concrete cases to abstract.&lt;/p&gt;</description></item></channel></rss>