Non-functional criteria for framework choices

framework Tips
Reading time: 4 minutes, 48 seconds

After many years of watching teams succeed and fail with technology choices, I've learned something interesting: the features rarely determine success.

"It's not what you look at that matters, it's what you see."

Henry David Thoreau

Introduction

Have you ever been in a meeting where someone pulls up a spreadsheet comparing frameworks and checking off feature boxes?

"Framework A has built-in database access, framework B supports Jira. Framework C has the best memory benchmarks."

However, sometimes, human factors can matter way more than any tech specs.

The expertise dilemma

Your team knows Technology A inside and out. They've built a dozen applications with it, debugged its quirks, and developed their own patterns and best practices.

Then the new framework evaluation begins, and suddenly everyone's fascinated by Technology B's smaller bundle sizes or C's gentler learning curve.

But here's the catch: your Technology A expertise is worth more than any performance gain you'll get from switching.

I've seen teams lose months rewriting perfectly functional applications in "better" frameworks, only to end up with worse code that nobody (including the people who wrote the code) really understands.

Your team's deep knowledge of a framework's gotchas, debugging techniques, and optimization strategies is an asset that's nearly impossible to quantify and quite expensive to replace.

The documentation dilemma

Every framework claims to have excellent documentation.

Documentation quality can actually vary a whole lot depending on what you want to do. Most frameworks excel at getting you started but leave you stranded when you need to do something complex. Others have comprehensive references but just blatantly assume you already know everything.

The real test isn't whether the documentation exists—it's whether your team can find answers when they are stuck two days before the deadline.

The community factor

A framework's community isn't just about Stack Overflow answers. It's about the ecosystem of tools, plugins, and shared solutions that develop around popular choices.

When you choose a framework with a smaller community, you might get fewer resources which in turn means that you're signing up to solve more problems from scratch.

But there's an interesting middle ground: inner source frameworks.

Inner source to the rescue?

These are tools developed internally by your company using open source practices. Instead of posting questions on Stack Overflow, you can walk over to a maintainer's desk. Instead of waiting for a GitHub issue to be prioritized by strangers, you can talk directly to the team.

With frameworks like this, the experience can be remarkably different. Bug fixes happen in days and feature requests are evaluated by people who understand your business context. Documentation gets written by people who know exactly what problems you're trying to solve.

Of course there can be trade-offs as well.

You're betting on your internal team's long-term commitment and expertise. If that team gets reorganized or their priorities shift, you might find yourself maintaining a framework nobody else in the world uses.

But when it works, inner source can give you the best of both worlds: the rapid iteration of a small, focused team combined with the collaborative practices of open source development.

The key is honest evaluation: does your internal team have the bandwidth and expertise to maintain a framework long-term? Or are you better off accepting the slower pace of external communities in exchange for their stability and breadth of knowledge?

The hiring dilemma

Here's a question that should come up in these discussions but rarely does: "How easy will it be to find developers who know the chosen software?"

Choosing obscure tech might give you functionality advantages, but it also means every new hire needs a lot more training. It means external help is harder to find. It means your job postings get fewer applicants.

I've observed companies struggling to fill positions because they'd built their entire stack around something that sounded promising in conference talks but had tiny talent pools.

The maintenance dilemma

Software development is not a short-term effort, in many cases it lasts years.

Some cutting-edge framework might be abandoned by its creators sooner than expected. The corporate-backed solution might change direction based on business priorities. A company making a framework might be bought by a competitor that suddenly changes its business model.

The most boring, stable choice often wins in the long run.

The culture dilemma

Different frameworks represent different philosophies about how software should be built or tested. Some prioritize explicit configuration, others favor convention. Some love complexity, others champion simplicity.

These philosophical differences matter more than you might think, because they affect how your team works every day.

If your team values simplicity and explicitness, a framework that relies heavily on "magic" and implicit behavior will create constant friction. If your team loves flexibility and power, a framework with strict conventions will feel constraining.

This reminds me a little bit of Conway's Law, which states:

[O]rganizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations.

Melvin E. Conway, How Do Committees Invent?

In this sense, also the used framework should match your team's values, not fight against them.

Conclusion

Features matter a lot, of course, but they're just the beginning of the conversation.

The framework choice that looks best on paper might be the worst choice for your team, your timeline, and your long-term success.

Before you make your next framework decision, this set of questions could be a good starting point:

  • How long will it take us to become productive?
  • What happens when we need help?
  • Can we hire for this?
  • Will we still be happy with this choice in three years?

The best framework isn't necessarily the one with the most impressive features, it's the one that sets you up for sustainable success.

Previous Post Next Post