TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

I could build this during the weekend

2 pointsby absolute100almost 4 years ago

2 comments

theamkalmost 4 years ago
I think he is missing a major problem:<p>&gt; We enter solution mode and start thinking about solutions for those flaws and how we&#x27;d design those items. We are so intelligent. We&#x27;d make it better, wouldn&#x27;t we?<p>&gt; However, when we do this kind of analysis, we may miss the context. Maybe the folks responsible for the design had constraints. It can be a tight timeline, low-quality, or too-expensive materials. Sometimes, it&#x27;s a waterfall process, and it&#x27;s too late or too expensive to fix it.<p>The second paragraph gives plausible reasons why the product might be bad&#x2F;overly complex: maybe changing requirements interfered with waterfall process? Or maybe they had a hidden design constraint, like &quot;can run on shared hosting machine without root access&quot; or &quot;our CEO insisted we use Mongo&quot;?<p>But if those were the reason, then yes, we could make a much better version, possibly even during the weekend. Because we know our requirements, and we no longer care about ancient hosting, and our CEO is sane and allows us to use whatever technologies make sense for the project. So our solution will be objectively better: smaller, easier to maintain, faster and more feature-full.<p>I&#x27;ve seen a great example of this in the past: there was a certain component that was crashy and very hard to maintain. And some day, one of the developers looked at it and tried to figure out why it was so complex for the things it did. Turns out it was built to outdated requirements which no longer applied to us, like &quot;LISP bindings&quot;, &quot;big-endian machines&quot;, &quot;C89 only&quot;, and &quot;no external libraries&quot;. They rewrote it from scratch in a week and the new version was vastly simpler and much more stable. The conclusion was simple: sometimes the software is complex because of 2nd order effect.. but sometimes it is complex for no good reason.
absolute100almost 4 years ago
This is a painful lesson you learn with time: &quot;It&#x27;s easy to oversimplify problems and try new, leaner technologies that optimize for our use cases. However, when scaling it to the rest of the organization, we start to see the dragons. People that didn&#x27;t build their software the right way. Entire tech stacks depending on libraries that teams can&#x27;t update due to reasons™. Quickly, we start realizing that our lean way of doing things may not serve most situations.&quot; -- It&#x27;s a costly one, as it affects people (how we make decisions) and code (what needs to be refactored now). Excellent writing by João Alves.