Back to blog

/

Our Approach

The non-negotiable principle

The utility of hard constraints in product design

May 17th, 2022

Dei VilkinsonsCEO & Founder, HASH

Self-imposed constraints

We self-impose a lot of hard constraints on product design at HASH.

Some of these are commonplace and practiced throughout good tech firms. For example, in frontend web we develop style guides and storybooks which we stick to, and on the backend we maintain a high standard for in-code comments and internal documentation.

However, one such constraint that we impose upon ourselves is by far the most important. This is the “non-negotiable principle”.

The non-negotiable principle dictates that everything we allow users to do within our products must be portable and accessible in some form. This can be satisfied by a variety of means, and indeed we try to ensure that in most cases it is in more than one way. For example:

  • Logging: every "event", such as a user edit to a page, or update to a property (in HASH) is captured, in addition to the resulting 'output' or 'product' of the event. This allows information to be recreated step-by-step from logs.
  • Self-hosting: HASH is truly "open-source". If you decide you don't like us at some point in the future, whatever the reason might be, you'll have the option to run HASH locally on your own machine, and continue to access your data, without using our website or service. You can even fork that codebase to create your own version of HASH (but more likely you'll want to extend the codebase with plugins, to continue to benefit from new features, enhancements and security fixes which make their way into the core application).
  • Exporting: absolutely all information in HASH is designed to be exportable in an easily interpretable, and completely lossless way, such as raw JSON. We'll generally try to provide information in more immediately user-readable formats such as CSV as well.

The combined effect of these measures is that there is zero risk of platform lock-in, when using HASH.

Our non-negotiable principle exists for four reasons:

  1. It results in a better product. Hard constraints force more deliberate design upfront, and better products sell themselves. Portable outputs are more integrable, and therefore more useful.
  2. It improves customer confidence. In marketplaces 'costly signals' — especially those in the form of absolute public commitments, such as our "non-negotiable principle" — set long-term expectations. These in turn allow users to adopt with confidence.
  3. It lowers barriers to adoption by lowering the cost of any exit. Trying out new tools is easier to justify when you know you can always move away with ease, or fork a solution outright, should things not live up to expectations. With low barriers to exit, potential sunk costs associated with trying a new solution out are minimized, lowering the downside risk of adoption.
  4. It forces internal focus on the things that matter. This kind of public commitment forces us to compete on features and quality, which themselves attract ambitious people to the company, creating a virtuous cycle. Because users aren't "locked in" to our ecosystem, our incentives are aligned, with an obvious motivation on our part to keep improving quality, enhancing the user experience, and lowering costs to use.

Being absolutist about our non-negotiable principle has wide-ranging implications for our business model, as well as our product.

Conventional strategy dictates that companies (and their managers) should 'preserve optionality'. By self-imposing hard constraints and writing about them publicly, we bind ourselves to them. Whole business models are — for us — ruled out. For example, there can be no “embrace, extend, and extinguish”. Instead, we work in the open and make our outputs available publicly by default. You can read more about this process in our open source at HASH blog post.

Get new posts in your inbox

Get notified when new long-reads and articles go live. Follow along as we dive deep into new tech, and share our experiences. No sales stuff.

Join our community of HASH developers