Resisting Fad Technology

Making enduring technology choices

Characters:

  • Sophia, the Skeptic — 15 years of experience, has weathered many technology fads
  • Kamal, the Enthusiast — 3 years of experience, excited about emerging technologies
  • Ethan, the Architect — 12 years of experience, responsible for technology decisions

Kamal: (enthusiastically) Ethan, have you seen this new state management library? It has over 20,000 GitHub stars already! We should consider migrating our codebase to use it. The patterns are so much cleaner than what we're using now.

Ethan: (cautiously) It does look interesting. What specific problems would it solve for our current project?

Kamal: For one, it would make our code more maintainable. The API is really elegant. Plus, it's what all the top tech companies are using now. If we don't keep up with modern practices, we'll struggle to hire good developers.

Sophia: (joining the conversation) I couldn't help overhearing. You know what Epictetus said? "It is the nature of the wise to resist pleasures, but the foolish to be a slave to them."

Kamal: (confused) What does that have to do with a state management library?

Sophia: (smiling) More than you might think. In software engineering, there's often a particular pleasure in adopting the newest, shiniest tools—a temporary high from feeling cutting-edge. But that momentary pleasure frequently leads to long-term pain.

Ethan: (thoughtfully) Sophia makes an important point. I've seen many teams rush to adopt trendy technologies without fully considering the long-term implications.

Kamal: But isn't staying current with technology trends part of our professional responsibility?

Sophia: There's a significant difference between staying informed about trends and impulsively adopting them. Your organization's expensive project is not where you experiment with the latest wonderful new technology. Just because many other programmers use it does not mean it's good enough for your business.

Ethan: (nodding) Let me share a story that illustrates this. Back in 2011, I implemented MongoDB for a client. At the time, all the "cool kids" were talking up MongoDB because it could handle JSON natively, while SQL Server didn't have that feature yet.

Kamal: And how did that work out?

Ethan: (ruefully) Initially, it delivered business value—the client launched their system and capitalized on it. Mission accomplished, or so it seemed. But some years later, MongoDB became an expense to maintain. The code would frequently "just stop" for no apparent reason. It was hard to keep integrated with other systems. Eventually, MongoDB's licensing model changed, and they started charging significantly for features we needed.

Sophia: Let me guess—nine years later, you were still dealing with the consequences of that decision.

Ethan: (surprised) That's eerily accurate. It took several thousand dollars and considerable effort to migrate back to SQL Server. What I should have done originally was understand that I needed to build an EAV schema in SQL Server. Instead, I got caught up in the NoSQL hype cycle.

Kamal: (sobered) That's a compelling cautionary tale. But how do we distinguish between transformative technologies worth adopting and mere fads?

Sophia: That's the crucial question. As programmers, our role is to emulate real life within a computer, and to do that effectively, we need to understand reality itself.

Ethan: (intrigued) I haven't heard it expressed quite that way before.

Sophia: Technology choices should be guided by an understanding of the underlying order and structure of what we're modeling—its patterns, relationships, and natural laws. We're not just creating arbitrary rules for our programs; we're striving to align them with the inherent logic of the problem domain.

Kamal: That sounds philosophical, but how does it translate to practical decision-making?

Sophia: It means that the systems we build should mirror real-world processes, dynamics, and interactions as closely as possible. When evaluating a new technology, ask whether it helps you more accurately reflect the reality you're modeling, or if it's just adding artificial complexity.

Ethan: (nodding) I find that approaching technology decisions from first principles is valuable. Instead of asking "What's popular?" ask "What does this problem fundamentally require?"

Kamal: But couldn't you argue that new technologies often emerge specifically to better model reality?

Ethan: Sometimes, yes. But more often, technologies emerge to solve specific problems in specific contexts. The error comes in assuming they're universally applicable.

Sophia: There's also the matter of curation. You don't write great code by finding a way to include every single great idea ever invented into your codebase. That's a mess. That's over-designed. What makes code great is knowing when you're done.

Kamal: (thoughtfully) Like that famous quote about knowing a project is finished when there's nothing left to remove, not when there's nothing left to add.

Sophia: (impressed) Exactly. The curator's job is to make conscious decisions about what stays in the code and what has to go. Including every library or pattern that seems cool leads to a "kitchen sink" codebase that becomes increasingly difficult to maintain.

Ethan: This reminds me of another principle I try to follow: software has an expiration date. Set it from the start and live up to it.

Kamal: An expiration date for software? That seems counterintuitive when we're trying to build lasting systems.

Ethan: All software expires eventually—either through changing requirements, evolving technology landscapes, or accumulating technical debt. Acknowledging this reality upfront leads to more honest discussions about maintenance costs and when replacement or significant refactoring will be necessary.

Sophia: It also helps resist the urge to chase fads. If you know a system has a five-year horizon, you're less likely to adopt unproven technologies that might not be supported in that timeframe.

Kamal: (still not entirely convinced) But what about competitive advantage? If we're too conservative, couldn't we miss opportunities to leapfrog competitors with innovative technology?

Sophia: There's a difference between innovation and novelty. True innovation solves real problems more effectively. Novelty just does things differently without necessarily improving outcomes.

Ethan: (nodding) A very real concern for business owners is the long-term maintenance of systems. They need to be able to retain the talent to maintain everything. There's a very real problem in the industry with programmers literally turning down jobs if they see the technology stack as old or obsolete.

Kamal: That's the point I was making earlier about attracting talent!

Sophia: Yes, but that cuts both ways. "Come manage all this mess of bleeding-edge technologies that were adopted without coherent strategy" is not an attractive value proposition to experienced developers. Similarly, "keep managing all this old stuff, don't innovate on it, don't make it better" won't retain your better staff either.

