Skip to content

Key elements of the Bliss Framework

The principles and key elements you'll see in this framework are an amalgamation and distillation of different approaches we've met and tried over the years.

We, as a company, also own a small restaurant, and it surprised us how much these two types of operations have in common.

Chefs and programmers do the same things

  • they have to follow a recipe
  • they take and return tools and ingredients from and to the same place
  • they must keep their workplace clean
  • they have to learn new approaches, new recipes, but they still have to customize them for their catering operation
  • they have their own language, they have no time for miscommunication, for long debates about what is what

Understandability

Since we have insight into gastro operations, we describe our process with real-life examples from restaurants, which is something even very fresh programmers can understand.

If the thing you do feels too complex to explain, it's probably overengineered and you should rethink your approach. Be like Erlang OTP, keep it simple and it will last.

Leave your ego outside

When you start using this framework, you'll start to feel urges to do something different, to do it better.

The problem with this is that if everyone felt the same way and let their ego get the better of them, then there's no need for any framework.

It doesn't mean you cannot take this framework and adapt it to your environment, but after you do that, be strict on yourself and others, push them to follow the same rules.

!!! THIS IS CRITICAL !!!

Nomenclature

Nomenclature, the naming of things, is super, super important. It makes the team faster in understanding what is what, and after a while it comes to you naturally, it leads your way through code.

Our nomenclature is universal and not really dependent on the language or framework we use for our projects.

Focus on order

When you focus on keeping everything in order, you'll just slide through your code like a hot knife through butter. That's where the bliss and efficiency comes from. You simply know where to look.

We have the same naming conventions for directories, projects, files, repositories, batch files and so on. And if we find some older projects where we were not so diligent, we first start with cleanup before working on them.

We even have the same setup when it comes to IDE and shortcuts. When we share our screens with others, this helps tremendously, since it's like you are watching your own screen and you can focus on the problem at hand.

Real life example

At BaƄa shoe maker company, the marvel of efficiency and optimization, back in the 1930s, every worker on the assembly line had a toolbox that was hanging on the wall. This toolbox contained all tools that the worker station required, and it was facing the aisle between the stations.

This toolbox had a red background in the shape of every tool, just so when the tool was hanging in the box, the background was not visible. At the end of the shift, all that the foreman had to do was walk the aisle and look for red color.

That's how the smart order of things gives you efficiency.

Restrain yourself

Over the years you'll be tempted by many, MANY, new frameworks, new language features, new tricks how to be cool.

It is very important to restrain yourself. You and your team have to be on the same level. The more features and quirks of the language you use, the more you have to explain to new programmers, and others.

You can find a new operator in almost every version of C#, or a different way to create objects, to define constructor. Once again, the problem lays with individuality.

For example, you like the ?? operator, your colleague doesn't, so he doesn't use it, but uses a different one, and another colleague doesn't even understand it. Now you have three team members, and every single one uses something different, and every single one will have to learn the way of the others. This of course adds up over time.

Everyone will have to sacrifice some feature and accept another, that is the only way to keep the code base concise and readable for all.

Trust me, it doesn't make you cooler if you write your code only with ternary and null operators; it just makes your code harder to read.

Restrain yourself, be readable.

Plan for tomorrow, build for today

Leave your individuality outside as well

We understand that (almost) everyone has a need to express themselves, to be unique, and that's great, just leave it out of your code. There's no place for it in there.