Ethan: The sweet spot is thoughtful evolution, not revolution for its own sake. That means having principled approaches to evaluating new technologies and clear criteria for adoption.

Kamal: What might those criteria look like?

Ethan: I consider several factors:

First, problem alignment—does this technology actually solve a specific, important problem we're facing? Not a hypothetical problem or a minor inconvenience, but a significant pain point.

Second, maturity and stability—what's the track record? How often do breaking changes occur? Is there robust documentation and community support?

Third, ecosystem fit—how well does it integrate with our existing technology landscape? What's the learning curve for our team?

Fourth, long-term viability—who maintains it? What's their business model? Will it likely be supported five years from now?

And finally, exit strategy—if we needed to move away from this technology, how difficult would it be? Are we risking lock-in?

Sophia: (with approval) Those are excellent criteria. I'd add one more: opportunity cost. Every new technology you adopt doesn't just cost in terms of implementation time—it also represents the opportunity cost of not investing that time elsewhere. Sometimes the highest-leverage activity isn't adopting new technology but refining existing systems.

Kamal: (thinking) That makes sense. But how do we avoid becoming too conservative? There are genuine innovations that provide real value.

Sophia: Measured experimentation is key. Create bounded contexts where new technologies can be safely evaluated without risking entire systems. Proof-of-concepts, internal tools, or non-critical features can be good places to try new approaches.

Ethan: I also recommend the "wait for version 2" rule for major new technologies. Let others discover the initial problems and limitations.

Kamal: (with growing understanding) So it's not about rejecting all new technologies, but about being deliberate and strategic rather than reactive and trend-driven.

Sophia: Precisely. And remember that maturity often brings clarity. When a technology has existed long enough for its limitations and appropriate use cases to be well understood, you can make decisions with much more confidence.

Ethan: There's wisdom in learning from others' experiences too. For instance, many organizations adopted microservices because they were trendy, only to discover they had created a distributed monolith—all the complexity of microservices with none of the benefits of true independence.

Kamal: How do you resist the pressure, though? Especially when executives read about new technologies in business magazines or see competitors adopting them?

Sophia: That's where clear communication is vital. Frame technology decisions in terms of business outcomes and risks, not technical details. Help stakeholders understand the total cost of ownership, not just the implementation cost.

Ethan: And always tie technology decisions back to business value. "This new technology will help us deliver X business outcome" is much more compelling than "This new technology uses an elegant pattern."

Kamal: (with a new perspective) I'm starting to see how I've been caught up in the excitement of new technologies without fully considering the long-term implications. But doesn't this approach risk stagnation?

Sophia: Not if you distinguish between trends and evolution. Programming paradigms, architectural patterns, and foundational technologies do evolve meaningfully over time. The trick is discerning which changes represent genuine evolution versus those that are merely cyclical trends.

Ethan: For instance, the shift from monolithic to service-oriented architectures represents a meaningful evolution for many use cases. But the specific implementation—whether that's microservices, serverless functions, or something else—may be more trend-driven.

Kamal: So focus on the underlying principles rather than the specific implementations?

Sophia: (nodding) Well-stated. Principles tend to be more durable than specific technologies. Understanding concepts like loose coupling, separation of concerns, or idempotence will serve you well regardless of which specific technologies implement them.

Ethan: This reminds me of another principle: in software development, we often overestimate the benefits of a new approach and underestimate the costs. The "grass is greener" syndrome is particularly strong in our field.

Kamal: (with a laugh) I'm definitely guilty of that. I tend to see all the problems in our current stack and only the potential advantages in alternatives.

Sophia: That's a natural human bias. One antidote is to deliberately seek out the limitations and drawbacks of new technologies. For every positive blog post you read, find a critical one too.

Ethan: And remember that every significant technology eventually becomes "legacy." Today's cutting-edge solution is tomorrow's maintenance burden. Choose technologies that age gracefully.

Kamal: (with growing understanding) I think I've been approaching technology decisions from the wrong perspective—seeking excitement and novelty rather than durability and appropriateness.

Sophia: (kindly) That enthusiasm isn't inherently bad—it keeps our field dynamic and pushes boundaries. But it needs to be tempered with pragmatism and long-term thinking.

Ethan: The most valuable engineers I've worked with combine curiosity about new approaches with a healthy skepticism and deep understanding of fundamentals. They're attracted to novelty but not seduced by it.

Kamal: So for that state management library I mentioned—instead of pushing for wholesale adoption, perhaps I should identify a specific problem area where it might provide value, create a proof-of-concept, and evaluate the results objectively.

Sophia: (nodding approvingly) That's a much sounder approach. And be sure to define clear criteria for what success looks like before you begin.

Ethan: And remember, it's perfectly valid to decide against adoption even if the technology works as advertised. The cost of adding another technology to your ecosystem—in terms of cognitive load, maintenance burden, and increased complexity—might outweigh the benefits.

Kamal: (thoughtfully) I'm beginning to see technology decisions as more like long-term investments rather than consumer purchases. It's not about what's exciting now, but what delivers sustainable value.

Sophia: (with a smile) That's a profound shift in perspective. The wise engineer resists the momentary pleasure of adopting every new trend in favor of the deeper satisfaction of building systems that remain maintainable, comprehensible, and effective for years to come.

Ethan: And ultimately, that's what serves both our users and our business best. Technology exists to solve problems, not to create them.

Kamal: I think I'll revisit my approach to evaluating that library—and perhaps be a bit more skeptical of the next GitHub star count I see.

[The conversation continues, with Sophia sharing additional war stories of technology adoption gone wrong, Ethan discussing frameworks for technology evaluation, and Kamal asking thoughtful questions about balancing innovation with stability.]

Last updated: Sat Apr 05, 2025, 01:15:07